requested changes

This commit is contained in:
Akis 2022-08-08 08:20:03 +03:00
parent 992d671b3d
commit 610ad6d5c7
Signed by untrusted user: akis
GPG Key ID: 267BF5C6677944ED
18 changed files with 330 additions and 294 deletions

View File

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<link
rel="icon"
href="%sveltekit.assets%/logo.svg"
href="%sveltekit.assets%/logo_transparent.svg"
/>
<meta
name="viewport"

View File

@ -1,64 +1,64 @@
<script lang="ts">
export let title: any;
export let position: any;
export let description: any;
export let icon: any;
export let title: any;
export let position: any;
export let description: any;
export let icon: any;
</script>
<div class="card-inner">
<div class="main">
{#if icon}
<div>
<img src={icon} alt="{title} icon">
</div>
{/if}
<div>
<span>
{title}
<div class="main">
{#if icon}
<div>
<img src={icon} alt="{title} icon" />
</div>
{/if}
<div>
<span>
{title}
{#if position}
- {position}
{/if}
</span>
{#if position}
- {position}
{/if}
</span>
{#if description}
<p class="description">{description}</p>
{/if}
</div>
</div>
<slot />
{#if description}
<p class="description">{description}</p>
{/if}
</div>
</div>
<slot />
</div>
<style>
.card-inner {
background-color: var(--secondary);
.card-inner {
background-color: var(--secondary);
border-radius: 10px;
padding: 1rem;
width: 30em;
display: flex;
flex-direction: column;
}
@media screen and (max-width: 555px) {
.card-inner {
width: 18em;
}
}
.main {
flex: 1;
display: flex;
flex-direction: row;
gap: 1rem;
}
img {
height: 5rem;
border-radius: 10px;
}
@media screen and (max-width: 555px) {
.card-inner {
width: 18em;
}
}
span {
font-size: 25px;
font-weight: bold;
}
.main {
flex: 1;
display: flex;
flex-direction: row;
gap: 1rem;
}
img {
height: 5rem;
border-radius: 10px;
}
span {
font-size: 25px;
font-weight: bold;
}
</style>

View File

@ -1,12 +1,12 @@
<div class="card-outer">
<slot />
<slot />
</div>
<style>
div {
display: flex;
div {
display: flex;
flex-direction: column;
gap: 2rem;
flex-flow: row wrap;
}
}
</style>

View File

@ -1,14 +1,14 @@
<script lang="ts">
export let url: any;
export let classes: string;
export let url: any;
export let classes: string;
</script>
<a href={url} class="{classes}">
<slot />
<a href={url} class={classes}>
<slot />
</a>
<style>
.web,
.web,
.email,
.picture,
.pgp {
@ -27,7 +27,7 @@
color: #333 !important;
}
.matrixcolored {
.matrixcolored {
background-color: #333;
color: #fff !important;
font-size: 20px;
@ -48,7 +48,7 @@
height: 23px;
}
a {
a {
border: none;
border-radius: 10px;
padding: 0.5rem;

View File

@ -1,9 +1,9 @@
<div>
<slot />
<slot />
</div>
<style>
div {
div {
display: flex;
flex-direction: row;
gap: 0.5rem;

View File

@ -1,114 +1,114 @@
[
{
"name": "Invidious",
"description": "A frontend for YouTube.",
"website": "https://invidious.projectsegfau.lt/",
"icon": "https://github.com/iv-org/invidious/raw/master/assets/invidious-colored-vector.svg",
"category": "Instances"
},
{
"name": "Libreddit",
"description": "A frontend for Reddit.",
"website": "https://libreddit.projectsegfau.lt/",
"icon": "https://github.com/spikecodes/libreddit/raw/master/static/logo.png",
"category": "Instances"
},
{
"name": "Librarian (LBRY)",
"description": "A frontend for Odysee.",
"website": "https://lbry.projectsegfau.lt/",
"icon": "https://codeberg.org/librarian/librarian/raw/branch/main/static/img/librarian.svg",
"category": "Instances"
},
{
"name": "Nitter",
"description": "A frontend for Twitter.",
"website": "https://nitter.projectsegfau.lt/",
"icon": "https://github.com/zedeus/nitter/raw/master/public/logo.png",
"category": "Instances"
},
{
"name": "Quetre",
"description": "A frontend for Quora.",
"website": "https://quetre.projectsegfau.lt/",
"icon": "https://github.com/zyachel/quetre/raw/main/public/icon.svg",
"category": "Instances"
},
{
"name": "Element",
"description": "An open source and decentralized chat application.",
"website": "https://chat.projectsegfau.lt/",
"icon": "https://element.io/images/logo-mark-primary.svg",
"category": "Instances"
},
{
"name": "Piped",
"description": "Another alternative for YouTube.",
"website": "https://piped.projectsegfau.lt/",
"icon": "https://github.com/TeamPiped/Piped/raw/master/public/img/icons/logo.svg",
"category": "Instances"
},
{
"name": "SearXNG",
"description": "A private meta-search engine.",
"website": "https://search.projectsegfau.lt/search",
"icon": "https://docs.searxng.org/_static/searxng-wordmark.svg",
"category": "Instances"
},
{
"name": "Lingva Translate",
"description": "A frontend for Google Translate.",
"website": "https://translate.projectsegfau.lt",
"icon": "https://github.com/thedaviddelta/lingva-translate/raw/main/public/logo.svg",
"category": "Instances"
},
{
"name": "Bibliogram",
"description": "A frontend for Instagram.",
"website": "https://bib.projectsegfau.lt",
"icon" : "https://git.sr.ht/~cadence/bibliogram/blob/master/art/logo-circle.png",
"category": "Instances"
},
{
"name": "Minecraft",
"description": "Our invite-only Minecraft SMP.",
"website": "https://projectsegfau.lt/minecraft",
"icon": "https://icon-library.com/images/flat-minecraft-icon/flat-minecraft-icon-7.jpg",
"category": "Gameservers"
},
{
"name": "Minetest",
"description": "Minecraft \"alternative\".",
"website": "https://matrix.to/#/#minetest:projectsegfau.lt",
"icon": "https://instances.projectsegfau.lt/assets/icons/custom/1024px-Minetest_logo.svg.png",
"category": "Gameservers"
},
{
"name": "Portainer (Soleil Levant)",
"description": "Portainer instance for Soleil Levant.",
"website": "https://portainer.soleil-levant.projectsegfau.lt/",
"icon": "https://www.docker.com/wp-content/uploads/2022/03/vertical-logo-monochromatic.png",
"category": "Internal"
},
{
"name": "Portainer (Helios)",
"description": "Portainer instance for Helios.",
"website": "https://portainer.projectsegfau.lt/",
"icon": "https://www.docker.com/wp-content/uploads/2022/03/vertical-logo-monochromatic.png",
"category": "Internal"
},
{
"name": "mailcow",
"description": "Our mail server and webmail.",
"website": "https://mail.projectsegfau.lt/",
"icon": "https://instances.projectsegfau.lt/assets/icons/custom/cow_mailcow.svg",
"category": "Internal"
},
{
"name": "Plausible analytics",
"description": "Analytics for our website.",
"website": "https://analytics.projectsegfau.lt/projectsegfau.lt",
"icon": "https://avatars.githubusercontent.com/u/54802774?s=200&v=4",
"category": "Internal"
}
{
"name": "Invidious",
"description": "A frontend for YouTube.",
"website": "https://invidious.projectsegfau.lt/",
"icon": "https://github.com/iv-org/invidious/raw/master/assets/invidious-colored-vector.svg",
"category": "Instances"
},
{
"name": "Libreddit",
"description": "A frontend for Reddit.",
"website": "https://libreddit.projectsegfau.lt/",
"icon": "https://github.com/spikecodes/libreddit/raw/master/static/logo.png",
"category": "Instances"
},
{
"name": "Librarian (LBRY)",
"description": "A frontend for Odysee.",
"website": "https://lbry.projectsegfau.lt/",
"icon": "https://codeberg.org/librarian/librarian/raw/branch/main/static/img/librarian.svg",
"category": "Instances"
},
{
"name": "Nitter",
"description": "A frontend for Twitter.",
"website": "https://nitter.projectsegfau.lt/",
"icon": "https://github.com/zedeus/nitter/raw/master/public/logo.png",
"category": "Instances"
},
{
"name": "Quetre",
"description": "A frontend for Quora.",
"website": "https://quetre.projectsegfau.lt/",
"icon": "https://github.com/zyachel/quetre/raw/main/public/icon.svg",
"category": "Instances"
},
{
"name": "Element",
"description": "An open source and decentralized chat application.",
"website": "https://chat.projectsegfau.lt/",
"icon": "https://element.io/images/logo-mark-primary.svg",
"category": "Instances"
},
{
"name": "Piped",
"description": "Another alternative for YouTube.",
"website": "https://piped.projectsegfau.lt/",
"icon": "https://github.com/TeamPiped/Piped/raw/master/public/img/icons/logo.svg",
"category": "Instances"
},
{
"name": "SearXNG",
"description": "A private meta-search engine.",
"website": "https://search.projectsegfau.lt/search",
"icon": "https://docs.searxng.org/_static/searxng-wordmark.svg",
"category": "Instances"
},
{
"name": "Lingva Translate",
"description": "A frontend for Google Translate.",
"website": "https://translate.projectsegfau.lt",
"icon": "https://github.com/thedaviddelta/lingva-translate/raw/main/public/logo.svg",
"category": "Instances"
},
{
"name": "Bibliogram",
"description": "A frontend for Instagram.",
"website": "https://bib.projectsegfau.lt",
"icon": "https://git.sr.ht/~cadence/bibliogram/blob/master/art/logo-circle.png",
"category": "Instances"
},
{
"name": "Minecraft",
"description": "Our invite-only Minecraft SMP.",
"website": "https://projectsegfau.lt/minecraft",
"icon": "https://icon-library.com/images/flat-minecraft-icon/flat-minecraft-icon-7.jpg",
"category": "Gameservers"
},
{
"name": "Minetest",
"description": "Minecraft \"alternative\".",
"website": "https://matrix.to/#/#minetest:projectsegfau.lt",
"icon": "https://instances.projectsegfau.lt/assets/icons/custom/1024px-Minetest_logo.svg.png",
"category": "Gameservers"
},
{
"name": "Portainer (Soleil Levant)",
"description": "Portainer instance for Soleil Levant.",
"website": "https://portainer.soleil-levant.projectsegfau.lt/",
"icon": "https://www.docker.com/wp-content/uploads/2022/03/vertical-logo-monochromatic.png",
"category": "Internal"
},
{
"name": "Portainer (Helios)",
"description": "Portainer instance for Helios.",
"website": "https://portainer.projectsegfau.lt/",
"icon": "https://www.docker.com/wp-content/uploads/2022/03/vertical-logo-monochromatic.png",
"category": "Internal"
},
{
"name": "mailcow",
"description": "Our mail server and webmail.",
"website": "https://mail.projectsegfau.lt/",
"icon": "https://instances.projectsegfau.lt/assets/icons/custom/cow_mailcow.svg",
"category": "Internal"
},
{
"name": "Plausible analytics",
"description": "Analytics for our website.",
"website": "https://analytics.projectsegfau.lt/projectsegfau.lt",
"icon": "https://avatars.githubusercontent.com/u/54802774?s=200&v=4",
"category": "Internal"
}
]

View File

@ -8,18 +8,18 @@
$: currentPage = $page.url.pathname;
const menus = [
{name: "Instances", url: "/instances"},
{name: "Projects", url: "/projects"},
{name: "Minecraft", url: "/minecraft"},
{name: "Donate", url: "/donate"},
{name: "FAQ", url: "/faq"},
{name: "Contact us", url: "/contact"},
{name: "Our team", url: "/team"},
{name: "Timeline", url: "/timeline"},
{name: "Blog", url: "https://blog.projectsegfau.lt/"},
{name: "Legal", url: "/legal"},
{name: "Status", url: "https://status.projectsegfau.lt/"},
]
{ name: "Instances", url: "/instances" },
{ name: "Projects", url: "/projects" },
{ name: "Minecraft", url: "/minecraft" },
{ name: "Donate", url: "/donate" },
{ name: "FAQ", url: "/faq" },
{ name: "Contact us", url: "/contact" },
{ name: "Our team", url: "/team" },
{ name: "Timeline", url: "/timeline" },
{ name: "Blog", url: "https://blog.projectsegfau.lt/" },
{ name: "Legal", url: "/legal" },
{ name: "Status", url: "https://status.projectsegfau.lt/" }
];
</script>
<nav>
@ -37,7 +37,13 @@
<div class="links">
{#each menus as { url, name }}
<a sveltekit:prefetch class:active={url !== "/" ? currentPage.match(url) : url === currentPage} href={url}>{name}</a>
<a
sveltekit:prefetch
class:active={url !== "/"
? currentPage.match(url)
: url === currentPage}
href={url}>{name}</a
>
{/each}
<a href="https://matrix.to/#/#project-segfault:projectsegfau.lt/">
<IconMatrix />

View File

@ -2,9 +2,8 @@
import { afterUpdate } from "svelte";
import DarkMode from "svelte-dark-mode";
import type { Theme } from "svelte-dark-mode/types/DarkMode.svelte";
import IconSun from "~icons/fa6-solid/sun";
import IconMoon from "~icons/fa6-solid/moon";
import IconSun from "~icons/fa6-solid/sun";
import IconMoon from "~icons/fa6-solid/moon";
let theme: Theme;
@ -21,18 +20,18 @@
{#if theme === "dark"}
<div on:click={toggle}>
<IconSun />
</div>
<IconSun />
</div>
{:else if theme === "light"}
<div on:click={toggle}>
<IconMoon />
</div>
<div on:click={toggle}>
<IconMoon />
</div>
{/if}
<style>
div {
cursor: pointer;
display: flex;
align-items: center;
}
div {
cursor: pointer;
display: flex;
align-items: center;
}
</style>

View File

@ -34,7 +34,7 @@ body {
position: relative;
min-height: 100vh;
line-height: 1.625;
transition: all .25s;
transition: all 0.25s;
}
::selection {

View File

@ -7,14 +7,14 @@
<SvelteSeo
title="Project Segfault"
description="7 idiots, 2 OVH vpses, a BuyVM 1024 Slice, a Sun server and a Hitachi Compute Rack."
description="Open source development and hosted services."
canonical="https://projectsegfau.lt/"
keywords="projectsegfault, project segfault, privacy services, privacy instances, invidious, nitter, searxng, minecraft"
openGraph={{
url: "https://projectsegfau.lt/",
title: "Project Segfault",
description:
"7 idiots, 2 OVH vpses, a BuyVM 1024 Slice, a Sun server and a Hitachi Compute Rack.",
"Open source development and hosted services.",
images: [
{
url: "/ProjectSegfault_Desktop_16-9.png",

View File

@ -13,10 +13,34 @@ If you donate, we will be more motivated to work on the server and host more stu
## Donation Links
### Monero
Address: `47L7Qsto7XcifY3CdG18ySe5Tt83kpFLDLve9jQwbc9taPBLNGv6ZrJNUKpMG9Nj9zHgCZ4FQMSyt75e8Jvx12JFLtJyFdA`
Alias: [projectsegfau.lt](https://projectsegfau.lt/) _(Put this in an OpenAlias compatible wallet e.g. MyMonero)_
[Click here for QR code.](/Monero.png)
<h3>Monero</h3>
<div class="monero">
<div class="written">
<span>Address: <code>47L7Qsto7XcifY3CdG18ySe5Tt83kpFLDLve9jQwbc9taPBLNGv6ZrJNUKpMG9Nj9zHgCZ4FQMSyt75e8Jvx12JFLtJyFdA</code></span><br />
<span>Alias: <a href="https://projectsegfau.lt/">projectsegfau.lt</a> <i>(Put this in an OpenAlias compatible wallet e.g. MyMonero)</i></span>
</div>
<div class="qr">
<img src="/Monero.png" alt="Monero QR code" />
</div>
</div>
_You can find all of our financial reports on [our transparency repository on GitHub](https://github.com/ProjectSegfault/transparency/)._
<style>
.monero {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
word-wrap: break-word;
}
@media screen and (max-width: 1004px) {
.monero {
flex-direction: column;
align-items: initial;
}
}
</style>

View File

@ -6,7 +6,8 @@
import IconTriangleExclamation from "~icons/fa6-solid/triangle-exclamation";
import dayjs from "dayjs";
let description: string = "7 idiots, 2 OVH vpses, a BuyVM 1024 Slice, a Sun server and a Hitachi Compute Rack.";
let description: string =
"Open source development and hosted services.";
let announcements: any = [];
async function fetchAnnouncements() {
@ -46,9 +47,9 @@
<IconTriangleExclamation />
{/if}
<span>
{dayjs.unix(announcements.created).format(
"DD/MM/YYYY HH:mm"
)}
{dayjs
.unix(announcements.created)
.format("DD/MM/YYYY HH:mm")}
</span>
</div>
<div class="title">

View File

@ -1,52 +1,57 @@
<script>
import { CardInner, CardOuter, Link, LinksOuter } from "$lib/Card";
import instances from "$lib/Instances.json";
import IconGlobe from "~icons/fa6-solid/globe";
import { CardInner, CardOuter } from "$lib/Card";
import instances from "$lib/Instances.json";
let groups = instances.reduce((curr, val) => {
let group = curr.find(g => g.category === `${val.category}`)
if (group) {
group.values.push(val)
} else {
curr.push({ category: `${val.category}`, values: [ val ] })
}
return curr
}, [])
let groups = instances.reduce((curr, val) => {
let group = curr.find((g) => g.category === `${val.category}`);
if (group) {
group.values.push(val);
} else {
curr.push({ category: `${val.category}`, values: [val] });
}
return curr;
}, []);
</script>
<h1>Our instances</h1>
<CardOuter>
<div class="container">
{#each groups as group}
<div class="container-inner">
<h2>{group.category}</h2>
<div class="items">
{#each group.values as item }
<CardInner title={item.name} description={item.description} icon={item.icon}>
<LinksOuter>
<Link url={item.website} classes="web">
<IconGlobe />
</Link>
</LinksOuter>
</CardInner>
{/each}
</div>
</div>
{/each}
</div>
</CardOuter>
<CardOuter>
<div class="container">
{#each groups as group}
<div class="container-inner">
<h2>{group.category}</h2>
<div class="items">
{#each group.values as item}
<a href={item.website}>
<CardInner
title={item.name}
description={item.description}
icon={item.icon}
>
</CardInner>
</a>
{/each}
</div>
</div>
{/each}
</div>
</CardOuter>
<style>
.container-inner,
.container {
display: flex;
flex-direction: column;
}
.container-inner, .container {
display: flex;
flex-direction: column;
}
.items {
display: flex;
flex-direction: row;
flex-flow: row wrap;
gap: 2rem;
}
.items {
display: flex;
flex-direction: row;
flex-flow: row wrap;
gap: 2rem;
}
a {
text-decoration: none;
color: var(--text);
}
</style>

View File

@ -1,7 +1,7 @@
<script lang="ts">
import { CardInner, CardOuter, Link, LinksOuter } from "$lib/Card";
import { CardInner, CardOuter, Link, LinksOuter } from "$lib/Card";
import projects from "$lib/Projects.json";
import IconGitHub from "~icons/simple-icons/github";
import IconGitHub from "~icons/simple-icons/github";
import IconGlobe from "~icons/fa6-solid/globe";
import IconEmail from "~icons/fa6-solid/envelope";
import IconCamera from "~icons/fa6-solid/camera";
@ -14,10 +14,10 @@
<h1>Our projects</h1>
<CardOuter>
{#each projects as { name, description, github, website }}
<CardInner title={name} {description}>
<LinksOuter>
{#if website}
{#each projects as { name, description, github, website }}
<CardInner title={name} {description}>
<LinksOuter>
{#if website}
<Link url={website} classes="web">
<IconGlobe />
</Link>
@ -28,8 +28,7 @@
<IconGitHub />
</Link>
{/if}
</LinksOuter>
</CardInner>
{/each}
</LinksOuter>
</CardInner>
{/each}
</CardOuter>

View File

@ -1,5 +1,5 @@
<script lang="ts">
import { CardInner, CardOuter, Link, LinksOuter } from "$lib/Card";
import { CardInner, CardOuter, Link, LinksOuter } from "$lib/Card";
import members from "$lib/Team.json";
import IconDiscord from "~icons/simple-icons/discord";
import IconMatrix from "~icons/simple-icons/matrix";
@ -17,10 +17,10 @@
<h1>Our team</h1>
<CardOuter>
{#each members as { name, discord, matrix, position, description, github, pgp, website, email, picture }}
<CardInner title={name} {position} {description}>
<LinksOuter>
{#if matrix}
{#each members as { name, discord, matrix, position, description, github, pgp, website, email, picture }}
<CardInner title={name} {position} {description}>
<LinksOuter>
{#if matrix}
<Link url={matrix} classes="matrixcolored">
<IconMatrix />
</Link>
@ -61,8 +61,7 @@
<IconCamera />
</Link>
{/if}
</LinksOuter>
</CardInner>
{/each}
</LinksOuter>
</CardInner>
{/each}
</CardOuter>

View File

@ -13,7 +13,10 @@
<svelte:head>
<title>Timeline | Project Segfault</title>
<meta name="description" content="Timeline of Project Segfault's history." />
<meta
name="description"
content="Timeline of Project Segfault's history."
/>
</svelte:head>
<Hero>

View File

@ -8,7 +8,7 @@
version="1.1"
id="svg5"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="logo.svg"
sodipodi:docname="pjsgfltrebrandtransparentish.svg"
inkscape:export-filename="pjsgfltrebrandtransparentish.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
@ -28,7 +28,7 @@
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="1.5866953"
inkscape:cx="192.22342"
inkscape:cx="191.9083"
inkscape:cy="255.24749"
inkscape:window-width="1920"
inkscape:window-height="1022"
@ -110,4 +110,12 @@
inkscape:original-d="m 377.87971,133.48486 -236.02453,0.24251 V 383.6211 c 0,0 303.15572,-167.40787 44.67569,-108.17418 C 9.614791,315.98928 377.87971,133.48486 377.87971,133.48486 Z" />
</g>
</g>
<rect
style="fill:#00a584;fill-opacity:0.563436;paint-order:stroke fill markers;image-rendering:optimizeQuality"
id="rect4630"
width="375.63217"
height="380.60764"
x="0"
y="0"
ry="52.713902" />
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -8,7 +8,7 @@
version="1.1"
id="svg5"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="pjsgfltrebrandtransparentish.svg"
sodipodi:docname="logo.svg"
inkscape:export-filename="pjsgfltrebrandtransparentish.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
@ -28,7 +28,7 @@
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="1.5866953"
inkscape:cx="191.9083"
inkscape:cx="192.22342"
inkscape:cy="255.24749"
inkscape:window-width="1920"
inkscape:window-height="1022"
@ -110,12 +110,4 @@
inkscape:original-d="m 377.87971,133.48486 -236.02453,0.24251 V 383.6211 c 0,0 303.15572,-167.40787 44.67569,-108.17418 C 9.614791,315.98928 377.87971,133.48486 377.87971,133.48486 Z" />
</g>
</g>
<rect
style="fill:#00a584;fill-opacity:0.563436;paint-order:stroke fill markers;image-rendering:optimizeQuality"
id="rect4630"
width="375.63217"
height="380.60764"
x="0"
y="0"
ry="52.713902" />
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB