Compare commits
43 commits
jakehamilt
...
main
Author | SHA1 | Date | |
---|---|---|---|
Samuel Shuert | 131d0d01b5 | ||
Jake Hamilton | 364973d984 | ||
eb9072d8ed | |||
Jake Hamilton | d23c1128c8 | ||
Skyler Grey | 9abceac04e | ||
Samuel Shuert | 7f23503664 | ||
Skyler Grey | 8bf7819cba | ||
7bedb89a81 | |||
02ebfc58e1 | |||
Skyler Grey | 49b5347903 | ||
Jake Hamilton | 051dcf9617 | ||
Jake Hamilton | 22dda75136 | ||
Jake Hamilton | e3ac477028 | ||
e43d8bd2d6 | |||
8c84a59311 | |||
~hedy | 9843063ad4 | ||
isabel roses | 16a33cb38f | ||
94eafb8dc6 | |||
marshmallow | e6faf8ca98 | ||
marshmallow | 610fa12723 | ||
marshmallow | 5ec494391c | ||
~hedy | dd3a81b5bf | ||
marshmallow | 919d623e43 | ||
marshmallow | 0aa1c80e8d | ||
marshmallow | 0130e4020f | ||
marshmallow | 190122997d | ||
Samuel Shuert | e447a21124 | ||
Samuel Shuert | 1d0774e4e2 | ||
marshmallow | 706f837437 | ||
marshmallow | 5af2e66ab7 | ||
isabel roses | 6e218b38df | ||
Christoph Heiss | 5215573ef2 | ||
Christoph Heiss | 824531939f | ||
marshmallow | 48d0a60d1e | ||
marshmallow | 6725bc69fa | ||
isabel roses | 0319e36b2c | ||
marshmallow | 5aeadccb8b | ||
marshmallow | febe17055a | ||
Jake Hamilton | 2664780969 | ||
marshmallow | 56d6b0f645 | ||
marshmallow | 7b72189f13 | ||
marshmallow | 9f6a8cc98b | ||
marshmallow | e3ba2c4ba5 |
12
.editorconfig
Normal file
12
.editorconfig
Normal file
|
@ -0,0 +1,12 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
37
.github/workflows/check.yml
vendored
Normal file
37
.github/workflows/check.yml
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
name: Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
prettier:
|
||||
name: Check Code Format
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install NPM dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Check Prettier
|
||||
run: npm run prettier:check:ci
|
||||
nix:
|
||||
name: Nix Build
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- uses: cachix/install-nix-action@v25
|
||||
|
||||
- name: Check Nix Build
|
||||
run: nix build
|
||||
|
||||
- name: Check Nix Flake
|
||||
run: nix flake check
|
33
.github/workflows/robots.txt.yml
vendored
Normal file
33
.github/workflows/robots.txt.yml
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
name: "Update robots.txt"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * 6" # At 00:00 on Saturday
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update:
|
||||
name: "Update robots.txt"
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Pull latest robots
|
||||
run: |
|
||||
curl -X POST https://api.darkvisitors.com/robots-txts \
|
||||
-H "Authorization: Bearer ${{ secrets.DarkVisitorsBearer }}" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data-raw '{"agent_types": ["AI Assistant", "AI Data Scraper", "AI Search Crawler", "Undocumented AI Agent"]}' \
|
||||
--output ./public/robots.txt
|
||||
|
||||
- name: Commit changes
|
||||
uses: EndBug/add-and-commit@v9
|
||||
with:
|
||||
message: "chore: generate robots.txt"
|
||||
default_author: github_actions
|
||||
push: true
|
|
@ -1,9 +1,9 @@
|
|||
import { defineConfig } from 'astro/config';
|
||||
import { defineConfig } from "astro/config";
|
||||
|
||||
import tailwind from "@astrojs/tailwind";
|
||||
import react from "@astrojs/react";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
integrations: [tailwind(), react()]
|
||||
integrations: [tailwind(), react()],
|
||||
});
|
35
flake.lock
35
flake.lock
|
@ -54,16 +54,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1714272655,
|
||||
"narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=",
|
||||
"owner": "nixos",
|
||||
"lastModified": 1715023704,
|
||||
"narHash": "sha256-nf72zOUuXkqN4arcQsngR19KkaQa3cDPtaSJLT8XUWY=",
|
||||
"owner": "auxolotl",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "12430e43bd9b81a6b4e79e64f87c624ade701eaf",
|
||||
"rev": "b0fec4b7a197c6d553d353fbe4a1b6105689187c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-23.11",
|
||||
"owner": "auxolotl",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -71,17 +71,14 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"snowfall-lib": "snowfall-lib",
|
||||
"unstable": "unstable"
|
||||
"snowfall-lib": "snowfall-lib"
|
||||
}
|
||||
},
|
||||
"snowfall-lib": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils-plus": "flake-utils-plus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": ["nixpkgs"]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696432959,
|
||||
|
@ -111,22 +108,6 @@
|
|||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1714253743,
|
||||
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
@ -12,7 +12,7 @@ in
|
|||
|
||||
src = lib.snowfall.fs.get-file "/";
|
||||
|
||||
npmDepsHash = "sha256-ze98HddbmkSAgDxJIw1l2YH3EcJ8NKx6Gz++xbcxBM4=";
|
||||
npmDepsHash = "sha256-aFyw9ySIGQqcJZFuVrFrn7Ntm8nzjTZYnZ5X9d/TiiA=";
|
||||
|
||||
npmFlags = ["--ignore-scripts"];
|
||||
|
||||
|
|
63
package-lock.json
generated
63
package-lock.json
generated
|
@ -21,7 +21,9 @@
|
|||
"typescript": "^5.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/typography": "^0.5.13"
|
||||
"@tailwindcss/typography": "^0.5.13",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-astro": "^0.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@alloc/quick-lru": {
|
||||
|
@ -5257,6 +5259,41 @@
|
|||
"node": ">=8.15"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "3.2.5",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
|
||||
"integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
|
||||
"devOptional": true,
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier-plugin-astro": {
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.13.0.tgz",
|
||||
"integrity": "sha512-5HrJNnPmZqTUNoA97zn4gNQv9BgVhv+et03314WpQ9H9N8m2L9OSV798olwmG2YLXPl1iSstlJCR1zB3x5xG4g==",
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"@astrojs/compiler": "^1.5.5",
|
||||
"prettier": "^3.0.0",
|
||||
"sass-formatter": "^0.7.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.15.0 || >=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier-plugin-astro/node_modules/@astrojs/compiler": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-1.8.2.tgz",
|
||||
"integrity": "sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==",
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/prismjs": {
|
||||
"version": "1.29.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
|
||||
|
@ -5989,6 +6026,21 @@
|
|||
"queue-microtask": "^1.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/s.color": {
|
||||
"version": "0.0.15",
|
||||
"resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz",
|
||||
"integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==",
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/sass-formatter": {
|
||||
"version": "0.7.9",
|
||||
"resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz",
|
||||
"integrity": "sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==",
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"suf-log": "^2.5.3"
|
||||
}
|
||||
},
|
||||
"node_modules/scheduler": {
|
||||
"version": "0.23.2",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
|
||||
|
@ -6313,6 +6365,15 @@
|
|||
"node": ">=16 || 14 >=14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/suf-log": {
|
||||
"version": "2.5.3",
|
||||
"resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz",
|
||||
"integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==",
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"s.color": "0.0.15"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
"start": "astro dev",
|
||||
"build": "astro check && astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
"astro": "astro",
|
||||
"prettier:check:ci": "prettier . --check",
|
||||
"prettier:format": "prettier . --write"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/check": "^0.5.10",
|
||||
|
@ -23,6 +25,8 @@
|
|||
},
|
||||
"license": "GPL-3.0-or-later",
|
||||
"devDependencies": {
|
||||
"@tailwindcss/typography": "^0.5.13"
|
||||
"@tailwindcss/typography": "^0.5.13",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-astro": "^0.13.0"
|
||||
}
|
||||
}
|
||||
|
|
12
prettier.config.mjs
Normal file
12
prettier.config.mjs
Normal file
|
@ -0,0 +1,12 @@
|
|||
/** @type {import("prettier").Config} */
|
||||
export default {
|
||||
plugins: ["prettier-plugin-astro"],
|
||||
overrides: [
|
||||
{
|
||||
files: "*.astro",
|
||||
options: {
|
||||
parser: "astro",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
301
public/aux-text.svg
Normal file
301
public/aux-text.svg
Normal file
|
@ -0,0 +1,301 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="1020"
|
||||
height="360"
|
||||
viewBox="0 0 269.87499 95.249999"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||
sodipodi:docname="aux-text.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showguides="true"
|
||||
inkscape:zoom="1.3883252"
|
||||
inkscape:cx="452.70373"
|
||||
inkscape:cy="152.34183"
|
||||
inkscape:window-width="2776"
|
||||
inkscape:window-height="1404"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer3" /><defs
|
||||
id="defs1"><linearGradient
|
||||
id="linearGradient5"
|
||||
inkscape:collect="always"><stop
|
||||
style="stop-color:#f0a3d5;stop-opacity:1;"
|
||||
offset="0.49842149"
|
||||
id="stop4" /><stop
|
||||
style="stop-color:#89c5f1;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop5" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient2"
|
||||
x1="153.08398"
|
||||
y1="116.19141"
|
||||
x2="182.14844"
|
||||
y2="107.01758"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.39477362,0,0,0.39477362,86.799142,-10.117686)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient4"
|
||||
x1="147.5293"
|
||||
y1="95.201172"
|
||||
x2="172.55078"
|
||||
y2="69.738281"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.39477362,0,0,0.39477362,87.320774,-8.5161272)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient7"
|
||||
x1="131.19531"
|
||||
y1="81"
|
||||
x2="144.85742"
|
||||
y2="48.019531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.39477362,0,0,0.39477362,88.755378,-7.9235035)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient17"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.39477362,0,0,0.39477362,167.55718,-10.117686)"
|
||||
x1="153.08398"
|
||||
y1="116.19141"
|
||||
x2="182.14844"
|
||||
y2="107.01758" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient18"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.39477362,0,0,0.39477362,167.03554,-8.5161274)"
|
||||
x1="147.5293"
|
||||
y1="95.201172"
|
||||
x2="172.55078"
|
||||
y2="69.738281" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient19"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.39477362,0,0,0.39477362,165.60094,-7.9235037)"
|
||||
x1="131.19531"
|
||||
y1="81"
|
||||
x2="144.85742"
|
||||
y2="48.019531" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient2-6"
|
||||
x1="153.08398"
|
||||
y1="116.19141"
|
||||
x2="182.14844"
|
||||
y2="107.01758"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(12.016015,-10.358081)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient4-1"
|
||||
x1="147.5293"
|
||||
y1="95.201172"
|
||||
x2="172.55078"
|
||||
y2="69.738281"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(13.337361,-6.3011758)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient7-2"
|
||||
x1="131.19531"
|
||||
y1="81"
|
||||
x2="144.85742"
|
||||
y2="48.019531"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(16.971352,-4.8000023)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient17-7"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1,0,0,1,216.58398,-10.358081)"
|
||||
x1="153.08398"
|
||||
y1="116.19141"
|
||||
x2="182.14844"
|
||||
y2="107.01758" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient18-0"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1,0,0,1,215.26263,-6.3011763)"
|
||||
x1="147.5293"
|
||||
y1="95.201172"
|
||||
x2="172.55078"
|
||||
y2="69.738281" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5"
|
||||
id="linearGradient19-9"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1,0,0,1,211.62864,-4.8000028)"
|
||||
x1="131.19531"
|
||||
y1="81"
|
||||
x2="144.85742"
|
||||
y2="48.019531" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
style="display:none;opacity:0.342"><g
|
||||
id="g1-6"
|
||||
transform="matrix(-0.39477361,0,0,-0.39477361,111.45074,101.20811)"><g
|
||||
id="layer2-0"
|
||||
inkscape:label="bg" /><g
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-5-6"><path
|
||||
id="rect1-2"
|
||||
d="m 105.83333,76.199985 h 16.93333 a 33.866665,35.560001 0 0 1 33.86667,35.560005 v 6.77335 a 16.126972,16.933322 0 0 1 -16.12697,16.93332 H 88.093639 A 16.126972,16.933322 0 0 1 71.966667,118.53334 v -6.77335 A 33.866665,35.560001 0 0 1 105.83333,76.199985 Z"
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /><ellipse
|
||||
style="font-variation-settings:'wght' 800;fill:#16181d;fill-opacity:1;stroke:none;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none"
|
||||
id="path2-6"
|
||||
cx="97.366684"
|
||||
cy="101.60001"
|
||||
rx="8.4666681"
|
||||
ry="8.4666777" /><ellipse
|
||||
style="font-variation-settings:'wght' 800;fill:#16181d;fill-opacity:1;stroke:none;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none"
|
||||
id="path2-5-1"
|
||||
cx="131.23337"
|
||||
cy="101.60001"
|
||||
rx="8.4666653"
|
||||
ry="8.4666777" /><path
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 97.366669,152.39999 v 1e-5 a 50.800004,50.800004 0 0 0 50.800001,50.8 h 33.86665 a 50.800008,50.800008 0 0 0 50.8,-50.8 l 1e-5,-67.733336 a 7.0140145,7.0140145 0 0 0 -11.97367,-4.959657 l -3.9325,3.932498 A 61.321,61.321 0 0 0 198.96666,127 v 25.4 a 16.933344,16.933344 0 0 1 -16.93334,16.93334 H 148.16667 A 16.933344,16.933344 0 0 1 131.23333,152.4 v -1e-5 a 8.4666539,8.4666539 0 0 0 -8.46665,-8.46665 h -16.93336 a 8.4666539,8.4666539 0 0 0 -8.466651,8.46665 z"
|
||||
id="path6-8"
|
||||
sodipodi:nodetypes="ccccccccc" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13-7"
|
||||
cx="76.20002"
|
||||
cy="165.09998"
|
||||
r="12.699999"
|
||||
inkscape:label="path13" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13-6-9"
|
||||
cx="148.16664"
|
||||
cy="152.39999"
|
||||
r="8.4666615" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13-0-2"
|
||||
cx="182.03331"
|
||||
cy="152.39999"
|
||||
r="8.4666681" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13-0-3-0"
|
||||
cx="220.13332"
|
||||
cy="215.89999"
|
||||
r="12.699999" /><path
|
||||
style="color:#000000;fill:url(#linearGradient2-6);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 190.74843,94.485665 a 5.2916498,5.2916498 0 0 0 -3.95508,0.87891 c -4.80672,3.36976 -10.53208,5.177735 -16.40234,5.177735 a 5.2916498,5.2916498 0 0 0 -5.29102,5.29102 5.2916498,5.2916498 0 0 0 5.29102,5.29101 c 8.04303,0 15.89266,-2.47672 22.47852,-7.09375 a 5.2916498,5.2916498 0 0 0 1.29492,-7.371095 5.2916498,5.2916498 0 0 0 -3.41602,-2.17383 z"
|
||||
id="path15-2" /><path
|
||||
style="color:#000000;fill:url(#linearGradient4-1);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 185.88814,63.437106 a 5.2916665,5.2916665 0 0 0 -6.88867,2.925781 c -2.83974,7.028598 -8.35211,12.635686 -15.33008,15.597657 a 5.2916665,5.2916665 0 0 0 -2.80273,6.939453 5.2916665,5.2916665 0 0 0 6.9375,2.802738 c 9.55796,-4.057118 17.11812,-11.749644 21.00781,-21.376957 a 5.2916665,5.2916665 0 0 0 -2.92383,-6.888672 z"
|
||||
id="path15-7-3" /><path
|
||||
style="color:#000000;fill:url(#linearGradient7-2);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 161.82877,43.219528 a 5.2916665,5.2916665 0 0 0 -5.29297,5.291016 c 0,7.580586 -3.00885,14.844794 -8.36914,20.205078 a 5.2916665,5.2916665 0 0 0 0,7.484375 5.2916665,5.2916665 0 0 0 7.48438,0 c 7.34216,-7.342167 11.46875,-17.306061 11.46875,-27.689453 a 5.2916665,5.2916665 0 0 0 -5.29102,-5.291016 z"
|
||||
id="path15-7-6-7" /><path
|
||||
style="color:#000000;fill:url(#linearGradient17-7);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 37.85156,94.485665 a 5.2916498,5.2916498 0 0 1 3.95508,0.87891 c 4.80672,3.36976 10.53208,5.177725 16.40234,5.177725 a 5.2916498,5.2916498 0 0 1 5.29102,5.29102 5.2916498,5.2916498 0 0 1 -5.29102,5.29101 c -8.04303,0 -15.89266,-2.47672 -22.47852,-7.09375 a 5.2916498,5.2916498 0 0 1 -1.29492,-7.371085 5.2916498,5.2916498 0 0 1 3.41602,-2.17383 z"
|
||||
id="path14-5" /><path
|
||||
style="color:#000000;fill:url(#linearGradient18-0);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 42.71185,63.437106 a 5.2916665,5.2916665 0 0 1 6.88867,2.925781 c 2.83974,7.028598 8.35211,12.635686 15.33008,15.597657 a 5.2916665,5.2916665 0 0 1 2.80273,6.939453 5.2916665,5.2916665 0 0 1 -6.9375,2.802738 C 51.23787,87.645617 43.67771,79.953091 39.78802,70.325778 a 5.2916665,5.2916665 0 0 1 2.92383,-6.888672 z"
|
||||
id="path16-9" /><path
|
||||
style="color:#000000;fill:url(#linearGradient19-9);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 66.77122,43.219528 a 5.2916665,5.2916665 0 0 1 5.29297,5.291016 c 0,7.580586 3.00885,14.844794 8.36914,20.205078 a 5.2916665,5.2916665 0 0 1 0,7.484375 5.2916665,5.2916665 0 0 1 -7.48438,0 C 65.60679,68.85783 61.4802,58.893936 61.4802,48.510544 a 5.2916665,5.2916665 0 0 1 5.29102,-5.291016 z"
|
||||
id="path17-2" /></g></g></g><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Foreground"><path
|
||||
d=""
|
||||
style="fill:#ead2d2;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="path34" /><g
|
||||
id="layer2"
|
||||
inkscape:label="bg"
|
||||
transform="matrix(0.39477362,0,0,0.39477362,82.055536,-6.0285892)" /><g
|
||||
id="g34"
|
||||
transform="translate(-3.7041668)"><path
|
||||
id="rect1"
|
||||
d="m 123.83574,24.053155 h 6.68483 a 13.369666,14.03815 0 0 1 13.36967,14.038152 v 2.67394 a 6.3665031,6.6848288 0 0 1 -6.3665,6.684828 h -20.69116 a 6.3665031,6.6848288 0 0 1 -6.3665,-6.684828 v -2.67394 a 13.369666,14.03815 0 0 1 13.36966,-14.038152 z"
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /><ellipse
|
||||
style="font-variation-settings:'wght' 800;fill:#16181d;fill-opacity:1;stroke:none;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none"
|
||||
id="path2"
|
||||
cx="120.49333"
|
||||
cy="34.080418"
|
||||
rx="3.3424172"
|
||||
ry="3.3424211" /><ellipse
|
||||
style="font-variation-settings:'wght' 800;fill:#16181d;fill-opacity:1;stroke:none;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none"
|
||||
id="path2-5"
|
||||
cx="133.86301"
|
||||
cy="34.080418"
|
||||
rx="3.342416"
|
||||
ry="3.3424211" /><path
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 120.49333,54.134907 v 3e-6 a 20.054501,20.054501 0 0 0 20.0545,20.0545 h 13.36966 a 20.054503,20.054503 0 0 0 20.0545,-20.0545 V 27.395576 a 2.7689479,2.7689479 0 0 0 -4.72689,-1.957942 l -1.55244,1.552447 a 24.207913,24.207913 0 0 0 -7.09034,17.11758 V 54.13491 a 6.6848375,6.6848375 0 0 1 -6.68483,6.684836 h -13.36966 a 6.6848375,6.6848375 0 0 1 -6.68484,-6.684836 v -3e-6 a 3.3424116,3.3424116 0 0 0 -3.34241,-3.342411 h -6.68484 a 3.3424116,3.3424116 0 0 0 -3.34241,3.342411 z"
|
||||
id="path6"
|
||||
sodipodi:nodetypes="ccccccccc" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13"
|
||||
cx="112.13729"
|
||||
cy="59.148525"
|
||||
r="5.0136247"
|
||||
inkscape:label="path13" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13-6"
|
||||
cx="140.54782"
|
||||
cy="54.134907"
|
||||
r="3.3424146" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13-0"
|
||||
cx="153.91748"
|
||||
cy="54.134907"
|
||||
r="3.3424172" /><circle
|
||||
style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="path13-0-3"
|
||||
cx="168.95836"
|
||||
cy="79.203033"
|
||||
r="5.0136247" /><path
|
||||
style="color:#000000;fill:url(#linearGradient2);fill-opacity:1;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 157.35798,31.271859 a 2.0890037,2.0890037 0 0 0 -1.56136,0.34697 c -1.89756,1.330293 -4.15778,2.044033 -6.47521,2.044033 a 2.0890037,2.0890037 0 0 0 -2.08875,2.088756 2.0890037,2.0890037 0 0 0 2.08875,2.088751 c 3.17518,0 6.274,-0.977744 8.87393,-2.800426 a 2.0890037,2.0890037 0 0 0 0.5112,-2.909913 2.0890037,2.0890037 0 0 0 -1.34856,-0.858171 z"
|
||||
id="path15" /><path
|
||||
style="color:#000000;fill:url(#linearGradient4);fill-opacity:1;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 155.43927,19.014707 a 2.0890103,2.0890103 0 0 0 -2.71947,1.155021 c -1.12105,2.774705 -3.29719,4.988235 -6.05191,6.157543 a 2.0890103,2.0890103 0 0 0 -1.10644,2.739513 2.0890103,2.0890103 0 0 0 2.73874,1.106447 c 3.77323,-1.601643 6.75778,-4.638449 8.29333,-8.439058 a 2.0890103,2.0890103 0 0 0 -1.15425,-2.719466 z"
|
||||
id="path15-7" /><path
|
||||
style="color:#000000;fill:url(#linearGradient7);fill-opacity:1;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 145.94127,11.03334 a 2.0890103,2.0890103 0 0 0 -2.08953,2.088754 c 0,2.992615 -1.18781,5.860333 -3.30392,7.976432 a 2.0890103,2.0890103 0 0 0 0,2.954633 2.0890103,2.0890103 0 0 0 2.95464,0 c 2.89849,-2.898493 4.52756,-6.831976 4.52756,-10.931065 a 2.0890103,2.0890103 0 0 0 -2.08875,-2.088754 z"
|
||||
id="path15-7-6" /><path
|
||||
style="color:#000000;fill:url(#linearGradient17);fill-opacity:1;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 96.998333,31.271859 a 2.0890037,2.0890037 0 0 1 1.561362,0.34697 c 1.897565,1.330293 4.157785,2.04403 6.475215,2.04403 a 2.0890037,2.0890037 0 0 1 2.08875,2.088755 2.0890037,2.0890037 0 0 1 -2.08875,2.088751 c -3.17518,0 -6.274007,-0.977744 -8.873931,-2.800426 a 2.0890037,2.0890037 0 0 1 -0.5112,-2.909909 2.0890037,2.0890037 0 0 1 1.348554,-0.858171 z"
|
||||
id="path14" /><path
|
||||
style="color:#000000;fill:url(#linearGradient18);fill-opacity:1;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 98.917048,19.014707 a 2.0890103,2.0890103 0 0 1 2.719462,1.155021 c 1.12106,2.774705 3.2972,4.988235 6.05191,6.157543 a 2.0890103,2.0890103 0 0 1 1.10645,2.739513 2.0890103,2.0890103 0 0 1 -2.73874,1.106447 c -3.77323,-1.601643 -6.757786,-4.638449 -8.293333,-8.439058 a 2.0890103,2.0890103 0 0 1 1.154251,-2.719466 z"
|
||||
id="path16" /><path
|
||||
style="color:#000000;fill:url(#linearGradient19);fill-opacity:1;stroke:#16181d;stroke-width:6.47595;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 108.41505,11.03334 a 2.0890103,2.0890103 0 0 1 2.08953,2.088754 c 0,2.992615 1.18781,5.860333 3.30391,7.976432 a 2.0890103,2.0890103 0 0 1 0,2.954633 2.0890103,2.0890103 0 0 1 -2.95463,0 c -2.89849,-2.898493 -4.52756,-6.831976 -4.52756,-10.931065 a 2.0890103,2.0890103 0 0 1 2.08875,-2.088754 z"
|
||||
id="path17" /></g><path
|
||||
id="path1"
|
||||
style="color:#000000;fill:#ead2d2;fill-opacity:1;stroke:#16181d;stroke-width:3.175;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 49.246545,17.027384 c -7.81972,0.02854 -16.083041,1.460342 -22.478731,7.429521 -8.497392,7.930723 -9.338588,19.111796 -10.060367,28.482498 -0.72178,9.370702 -0.12144,17.418058 -0.12144,17.418058 0.340268,4.662891 4.395915,8.167216 9.058878,7.827946 4.663673,-0.339247 8.169257,-4.394689 7.830013,-9.058362 0,0 -0.217835,-3.197868 -0.177767,-7.684285 1.136279,-0.124618 2.703961,-0.241105 4.517554,-0.333313 3.675042,-0.186849 6.855527,-0.259412 11.518461,-0.253103 4.662934,0.0063 10.879542,0.325653 14.528418,0.515885 0.297227,0.0155 0.5395,0.03454 0.822689,0.05116 -0.09046,4.511535 -0.459294,7.494367 -0.459294,7.494367 -0.484845,4.650023 2.891231,8.813253 7.541141,9.299173 4.650745,0.485999 8.814828,-2.890386 9.300724,-7.541141 0,0 0.893537,-8.400725 0.361218,-18.105355 C 80.895724,42.865805 80.303782,31.06563 70.834374,23.2854 64.636429,18.193062 57.066266,16.998843 49.246545,17.027384 Z m 0.06253,16.933333 c 5.045793,-0.01842 9.023794,0.959474 11.060307,2.71508 1.834695,1.581626 3.013447,5.752842 3.664267,10.932415 -3.884958,-0.190484 -10.040226,-0.503402 -14.682931,-0.509684 -4.853318,-0.0066 -8.20439,0.06574 -12.235213,0.270673 -0.998609,0.05077 -1.944046,0.107902 -2.836003,0.173632 0.676395,-4.893431 1.783524,-8.82239 4.041097,-10.706839 2.609805,-2.178466 5.942685,-2.85686 10.988476,-2.875277 z"
|
||||
sodipodi:nodetypes="sssccccsssccscsssssccscss" /><path
|
||||
id="path33"
|
||||
style="fill:#ead2d2;stroke:#16181d;stroke-width:3.175;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 196.4401,15.399525 c -2.33071,3.15e-4 -4.56669,0.926945 -6.21459,2.575189 -3.42753,3.428097 -3.42753,9.000582 0,12.42868 l 17.9392,17.939198 -17.9392,17.9392 c -3.42754,3.428101 -3.42754,9.000073 0,12.428173 3.42834,3.428879 9.00239,3.428879 12.4307,0 l 17.93769,-17.938186 17.93869,17.938186 c 3.42808,3.42753 9.00059,3.42753 12.42868,0 3.42754,-3.428097 3.42754,-9.000076 0,-12.428173 l -17.9387,-17.9392 17.9387,-17.939198 c 3.42754,-3.428102 3.42754,-9.00058 0,-12.42868 -1.64789,-1.648246 -3.88387,-2.574874 -6.2146,-2.575189 -2.33072,3.15e-4 -4.56619,0.926943 -6.21408,2.575189 L 220.5939,35.913407 202.65621,17.974714 c -1.64837,-1.64874 -3.88468,-2.575412 -6.21611,-2.575189 z"
|
||||
sodipodi:nodetypes="cccccsccccccccccccc" /><path
|
||||
d=""
|
||||
style="fill:#ead2d2;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="path31" /></g></svg>
|
After Width: | Height: | Size: 22 KiB |
34
public/auxolotl.svg
Normal file
34
public/auxolotl.svg
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 270.93333 270.93333" version="1.1" id="svg1" inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" sodipodi:docname="auxolotl-logo.svg" inkscape:export-filename="auxolotl-cuddle3.svg" inkscape:export-xdpi="96" inkscape:export-ydpi="96">
|
||||
|
||||
<defs id="defs1">
|
||||
<linearGradient id="linearGradient5" inkscape:collect="always">
|
||||
<stop style="stop-color:#f0a3d5;stop-opacity:1;" offset="0.49842149" id="stop4"/>
|
||||
<stop style="stop-color:#89c5f1;stop-opacity:1;" offset="1" id="stop5"/>
|
||||
</linearGradient>
|
||||
<linearGradient inkscape:collect="always" xlink:href="#linearGradient5" id="linearGradient2" x1="153.08398" y1="116.19141" x2="182.14844" y2="107.01758" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.016015,-10.358081)"/>
|
||||
<linearGradient inkscape:collect="always" xlink:href="#linearGradient5" id="linearGradient4" x1="147.5293" y1="95.201172" x2="172.55078" y2="69.738281" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.337361,-6.3011758)"/>
|
||||
<linearGradient inkscape:collect="always" xlink:href="#linearGradient5" id="linearGradient7" x1="131.19531" y1="81" x2="144.85742" y2="48.019531" gradientUnits="userSpaceOnUse" gradientTransform="translate(16.971352,-4.8000023)"/>
|
||||
<linearGradient inkscape:collect="always" xlink:href="#linearGradient5" id="linearGradient17" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1,0,0,1,216.58398,-10.358081)" x1="153.08398" y1="116.19141" x2="182.14844" y2="107.01758"/>
|
||||
<linearGradient inkscape:collect="always" xlink:href="#linearGradient5" id="linearGradient18" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1,0,0,1,215.26263,-6.3011763)" x1="147.5293" y1="95.201172" x2="172.55078" y2="69.738281"/>
|
||||
<linearGradient inkscape:collect="always" xlink:href="#linearGradient5" id="linearGradient19" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1,0,0,1,211.62864,-4.8000028)" x1="131.19531" y1="81" x2="144.85742" y2="48.019531"/>
|
||||
</defs>
|
||||
<g inkscape:groupmode="layer" id="layer2" inkscape:label="bg"/>
|
||||
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
|
||||
<path id="rect1" d="m 105.83333,76.199985 h 16.93333 a 33.866665,35.560001 0 0 1 33.86667,35.560005 v 6.77335 a 16.126972,16.933322 0 0 1 -16.12697,16.93332 H 88.093639 A 16.126972,16.933322 0 0 1 71.966667,118.53334 v -6.77335 A 33.866665,35.560001 0 0 1 105.83333,76.199985 Z" style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"/>
|
||||
<ellipse style="font-variation-settings:'wght' 800;fill:#16181d;fill-opacity:1;stroke:none;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none" id="path2" cx="97.366684" cy="101.60001" rx="8.4666681" ry="8.4666777"/>
|
||||
<ellipse style="font-variation-settings:'wght' 800;fill:#16181d;fill-opacity:1;stroke:none;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none" id="path2-5" cx="131.23337" cy="101.60001" rx="8.4666653" ry="8.4666777"/>
|
||||
<path style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 97.366669,152.39999 v 1e-5 a 50.800004,50.800004 0 0 0 50.800001,50.8 h 33.86665 a 50.800008,50.800008 0 0 0 50.8,-50.8 l 1e-5,-67.733336 a 7.0140145,7.0140145 0 0 0 -11.97367,-4.959657 l -3.9325,3.932498 A 61.321,61.321 0 0 0 198.96666,127 v 25.4 a 16.933344,16.933344 0 0 1 -16.93334,16.93334 H 148.16667 A 16.933344,16.933344 0 0 1 131.23333,152.4 v -1e-5 a 8.4666539,8.4666539 0 0 0 -8.46665,-8.46665 h -16.93336 a 8.4666539,8.4666539 0 0 0 -8.466651,8.46665 z" id="path6" sodipodi:nodetypes="ccccccccc"/>
|
||||
<circle style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" id="path13" cx="76.20002" cy="165.09998" r="12.699999" inkscape:label="path13"/>
|
||||
<circle style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" id="path13-6" cx="148.16664" cy="152.39999" r="8.4666615"/>
|
||||
<circle style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" id="path13-0" cx="182.03331" cy="152.39999" r="8.4666681"/>
|
||||
<circle style="font-variation-settings:'wght' 800;fill:#ead2d2;fill-opacity:1;fill-rule:nonzero;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" id="path13-0-3" cx="220.13332" cy="215.89999" r="12.699999"/>
|
||||
<path style="color:#000000;fill:url(#linearGradient2);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 190.74843,94.485665 a 5.2916498,5.2916498 0 0 0 -3.95508,0.87891 c -4.80672,3.36976 -10.53208,5.177735 -16.40234,5.177735 a 5.2916498,5.2916498 0 0 0 -5.29102,5.29102 5.2916498,5.2916498 0 0 0 5.29102,5.29101 c 8.04303,0 15.89266,-2.47672 22.47852,-7.09375 a 5.2916498,5.2916498 0 0 0 1.29492,-7.371095 5.2916498,5.2916498 0 0 0 -3.41602,-2.17383 z" id="path15"/>
|
||||
<path style="color:#000000;fill:url(#linearGradient4);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 185.88814,63.437106 a 5.2916665,5.2916665 0 0 0 -6.88867,2.925781 c -2.83974,7.028598 -8.35211,12.635686 -15.33008,15.597657 a 5.2916665,5.2916665 0 0 0 -2.80273,6.939453 5.2916665,5.2916665 0 0 0 6.9375,2.802738 c 9.55796,-4.057118 17.11812,-11.749644 21.00781,-21.376957 a 5.2916665,5.2916665 0 0 0 -2.92383,-6.888672 z" id="path15-7"/>
|
||||
<path style="color:#000000;fill:url(#linearGradient7);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 161.82877,43.219528 a 5.2916665,5.2916665 0 0 0 -5.29297,5.291016 c 0,7.580586 -3.00885,14.844794 -8.36914,20.205078 a 5.2916665,5.2916665 0 0 0 0,7.484375 5.2916665,5.2916665 0 0 0 7.48438,0 c 7.34216,-7.342167 11.46875,-17.306061 11.46875,-27.689453 a 5.2916665,5.2916665 0 0 0 -5.29102,-5.291016 z" id="path15-7-6"/>
|
||||
<path style="color:#000000;fill:url(#linearGradient17);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 37.85156,94.485665 a 5.2916498,5.2916498 0 0 1 3.95508,0.87891 c 4.80672,3.36976 10.53208,5.177725 16.40234,5.177725 a 5.2916498,5.2916498 0 0 1 5.29102,5.29102 5.2916498,5.2916498 0 0 1 -5.29102,5.29101 c -8.04303,0 -15.89266,-2.47672 -22.47852,-7.09375 a 5.2916498,5.2916498 0 0 1 -1.29492,-7.371085 5.2916498,5.2916498 0 0 1 3.41602,-2.17383 z" id="path14"/>
|
||||
<path style="color:#000000;fill:url(#linearGradient18);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 42.71185,63.437106 a 5.2916665,5.2916665 0 0 1 6.88867,2.925781 c 2.83974,7.028598 8.35211,12.635686 15.33008,15.597657 a 5.2916665,5.2916665 0 0 1 2.80273,6.939453 5.2916665,5.2916665 0 0 1 -6.9375,2.802738 C 51.23787,87.645617 43.67771,79.953091 39.78802,70.325778 a 5.2916665,5.2916665 0 0 1 2.92383,-6.888672 z" id="path16"/>
|
||||
<path style="color:#000000;fill:url(#linearGradient19);fill-opacity:1;stroke:#16181d;stroke-width:16.4042;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" d="m 66.77122,43.219528 a 5.2916665,5.2916665 0 0 1 5.29297,5.291016 c 0,7.580586 3.00885,14.844794 8.36914,20.205078 a 5.2916665,5.2916665 0 0 1 0,7.484375 5.2916665,5.2916665 0 0 1 -7.48438,0 C 65.60679,68.85783 61.4802,58.893936 61.4802,48.510544 a 5.2916665,5.2916665 0 0 1 5.29102,-5.291016 z" id="path17"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.5 KiB |
37
public/locales/de/translations.json
Normal file
37
public/locales/de/translations.json
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"root.description": "Eine Alternative zu dem Nix Ökosystem",
|
||||
"header.community": "Gemeinschaft",
|
||||
"goals.title": "Unsere Ziele",
|
||||
"goals.independent.title": "Unabhängigkeit",
|
||||
"goals.independent": "Wir werden eine Alternative zu NixPkgs und NixOS erstellen, sowie die für das neue Ökosystem notwendigen Dienste bereitstellen, darunter eigenständige 'Continous Integration' und 'Binary Caching' Dienste. Zusätzliche Unterstützung für Projekte wie Nix Darwin und Home Manager wird in Betracht gezogen.",
|
||||
"goals.gov.title": "Gesellschaftliche Organisation",
|
||||
"goals.gov.wiki": "Mehr Details zu Auxs Organisation.",
|
||||
"goals.gov": "Zur Verwaltung des Projekts wird ein demokratisches Modell mit gewählten Positionen eingesetzt. Ein Lenkungsausschuss ('steering committee') entscheidet über den Kurs, während weitere Ausschüsse spezifische oder logistische Aufgaben übernehmen. Features oder einzelne Projekte werden von 'Special Interest Groups' (SIG) umgesetzt. SIGs werden in Arbeitsgruppen ('Working Groups') zusammenarbeiten, um ihre Ziele übergreifend zu erreichen. Für jedes Komitee und jede Gruppe sind die Ziele, Anforderungen und Managementprozesse klar definiert.",
|
||||
"goals.education.title": "Dokumentation",
|
||||
"goals.education": "Einheitliche Dokumentation, Anleitungen, Leitfäden und Beispiele sorgen für ein besseres Onboarding-Erlebnis für Neulinge und einen schnelleren Iterationszyklus für Experten.",
|
||||
"roadmap.title": "Die Roadmap",
|
||||
"roadmap.soft_fork.title": "Setup und Planung",
|
||||
"roadmap.soft_fork.1": "Während der Anfangsphase wird eine einfache Ad-hoc-Organisationsstruktur genutzt. Die erklärten Werte, Ziele und Roadmap des Projekts dienen dazu allen Mitwirkenden die Sicherheit zu geben, dass sich die Arbeit, zu der sie sich verpflichtet haben, nicht verändern wird. Es werden Gruppen gebildet, die sich mit den einzelnen Bereichen des Projekts befassen, jedoch ohne explizit definierte Organisationsstrukturen.",
|
||||
"roadmap.soft_fork.2": "Die Schaffung von Gemeinschaftsräumen, die Organisation und die Planung für die folgenden Phasen sind Schlüsselpunkte dieser Phase. Bevor technische Arbeiten durchgeführt werden können, müssen gut durchdachte Lösungen und ein Proof of Concept vorliegen, um die folgende Implementierungsphase voranzutreiben.",
|
||||
"roadmap.hard_fork.title": "Implementierung",
|
||||
"roadmap.hard_fork.1": "Wie in der vorherigen Phase werden auch in dieser Phase ad-hoc gebildete Gruppen dominieren, welche die Standards unserer geplanten Organisationsstrukturen zunächst teilweise einhalten. Vor dem Übergang in die nächste Phase, werden diese Gruppen die neue Organisationsstrukturen vollständig umgesetzt.",
|
||||
"roadmap.hard_fork.2": "Diese Phase beinhaltet die Erstellung einer Alternative zu NixPkgs und NixOS unter Verwendung des in der Setup- und Planungsphase erstellten Roadmap. Neben der technischen Umsetzung wird ebenfalls eine 'Continuous Integration' Infrastruktur aufgebaut. Je nach Verfügbarkeit und Finanzierung kann ein 'Binary Cache' zur Verfügung gestellt werden.",
|
||||
"roadmap.hard_fork.3": "Das Projekt kann in die nächste Phase übergehen, sobald eine ausreichende Anzahl von kritischen Paketen erstellt und stabilisiert wurde.",
|
||||
"roadmap.organization.title": "Stabilisierung",
|
||||
"roadmap.organization.1": "In dieser Phase wird die technische Implementierung zusammen mit strukturellen Änderungen der Organisationsstrukturen fortgesetzt. Von 'Committees', 'Special Interest Groups' und 'Working Groups' wird nun erwartet, dass sie Satzungen erstellen, in denen ihre Verantwortlichkeiten und Mitgliedschaften festgelegt sind. Die Gruppenmitglieder behalten ihre Rollen bei bis die letzte Phase der Roadmap erreicht ist.",
|
||||
"roadmap.organization.2": "Diese Phase ist abgeschlossen, sobald ein stabiles Betriebssystem und ein Ersatz fuer Nixpkgs zur Verfügung stehen.",
|
||||
"roadmap.alignment.title": "Der Feinschliff",
|
||||
"roadmap.alignment.1": "Wir haben es geschafft. Wir haben einen nachhaltigen und unabhängigen 'Fork' des Nix-Ökosystems geschaffen. Nachdem die ersten Arbeiten nun abgeschlossen sind, werden die ersten demokratischen Wahlen abgehalten und gemeinsam werden wir neue Organisationsstrukturen aufbauen.",
|
||||
"roadmap.alignment.2": "Dokumentation, Projekt-Branding und Pakete werden auf Vorderman gebracht und als stabile Version veröffentlicht. Von diesem Zeitpunkt an wird der Lenkungsausschuss ('steering committee') die Einrichtung von 'Special Interest Groups' und weiteren erforderlichen 'Committees' verwalten. Zukünftige Verbesserungvorschläge werden in der Form von 'Aux Enhancement Proposals' eingebracht, welches die bestehende SIGs zur Implementierung von Funktionen ermutigt oder die Gründung neuer SIGs zu diesem Zweck fördert. Dies ist nicht das Ende, sondern der Anfang für Aux.",
|
||||
"values.title": "Unsere Werte",
|
||||
"values.rep.title": "Repräsentation",
|
||||
"values.rep": "Die Ansichten der Mitwirkenden sollen vertreten sein und die Organisationsstruktur soll demokratisch ausgerichtet sein.",
|
||||
"values.kindness.title": "Wohlwollen",
|
||||
"values.kindness": "Das Projekt soll zum Mitwirken einladen und eine sichere Umgebung zur Beteiligung bieten.",
|
||||
"values.collab.title": "Zusammenarbeit",
|
||||
"values.collab": "Kommunikation und Zusammenarbeit soll gefördert werden.",
|
||||
"values.sustainability.title": "Nachhaltigkeit",
|
||||
"values.sustainability": "Arbeitsbelastung, Finanzen, Umfang und Burnout werden sorgfältig abgewogen, um sicherzustellen, dass das Projekt stabil ist.",
|
||||
"values.accessibility.title": "Offenheit",
|
||||
"values.accessibility": "Elitäres Verhalten ist unerwünscht, unser Wissen soll geteilt werden und wir wollen die Werkzeuge bereitstellen, die jedem zum Erfolg und Lernen verhelfen."
|
||||
}
|
46
public/locales/dk/translations.json
Normal file
46
public/locales/dk/translations.json
Normal file
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"root.description": "Et alternativ til Nix økosystemet",
|
||||
"header.community": "Community",
|
||||
"goals.title": "Mål",
|
||||
"goals.independent.title": "Uafhængighed",
|
||||
"goals.independent": "Vi vil vedligeholde en fork af Nix, NixPkgs, og NixOS. Yderligere understøttelse af projekter såsom Nix Darwin og Home Manager overvejes.",
|
||||
"goals.gov.title": "Ledelsesform",
|
||||
"goals.gov.wiki": "Learn about Aux's governance structures.",
|
||||
"goals.gov": "Projektet ledes via demokratiskt valgte stillinger. Overordnet retning gives af en styringsgruppe, med yderligere grupper til at håndtere specifikke opgaveområder. Af disse vil Special Interest Groups have ansvaret for specifikke features og projekter, eksekveret igennem egne Working Groups. Samtlige grupper vil klart udspecificere hver deres mål, krav, og styringsprocess.",
|
||||
"goals.stabilization.title": "Stabilisering",
|
||||
"goals.stabilization": "Brugervenlige features såsom Nix v3 kommandolinjen vil som udgangspunkt være aktive. Nix Flakes er for udbredt en feature til at kunne fjernes eller substantielt ændres, hvorfor den i stedet stabiliseres i sin nuværende form som v0. Yderligere arbejde her håndteres af ansvarshavende Special Interest Group.",
|
||||
"goals.infra.title": "Infrastruktur",
|
||||
"goals.infra": "Hvor nødvendigt for opretholdelse af et sundt økosystem vil vi bygge og vedligeholde redskaber og infrastruktur - inklusive Continuous Integration og Binary Caching.",
|
||||
"goals.education.title": "Læring",
|
||||
"goals.education": "Igennem samlet dokumentation, tutorials, guides, og eksempler, vil vi sikre forbedret onboarding for nytilkommere samt hurtigere udviklingsprocess for eksperter.",
|
||||
"roadmap.title": "Roadmap",
|
||||
"roadmap.soft_fork.title": "Blød Fork",
|
||||
"roadmap.soft_fork.1": "I opstartsfasen vil en mere ad-hoc ledelsesstruktur anvendes. Projektets målsætninger, værdier, og roadmap fungerer derfor som rettesnor for alle deltagere, samt garanti for at målstolperne for det arbejde de har meldt sig til ikke rykkes.",
|
||||
"roadmap.soft_fork.2": "Fork af Nix og NixPkgs startes og roller for vedligeholdelse af pakker samt opdatering fra upstream fordeles iblandt deltagere. Det er hensigten at graduere fra denne fase når tilstrækkeligt med deltagere er tilsluttet, således at vi er i stand til at løfte opgaven i vedligeholdelse af en hård fork.",
|
||||
"roadmap.hard_fork.title": "Hård Fork",
|
||||
"roadmap.hard_fork.1": "Ad-hoc ledelsesstruktur fortsættes, men styringsgrupper (Committees), Special Interest Groups, og arbejdsgrupper oprettes. Givet opstartsfasens natur, vil stillinger først være på valg i Justerings fasen.",
|
||||
"roadmap.hard_fork.2": "I denne fase har projektet nok deltagere til sikkert at kunne påtage sig fuldt vedligehold af NixPkgs (eller en rimelig delmængde heraf) samt Nix. Herfra vil divergens fra upstream accepteres og ændringer på repository struktur indføres for strømlining af udviklings-flow.",
|
||||
"roadmap.hard_fork.3": "Første udgivelse af pakke repository eksekveres og navne-migrering fra `nix` til `aux` startes - for bedre at håndtere de to nu forskellige pakke repositories med færre fejl og misforståelser.",
|
||||
"roadmap.organization.title": "Strukturering",
|
||||
"roadmap.organization.1": "Pakke-sæt trækkes ud fra det centrale pakke repository, for at lette vedligeholdelses-opgaver for relevante Special Interest Groups. Eksempelvis flyttes `pythonPackages` til et separat repository, styret af en Python SIG - såfremt dette har interesse.",
|
||||
"roadmap.organization.2": "Nix Flakes standardiseres i sin nuværende stand som v0. Udbredt brug af denne feature gør dens fjernelsen uden brud med økosystemet til en umulighed, hvilket nødvendiggører dette ikke-ideelle kompromis. Fremadrettet arbejde med Flakes, fokuseret på udbedring af kendte fejl og mangler, håndteres af en Flakes SIG.",
|
||||
"roadmap.organization.3": "`aux` kommandolinjen modificeres til mere ergonomisk håndtering af pakker og systemer. Nye under-kommandoer såsom `aux system switch` og `aux system build` tilføjes for bedring af onboarding og vedligeholdelse.",
|
||||
"roadmap.infra.title": "Infrastruktur",
|
||||
"roadmap.infra.1": "Givet en større divergens fra upstream på dette tidspunkt i processen, er nødvendigheden af egen Continuous Integration og Binary Cache systemer åbenlys. Aktuel ledelsesstruktur anvendes til håndtering af begges etablering.",
|
||||
"roadmap.infra.2": "For at lette udvikling af læringsmateriale, vil dokumentation inkluderes i Continuous Integration processen - med Continuous Deployment til at sikre tilgængelighed af seneste udgaver.",
|
||||
"roadmap.infra.3": "Systemer til søgning i pakker og options vil ligeledes lanceres.",
|
||||
"roadmap.alignment.title": "Justering",
|
||||
"roadmap.alignment.1": "Vi er i mål. På dette tidspunkt i processen har vi en stabil, uafhængig fork af Nix økosystemet. Med opstartsfasen afsluttet, starter arbejdet med dokumentation af hvordan den nuværende ledelsesform fungerer og rotation påbegyndes med første valg til ledende stillinger.",
|
||||
"roadmap.alignment.2": "En fuldt ud stabil udgivelse af dokumentation, branding, og pakker pudses af og lanceres. Fra nu af tilfalder ansvaret for oprettelse og styring af alle grupper styringsgruppen. Alle forslag til forbedringer bringes op under Aux Enhancement Proposals, hvilke anbefaler feature implementering til eksisterende SIGs eller oprettelse af nye til eksekvering af samme.",
|
||||
"values.title": "Værdier",
|
||||
"values.rep.title": "Repræsentation",
|
||||
"values.rep": "Deltageres synspunkter bør repræsenteres og ledelsesstruktur skal etableres demokratiskt.",
|
||||
"values.kindness.title": "Åbenhed",
|
||||
"values.kindness": "Projektet skal eksistere som et åbent og sikkert sted for deltagere.",
|
||||
"values.collab.title": "Samarbejde",
|
||||
"values.collab": "Kommunikation og samarbejde skal fremmes.",
|
||||
"values.sustainability.title": "Ansvarlighed",
|
||||
"values.sustainability": "Til sikring af et stabilt projekt skal arbejdsbyrde, financiel balance, scope, og udbrændthed nøje holdes for øje.",
|
||||
"values.accessibility.title": "Tilgængelighed",
|
||||
"values.accessibility": "Elitisme er ikke velkomment. Vores viden er til for at blive delt og vi bør tilgængeligtgøre midler således at alle kan lære og vinde."
|
||||
}
|
37
public/locales/en/translations.json
Normal file
37
public/locales/en/translations.json
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"root.description": "An alternative to the Nix ecosystem",
|
||||
"header.community": "Community",
|
||||
"goals.title": "Goals",
|
||||
"goals.independent.title": "Independent",
|
||||
"goals.independent": "We will create an alternative to NixPkgs and NixOS. We will also provide our own Continuous Integration and Binary Cache along with necessary services for the ecosystem. Additional support for projects such as Nix Darwin and Home Manager will be considered.",
|
||||
"goals.gov.title": "Governance",
|
||||
"goals.gov.wiki": "Learn about Aux's governance structures.",
|
||||
"goals.gov": "A democratic model of governance with elected positions will be used to manage the project. A steering committee will provide direction with additional committees handling specific logistical tasks. Features or individual projects will be owned by Special Interest Groups. SIGs will collaborate within Working Groups to achieve their goals. Each committee and group will have its goals, requirements, and management process clearly defined.",
|
||||
"goals.education.title": "Education",
|
||||
"goals.education": "Unified documentation, tutorials, guides, and examples will provide a better onboarding experience for newcomers and a faster iteration cycle for experts.",
|
||||
"roadmap.title": "Roadmap",
|
||||
"roadmap.soft_fork.title": "Setup & Planning",
|
||||
"roadmap.soft_fork.1": "This initial phase will involve an ad-hoc management structure due to its bootstrapping nature. As such, the project's stated Values, Goals, and Roadmap serve to keep all contributors aligned and safe knowing that the work they have committed to will not change. Groups will start forming to address the separate domains of the project, but will not be properly functioning governance structures yet.",
|
||||
"roadmap.soft_fork.2": "Creation of community spaces, organization, and planning for the following phases are key points of this phase. Before technical work can be done, a well thought out solution and proof of concept must exist to drive the following implementation phase.",
|
||||
"roadmap.hard_fork.title": "Implementation",
|
||||
"roadmap.hard_fork.1": "Like the previous phase, this phase will involve loosely-formed groups which do not fully adhere to the standards of our envisioned governance structures yet. However, as the project progresses to the next phase, these groups will be transitioned to proper governance units.",
|
||||
"roadmap.hard_fork.2": "This phase involves the creation of an alternative to NixPkgs and NixOS using the plan created from the Setup & Planning phase. In addition to technical implementation we will also be creating Continuous Integration infrastructure. Depending on availability and funding, a Binary Cache may also be created.",
|
||||
"roadmap.hard_fork.3": "The project may move to the next phase once a core set of packages are created and stabilized.",
|
||||
"roadmap.organization.title": "Solidification",
|
||||
"roadmap.organization.1": "Implementation continues during this phase alongside structural changes to governance. Committees, Special Interest Groups, and Working Groups are now expected to establish charters defining their responsibilities and memberships. Group members will remain the same as the previous phases until reaching the last phase of this roadmap.",
|
||||
"roadmap.organization.2": "This phase is complete once a usable OS and package set are available.",
|
||||
"roadmap.alignment.title": "Polish",
|
||||
"roadmap.alignment.1": "By this point, we've done it. We have created a sustainable, independent fork of the Nix ecosystem. Now that the initial work has been completed we will begin the governance rotation process with our first elections and education as to how project governance works.",
|
||||
"roadmap.alignment.2": "Documentation, project branding, and packages will be polished and presented as a fully stable release. From this point forward the Steering Committee will be managing the creation of Special Interest Groups and other necessary Committees. All future enhancements will be suggested in Aux Enhancement Proposals which encourage existing SIGs to implement features or encourage the formation of a new SIG to be created for such a purpose. This is not the end, this is only the beginning for Aux.",
|
||||
"values.title": "Values",
|
||||
"values.rep.title": "Representation",
|
||||
"values.rep": "Contributors should have their views represented and organizational structure should be established democratically.",
|
||||
"values.kindness.title": "Kindness",
|
||||
"values.kindness": "The project should be welcoming and a safe place for people to participate.",
|
||||
"values.collab.title": "Collaboration",
|
||||
"values.collab": "Communication and cooperation should be encouraged.",
|
||||
"values.sustainability.title": "Sustainability",
|
||||
"values.sustainability": "Workload, finance, scope, and burnout should all be considered carefully to ensure that the project is stable.",
|
||||
"values.accessibility.title": "Accessibility",
|
||||
"values.accessibility": "Elitism is unwelcome, our knowledge is here to be shared and we should provide the tools to help everyone succeed and learn."
|
||||
}
|
101
public/robots.txt
Normal file
101
public/robots.txt
Normal file
|
@ -0,0 +1,101 @@
|
|||
# AI Search Crawler
|
||||
# https://darkvisitors.com/agents/amazonbot
|
||||
|
||||
User-agent: Amazonbot
|
||||
Disallow: /
|
||||
|
||||
# Undocumented AI Agent
|
||||
# https://darkvisitors.com/agents/anthropic-ai
|
||||
|
||||
User-agent: anthropic-ai
|
||||
Disallow: /
|
||||
|
||||
# AI Search Crawler
|
||||
# https://darkvisitors.com/agents/applebot
|
||||
|
||||
User-agent: Applebot
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/applebot-extended
|
||||
|
||||
User-agent: Applebot-Extended
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/bytespider
|
||||
|
||||
User-agent: Bytespider
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/ccbot
|
||||
|
||||
User-agent: CCBot
|
||||
Disallow: /
|
||||
|
||||
# AI Assistant
|
||||
# https://darkvisitors.com/agents/chatgpt-user
|
||||
|
||||
User-agent: ChatGPT-User
|
||||
Disallow: /
|
||||
|
||||
# Undocumented AI Agent
|
||||
# https://darkvisitors.com/agents/claude-web
|
||||
|
||||
User-agent: Claude-Web
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/claudebot
|
||||
|
||||
User-agent: ClaudeBot
|
||||
Disallow: /
|
||||
|
||||
# Undocumented AI Agent
|
||||
# https://darkvisitors.com/agents/cohere-ai
|
||||
|
||||
User-agent: cohere-ai
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/diffbot
|
||||
|
||||
User-agent: Diffbot
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/facebookbot
|
||||
|
||||
User-agent: FacebookBot
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/google-extended
|
||||
|
||||
User-agent: Google-Extended
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/gptbot
|
||||
|
||||
User-agent: GPTBot
|
||||
Disallow: /
|
||||
|
||||
# AI Data Scraper
|
||||
# https://darkvisitors.com/agents/omgili
|
||||
|
||||
User-agent: omgili
|
||||
Disallow: /
|
||||
|
||||
# AI Search Crawler
|
||||
# https://darkvisitors.com/agents/perplexitybot
|
||||
|
||||
User-agent: PerplexityBot
|
||||
Disallow: /
|
||||
|
||||
# AI Search Crawler
|
||||
# https://darkvisitors.com/agents/youbot
|
||||
|
||||
User-agent: YouBot
|
||||
Disallow: /
|
|
@ -1,58 +0,0 @@
|
|||
---
|
||||
|
||||
---
|
||||
|
||||
<section id="goals">
|
||||
<h2 class="title">Goals</h2>
|
||||
<div>
|
||||
<ol>
|
||||
<li>
|
||||
<h3>Independent</h3>
|
||||
<p>
|
||||
We will fork and maintain Nix, NixPkgs, and NixOS. Additional support
|
||||
for projects such as Nix Darwin and Home Manager will be considered.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Governance</h3>
|
||||
<p>
|
||||
A democratic model of governance with elected positions will be used to
|
||||
manage the project. A steering committee will provide direction with
|
||||
additional committees handling specific logistical tasks. Features or
|
||||
individual projects will be owned by Special Interest Groups. SIGs will
|
||||
collaborate within Working Groups to achieve their goals. Each committee
|
||||
and group will have its goals, requirements, and management process
|
||||
clearly defined.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Stabilization</h3>
|
||||
<p>
|
||||
User-friendly features such as the Nix v3 CLI will be enabled by
|
||||
default. Nix Flakes are used too heavily to remove or change and will
|
||||
instead be stabilized as a v0 in its current state with any future work
|
||||
being handled by a Special Interest Group.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Infrastructure</h3>
|
||||
<p>
|
||||
We will build and maintain the tools and infrastructure necessary to
|
||||
keep the ecosystem healthy, including Continuous Integration and Binary
|
||||
Caching.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Education</h3>
|
||||
<p>
|
||||
Unified documentation, tutorials, guides, and examples will provide a
|
||||
better onboarding experience for newcomers and a faster iteration cycle
|
||||
for experts.
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
</style>
|
|
@ -1,81 +1,60 @@
|
|||
---
|
||||
interface Props {}
|
||||
|
||||
import { useTranslations } from "../i18n/utils";
|
||||
import type { Params } from "../i18n/utils";
|
||||
import { Image } from "astro:assets";
|
||||
import auxolotl from "../../public/auxolotl.svg";
|
||||
|
||||
const { lang } = Astro.params as Params;
|
||||
const translation = useTranslations(lang);
|
||||
---
|
||||
|
||||
<header>
|
||||
<div class="left">
|
||||
<a href="https://aux.computer" class="brand">
|
||||
<img class="icon" src="/aux.svg" />
|
||||
<span class="title">aux.computer</span>
|
||||
<header
|
||||
class="sticky flex justify-between top-0 bg-[rgb(var(--background-light))] z-10 p-4 text-lg rounded-bl-3xl rounded-br-3xl overflow-hidden"
|
||||
>
|
||||
<div class="flex justify-between w-full max-w-4xl mx-auto pr-1">
|
||||
<div class="flex items-center">
|
||||
<a
|
||||
href="https://auxolotl.org"
|
||||
class="flex items-center text-lg gap-2"
|
||||
>
|
||||
<Image
|
||||
class="w-12 h-12"
|
||||
src={auxolotl}
|
||||
alt="auxolotl.org logo"
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
|
||||
<nav>
|
||||
<ul>
|
||||
<ul class="flex gap-4 items-center h-full">
|
||||
<!--
|
||||
<li><a href="https://aux.computer/documentation">Documentation</a></li>
|
||||
<li><a href="https://aux.computer/contribute">Contribute</a></li>
|
||||
<li><a href="https://auxolotl.org/contribute">Contribute</a></li>
|
||||
-->
|
||||
<li><a href="https://forum.aux.computer">Community</a></li>
|
||||
<li><a href="https://github.com/auxolotl">Github</a></li>
|
||||
|
||||
<li>
|
||||
<a
|
||||
href="https://wiki.auxolotl.org"
|
||||
class="inline-block relative after:absolute after:left-0 after:top-full after:w-full after:h-1 after:rounded after:bg-[rgb(var(--text))] after:origin-center after:transform after:scale-x-0 hover:after:scale-x-100 after:transition-transform delay-75 duration-100"
|
||||
>Wiki</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://forum.aux.computer"
|
||||
class="inline-block relative after:absolute after:left-0 after:top-full after:w-full after:h-1 after:rounded after:bg-[rgb(var(--text))] after:origin-center after:transform after:scale-x-0 hover:after:scale-x-100 after:transition-transform delay-75 duration-100"
|
||||
>{translation("header.community")}</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://git.auxolotl.org/auxolotl"
|
||||
class="inline-block relative after:absolute after:left-0 after:top-full after:w-full after:h-1 after:rounded after:bg-[rgb(var(--text))] after:origin-center after:transform after:scale-x-0 hover:after:scale-x-100 after:transition-transform delay-75 duration-100"
|
||||
>Aux Forge</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<style>
|
||||
header {
|
||||
position: sticky;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
top: 0;
|
||||
background: rgb(var(--background));
|
||||
padding: 0.5rem 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.left .brand {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.left .brand .title {
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.right nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.right nav ul {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.right nav ul li {
|
||||
}
|
||||
|
||||
.right nav ul li:not(:last-child) {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,64 +0,0 @@
|
|||
---
|
||||
|
||||
---
|
||||
|
||||
<div class="hero">
|
||||
<div class="content">
|
||||
<div class="icon">
|
||||
<img src="/aux.svg" alt="" />
|
||||
</div>
|
||||
<h1 class="title">aux.computer</h1>
|
||||
<div class="description">An alternative to the Nix ecosystem</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.hero {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.content .icon {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.content .icon::before {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 60%;
|
||||
background: rgb(var(--accent));
|
||||
border-radius: 50%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
transform: rotateZ(-5deg) skewX(-8deg) skewY(-8deg);
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.content .icon img {
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
.content .title {
|
||||
padding-top: 1.5rem;
|
||||
text-align: center;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.content .description {
|
||||
text-align: center;
|
||||
font-size: 1rem;
|
||||
}
|
||||
</style>
|
|
@ -1,106 +0,0 @@
|
|||
---
|
||||
|
||||
---
|
||||
|
||||
<section id="roadmap">
|
||||
<h2>Roadmap</h2>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<h3>Soft Fork</h3>
|
||||
<p>
|
||||
This initial phase will involve an ad-hoc management structure due to
|
||||
its bootstrapping nature. As such, the project's stated Values, Goals,
|
||||
and Roadmap serve to keep all contributors aligned and safe knowing that
|
||||
the work they have committed to will not change.
|
||||
</p>
|
||||
<p>
|
||||
The initial forking off of Nix and NixPkgs will be performed in this
|
||||
phase and new contributors will be given roles for handling package
|
||||
maintenance and pulling changes from upstream. We intend to move on from
|
||||
this phase once enough contributors have joined for the project to be
|
||||
capable of transitioning into a hard fork.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Hard Fork</h3>
|
||||
<p>
|
||||
Like the Soft Fork phase, management structure will still be ad-hoc, but
|
||||
Committees, Special Interest Groups, and Working Groups may start to be
|
||||
formed. Due to there being necessary bootstrapping steps for each,
|
||||
elections will only begin once the Alignment phase has been reached.
|
||||
</p>
|
||||
<p>
|
||||
At this point we will have enough contributors to safely maintain
|
||||
NixPkgs (or a reasonable subset) and Nix ourselves. We will begin
|
||||
allowing divergence from the upstream repository and changes to the
|
||||
repository structure to improve development can be introduced.
|
||||
</p>
|
||||
<p>
|
||||
An initial release of the packages repository will be created and
|
||||
migration from `nix` to `aux` naming will begin to reduce confusion and
|
||||
errors now that the two projects have diverged.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Organization</h3>
|
||||
<p>
|
||||
The packages repository will have sets extracted to allow for Special
|
||||
Interest Groups to more easily manage their lifecycles. For example,
|
||||
`pythonPackages` will be moved to a separate repository that will be the
|
||||
reponsibility of a Python SIG if there is interest.
|
||||
</p>
|
||||
<p>
|
||||
Flakes will be standardized with its current implementation as a v0.
|
||||
While not ideal, the feature is used far too widely to be changed or
|
||||
removed without breaking the ecosystem. Instead, this v0 implementation
|
||||
will be enabled and future work for Flakes that addresses its
|
||||
shortcomings may be handled by a Flakes SIG.
|
||||
</p>
|
||||
<p>
|
||||
The `aux` CLI will be modified to provide more ergonomic management of
|
||||
packages and systems. Additional subcommands such as `aux system switch`
|
||||
and `aux system build` will be added to make onboarding and ongoing
|
||||
maintenance easier.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Infrastructure</h3>
|
||||
<p>
|
||||
Now that the project has significantly diverged from upstream, we will
|
||||
need to provide our own Continuous Integration and Binary Cache
|
||||
services. Existing governance structures will be used to manage the
|
||||
adoption of these technologies.
|
||||
</p>
|
||||
<p>
|
||||
Documentation will be included as a part of the Continuous Integration
|
||||
process and will have Continuous Deployment configured to keep it up to
|
||||
date, making it easier for contributors to create educational materials.
|
||||
</p>
|
||||
<p>
|
||||
Search infrastructure for packages and options will also be created.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Alignment</h3>
|
||||
<p>
|
||||
By this point, we've done it. We have created a sustainable, independent
|
||||
fork of the Nix ecosystem. Now that the initial work has been completed
|
||||
we will begin the governance rotation process with our first elections
|
||||
and education as to how project governance works.
|
||||
</p>
|
||||
<p>
|
||||
Documentation, project branding, and packages will be polished and
|
||||
presented as a fully stable release. From this point forward the
|
||||
Steering Committee will be managing the creation of Special Interest
|
||||
Groups and other necessary Committees. All enhancements will be
|
||||
suggested in Aux Enhancement Proposals which encourage existing SIGs to
|
||||
implement features or encourage the formation of a new SIG to be created
|
||||
for such a purpose.
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
</style>
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
|
||||
---
|
||||
|
||||
<section id="values">
|
||||
<h2 class="title">Values</h2>
|
||||
<h3 class="name">Representation</h3>
|
||||
<p class="description">
|
||||
Contributors should have their views represented and organizational
|
||||
structure should be established democratically.
|
||||
</p>
|
||||
<h3 class="name">Kindness</h3>
|
||||
<p class="description">
|
||||
The project should be welcoming and a safe place for people to
|
||||
participate.
|
||||
</p>
|
||||
<h3 class="name">Collaboration</h3>
|
||||
<p class="description">
|
||||
Communication and cooperation should be encouraged.
|
||||
</p>
|
||||
<h3 class="name">Sustainability</h3>
|
||||
<p class="description">
|
||||
Workload, finance, scope, and burnout should all be considered carefully
|
||||
to ensure that the project is stable.
|
||||
</p>
|
||||
<h3 class="name">Accessibility</h3>
|
||||
<p class="description">
|
||||
Elitism is unwelcome, our knowledge is here to be shared and we should
|
||||
provide the tools to help everyone succeed and learn.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
</style>
|
44
src/components/home/Goals.astro
Normal file
44
src/components/home/Goals.astro
Normal file
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
import { useTranslations } from "../../i18n/utils";
|
||||
import type { Params } from "../../i18n/utils";
|
||||
|
||||
const { lang } = Astro.params as Params;
|
||||
const translation = useTranslations(lang);
|
||||
---
|
||||
|
||||
<section id="goals">
|
||||
<h2>{translation("goals.title")}</h2>
|
||||
<div>
|
||||
<ol>
|
||||
<li>
|
||||
<h3>{translation("goals.independent.title")}</h3>
|
||||
<p>
|
||||
{translation("goals.independent")}
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>{translation("goals.gov.title")}</h3>
|
||||
<p>
|
||||
{translation("goals.gov")}
|
||||
</p>
|
||||
<p>
|
||||
<a
|
||||
href="https://wiki.auxolotl.org/community"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{translation("goals.gov.wiki")}
|
||||
</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>{translation("goals.education.title")}</h3>
|
||||
<p>
|
||||
{translation("goals.education")}
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<style></style>
|
62
src/components/home/Hero.astro
Normal file
62
src/components/home/Hero.astro
Normal file
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
import { useTranslations } from "../../i18n/utils";
|
||||
import { Image } from "astro:assets";
|
||||
import auxText from "../../../public/aux-text.svg";
|
||||
import type { Params } from "../../i18n/utils";
|
||||
|
||||
const { lang } = Astro.params as Params;
|
||||
const translation = useTranslations(lang);
|
||||
---
|
||||
|
||||
<div class="w-full bg-[rgb(var(--background))]">
|
||||
<div class="hero rounded-bl-3xl rounded-br-3xl">
|
||||
<div class="content">
|
||||
<div class="icon">
|
||||
<Image src={auxText} alt="aux" />
|
||||
</div>
|
||||
<div class="description">{translation("root.description")}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.hero {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
background: rgb(var(--background-light));
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.content .icon {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.content .icon img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
max-width: 450px;
|
||||
}
|
||||
|
||||
.content .title {
|
||||
padding-top: 1.5rem;
|
||||
text-align: center;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.content .description {
|
||||
text-align: center;
|
||||
font-size: 1.25rem;
|
||||
text-wrap: balance;
|
||||
}
|
||||
</style>
|
20
src/components/home/Home.astro
Normal file
20
src/components/home/Home.astro
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
import Hero from "./Hero.astro";
|
||||
import Values from "./Values.astro";
|
||||
import Goals from "./Goals.astro";
|
||||
import Roadmap from "./Roadmap.astro";
|
||||
---
|
||||
|
||||
<main class="grid place-items-center">
|
||||
<Hero />
|
||||
|
||||
<div
|
||||
class="py-16 px-4 flex justify-center w-full bg-[rgb(var(--background))]"
|
||||
>
|
||||
<div class="prose prose-invert max-w-4xl w-full">
|
||||
<Values />
|
||||
<Goals />
|
||||
<Roadmap />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
55
src/components/home/Roadmap.astro
Normal file
55
src/components/home/Roadmap.astro
Normal file
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
import { useTranslations } from "../../i18n/utils";
|
||||
import type { Params } from "../../i18n/utils";
|
||||
|
||||
const { lang } = Astro.params as Params;
|
||||
const translation = useTranslations(lang);
|
||||
---
|
||||
|
||||
<section id="roadmap">
|
||||
<h2>{translation("roadmap.title")}</h2>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<h3>{translation("roadmap.soft_fork.title")}</h3>
|
||||
<p>
|
||||
{translation("roadmap.soft_fork.1")}
|
||||
<p>
|
||||
{translation("roadmap.soft_fork.2")}
|
||||
</p>
|
||||
</p>
|
||||
<li>
|
||||
<h3>{translation("roadmap.hard_fork.title")}</h3>
|
||||
<p>
|
||||
{translation("roadmap.hard_fork.1")}
|
||||
</p>
|
||||
<p>
|
||||
{translation("roadmap.hard_fork.2")}
|
||||
</p>
|
||||
<p>
|
||||
{translation("roadmap.hard_fork.3")}
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>{translation("roadmap.organization.title")}</h3>
|
||||
<p>
|
||||
{translation("roadmap.organization.1")}
|
||||
</p>
|
||||
<p>
|
||||
{translation("roadmap.organization.2")}
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>{translation("roadmap.alignment.title")}</h3>
|
||||
<p>
|
||||
{translation("roadmap.alignment.1")}
|
||||
</p>
|
||||
<p>
|
||||
{translation("roadmap.alignment.2")}
|
||||
</p>
|
||||
</li>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<style></style>
|
||||
</section>
|
33
src/components/home/Values.astro
Normal file
33
src/components/home/Values.astro
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
import { useTranslations } from "../../i18n/utils";
|
||||
import type { Params } from "../../i18n/utils";
|
||||
|
||||
const { lang } = Astro.params as Params;
|
||||
const translation = useTranslations(lang);
|
||||
---
|
||||
|
||||
<section id="values">
|
||||
<h2>{translation("values.title")}</h2>
|
||||
<h3 class="name">{translation("values.rep.title")}</h3>
|
||||
<p class="description">
|
||||
{translation("values.rep")}
|
||||
</p>
|
||||
<h3 class="name">{translation("values.kindness.title")}</h3>
|
||||
<p class="description">
|
||||
{translation("values.kindness")}
|
||||
</p>
|
||||
<h3 class="name">{translation("values.collab.title")}</h3>
|
||||
<p class="description">
|
||||
{translation("values.collab")}
|
||||
</p>
|
||||
<h3 class="name">{translation("values.sustainability.title")}</h3>
|
||||
<p class="description">
|
||||
{translation("values.sustainability")}
|
||||
</p>
|
||||
<h3 class="name">{translation("values.accessibility.title")}</h3>
|
||||
<p class="description">
|
||||
{translation("values.accessibility")}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<style></style>
|
17
src/i18n/ui.ts
Normal file
17
src/i18n/ui.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
import de from "../../public/locales/de/translations.json";
|
||||
import dk from "../../public/locales/dk/translations.json";
|
||||
import en from "../../public/locales/en/translations.json";
|
||||
|
||||
export const languages = {
|
||||
de: "Deutsch",
|
||||
dk: "Dansk",
|
||||
en: "English",
|
||||
};
|
||||
|
||||
export const defaultLang = "en";
|
||||
|
||||
export const ui = {
|
||||
de,
|
||||
dk,
|
||||
en,
|
||||
} as const;
|
21
src/i18n/utils.ts
Normal file
21
src/i18n/utils.ts
Normal file
|
@ -0,0 +1,21 @@
|
|||
import { ui, defaultLang, languages } from "./ui";
|
||||
import type {
|
||||
InferGetStaticParamsType,
|
||||
InferGetStaticPropsType,
|
||||
GetStaticPaths,
|
||||
} from "astro";
|
||||
|
||||
export function useTranslations(lang: keyof typeof ui) {
|
||||
return function t(key: keyof (typeof ui)[typeof defaultLang]) {
|
||||
return ui[lang][key] || ui[defaultLang][key];
|
||||
};
|
||||
}
|
||||
|
||||
export const getStaticPaths = (async () => {
|
||||
return Object.keys(languages).map((name) => ({
|
||||
params: { lang: name as keyof typeof languages },
|
||||
}));
|
||||
}) satisfies GetStaticPaths;
|
||||
|
||||
export type Params = InferGetStaticParamsType<typeof getStaticPaths>;
|
||||
export type Props = InferGetStaticPropsType<typeof getStaticPaths>;
|
|
@ -1,16 +1,23 @@
|
|||
---
|
||||
import Header from "../components/Header.astro";
|
||||
import type { Params } from "../i18n/utils";
|
||||
|
||||
interface Props {
|
||||
title: string;
|
||||
}
|
||||
|
||||
const { title } = Astro.props;
|
||||
const { lang } = Astro.params as Params;
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<html lang={lang}>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="description" content="An alternative to the Nix ecosystem." />
|
||||
<meta
|
||||
name="description"
|
||||
content="An alternative to the Nix ecosystem."
|
||||
/>
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
|
@ -18,14 +25,16 @@ const { title } = Astro.props;
|
|||
<meta name="verify" content="https://github.com/jakehamilton" />
|
||||
</head>
|
||||
<body>
|
||||
<Header />
|
||||
|
||||
<slot />
|
||||
</body>
|
||||
</html>
|
||||
<style is:global>
|
||||
:root {
|
||||
--accent: 136, 58, 234;
|
||||
--background: 24, 24, 24;
|
||||
--background-light: 34, 34, 38;
|
||||
--accent: 240, 163, 213;
|
||||
--background: 22, 24, 29;
|
||||
--background-light: 27, 28, 33;
|
||||
--text: 255, 255, 255;
|
||||
}
|
||||
|
||||
|
@ -33,7 +42,7 @@ const { title } = Astro.props;
|
|||
font-size: 16px;
|
||||
font-family: system-ui, sans-serif;
|
||||
color: rgb(var(--text));
|
||||
background: rgb(var(--background));
|
||||
background: rgb(var(--background-light));
|
||||
background-size: 224px;
|
||||
}
|
||||
</style>
|
||||
|
|
9
src/pages/[lang]/index.astro
Normal file
9
src/pages/[lang]/index.astro
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
import Layout from "../../layouts/Layout.astro";
|
||||
import Home from "../../components/home/Home.astro";
|
||||
export { getStaticPaths } from "../../i18n/utils";
|
||||
---
|
||||
|
||||
<Layout title="auxolotl.org">
|
||||
<Home />
|
||||
</Layout>
|
|
@ -1,25 +1,5 @@
|
|||
---
|
||||
import Layout from "../layouts/Layout.astro";
|
||||
import Header from "../components/Header.astro";
|
||||
import Hero from "../components/Hero.astro";
|
||||
import Values from "../components/Values.astro";
|
||||
import Goals from "../components/Goals.astro";
|
||||
import Roadmap from "../components/Roadmap.astro";
|
||||
import { defaultLang } from "../i18n/ui";
|
||||
---
|
||||
|
||||
<Layout title="aux.computer">
|
||||
<main>
|
||||
<Header />
|
||||
|
||||
<div class="grid place-items-center">
|
||||
<Hero />
|
||||
<div class="prose prose-invert py-16 px-4 max-w-3xl">
|
||||
<Values />
|
||||
<Goals />
|
||||
<Roadmap />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</Layout>
|
||||
|
||||
<style></style>
|
||||
<meta http-equiv="refresh" content=`0;url=/${defaultLang}/` />
|
||||
|
|
Loading…
Reference in a new issue