diff --git a/deno.lock b/deno.lock index e736f75..1d63253 100644 --- a/deno.lock +++ b/deno.lock @@ -666,6 +666,7 @@ "https://deno.land/x/lume@v3.0.2/deps/hex.ts": "828718f24a780ff3ade8d0a8a5b57497cb31c257560ef12af99b6eb1a31e3bbd", "https://deno.land/x/lume@v3.0.2/deps/highlight.ts": "e8f830a1137ff7e8246ce21518452b8cbf8089db409458c6d9c31040c11d8428", "https://deno.land/x/lume@v3.0.2/deps/http.ts": "6d9add7c6fe0c0381050aa773ae8590166ccc84c5115d2cde271320c315a110d", + "https://deno.land/x/lume@v3.0.2/deps/icons.ts": "4379e1443d982ab4f85237342d165ae54c981cdb7e06480c222d208999e21f15", "https://deno.land/x/lume@v3.0.2/deps/init.ts": "05d45af66ebdfe63e43540618f51ece8f99d98dc49de890f10eeb43abe9ed0f3", "https://deno.land/x/lume@v3.0.2/deps/jsonc.ts": "79f0eddc3c9e593310eb8e5918eb1506b1c7d7816e4ecb96894f634ecbe626ff", "https://deno.land/x/lume@v3.0.2/deps/lightningcss.ts": "5f5167c6eb306ef759f0043f8f33f2eaf63c69210aa1aa837505e990ee619c46", @@ -691,6 +692,7 @@ "https://deno.land/x/lume@v3.0.2/plugins/code_highlight.ts": "ac6327e688e9e8fbd7798bdcc5f76b46d27db3e22ea3b74f545dc3296e8a1261", "https://deno.land/x/lume@v3.0.2/plugins/extract_date.ts": "38af8e5960d66a74a72977eb19521da4353ab32d3941e97c1526aa3b91175a9e", "https://deno.land/x/lume@v3.0.2/plugins/feed.ts": "b07aed4cda270cfaacb26f9974dbb962f936dbfde4d770c53e478e4682c791e1", + "https://deno.land/x/lume@v3.0.2/plugins/icons.ts": "c69428254024d694eca34f9b5c4888aedf83d2d9b38f860533952c28cc814333", "https://deno.land/x/lume@v3.0.2/plugins/inline.ts": "737d7de09d196476b55ecbe7ddb0e651ba2d5d39ca5a418cb15ff48e124907c1", "https://deno.land/x/lume@v3.0.2/plugins/json.ts": "5c49499e56b919ec848d4118ec97dd4fe0a323a6cc4c648dc45ab55297614c12", "https://deno.land/x/lume@v3.0.2/plugins/lightningcss.ts": "6b5236cc78c1ae4af5b4a0037a0345797381f5043c667ae1ddeb4f67e445c7c4", diff --git a/site.ts b/site.ts index 7b59c63..89c4035 100644 --- a/site.ts +++ b/site.ts @@ -1,25 +1,25 @@ import lume from "lume/mod.ts"; -import extractDate from "lume/plugins/extract_date.ts"; -import codeHighlight from "lume/plugins/code_highlight.ts"; +import extract_date from "lume/plugins/extract_date.ts"; +import code_highlight from "lume/plugins/code_highlight.ts"; import redirects from "lume/plugins/redirects.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 resolve_urls from "lume/plugins/resolve_urls.ts"; +import slugify_urls from "lume/plugins/slugify_urls.ts"; +import check_urls 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"; +import minify_html from "lume/plugins/minify_html.ts"; -const siteName = "RGBCube"; -const siteDescription = +const site_name = "RGBCube"; +const site_description = "The home directory and journal of RGBCube and his work."; const author = "RGBCube"; const color = "#00FFFF"; -const pathAssets = "/assets"; +const path_assets = "/assets"; const site = lume({ src: "./site", @@ -31,9 +31,9 @@ const site = lume({ site.data("layout", "default.vto"); -site.data("site_name", siteName); -site.data("title", siteName); -site.data("description", siteDescription); +site.data("site_name", site_name); +site.data("title", site_name); +site.data("description", site_description); site.data("author", author); site.data("color", color); @@ -69,52 +69,20 @@ site.process([".html"], (pages) => { element.parentNode!.insertBefore(wrapper, element); wrapper.appendChild(element); }); - - document - .querySelectorAll(".text-content :where(h1, h2, h3, h4, h5, h6)") - .forEach((header) => { - if (header.id || header.closest("a") || header.querySelector("a")) { - return; - } - - const textNormalized = header - .textContent! - .toLowerCase() - .replace(/[^a-z0-9\s-]/g, "") - .replace(/\s+/g, "-") - .replace(/-+/g, "-") - .trim(); - - let textUnique = textNormalized; - let counter = 1; - - while (document.getElementById(textUnique)) { - counter++; - textUnique = `${textNormalized}-${counter}`; - } - - header.id = textUnique; - - const link = document.createElement("a"); - link.setAttribute("href", "#" + textUnique); - - header.parentNode!.insertBefore(link, header); - link.appendChild(header); - }); }); }); -site.use(extractDate()); +site.use(extract_date()); site.use(redirects()); site.use(tailwindcss()); -site.use(codeHighlight()); +site.use(code_highlight()); -site.use(resolveUrls()); -site.use(slugifyUrls({ +site.use(resolve_urls()); +site.use(slugify_urls({ extensions: "*", })); -site.use(checkUrls({ +site.use(check_urls({ strict: true, throw: true, })); @@ -127,12 +95,12 @@ site.use(feed({ limit: Infinity, info: { - title: siteName, - description: siteDescription, + title: site_name, + description: site_description, authorName: author, - image: `${pathAssets}/icons/icon.webp`, - icon: `${pathAssets}/icons/icon.webp`, + image: `${path_assets}/icons/icon.webp`, + icon: `${path_assets}/icons/icon.webp`, color, @@ -154,7 +122,7 @@ site.use(sitemap({ site.use(lightningcss()); // TODO: LightningCSS doesn't handle inline styles. site.use(inline()); -site.use(minifyHtml({ +site.use(minify_html({ options: { // TODO: This breaks tailwind. // minify_css: true, diff --git a/site/404.vto b/site/404.vto index 62f4a22..209b2ad 100644 --- a/site/404.vto +++ b/site/404.vto @@ -4,20 +4,10 @@ prevent_zoom: true --- @@ -38,6 +28,4 @@ prevent_zoom: true {{ set cube_face_top = cube_face }} {{ set cube_face_bottom = cube_face }} -{{ set cube_size = "5rem" }} -{{ set cube_last = true }} {{ include "cube.vto" }} diff --git a/site/_includes/cube.vto b/site/_includes/cube.vto index d88bc3d..814701c 100644 --- a/site/_includes/cube.vto +++ b/site/_includes/cube.vto @@ -1,43 +1,44 @@ -{{ set cube_minus_px = cube_small ? "" : "- 1px" }} - -{{ if cube_last }} -{{ /if }} - {{ cube_face_front }} - {{ cube_face_back }} - {{ cube_face_left }} - {{ cube_face_right }} - {{ cube_face_top }} - {{ cube_face_bottom }} + {{> const style = ` + size-(--cube-width) absolute + flex items-center justify-center + ` }} + {{ cube_face_front }} + {{ cube_face_back }} + {{ cube_face_left }} + {{ cube_face_right }} + {{ cube_face_top }} + {{ cube_face_bottom }} -{{ if cube_last }} -{{ /if }} diff --git a/site/_includes/default.vto b/site/_includes/default.vto index 0b0912e..d462484 100644 --- a/site/_includes/default.vto +++ b/site/_includes/default.vto @@ -7,7 +7,7 @@ layout: null - + diff --git a/site/_includes/rgbcube.vto b/site/_includes/rgbcube.vto deleted file mode 100644 index 9752f98..0000000 --- a/site/_includes/rgbcube.vto +++ /dev/null @@ -1,72 +0,0 @@ - - -{{ include "cube.vto" }} - diff --git a/site/_includes/text.vto b/site/_includes/text.vto index ad7d090..554506e 100644 --- a/site/_includes/text.vto +++ b/site/_includes/text.vto @@ -2,8 +2,8 @@ layout: default.vto --- -
-
+
+
diff --git a/site/assets/css/default.css b/site/assets/css/default.css index ce29112..92eaf27 100644 --- a/site/assets/css/default.css +++ b/site/assets/css/default.css @@ -125,11 +125,6 @@ } } -html, body { - height: 100dvh; - width: 100dvw; -} - .text-content { @apply space-y-3; @@ -165,47 +160,19 @@ html, body { } a { - @apply m-0; + @apply inline-block wrap-anywhere text-[red] dark:text-[yellow] px-1 pb-0.75 + border-2 border-[transparent] border-dashed; * { @apply wrap-anywhere; } - &:not(:has(> code:only-child)) { - @apply px-1; - - &:not(.font-mono) { - @apply pb-0.75; - } + &:hover { + @apply border-[red] dark:border-[yellow]; } - &:not(:has(h1, h2, h3, h4, h5, h6)) { - @apply inline-block wrap-anywhere text-[red] dark:text-[yellow] border-2 - border-[transparent] border-dashed; - - &:has(> code:only-child) { - @apply border-dotted; - } - - &:hover { - @apply border-[red] dark:border-[yellow]; - } - - &:active { - @apply border-[fuchsia] dark:border-[springgreen] animate-to-the-future; - } - } - - & :where(h1, h2, h3, h4, h5, h6) { - @apply before:underline before:underline-offset-4; - - * { - @apply inline-block; - } - - &:hover::before { - @apply italic text-[red] dark:text-[yellow]; - } + &:active { + @apply border-[fuchsia] dark:border-[springgreen] animate-to-the-future; } } @@ -227,20 +194,12 @@ html, body { @apply border-black dark:border-white; } - code:not(pre > code) { - @apply border-1 border-dotted px-2 py-0.5 border-black dark:border-white; - - a:hover &, a:active & { - @apply border-transparent; - } - } - pre code, pre code * { @apply whitespace-pre; } div:has(> pre code) { - @apply outline outline-dotted outline-offset-1 outline-[#444] border-1 + @apply outline-1 outline-dotted outline-offset-1 outline-[#444] border-1 border-black p-2 bg-[#eee] dark:outline-[#bbb] dark:border-white dark:bg-[#111]; } @@ -261,7 +220,8 @@ html, body { } hr { - @apply border-1 border-black dark:border-white; + @apply border-1 border-black dark:border-white + -mx-4; /* Keep in sync with p-N in text.vto. */ } blockquote { diff --git a/site/blog.vto b/site/blog.vto index d524fc1..9f7465c 100644 --- a/site/blog.vto +++ b/site/blog.vto @@ -9,8 +9,8 @@ title: about:blog Blog Articles - rss - json + rss + json @@ -20,183 +20,14 @@ Blog Articles - - - - diff --git a/site/contact.md b/site/contact.md index 6e48916..7cdd895 100644 --- a/site/contact.md +++ b/site/contact.md @@ -35,5 +35,5 @@ Here are some other useful links as well: const element = document.getElementById("bot-block"); element.href = real; - element.children[0].textContent = real.substring(7); + element.children[0].innerHTML = real.substring(7); diff --git a/site/index.vto b/site/index.vto index 2bbb4ff..d8b4cb0 100644 --- a/site/index.vto +++ b/site/index.vto @@ -3,18 +3,68 @@ prevent_zoom: true --- @@ -41,6 +91,4 @@ prevent_zoom: true blog {{ /set }} -{{ set cube_size = "5rem" }} -{{ set cube_last = true }} -{{ include "rgbcube.vto" }} +{{ include "cube.vto" }}