mirror of
https://github.com/ProjectSegfault/website.git
synced 2024-11-26 16:52:08 +05:30
commit
7d0012e38a
44
.github/workflows/docker.yml
vendored
44
.github/workflows/docker.yml
vendored
@ -1,29 +1,25 @@
|
|||||||
name: Docker
|
name: Docker
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- 'master'
|
- "master"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
docker:
|
docker:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
- name: Set up QEMU
|
||||||
name: Set up QEMU
|
uses: docker/setup-qemu-action@v2
|
||||||
uses: docker/setup-qemu-action@v2
|
- name: Set up Docker Buildx
|
||||||
-
|
uses: docker/setup-buildx-action@v2
|
||||||
name: Set up Docker Buildx
|
- name: Login to DockerHub
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/login-action@v2
|
||||||
-
|
with:
|
||||||
name: Login to DockerHub
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
uses: docker/login-action@v2
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
with:
|
- name: Build and push
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
uses: docker/build-push-action@v3
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
with:
|
||||||
-
|
push: true
|
||||||
name: Build and push
|
tags: projectsegfault/website:latest
|
||||||
uses: docker/build-push-action@v3
|
|
||||||
with:
|
|
||||||
push: true
|
|
||||||
tags: projectsegfault/website:latest
|
|
||||||
|
@ -2,9 +2,20 @@
|
|||||||
import { Note, Captcha, Form, Meta, TextArea } from "$lib/Form";
|
import { Note, Captcha, Form, Meta, TextArea } from "$lib/Form";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Form action="https://segfautils.projectsegfau.lt/api/form" method="POST" id="contact-form" >
|
<Form
|
||||||
<Note content="Your IP will be logged for anti-abuse measures." icon="i-fa6-solid:lock" />
|
action="https://segfautils.projectsegfau.lt/api/form"
|
||||||
<Meta inputType="email" inputPlaceholder="Your email" selectType="commentType">
|
method="POST"
|
||||||
|
id="contact-form"
|
||||||
|
>
|
||||||
|
<Note
|
||||||
|
content="Your IP will be logged for anti-abuse measures."
|
||||||
|
icon="i-fa6-solid:lock"
|
||||||
|
/>
|
||||||
|
<Meta
|
||||||
|
inputType="email"
|
||||||
|
inputPlaceholder="Your email"
|
||||||
|
selectType="commentType"
|
||||||
|
>
|
||||||
<option value="" selected disabled>Select a type of comment</option>
|
<option value="" selected disabled>Select a type of comment</option>
|
||||||
<option value="Feedback">Feedback</option>
|
<option value="Feedback">Feedback</option>
|
||||||
<option value="Suggestion">Suggestion</option>
|
<option value="Suggestion">Suggestion</option>
|
||||||
@ -13,4 +24,4 @@
|
|||||||
</Meta>
|
</Meta>
|
||||||
<TextArea id="comment" name="message" placeholder="Your message" />
|
<TextArea id="comment" name="message" placeholder="Your message" />
|
||||||
<Captcha />
|
<Captcha />
|
||||||
</Form>
|
</Form>
|
||||||
|
@ -1,19 +1,22 @@
|
|||||||
<script>
|
<script>
|
||||||
import HCaptcha from "svelte-hcaptcha";
|
import HCaptcha from "svelte-hcaptcha";
|
||||||
import { Note } from "$lib/Form";
|
import { Note } from "$lib/Form";
|
||||||
|
|
||||||
let submit = false;
|
let submit = false;
|
||||||
|
|
||||||
let showSubmitButton = () => {
|
let showSubmitButton = () => {
|
||||||
submit = !submit;
|
submit = !submit;
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Note content="The submit button will be visible when you complete the Captcha." icon="i-fa6-solid:circle-info" />
|
<Note
|
||||||
|
content="The submit button will be visible when you complete the Captcha."
|
||||||
|
icon="i-fa6-solid:circle-info"
|
||||||
|
/>
|
||||||
<HCaptcha
|
<HCaptcha
|
||||||
sitekey="67e84266-980c-4050-8a39-142a91928fe8"
|
sitekey="67e84266-980c-4050-8a39-142a91928fe8"
|
||||||
on:success={showSubmitButton}
|
on:success={showSubmitButton}
|
||||||
/>
|
/>
|
||||||
{#if submit}
|
{#if submit}
|
||||||
<input type="submit" value="Submit" class="form-button" />
|
<input type="submit" value="Submit" class="form-button" />
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -1,19 +1,15 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let action: string;
|
export let action: string;
|
||||||
export let method: string;
|
export let method: string;
|
||||||
export let id: string;
|
export let id: string;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<form
|
<form {action} {method} {id}>
|
||||||
{action}
|
<slot />
|
||||||
{method}
|
|
||||||
{id}
|
|
||||||
>
|
|
||||||
<slot />
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
form {
|
form {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
@ -47,4 +43,4 @@
|
|||||||
font-family: var(--font-primary);
|
font-family: var(--font-primary);
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let inputType: string;
|
export let inputType: string;
|
||||||
export let inputPlaceholder: string;
|
export let inputPlaceholder: string;
|
||||||
export let selectType: string;
|
export let selectType: string;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="meta">
|
<div class="meta">
|
||||||
<input
|
<input
|
||||||
type={inputType}
|
type={inputType}
|
||||||
name={inputType}
|
name={inputType}
|
||||||
class="form-textbox"
|
class="form-textbox"
|
||||||
placeholder={inputPlaceholder}
|
placeholder={inputPlaceholder}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
<select name={selectType} required class="form-button">
|
<select name={selectType} required class="form-button">
|
||||||
<slot />
|
<slot />
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.meta {
|
.meta {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -44,4 +44,4 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let content: string;
|
export let content: string;
|
||||||
export let icon: string;
|
export let icon: string;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="note">
|
<div class="note">
|
||||||
{#if icon}
|
{#if icon}
|
||||||
<div class={icon} />
|
<div class={icon} />
|
||||||
{/if}
|
{/if}
|
||||||
<b>{content}</b>
|
<b>{content}</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.note {
|
.note {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let id: string;
|
export let id: string;
|
||||||
export let name: string;
|
export let name: string;
|
||||||
export let placeholder: string;
|
export let placeholder: string;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<textarea
|
<textarea
|
||||||
{id}
|
{id}
|
||||||
{name}
|
{name}
|
||||||
rows="4"
|
rows="4"
|
||||||
cols="25"
|
cols="25"
|
||||||
required
|
required
|
||||||
class="form-textbox"
|
class="form-textbox"
|
||||||
{placeholder}
|
{placeholder}
|
||||||
/>
|
/>
|
||||||
|
@ -2,4 +2,4 @@ export { default as Note } from "./Note.svelte";
|
|||||||
export { default as Captcha } from "./Captcha.svelte";
|
export { default as Captcha } from "./Captcha.svelte";
|
||||||
export { default as Form } from "./Form.svelte";
|
export { default as Form } from "./Form.svelte";
|
||||||
export { default as Meta } from "./Meta.svelte";
|
export { default as Meta } from "./Meta.svelte";
|
||||||
export { default as TextArea } from "./TextArea.svelte";
|
export { default as TextArea } from "./TextArea.svelte";
|
||||||
|
@ -60,4 +60,4 @@ a {
|
|||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
filter: brightness(125%);
|
filter: brightness(125%);
|
||||||
}
|
}
|
||||||
|
@ -26,8 +26,16 @@
|
|||||||
marginTop="7"
|
marginTop="7"
|
||||||
>
|
>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<LinkButton url="/services" title="Explore our services" icon="i-fa6-solid:bell-concierge" />
|
<LinkButton
|
||||||
<LinkButton url="/projects" title="Explore our projects" icon="i-fa6-solid:tractor" />
|
url="/services"
|
||||||
|
title="Explore our services"
|
||||||
|
icon="i-fa6-solid:bell-concierge"
|
||||||
|
/>
|
||||||
|
<LinkButton
|
||||||
|
url="/projects"
|
||||||
|
title="Explore our projects"
|
||||||
|
icon="i-fa6-solid:tractor"
|
||||||
|
/>
|
||||||
<LinkButton
|
<LinkButton
|
||||||
url="/donate"
|
url="/donate"
|
||||||
icon="i-fa6-solid:money-bill"
|
icon="i-fa6-solid:money-bill"
|
||||||
|
@ -34,4 +34,4 @@ _Please be aware that Microsoft often blocks non-popular emails, if you do conta
|
|||||||
|
|
||||||
## People
|
## People
|
||||||
|
|
||||||
You can find ways to contact individual team members [on our team page](/team).
|
You can find ways to contact individual team members [on our team page](/team).
|
||||||
|
@ -25,26 +25,26 @@
|
|||||||
<h2>{group.category}</h2>
|
<h2>{group.category}</h2>
|
||||||
<div class="items">
|
<div class="items">
|
||||||
{#each group.values as item}
|
{#each group.values as item}
|
||||||
<CardInner
|
<CardInner
|
||||||
title={item.name}
|
title={item.name}
|
||||||
description={item.description}
|
description={item.description}
|
||||||
icon={item.icon}
|
icon={item.icon}
|
||||||
>
|
>
|
||||||
<LinksOuter>
|
<LinksOuter>
|
||||||
<Link url={item.website} class="web">
|
<Link url={item.website} class="web">
|
||||||
<div class="withText">
|
<div class="withText">
|
||||||
<div class="i-fa6-solid:globe" />
|
<div class="i-fa6-solid:globe" />
|
||||||
<span>Instance link</span>
|
<span>Instance link</span>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
<Link url={item.projectWebsite} class="link">
|
<Link url={item.projectWebsite} class="link">
|
||||||
<div class="withText">
|
<div class="withText">
|
||||||
<div class="i-fa6-solid:circle-info" />
|
<div class="i-fa6-solid:circle-info" />
|
||||||
<span>Project website</span>
|
<span>Project website</span>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
</LinksOuter>
|
</LinksOuter>
|
||||||
</CardInner>
|
</CardInner>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
|
Loading…
Reference in New Issue
Block a user