-
+
- dj ledda
+
+ _ _ _ _ _ _ _ __dj ledda
+
-
-
+
+
+
>;
},
diff --git a/deno.lock b/deno.lock
index 27f4a13..877b216 100644
--- a/deno.lock
+++ b/deno.lock
@@ -1,7 +1,6 @@
{
"version": "5",
"specifiers": {
- "jsr:@b-fuze/deno-dom@*": "0.1.48",
"jsr:@b-fuze/deno-dom@~0.1.56": "0.1.56",
"jsr:@deno/cache-dir@0.13.2": "0.13.2",
"jsr:@deno/emit@*": "0.46.0",
@@ -11,44 +10,30 @@
"jsr:@std/assert@0.223": "0.223.0",
"jsr:@std/bytes@0.223": "0.223.0",
"jsr:@std/cli@^1.0.24": "1.0.24",
- "jsr:@std/cli@^1.0.6": "1.0.6",
"jsr:@std/encoding@1": "1.0.10",
"jsr:@std/encoding@^1.0.10": "1.0.10",
- "jsr:@std/encoding@^1.0.5": "1.0.5",
"jsr:@std/fmt@0.223": "0.223.0",
"jsr:@std/fmt@1": "1.0.8",
- "jsr:@std/fmt@^1.0.3": "1.0.3",
"jsr:@std/fmt@^1.0.8": "1.0.8",
- "jsr:@std/fs@*": "0.223.0",
"jsr:@std/fs@0.223": "0.223.0",
"jsr:@std/fs@1": "1.0.20",
"jsr:@std/fs@^1.0.20": "1.0.20",
"jsr:@std/html@^1.0.5": "1.0.5",
- "jsr:@std/http@*": "1.0.9",
"jsr:@std/http@^1.0.22": "1.0.22",
"jsr:@std/internal@^1.0.12": "1.0.12",
"jsr:@std/io@0.223": "0.223.0",
- "jsr:@std/media-types@^1.0.3": "1.0.3",
"jsr:@std/media-types@^1.1.0": "1.1.0",
- "jsr:@std/net@^1.0.4": "1.0.4",
"jsr:@std/net@^1.0.6": "1.0.6",
- "jsr:@std/path@*": "1.0.7",
"jsr:@std/path@0.223": "0.223.0",
"jsr:@std/path@1": "1.1.3",
- "jsr:@std/path@^1.0.7": "1.0.7",
"jsr:@std/path@^1.1.3": "1.1.3",
"jsr:@std/streams@^1.0.14": "1.0.14",
- "jsr:@std/streams@^1.0.7": "1.0.7",
- "npm:@types/node@*": "22.5.4",
"npm:@vue/devtools-api@*": "6.6.4",
- "npm:vue-router@4.4.5": "4.4.5_vue@3.5.12",
+ "npm:vue-router@4.4.5": "4.4.5_vue@3.5.26",
"npm:vue@*": "3.5.26",
"npm:vue@^3.5.26": "3.5.26"
},
"jsr": {
- "@b-fuze/deno-dom@0.1.48": {
- "integrity": "bf5b591aef2e9e9c59adfcbb93a9ecd45bab5b7c8263625beafa5c8f1662e7da"
- },
"@b-fuze/deno-dom@0.1.56": {
"integrity": "8030e2dc1d8750f1682b53462ab893d9c3470f2287feecbe22f44a88c54ab148",
"dependencies": [
@@ -90,33 +75,20 @@
"@std/bytes@0.223.0": {
"integrity": "84b75052cd8680942c397c2631318772b295019098f40aac5c36cead4cba51a8"
},
- "@std/cli@1.0.6": {
- "integrity": "d22d8b38c66c666d7ad1f2a66c5b122da1704f985d3c47f01129f05abb6c5d3d"
- },
"@std/cli@1.0.24": {
"integrity": "b655a5beb26aa94f98add6bc8889f5fb9bc3ee2cc3fc954e151201f4c4200a5e"
},
- "@std/encoding@1.0.5": {
- "integrity": "ecf363d4fc25bd85bd915ff6733a7e79b67e0e7806334af15f4645c569fefc04"
- },
"@std/encoding@1.0.10": {
"integrity": "8783c6384a2d13abd5e9e87a7ae0520a30e9f56aeeaa3bdf910a3eaaf5c811a1"
},
"@std/fmt@0.223.0": {
"integrity": "6deb37794127dfc7d7bded2586b9fc6f5d50e62a8134846608baf71ffc1a5208"
},
- "@std/fmt@1.0.3": {
- "integrity": "97765c16aa32245ff4e2204ecf7d8562496a3cb8592340a80e7e554e0bb9149f"
- },
"@std/fmt@1.0.8": {
"integrity": "71e1fc498787e4434d213647a6e43e794af4fd393ef8f52062246e06f7e372b7"
},
"@std/fs@0.223.0": {
- "integrity": "3b4b0550b2c524cbaaa5a9170c90e96cbb7354e837ad1bdaf15fc9df1ae9c31c",
- "dependencies": [
- "jsr:@std/assert",
- "jsr:@std/path@0.223"
- ]
+ "integrity": "3b4b0550b2c524cbaaa5a9170c90e96cbb7354e837ad1bdaf15fc9df1ae9c31c"
},
"@std/fs@1.0.20": {
"integrity": "e953206aae48d46ee65e8783ded459f23bec7dd1f3879512911c35e5484ea187",
@@ -128,30 +100,18 @@
"@std/html@1.0.5": {
"integrity": "4e2d693f474cae8c16a920fa5e15a3b72267b94b84667f11a50c6dd1cb18d35e"
},
- "@std/http@1.0.9": {
- "integrity": "d409fc319a5e8d4a154e576c758752e9700282d74f31357a12fec6420f9ecb6c",
- "dependencies": [
- "jsr:@std/cli@^1.0.6",
- "jsr:@std/encoding@^1.0.5",
- "jsr:@std/fmt@^1.0.3",
- "jsr:@std/media-types@^1.0.3",
- "jsr:@std/net@^1.0.4",
- "jsr:@std/path@^1.0.7",
- "jsr:@std/streams@^1.0.7"
- ]
- },
"@std/http@1.0.22": {
"integrity": "53f0bb70e23a2eec3e17c4240a85bb23d185b2e20635adb37ce0f03cc4ca012a",
"dependencies": [
- "jsr:@std/cli@^1.0.24",
+ "jsr:@std/cli",
"jsr:@std/encoding@^1.0.10",
"jsr:@std/fmt@^1.0.8",
"jsr:@std/fs@^1.0.20",
"jsr:@std/html",
- "jsr:@std/media-types@^1.1.0",
- "jsr:@std/net@^1.0.6",
+ "jsr:@std/media-types",
+ "jsr:@std/net",
"jsr:@std/path@^1.1.3",
- "jsr:@std/streams@^1.0.14"
+ "jsr:@std/streams"
]
},
"@std/internal@1.0.12": {
@@ -164,15 +124,9 @@
"jsr:@std/bytes"
]
},
- "@std/media-types@1.0.3": {
- "integrity": "b12d30a7852f7578f4d210622df713bbfd1cbdd9b4ec2eaf5c1845ab70bab159"
- },
"@std/media-types@1.1.0": {
"integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4"
},
- "@std/net@1.0.4": {
- "integrity": "2f403b455ebbccf83d8a027d29c5a9e3a2452fea39bb2da7f2c04af09c8bc852"
- },
"@std/net@1.0.6": {
"integrity": "110735f93e95bb9feb95790a8b1d1bf69ec0dc74f3f97a00a76ea5efea25500c"
},
@@ -182,353 +136,163 @@
"jsr:@std/assert"
]
},
- "@std/path@1.0.7": {
- "integrity": "76a689e07f0e15dcc6002ec39d0866797e7156629212b28f27179b8a5c3b33a1"
- },
"@std/path@1.1.3": {
"integrity": "b015962d82a5e6daea980c32b82d2c40142149639968549c649031a230b1afb3",
"dependencies": [
"jsr:@std/internal"
]
},
- "@std/streams@1.0.7": {
- "integrity": "1a93917ca0c58c01b2bfb93647189229b1702677f169b6fb61ad6241cd2e499b"
- },
"@std/streams@1.0.14": {
"integrity": "c0df6cdd73bd4bbcbe4baa89e323b88418c90ceb2d926f95aa99bdcdbfca2411"
}
},
"npm": {
- "@babel/helper-string-parser@7.25.9": {
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2fhelper-string-parser/-/helper-string-parser-7.25.9.tgz"
- },
"@babel/helper-string-parser@7.27.1": {
- "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2fhelper-string-parser/-/helper-string-parser-7.27.1.tgz"
- },
- "@babel/helper-validator-identifier@7.25.9": {
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2fhelper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz"
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="
},
"@babel/helper-validator-identifier@7.28.5": {
- "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2fhelper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz"
- },
- "@babel/parser@7.26.2": {
- "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
- "dependencies": [
- "@babel/types@7.26.0"
- ],
- "bin": true,
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2fparser/-/parser-7.26.2.tgz"
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="
},
"@babel/parser@7.28.5": {
"integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
"dependencies": [
- "@babel/types@7.28.5"
+ "@babel/types"
],
- "bin": true,
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2fparser/-/parser-7.28.5.tgz"
- },
- "@babel/types@7.26.0": {
- "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
- "dependencies": [
- "@babel/helper-string-parser@7.25.9",
- "@babel/helper-validator-identifier@7.25.9"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2ftypes/-/types-7.26.0.tgz"
+ "bin": true
},
"@babel/types@7.28.5": {
"integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
"dependencies": [
- "@babel/helper-string-parser@7.27.1",
- "@babel/helper-validator-identifier@7.28.5"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@babel%2ftypes/-/types-7.28.5.tgz"
- },
- "@jridgewell/sourcemap-codec@1.5.0": {
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@jridgewell%2fsourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
+ "@babel/helper-string-parser",
+ "@babel/helper-validator-identifier"
+ ]
},
"@jridgewell/sourcemap-codec@1.5.5": {
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@jridgewell%2fsourcemap-codec/-/sourcemap-codec-1.5.5.tgz"
- },
- "@types/node@22.5.4": {
- "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==",
- "dependencies": [
- "undici-types"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@types%2fnode/-/node-22.5.4.tgz"
- },
- "@vue/compiler-core@3.5.12": {
- "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==",
- "dependencies": [
- "@babel/parser@7.26.2",
- "@vue/shared@3.5.12",
- "entities@4.5.0",
- "estree-walker",
- "source-map-js"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-core/-/compiler-core-3.5.12.tgz"
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="
},
"@vue/compiler-core@3.5.26": {
"integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==",
"dependencies": [
- "@babel/parser@7.28.5",
- "@vue/shared@3.5.26",
- "entities@7.0.0",
+ "@babel/parser",
+ "@vue/shared",
+ "entities",
"estree-walker",
"source-map-js"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-core/-/compiler-core-3.5.26.tgz"
- },
- "@vue/compiler-dom@3.5.12": {
- "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==",
- "dependencies": [
- "@vue/compiler-core@3.5.12",
- "@vue/shared@3.5.12"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-dom/-/compiler-dom-3.5.12.tgz"
+ ]
},
"@vue/compiler-dom@3.5.26": {
"integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==",
"dependencies": [
- "@vue/compiler-core@3.5.26",
- "@vue/shared@3.5.26"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-dom/-/compiler-dom-3.5.26.tgz"
- },
- "@vue/compiler-sfc@3.5.12": {
- "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==",
- "dependencies": [
- "@babel/parser@7.26.2",
- "@vue/compiler-core@3.5.12",
- "@vue/compiler-dom@3.5.12",
- "@vue/compiler-ssr@3.5.12",
- "@vue/shared@3.5.12",
- "estree-walker",
- "magic-string@0.30.12",
- "postcss@8.4.47",
- "source-map-js"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-sfc/-/compiler-sfc-3.5.12.tgz"
+ "@vue/compiler-core",
+ "@vue/shared"
+ ]
},
"@vue/compiler-sfc@3.5.26": {
"integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==",
"dependencies": [
- "@babel/parser@7.28.5",
- "@vue/compiler-core@3.5.26",
- "@vue/compiler-dom@3.5.26",
- "@vue/compiler-ssr@3.5.26",
- "@vue/shared@3.5.26",
+ "@babel/parser",
+ "@vue/compiler-core",
+ "@vue/compiler-dom",
+ "@vue/compiler-ssr",
+ "@vue/shared",
"estree-walker",
- "magic-string@0.30.21",
- "postcss@8.5.6",
+ "magic-string",
+ "postcss",
"source-map-js"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-sfc/-/compiler-sfc-3.5.26.tgz"
- },
- "@vue/compiler-ssr@3.5.12": {
- "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==",
- "dependencies": [
- "@vue/compiler-dom@3.5.12",
- "@vue/shared@3.5.12"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-ssr/-/compiler-ssr-3.5.12.tgz"
+ ]
},
"@vue/compiler-ssr@3.5.26": {
"integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==",
"dependencies": [
- "@vue/compiler-dom@3.5.26",
- "@vue/shared@3.5.26"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fcompiler-ssr/-/compiler-ssr-3.5.26.tgz"
+ "@vue/compiler-dom",
+ "@vue/shared"
+ ]
},
"@vue/devtools-api@6.6.4": {
- "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fdevtools-api/-/devtools-api-6.6.4.tgz"
- },
- "@vue/reactivity@3.5.12": {
- "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==",
- "dependencies": [
- "@vue/shared@3.5.12"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2freactivity/-/reactivity-3.5.12.tgz"
+ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
},
"@vue/reactivity@3.5.26": {
"integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==",
"dependencies": [
- "@vue/shared@3.5.26"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2freactivity/-/reactivity-3.5.26.tgz"
- },
- "@vue/runtime-core@3.5.12": {
- "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==",
- "dependencies": [
- "@vue/reactivity@3.5.12",
- "@vue/shared@3.5.12"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fruntime-core/-/runtime-core-3.5.12.tgz"
+ "@vue/shared"
+ ]
},
"@vue/runtime-core@3.5.26": {
"integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==",
"dependencies": [
- "@vue/reactivity@3.5.26",
- "@vue/shared@3.5.26"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fruntime-core/-/runtime-core-3.5.26.tgz"
- },
- "@vue/runtime-dom@3.5.12": {
- "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==",
- "dependencies": [
- "@vue/reactivity@3.5.12",
- "@vue/runtime-core@3.5.12",
- "@vue/shared@3.5.12",
- "csstype@3.1.3"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fruntime-dom/-/runtime-dom-3.5.12.tgz"
+ "@vue/reactivity",
+ "@vue/shared"
+ ]
},
"@vue/runtime-dom@3.5.26": {
"integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==",
"dependencies": [
- "@vue/reactivity@3.5.26",
- "@vue/runtime-core@3.5.26",
- "@vue/shared@3.5.26",
- "csstype@3.2.3"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fruntime-dom/-/runtime-dom-3.5.26.tgz"
- },
- "@vue/server-renderer@3.5.12_vue@3.5.12": {
- "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==",
- "dependencies": [
- "@vue/compiler-ssr@3.5.12",
- "@vue/shared@3.5.12",
- "vue@3.5.12"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fserver-renderer/-/server-renderer-3.5.12.tgz"
+ "@vue/reactivity",
+ "@vue/runtime-core",
+ "@vue/shared",
+ "csstype"
+ ]
},
"@vue/server-renderer@3.5.26_vue@3.5.26": {
"integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==",
"dependencies": [
- "@vue/compiler-ssr@3.5.26",
- "@vue/shared@3.5.26",
- "vue@3.5.26"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fserver-renderer/-/server-renderer-3.5.26.tgz"
- },
- "@vue/shared@3.5.12": {
- "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fshared/-/shared-3.5.12.tgz"
+ "@vue/compiler-ssr",
+ "@vue/shared",
+ "vue"
+ ]
},
"@vue/shared@3.5.26": {
- "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/@vue%2fshared/-/shared-3.5.26.tgz"
- },
- "csstype@3.1.3": {
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/csstype/-/csstype-3.1.3.tgz"
+ "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A=="
},
"csstype@3.2.3": {
- "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/csstype/-/csstype-3.2.3.tgz"
- },
- "entities@4.5.0": {
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/entities/-/entities-4.5.0.tgz"
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="
},
"entities@7.0.0": {
- "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/entities/-/entities-7.0.0.tgz"
+ "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ=="
},
"estree-walker@2.0.2": {
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/estree-walker/-/estree-walker-2.0.2.tgz"
- },
- "magic-string@0.30.12": {
- "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
- "dependencies": [
- "@jridgewell/sourcemap-codec@1.5.0"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/magic-string/-/magic-string-0.30.12.tgz"
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
"magic-string@0.30.21": {
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dependencies": [
- "@jridgewell/sourcemap-codec@1.5.5"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/magic-string/-/magic-string-0.30.21.tgz"
+ "@jridgewell/sourcemap-codec"
+ ]
},
"nanoid@3.3.11": {
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "bin": true,
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/nanoid/-/nanoid-3.3.11.tgz"
- },
- "nanoid@3.3.7": {
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "bin": true,
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/nanoid/-/nanoid-3.3.7.tgz"
+ "bin": true
},
"picocolors@1.1.1": {
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/picocolors/-/picocolors-1.1.1.tgz"
- },
- "postcss@8.4.47": {
- "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
- "dependencies": [
- "nanoid@3.3.7",
- "picocolors",
- "source-map-js"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/postcss/-/postcss-8.4.47.tgz"
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
"postcss@8.5.6": {
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dependencies": [
- "nanoid@3.3.11",
+ "nanoid",
"picocolors",
"source-map-js"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/postcss/-/postcss-8.5.6.tgz"
+ ]
},
"source-map-js@1.2.1": {
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/source-map-js/-/source-map-js-1.2.1.tgz"
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
},
- "undici-types@6.19.8": {
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/undici-types/-/undici-types-6.19.8.tgz"
- },
- "vue-router@4.4.5_vue@3.5.12": {
+ "vue-router@4.4.5_vue@3.5.26": {
"integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==",
"dependencies": [
"@vue/devtools-api",
- "vue@3.5.12"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/vue-router/-/vue-router-4.4.5.tgz"
- },
- "vue@3.5.12": {
- "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==",
- "dependencies": [
- "@vue/compiler-dom@3.5.12",
- "@vue/compiler-sfc@3.5.12",
- "@vue/runtime-dom@3.5.12",
- "@vue/server-renderer@3.5.12_vue@3.5.12",
- "@vue/shared@3.5.12"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/vue/-/vue-3.5.12.tgz"
+ "vue"
+ ]
},
"vue@3.5.26": {
"integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==",
"dependencies": [
- "@vue/compiler-dom@3.5.26",
- "@vue/compiler-sfc@3.5.26",
- "@vue/runtime-dom@3.5.26",
- "@vue/server-renderer@3.5.26_vue@3.5.26",
- "@vue/shared@3.5.26"
- ],
- "tarball": "http://npm.srv.dc1.boerse-go.de:4873/vue/-/vue-3.5.26.tgz"
+ "@vue/compiler-dom",
+ "@vue/compiler-sfc",
+ "@vue/runtime-dom",
+ "@vue/server-renderer",
+ "@vue/shared"
+ ]
}
},
"workspace": {
diff --git a/main.ts b/main.ts
index 1ece909..914812d 100644
--- a/main.ts
+++ b/main.ts
@@ -48,10 +48,9 @@ async function* siteEntries(path: string): AsyncGenerator
{
}
}
-const publicFiles = siteEntries("public");
const sites: string[] = [];
-for await (const path of publicFiles) {
- sites.push(path);
+for await (const entry of siteEntries("public")) {
+ sites.push(entry);
}
async function getAPIResponse(apiReq: Request): Promise {
@@ -223,12 +222,12 @@ Deno.serve({
// SSR
if (response === null) {
- const baseDirectoryName = pathname.split("/")[1] ?? "";
+ let baseDirectoryName = pathname.split("/")[1] ?? "";
+ baseDirectoryName = baseDirectoryName === "" ? "home" : baseDirectoryName;
if (sites.includes(baseDirectoryName)) {
- const appLocation = baseDirectoryName === "" ? "home" : baseDirectoryName;
const siteTemplate = join("public", baseDirectoryName, "index_template.html");
- const siteEntry = join("app", appLocation, "server.ts");
- const clientEntry = join("@", appLocation, "client.ts");
+ const siteEntry = join("app", baseDirectoryName, "server.ts");
+ const clientEntry = join("@", baseDirectoryName, "client.ts");
const { app, router } = (await import("./" + siteEntry)).default() as {
app: App;
router: Router | null;
diff --git a/public/blog/content/poof-and-its-gone.html b/public/blog/content/poof-and-its-gone.html
index c008c8f..c004947 100644
--- a/public/blog/content/poof-and-its-gone.html
+++ b/public/blog/content/poof-and-its-gone.html
@@ -36,7 +36,7 @@
complete drag of a memorisation task, presumably aided by my younger, more language sensitive age at the time. Each day was a new game of detective guesswork, and better still, I got to play
with new ideas about how the language works each day in the schoolyard with the new friends I was making. New ways to
describe how things are situated in space, adverbs for how they move in relation to one another, mysterious new prefixes and other quaint linguistic
- quirks, like the insane backwards word order of German&em;unlimited entertainment to see if I was up to
+ quirks, like the insane backwards word order of German—unlimited entertainment to see if I was up to
the challenge. I practically spent all my time in class ogling the immaculate chalk handwriting of the various teachers, I remember biology and German class in particular, and
trying to work out what on Earth was going on. For some strange reason, it was a kind of bliss.
diff --git a/public/blog/index_template.html b/public/blog/index_template.html
index 94d2ecb..dfd91c3 100644
--- a/public/blog/index_template.html
+++ b/public/blog/index_template.html
@@ -4,7 +4,7 @@
-
+
diff --git a/public/home/index_template.html b/public/home/index_template.html
new file mode 100644
index 0000000..eecae32
--- /dev/null
+++ b/public/home/index_template.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/index_template.html b/public/index_template.html
deleted file mode 100644
index c8c0ab9..0000000
--- a/public/index_template.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/static/assets/baskervville-italic.ttf b/public/static/assets/baskervville-italic.ttf
new file mode 100644
index 0000000..53e6373
Binary files /dev/null and b/public/static/assets/baskervville-italic.ttf differ
diff --git a/public/static/assets/baskervville.ttf b/public/static/assets/baskervville.ttf
new file mode 100644
index 0000000..6719ad5
Binary files /dev/null and b/public/static/assets/baskervville.ttf differ
diff --git a/public/static/assets/quattrocento-bold.ttf b/public/static/assets/quattrocento-bold.ttf
new file mode 100644
index 0000000..2767744
Binary files /dev/null and b/public/static/assets/quattrocento-bold.ttf differ
diff --git a/public/static/assets/quattrocento-regular.ttf b/public/static/assets/quattrocento-regular.ttf
new file mode 100644
index 0000000..73b7278
Binary files /dev/null and b/public/static/assets/quattrocento-regular.ttf differ
diff --git a/public/static/theme.css b/public/static/theme.css
new file mode 100644
index 0000000..3e6d5b4
--- /dev/null
+++ b/public/static/theme.css
@@ -0,0 +1,58 @@
+@font-face {
+ font-family: "Quattrocento";
+ font-style: regular;
+ src: local("Quattrocento"), url("assets/quattrocento-regular.ttf") format("truetype")
+}
+
+@font-face {
+ font-family: "Quattrocento";
+ font-style: bold;
+ src: local("Quattrocento"), url("assets/quattrocento-bold.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: "Baskervville";
+ font-style: regular;
+ src: local("Baskervville"), url("assets/baskervville.ttf") format("truetype")
+}
+
+@font-face {
+ font-family: "Baskervville";
+ font-style: italic;
+ src: local("Baskervville"), url("assets/baskervville-italic.ttf") format("truetype");
+}
+
+:root {
+ --dj-palette1: #83a6bf;
+ --dj-palette2: #5e81ac;
+ --dj-palette3: #8fbcbb;
+ --dj-visited: #8d8bd5;
+ --dj-bgpalette1: #2e3440;
+}
+
+html, body {
+ box-sizing: border-box;
+ background-color: var(--dj-bgpalette1);
+ color: var(--dj-palette1);
+ margin: 0;
+ padding: 0;
+
+ font-family: "Quattrocento", serif;
+ font-optical-sizing: auto;
+ font-style: normal;
+ font-size: 16px;
+}
+
+h1, h2, h3, h4, h5, nav, .dj-title, .roboto-slab {
+ font-family: "Baskervville", serif;
+ font-optical-sizing: auto;
+ font-weight: 400;
+ font-style: normal;
+}
+
+.spectral-regular, body {
+ font-family: "Spectral", serif;
+ font-weight: 400;
+ font-style: normal;
+ font-size: 19px;
+}
diff --git a/public/theme.css b/public/theme.css
deleted file mode 100644
index 4dc9ec5..0000000
--- a/public/theme.css
+++ /dev/null
@@ -1,113 +0,0 @@
-@import url('https://fonts.googleapis.com/css2?family=Laila:wght@300;400;500;600;700&family=Quattrocento:wght@400;700&family=Roboto+Slab:wght@100..900&family=Spectral:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,200;1,300;1,400;1,500;1,600;1,700;1,800&display=swap');
-
-:root {
- --dj-palette1: #83a6bf;
- --dj-palette2: #5e81ac;
- --dj-palette3: #8fbcbb;
- --dj-visited: #8d8bd5;
- --dj-bgpalette1: #2e3440;
-}
-
-html, body {
- background-color: var(--dj-bgpalette1);
- color: var(--dj-palette1);
-
- font-family: "Quattrocento", sans-serif;
- font-optical-sizing: auto;
- font-weight: 400; /* bold 700 */
- font-style: normal;
- font-size: 16px;
-}
-
-h1, h2, h3, h4, h5, nav, .dj-title, .roboto-slab {
- font-family: "Roboto Slab", serif;
- font-optical-sizing: auto;
- font-weight: 400;
- font-style: normal;
-}
-
-.spectral-extralight {
- font-family: "Spectral", serif;
- font-weight: 200;
- font-style: normal;
-}
-
-.spectral-light {
- font-family: "Spectral", serif;
- font-weight: 300;
- font-style: normal;
-}
-
-.spectral-regular, body {
- font-family: "Spectral", serif;
- font-weight: 400;
- font-style: normal;
- font-size: 19px;
-}
-
-.spectral-medium {
- font-family: "Spectral", serif;
- font-weight: 500;
- font-style: normal;
-}
-
-.spectral-semibold {
- font-family: "Spectral", serif;
- font-weight: 600;
- font-style: normal;
-}
-
-.spectral-bold {
- font-family: "Spectral", serif;
- font-weight: 700;
- font-style: normal;
-}
-
-.spectral-extrabold {
- font-family: "Spectral", serif;
- font-weight: 800;
- font-style: normal;
-}
-
-.spectral-extralight-italic {
- font-family: "Spectral", serif;
- font-weight: 200;
- font-style: italic;
-}
-
-.spectral-light-italic {
- font-family: "Spectral", serif;
- font-weight: 300;
- font-style: italic;
-}
-
-.spectral-regular-italic {
- font-family: "Spectral", serif;
- font-weight: 400;
- font-style: italic;
-}
-
-.spectral-medium-italic {
- font-family: "Spectral", serif;
- font-weight: 500;
- font-style: italic;
-}
-
-.spectral-semibold-italic {
- font-family: "Spectral", serif;
- font-weight: 600;
- font-style: italic;
-}
-
-.spectral-bold-italic {
- font-family: "Spectral", serif;
- font-weight: 700;
- font-style: italic;
-}
-
-.spectral-extrabold-italic {
- font-family: "Spectral", serif;
- font-weight: 800;
- font-style: italic;
-}
-