Compare commits

...

8 commits

18 changed files with 72 additions and 38 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use nix -p deno

3
.gitignore vendored
View file

@ -22,3 +22,6 @@ pnpm-debug.log*
# jetbrains setting folder # jetbrains setting folder
.idea/ .idea/
# direnv
.direnv/

2
.vscode/launch.json vendored
View file

@ -2,7 +2,7 @@
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"command": "nix run nixpkgs#deno task dev", "command": "deno task dev",
"name": "Development server", "name": "Development server",
"request": "launch", "request": "launch",
"type": "node-terminal" "type": "node-terminal"

View file

@ -4,6 +4,10 @@
"matrix_id": "@quadradical:federated.nexus", "matrix_id": "@quadradical:federated.nexus",
"email_address": "henry@henryhiles.com", "email_address": "henry@henryhiles.com",
"role": "m.role.admin" "role": "m.role.admin"
},
{
"matrix_id": "@hexaheximal:federated.nexus",
"role": "m.role.admin"
} }
] ]
} }

View file

@ -3,10 +3,11 @@ title: Donate
--- ---
Federated Nexus runs off of donations, so if you're enjoying our Federated Nexus runs off of donations, so if you're enjoying our
services please consider donating. Ideally, we take Interac E-Transfer services please consider donating through one of the following methods:
to: henry@henryhiles.com. If Interac E-Transfer doesn't work in your
country, join the [Matrix - Interac E-Transfer: If you are Canadian, you should be able to send an Interac E-Transfer from your bank to the address henry@henryhiles.com to donate. This is preferred, as there are no fees.
room](https://matrix.to/#/#community:federated.nexus) and we'll work - [Liberapay](https://liberapay.com/QuadRadical/donate) is the other option for donating, and should work from any country. Liberapay as a platform is primarily for recurring donations, but you can choose "Manual renewal" for a one-time donation.
something out. A huge thank you to our current sponsors:
A huge thank you to our current sponsors:
- @VeryLoud: CAD$100 - @VeryLoud: CAD$100

View file

@ -14,7 +14,7 @@ hero:
variant: minimal variant: minimal
icon: matrix icon: matrix
link: https://matrix.to/#/#community:federated.nexus link: https://matrix.to/#/#community:federated.nexus
banner: banner:
content: Si vous rencontrez des problèmes, consultez <a href="https://status.federated.nexus">notre page d'état.</a> content: Si vous rencontrez des problèmes, consultez <a href="https://status.federated.nexus">notre page d'état.</a>
--- ---
@ -39,7 +39,7 @@ import { CardGrid, Card } from "@astrojs/starlight/components"
</Card> </Card>
<Card title="Naviguer sur Reddit en toute confidentialité" icon="reddit"> <Card title="Naviguer sur Reddit en toute confidentialité" icon="reddit">
[Redlib](https://github.com/redlib-org/redlib) est une interface alternative libre et open source pour Reddit, conçue pour supprimer le suivi, les publicités et les distractions. Vous pouvez parcourir les publications, lire les commentaires et vous abonner à des communautés, sans encombrement ni logiciel espion. [En savoir plus...](services/redlib) [Redlib](https://github.com/redlib-org/redlib) est une interface alternative libre et open source pour Reddit, conçue pour supprimer le suivi, les publicités et les distractions. Vous pouvez parcourir les publications, lire les commentaires et vous abonner à des communautés, sans encombrement ni logiciel espion. [En savoir plus...](services/redlib)
</Card> </Card>
<Card title="Communauté amicale et inclusive" icon="heart"> <Card title="Communauté amicale et inclusive" icon="heart">

View file

@ -14,6 +14,9 @@ hero:
variant: minimal variant: minimal
icon: matrix icon: matrix
link: https://matrix.to/#/#community:federated.nexus link: https://matrix.to/#/#community:federated.nexus
- text: Donate
icon: seti:shell
link: donate
banner: banner:
content: If you are experiencing issues, check <a href="https://status.federated.nexus">our status page.</a> content: If you are experiencing issues, check <a href="https://status.federated.nexus">our status page.</a>
--- ---
@ -27,7 +30,7 @@ import { CardGrid, Card } from "@astrojs/starlight/components"
</Card> </Card>
<Card title="Open Source Collaborative Editing" icon="document"> <Card title="Open Source Collaborative Editing" icon="document">
We host [LaSuite Docs](https://github.com/suitenumerique/docs), a free and open source alternative to Google Docs, designed for seamless real-time collaboration. You can compose documents in a GUI similar to Google Docs, and export as DocX or PDF. You can also add subdocuments, and share links to others, even those without an account. [Learn More...](services/docs) We host [LaSuite Docs](https://github.com/suitenumerique/docs), a free and open source alternative to Google Docs, designed for seamless real-time collaboration. You can compose documents in a GUI similar to Google Docs, and export as DocX or PDF. You can also add subdocuments, and share links to others, even those without an account. [Learn More...](services/docs)
</Card> </Card>
<Card title="Fast & Private Search Made Simple" icon="magnifier"> <Card title="Fast & Private Search Made Simple" icon="magnifier">
@ -39,7 +42,7 @@ import { CardGrid, Card } from "@astrojs/starlight/components"
</Card> </Card>
<Card title="Browse Reddit Privately" icon="reddit"> <Card title="Browse Reddit Privately" icon="reddit">
[Redlib](https://github.com/redlib-org/redlib) is a free and open source alternative frontend for Reddit, designed to strip out tracking, ads, and distractions. You can browse posts, read comments, and subscribe to subreddits—without the bloat or spyware. [Learn More...](services/redlib) [Redlib](https://github.com/redlib-org/redlib) is a free and open source alternative frontend for Reddit, designed to strip out tracking, ads, and distractions. You can browse posts, read comments, and subscribe to subreddits—without the bloat or spyware. [Learn More...](services/redlib)
</Card> </Card>
<Card title="Friendly and Inclusive Community" icon="heart"> <Card title="Friendly and Inclusive Community" icon="heart">

View file

@ -14,7 +14,7 @@ hero:
variant: minimal variant: minimal
icon: matrix icon: matrix
link: https://matrix.to/#/#community:federated.nexus link: https://matrix.to/#/#community:federated.nexus
banner: banner:
content: Если у вас возникли проблемы, проверьте <a href="https://status.federated.nexus">нашу страницу состояния.</a> content: Если у вас возникли проблемы, проверьте <a href="https://status.federated.nexus">нашу страницу состояния.</a>
--- ---
@ -39,7 +39,7 @@ import { CardGrid, Card } from "@astrojs/starlight/components"
</Card> </Card>
<Card title="Просматривайте Reddit конфиденциально" icon="reddit"> <Card title="Просматривайте Reddit конфиденциально" icon="reddit">
[Redlib](https://github.com/redlib-org/redlib) — это свободный интерфейс с открытым исходным кодом для Reddit, разработанный для избавления от отслеживания, рекламы и отвлекающих факторов. Вы можете просматривать публикации, читать комментарии и подписываться на сообщества — без лишних проблем и шпионского ПО. [Подробнее...](services/redlib) [Redlib](https://github.com/redlib-org/redlib) — это свободный интерфейс с открытым исходным кодом для Reddit, разработанный для избавления от отслеживания, рекламы и отвлекающих факторов. Вы можете просматривать публикации, читать комментарии и подписываться на сообщества — без лишних проблем и шпионского ПО. [Подробнее...](services/redlib)
</Card> </Card>
<Card title="Дружественное и открытое сообщество" icon="heart"> <Card title="Дружественное и открытое сообщество" icon="heart">

View file

@ -14,7 +14,7 @@ hero:
variant: minimal variant: minimal
icon: matrix icon: matrix
link: https://matrix.to/#/#community:federated.nexus link: https://matrix.to/#/#community:federated.nexus
banner: banner:
content: Якщо у вас виникли проблеми, перевірте <a href="https://status.federated.nexus">нашу сторінку стану.</a> content: Якщо у вас виникли проблеми, перевірте <a href="https://status.federated.nexus">нашу сторінку стану.</a>
--- ---
@ -39,7 +39,7 @@ import { CardGrid, Card } from "@astrojs/starlight/components"
</Card> </Card>
<Card title="Переглядайте Reddit приватно" icon="reddit"> <Card title="Переглядайте Reddit приватно" icon="reddit">
[Redlib](https://github.com/redlib-org/redlib) — це вільний інтерфейс з відкритим кодом для Reddit, призначений для усунення відстеження, реклами та відволікаючих факторів. Ви можете переглядати публікації, читати коментарі та підписуватися на спільноти без зайвих даних та шпигунського програмного забезпечення. [Докладніше...](services/redlib) [Redlib](https://github.com/redlib-org/redlib) — це вільний інтерфейс з відкритим кодом для Reddit, призначений для усунення відстеження, реклами та відволікаючих факторів. Ви можете переглядати публікації, читати коментарі та підписуватися на спільноти без зайвих даних та шпигунського програмного забезпечення. [Докладніше...](services/redlib)
</Card> </Card>
<Card title="Дружня та відкрита спільнота" icon="heart"> <Card title="Дружня та відкрита спільнота" icon="heart">

View file

@ -22,10 +22,10 @@ import "../../styles/page.css"
<input type="password" /> <input type="password" />
</label> </label>
<noscript id="error"> <noscript class="error">
Ce formulaire ne fonctionnera pas sans JavaScript. Ce formulaire ne fonctionnera pas sans JavaScript.
</noscript> </noscript>
<span id="error"> </span> <span id="error" class="error"> </span>
<button type="submit"><span>Envoyer</span></button> <button type="submit"><span>Envoyer</span></button>
<a href="/register" <a href="/register"
@ -95,6 +95,7 @@ import "../../styles/page.css"
form.submit() form.submit()
} catch (err: any) { } catch (err: any) {
error.style = ""
error.textContent = err.message || "Login failed" error.textContent = err.message || "Login failed"
} }
}) })

View file

@ -17,9 +17,14 @@ import "../../styles/page.css"
pattern="^[A-Za-z0-9]+$" pattern="^[A-Za-z0-9]+$"
/> />
</label> </label>
<div class="honeypot"> <div class="honeypot">
<input type="text" name="honeypot" tabindex="-1" autocomplete="off"> <input
</div> type="text"
name="honeypot"
tabindex="-1"
autocomplete="off"
/>
</div>
<label> <label>
E-mail E-mail
<input name="email" type="email" required /> <input name="email" type="email" required />

View file

@ -22,10 +22,10 @@ import "../styles/page.css"
<input type="password" /> <input type="password" />
</label> </label>
<noscript id="error"> <noscript class="error">
This form will not function without JavaScript. This form will not function without JavaScript.
</noscript> </noscript>
<span id="error"> </span> <span id="error" class="error"> </span>
<button type="submit"><span>Submit</span></button> <button type="submit"><span>Submit</span></button>
<a href="/register">Don't have an account? Sign up now!</a> <a href="/register">Don't have an account? Sign up now!</a>
@ -93,6 +93,7 @@ import "../styles/page.css"
form.submit() form.submit()
} catch (err: any) { } catch (err: any) {
error.style = ""
error.textContent = err.message || "Login failed" error.textContent = err.message || "Login failed"
} }
}) })

View file

@ -16,9 +16,14 @@ import "../styles/page.css"
pattern="^[A-Za-z0-9]+$" pattern="^[A-Za-z0-9]+$"
/> />
</label> </label>
<div class="honeypot"> <div class="honeypot">
<input type="text" name="honeypot" tabindex="-1" autocomplete="off"> <input
</div> type="text"
name="honeypot"
tabindex="-1"
autocomplete="off"
/>
</div>
<label> <label>
Email Email
<input name="email" type="email" required /> <input name="email" type="email" required />

View file

@ -22,15 +22,13 @@ import "../../styles/page.css"
<input type="password" /> <input type="password" />
</label> </label>
<noscript id="error"> <noscript class="error">
Эта форма не будет работать без JavaScript. Эта форма не будет работать без JavaScript.
</noscript> </noscript>
<span id="error"> </span> <span id="error" class="error"> </span>
<button type="submit"><span>Отправить</span></button> <button type="submit"><span>Отправить</span></button>
<a href="/register" <a href="/register">У вас ещё нет учётной записи? Зарегистрируйтесь!</a>
>У вас ещё нет учётной записи? Зарегистрируйтесь!</a
>
</form> </form>
</StarlightPage> </StarlightPage>
@ -95,6 +93,7 @@ import "../../styles/page.css"
form.submit() form.submit()
} catch (err: any) { } catch (err: any) {
error.style = ""
error.textContent = err.message || "Login failed" error.textContent = err.message || "Login failed"
} }
}) })

View file

@ -16,9 +16,14 @@ import "../../styles/page.css"
pattern="^[A-Za-z0-9]+$" pattern="^[A-Za-z0-9]+$"
/> />
</label> </label>
<div class="honeypot"> <div class="honeypot">
<input type="text" name="honeypot" tabindex="-1" autocomplete="off"> <input
</div> type="text"
name="honeypot"
tabindex="-1"
autocomplete="off"
/>
</div>
<label> <label>
E-mail E-mail
<input name="email" type="email" required /> <input name="email" type="email" required />

View file

@ -22,10 +22,10 @@ import "../../styles/page.css"
<input type="password" /> <input type="password" />
</label> </label>
<noscript id="error"> <noscript class="error">
Ця форма не буде працювати без JavaScript. Ця форма не буде працювати без JavaScript.
</noscript> </noscript>
<span id="error"> </span> <span id="error" class="error"> </span>
<button type="submit"><span>Надіслати</span></button> <button type="submit"><span>Надіслати</span></button>
<a href="/register">Не маєте облікового запису? Зареєструйтесь зараз!</a <a href="/register">Не маєте облікового запису? Зареєструйтесь зараз!</a
@ -94,6 +94,7 @@ import "../../styles/page.css"
form.submit() form.submit()
} catch (err: any) { } catch (err: any) {
error.style = ""
error.textContent = err.message || "Login failed" error.textContent = err.message || "Login failed"
} }
}) })

View file

@ -16,9 +16,14 @@ import "../../styles/page.css"
pattern="^[A-Za-z0-9]+$" pattern="^[A-Za-z0-9]+$"
/> />
</label> </label>
<div class="honeypot"> <div class="honeypot">
<input type="text" name="honeypot" tabindex="-1" autocomplete="off"> <input
</div> type="text"
name="honeypot"
tabindex="-1"
autocomplete="off"
/>
</div>
<label> <label>
E-mail E-mail
<input name="email" type="email" required /> <input name="email" type="email" required />

View file

@ -36,7 +36,7 @@ body {
padding: 1rem 1.25rem; padding: 1rem 1.25rem;
} }
& #error { & .error {
margin-top: 1rem; margin-top: 1rem;
color: var(--sl-color-red); color: var(--sl-color-red);
} }