1
Fork 0
mirror of https://github.com/RGBCube/Site synced 2025-08-02 14:07:47 +00:00

Compare commits

..

No commits in common. "51fd319b05b658db748bea412fa24db9d4010b44" and "fae392d3af56c0d281fc9d631d572eeee9280745" have entirely different histories.

15 changed files with 67 additions and 275 deletions

115
deno.lock generated
View file

@ -1,5 +1,5 @@
{
"version": "5",
"version": "4",
"specifiers": {
"jsr:@davidbonnet/astring@1.8.6": "1.8.6",
"jsr:@luca/esbuild-deno-loader@0.11.1": "0.11.1",
@ -223,49 +223,31 @@
]
},
"@tailwindcss/oxide-android-arm64@4.1.7": {
"integrity": "sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg==",
"os": ["android"],
"cpu": ["arm64"]
"integrity": "sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg=="
},
"@tailwindcss/oxide-darwin-arm64@4.1.7": {
"integrity": "sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg==",
"os": ["darwin"],
"cpu": ["arm64"]
"integrity": "sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg=="
},
"@tailwindcss/oxide-darwin-x64@4.1.7": {
"integrity": "sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw==",
"os": ["darwin"],
"cpu": ["x64"]
"integrity": "sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw=="
},
"@tailwindcss/oxide-freebsd-x64@4.1.7": {
"integrity": "sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw==",
"os": ["freebsd"],
"cpu": ["x64"]
"integrity": "sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw=="
},
"@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7": {
"integrity": "sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g==",
"os": ["linux"],
"cpu": ["arm"]
"integrity": "sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g=="
},
"@tailwindcss/oxide-linux-arm64-gnu@4.1.7": {
"integrity": "sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA==",
"os": ["linux"],
"cpu": ["arm64"]
"integrity": "sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA=="
},
"@tailwindcss/oxide-linux-arm64-musl@4.1.7": {
"integrity": "sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A==",
"os": ["linux"],
"cpu": ["arm64"]
"integrity": "sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A=="
},
"@tailwindcss/oxide-linux-x64-gnu@4.1.7": {
"integrity": "sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg==",
"os": ["linux"],
"cpu": ["x64"]
"integrity": "sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg=="
},
"@tailwindcss/oxide-linux-x64-musl@4.1.7": {
"integrity": "sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA==",
"os": ["linux"],
"cpu": ["x64"]
"integrity": "sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA=="
},
"@tailwindcss/oxide-wasm32-wasi@4.1.7": {
"integrity": "sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A==",
@ -276,26 +258,17 @@
"@napi-rs/wasm-runtime",
"@tybys/wasm-util",
"tslib"
],
"cpu": ["wasm32"]
]
},
"@tailwindcss/oxide-win32-arm64-msvc@4.1.7": {
"integrity": "sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw==",
"os": ["win32"],
"cpu": ["arm64"]
"integrity": "sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw=="
},
"@tailwindcss/oxide-win32-x64-msvc@4.1.7": {
"integrity": "sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ==",
"os": ["win32"],
"cpu": ["x64"]
"integrity": "sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ=="
},
"@tailwindcss/oxide@4.1.7": {
"integrity": "sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ==",
"dependencies": [
"detect-libc",
"tar"
],
"optionalDependencies": [
"@tailwindcss/oxide-android-arm64",
"@tailwindcss/oxide-darwin-arm64",
"@tailwindcss/oxide-darwin-x64",
@ -307,9 +280,10 @@
"@tailwindcss/oxide-linux-x64-musl",
"@tailwindcss/oxide-wasm32-wasi",
"@tailwindcss/oxide-win32-arm64-msvc",
"@tailwindcss/oxide-win32-x64-msvc"
],
"scripts": true
"@tailwindcss/oxide-win32-x64-msvc",
"detect-libc",
"tar"
]
},
"@tybys/wasm-util@0.9.0": {
"integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
@ -355,48 +329,31 @@
"integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w=="
},
"jiti@2.4.2": {
"integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
"bin": true
"integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="
},
"lightningcss-darwin-arm64@1.30.1": {
"integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==",
"os": ["darwin"],
"cpu": ["arm64"]
"integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ=="
},
"lightningcss-darwin-x64@1.30.1": {
"integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==",
"os": ["darwin"],
"cpu": ["x64"]
"integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA=="
},
"lightningcss-freebsd-x64@1.30.1": {
"integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==",
"os": ["freebsd"],
"cpu": ["x64"]
"integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig=="
},
"lightningcss-linux-arm-gnueabihf@1.30.1": {
"integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==",
"os": ["linux"],
"cpu": ["arm"]
"integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q=="
},
"lightningcss-linux-arm64-gnu@1.30.1": {
"integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==",
"os": ["linux"],
"cpu": ["arm64"]
"integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw=="
},
"lightningcss-linux-arm64-musl@1.30.1": {
"integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
"os": ["linux"],
"cpu": ["arm64"]
"integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ=="
},
"lightningcss-linux-x64-gnu@1.30.1": {
"integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==",
"os": ["linux"],
"cpu": ["x64"]
"integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw=="
},
"lightningcss-linux-x64-musl@1.30.1": {
"integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==",
"os": ["linux"],
"cpu": ["x64"]
"integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ=="
},
"lightningcss-wasm@1.30.1": {
"integrity": "sha512-KJTnKEn0REV6DoJzxG0m5EKVEFA1CVE1isDYpXjsuqWXwLKFPJtA9Z9BSzPZJwAZFN2KaUzy+IWGP59p5bm2sA==",
@ -405,21 +362,15 @@
]
},
"lightningcss-win32-arm64-msvc@1.30.1": {
"integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==",
"os": ["win32"],
"cpu": ["arm64"]
"integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA=="
},
"lightningcss-win32-x64-msvc@1.30.1": {
"integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
"os": ["win32"],
"cpu": ["x64"]
"integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg=="
},
"lightningcss@1.30.1": {
"integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
"dependencies": [
"detect-libc"
],
"optionalDependencies": [
"detect-libc",
"lightningcss-darwin-arm64",
"lightningcss-darwin-x64",
"lightningcss-freebsd-x64",
@ -462,8 +413,7 @@
"mdurl",
"punycode.js",
"uc.micro"
],
"bin": true
]
},
"mdurl@2.0.0": {
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
@ -481,8 +431,7 @@
]
},
"mkdirp@3.0.1": {
"integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
"bin": true
"integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="
},
"napi-wasm@1.1.3": {
"integrity": "sha512-h/4nMGsHjZDCYmQVNODIrYACVJ+I9KItbG+0si6W/jSjdA9JbWDoU4LLeMXVcEQGHjttI2tuXqDrbGF7qkUHHg=="
@ -749,7 +698,6 @@
"https://deno.land/x/lume@v3.0.2/plugins/minify_html.ts": "f8a817bc43107389d0ce4ce9a048ced06c001407da34e9e2b8ef7a19db90c933",
"https://deno.land/x/lume@v3.0.2/plugins/modify_urls.ts": "9c1b7cc856038d46b64f395065d2852f9b4af94ef9a41c2e9e3021d448b1d3b6",
"https://deno.land/x/lume@v3.0.2/plugins/modules.ts": "4e177c0ffe972b9deef10db2bf0ae52b405418af4dbac03db9e7ffbd6a3ec6ae",
"https://deno.land/x/lume@v3.0.2/plugins/nav.ts": "505b2140d35c992e05b471f34e7b9f38ddd1cd13d588eb9fb3622ce59592ccac",
"https://deno.land/x/lume@v3.0.2/plugins/paginate.ts": "6a1a9a24d0fabed2f722a6a6f29d98559219c69475685034181816e82d367f2e",
"https://deno.land/x/lume@v3.0.2/plugins/redirects.ts": "5ae50e20bc32b0e8836920148b25ea3ae057a209b62691a67471fa4a52e6507a",
"https://deno.land/x/lume@v3.0.2/plugins/resolve_urls.ts": "910dbccd25fcacacc72d577a3df37c5f3cc4adce0ec52b2fc8903863c2e2afae",
@ -789,7 +737,6 @@
"https://deno.land/x/vento@v1.13.0/src/loader.ts": "d6033a30c127fe942190c887c0b6673366e54887079f3f0f73d8ba0aeca9176c",
"https://deno.land/x/vento@v1.13.0/src/tokenizer.ts": "127ddad02054f63b8b646e4dfbf555e1e34e9b8dcbd58d86b3729a4de95abd27",
"https://deno.land/x/vento@v1.13.0/src/transformer.ts": "9ff70c554b3889151745b5f7117bc5c02b889e6e16ca53e5b8c1fa6b767fb451",
"https://deno.land/x/xml@6.0.4/_types.ts": "a7435282a7a775d80f8528aeec49996192c47fef8a8f616a1b216792424dc125",
"https://deno.land/x/xml@6.0.4/mod.ts": "b59e5c0dd9fe7ed597c21c39aacf089aa82fe5c5eaad3f411a43a9c104359f4e",
"https://deno.land/x/xml@6.0.4/parse.ts": "1302c75d8fd40df39310bb8ae6716302f0b77c61c607437dc023d3d792a0df54",
"https://deno.land/x/xml@6.0.4/stringify.ts": "0e2f79798d413c5386bf5de90bbe9901f99951ceae484050a8ef89e2b4da9dd0",

23
site.ts
View file

@ -1,17 +1,16 @@
import lume from "lume/mod.ts";
import checkUrls from "lume/plugins/check_urls.ts";
import codeHighlight from "lume/plugins/code_highlight.ts";
import extractDate from "lume/plugins/extract_date.ts";
import feed from "lume/plugins/feed.ts";
import inline from "lume/plugins/inline.ts";
import lightningcss from "lume/plugins/lightningcss.ts";
// import minifyHtml from "lume/plugins/minify_html.ts";
import nav from "lume/plugins/nav.ts";
import codeHighlight from "lume/plugins/code_highlight.ts";
import redirects from "lume/plugins/redirects.ts";
import resolveUrls from "lume/plugins/resolve_urls.ts";
import sitemap from "lume/plugins/sitemap.ts";
import slugifyUrls from "lume/plugins/slugify_urls.ts";
import tailwindcss from "lume/plugins/tailwindcss.ts";
import lightningcss from "lume/plugins/lightningcss.ts";
import resolveUrls from "lume/plugins/resolve_urls.ts";
import slugifyUrls from "lume/plugins/slugify_urls.ts";
import checkUrls from "lume/plugins/check_urls.ts";
import inline from "lume/plugins/inline.ts";
import feed from "lume/plugins/feed.ts";
import sitemap from "lume/plugins/sitemap.ts";
import minifyHtml from "lume/plugins/minify_html.ts";
const siteName = "RGBCube";
const siteDescription =
@ -174,12 +173,10 @@ site.use(checkUrls({
throw: true,
}));
site.use(nav());
site.use(feed({
output: ["/blog.rss", "/blog.json"],
query: "url^=/blog/ url!=/blog/ unlisted!=true",
query: "type=article unlisted!=true",
sort: "date=asc",
limit: Infinity,

View file

@ -31,14 +31,13 @@ prevent_zoom: true
<a class="size-[100%] bg-black hover:bg-[olive]" href={{ "/" |> url(true) }}></a>
{{ /set }}
{{ include "cube.vto" {
cube_face_front: cube_face,
cube_face_back: cube_face,
cube_face_left: cube_face,
cube_face_right: cube_face,
cube_face_top: cube_face,
cube_face_bottom: cube_face,
{{ set cube_face_front = cube_face }}
{{ set cube_face_back = cube_face }}
{{ set cube_face_left = cube_face }}
{{ set cube_face_right = cube_face }}
{{ set cube_face_top = cube_face }}
{{ set cube_face_bottom = cube_face }}
cube_size: "5rem",
cube_last: true,
} }}
{{ set cube_size = "5rem" }}
{{ set cube_last = true }}
{{ include "cube.vto" }}

View file

@ -60,7 +60,7 @@ layout: null
<link href="/assets/css/default.css" rel="stylesheet" inline>
</head>
<body class="bg-white text-black dark:bg-black dark:text-white overflow-x-hidden">
<body class="bg-white text-black dark:bg-black dark:text-white">
{{ content }}
</body>

View file

@ -1,7 +0,0 @@
---
layout: text.vto
---
{{ content }}
{{ include "map.vto" { url } }}

View file

@ -1,70 +0,0 @@
{{ function process(entry, toplevel = false) }}
<div class="relative p-4{{ if !toplevel }} my-4 md:mx-8{{ /if }} border-1 bg-white dark:bg-black">
{{ if entry.data.title }}
<a
class="
reset
absolute inset-0
p-4
bg-white hover:bg-[pink]
dark:bg-black dark:hover:bg-[olive]
{{ if entry.data.url == url }}
border-2 border-dashed border-black dark:border-white
{{ /if }}
"
style="margin:0" href="{{ entry.data.url }}"
>{{ entry.data.mapTitle ?? entry.data.title |> md }}</a>
<div class="invisible">{{ entry.data.mapTitle ?? entry.data.title |> md }}</div>
{{ else }}
{{> const content = entry.data.basename.replace(/-/g, " ").replace(/\b\w/g, (char) => char.toUpperCase()) }}
<p
class="
absolute inset-0
p-4
bg-[repeating-linear-gradient(-45deg,transparent_0rem,transparent_1rem,#ddd_1rem,#ddd_2rem)]
dark:bg-[repeating-linear-gradient(-45deg,transparent_0rem,transparent_1rem,#222_1rem,#222_2rem)]
"
style="
margin:0;
"
>{{ content }}</p>
<div class="invisible">{{ content }}</div>
{{ /if }}
{{ if entry.children && entry.children.length > 0 }}
<ul>
{{ for child of entry.children }}
<li class="reset">
{{ process(child) }}
</li>
{{ /for }}
</ul>
{{ /if }}
</div>
{{ /function }}
{{> const sharedPrefix = (x, y) => {
const length = Math.min(x.length, y.length);
let prefix = "";
for (let index = 0; index < length; index++) {
if (x[index] === y[index]) {
prefix += x[index];
} else {
break;
}
}
return prefix;
} }}
{{> const anchorUrls = search.pages("mapAnchor=true").map((page) => page.url) }}
{{> const shared = anchorUrls.map((anchorUrl) => sharedPrefix(anchorUrl, url)) }}
{{> const longest = shared.reduce((longest, current) => current.length > longest.length ? current : longest) }}
{{ process(nav.menu(longest), toplevel = true) }}

View file

@ -9,7 +9,7 @@ layout: default.vto
transform-[rotateX(180deg)]
text-black text-2xl font-bold
absolute w-[inherit] z-999
not-md:overflow-x-auto
overflow-x-auto
">
<div class="transform-[rotateX(180deg)] flex items-start justify-evenly mx-px">
{{> const style = `
@ -24,7 +24,6 @@ layout: default.vto
<a class="{{ style }}" href="/">home</a>
<a class="{{ style }}" href="/about/">about</a>
<a class="{{ style }}" href="/blog/">blog</a>
<a class="{{ style }}" href="/dump/">dump</a>
<a class="{{ style }}" href="/contact/">contact</a>
</div>
</nav>
@ -36,15 +35,14 @@ layout: default.vto
<ol id="footnotes"></ol>
</div>
<footer class="flex justify-center text-sm wrap-anywhere mt-auto p-1.5 pb-2 border-t-4 border-x-4 border-black dark:border-white">
<footer class="flex justify-center text-sm wrap-anywhere mt-auto p-1.5 pb-2 border-t-4 border-x-4">
Copyright © {{ Temporal.Now.plainDateISO().year }}
<a draggable="false" class="flex items-center pl-2" href="/" alt="RGBCube">
{{ include "rgbcube.vto" {
cube_size: "0.75rem",
cube_small: true,
cube_last: true,
} }}
{{ set cube_size = "0.75rem" }}
{{ set cube_small = true }}
{{ set cube_last = true }}
{{ include "rgbcube.vto" }}
</a>
</footer>

View file

@ -125,7 +125,7 @@
}
}
body {
html, body {
height: 100dvh;
width: 100dvw;
}
@ -164,7 +164,7 @@ body {
}
}
a:not(.reset) {
a {
@apply m-0;
* {
@ -256,7 +256,7 @@ body {
}
}
li:not(.reset) {
li {
@apply relative pl-4;
ul &::before {

View file

@ -18,13 +18,13 @@ Blog Articles
<style>ul * { overflow-wrap:anywhere !important; }</style>
<ul>
{{ for entry of search.pages("url^=/blog/ unlisted!=true", "order=asc date=desc")}}
{{ for article of search.pages("type=article unlisted!=true", "order=asc date=desc")}}
<li class="flex">
<a id="matrix" class="text-right font-mono" style="margin-right:calc(var(--spacing)*2)" href="{{ entry.url }}">
{{ entry.date.toISOString().slice(2, 10).replaceAll("-", " ") }}
<a id="matrix" class="text-right font-mono" style="margin-right:calc(var(--spacing)*2)" href="{{ article.url }}">
{{ article.date.toISOString().slice(2, 10).replaceAll("-", " ") }}
</a>
{{ entry.title |> md }}
{{ article.title |> md }}
</li>
{{ /for }}
</ul>

View file

@ -2,6 +2,5 @@ export default {
layout: "text.vto",
type: "article",
title: null,
description: null,
};

View file

@ -1,13 +0,0 @@
---
layout: dump.vto
title: D U M P
description: RAMBLINGS OF A MADMAN
mapTitle: RAMBLINGS OF A MADMAN
mapAnchor: true
---
<h1>Info and Thought Dumps</h1>
<p>Here is where I store all my random thoughts, grievences, random bits of information and perhaps the nice stuff I encounter.</p>
<p>Nothing here is blog-post tier good, so do not expect very high quality.</p>

View file

@ -1,7 +0,0 @@
export default {
layout: "dump.vto",
type: "article",
title: null,
description: null,
};

View file

@ -1,23 +0,0 @@
---
title: Go's iterators suit the moronic language
date: 2025-06-07
---
Just had to deal with Go iterators and I can say that they fit the language
well.
They're push iterators. It's as if you're just appending items to an array.
Actually much easier to explain when you are teaching the language to begginers
while not expecting them to use it for much other than surface level utilities.
They compile down to nonlocal returns to try to keep it fast, but of course it's
still slower than a state machine, in typical Go fashion
And when you know slightly more than a single lick of programming, the design
and implementation of them looks very obviously moronic and catered to
beginners.
Some people were arguing that this approach makes it more "functional" but
that's very far from the truth. Push iterators are very imperative, pull
iterators (`Iterator::next`, which returns `Option<T>`) are actual functional,
correct and fast way to do it.

View file

@ -1,19 +0,0 @@
---
title: Analytics
---
This site and other websites under this domain run
[Plausible](https://plausible.io/) analytics on a self-hosted instance at
[shekels.rgbcu.be](https://shekels.rgbcu.be/).
None of your data is being sold, etc etc etc. I don't even collect much,
currently only visitor data which includes your platform and geoghraphic
location.
You can view it here for these domains:
- [rgbcu.be](https://shekels.rgbcu.be/rgbcu.be)
- [shekels.rgbcu.be](https://shekels.rgbcu.be/shekels.rgbcu.be)
- [git.rgbcu.be](https://shekels.rgbcu.be/git.rgbcu.be)
No other domain is marked public, so don't bother searching.

View file

@ -29,10 +29,6 @@ prevent_zoom: true
<a draggable="false" class="{{ style }}" href="/about/">about</a>
{{ /set }}
{{ set cube_face_back }}
<a draggable="false" class="{{ style }}" href="/dump/">dump</a>
{{ /set }}
{{ set cube_face_top }}
<a draggable="false" class="{{ style }}" href="https://github.com/RGBCube">github</a>
{{ /set }}
@ -45,11 +41,6 @@ prevent_zoom: true
<a draggable="false" class="{{ style }}" href="/blog/">blog</a>
{{ /set }}
{{ set cube_face_bottom }}
<a draggable="false" class="{{ style }}" href="https://x.com/HSVSphere">xitter</a>
{{ /set }}
{{ include "rgbcube.vto" {
cube_size: "5rem",
cube_last: true,
} }}
{{ set cube_size = "5rem" }}
{{ set cube_last = true }}
{{ include "rgbcube.vto" }}