From 9b392b66ee133ada0a1342c649036740c4b2b908 Mon Sep 17 00:00:00 2001 From: Glen Huang Date: Wed, 8 Oct 2025 20:17:51 +0800 Subject: [PATCH] docs: move sites to pkgs/docs-site --- {site => pkgs/docs-site}/.envrc | 0 {site => pkgs/docs-site}/.gitignore | 0 {site => pkgs/docs-site}/.npmrc | 0 {site => pkgs/docs-site}/.postcssrc.json | 0 {site => pkgs/docs-site}/.prettierignore | 0 {site => pkgs/docs-site}/.prettierrc | 0 {site => pkgs/docs-site}/README.md | 0 {site => pkgs/docs-site}/default.nix | 0 {site => pkgs/docs-site}/flake-module.nix | 0 {site => pkgs/docs-site}/package-lock.json | 0 {site => pkgs/docs-site}/package.json | 0 {site => pkgs/docs-site}/src/app.d.ts | 0 {site => pkgs/docs-site}/src/app.html | 0 {site => pkgs/docs-site}/src/config.ts | 12 +---- .../docs-site}/src/lib/assets/favicon.svg | 0 .../docs-site/src/lib/docs.ts | 14 ++--- pkgs/docs-site/src/lib/index.ts | 1 + .../src/lib/markdown}/admonition.css | 0 .../docs-site/src/lib/markdown/main.css | 3 ++ .../docs-site/src/lib/markdown}/shiki.css | 0 .../docs-site/src/lib/markdown/vite.ts | 21 +++++--- .../docs-site}/src/routes/+layout.svelte | 21 +++----- pkgs/docs-site/src/routes/+layout.ts | 9 ++++ .../docs-site}/src/routes/+page.svelte | 0 .../src/routes}/[...path]/+page.svelte | 5 +- pkgs/docs-site/src/routes/[...path]/+page.ts | 12 +++++ .../routes/docs/decisions/01-Clan-Modules.md | 0 .../docs/decisions/02-clan-as-library.md | 0 .../decisions/03-adr-numbering-process.md | 0 .../decisions/04-fetching-nix-from-python.md | 0 .../decisions/05-deployment-parameters.md | 0 .../docs/decisions/Architecture-decisions.md | 0 .../src/routes/docs/decisions/template.md | 0 .../docs/getting-started/add-machines.md | 0 .../docs/getting-started/add-services.md | 0 .../routes/docs/getting-started/add-users.md | 0 .../docs/getting-started/configure-disk.md | 0 .../getting-started/continuous-integration.md | 0 .../convert-existing-NixOS-configuration.md | 0 .../creating-your-first-clan.md | 0 .../flash-installer.md | 0 .../install-machine.md | 0 .../deploy-to-virtual-machine.md | 0 .../docs/getting-started/update-machines.md | 0 .../docs/guides/backups/advanced-example.md | 0 .../docs/guides/backups/backup-intro.md | 0 .../docs/guides/backups/digging-deeper.md | 0 .../docs/guides/backups/minimal-example.md | 0 .../docs/guides/contributing/debugging.md | 0 .../docs/guides/contributing/testing.md | 0 .../src/routes/docs/guides/disk-encryption.md | 0 .../docs/guides/disko-templates/community.md | 0 .../src/routes/docs/guides/flake-parts.md | 0 .../docs/guides/inventory/autoincludes.md | 0 .../routes/docs/guides/inventory/inventory.md | 0 .../src/routes/docs/guides/macos.md | 0 .../routes/docs/guides/migrations/disk-id.md | 0 .../migrations/migrate-inventory-services.md | 0 .../guides/migrations/migration-facts-vars.md | 0 .../routes/docs/guides/networking/mesh-vpn.md | 0 .../docs/guides/networking/networking.md | 0 .../src/routes/docs/guides/nixos-rebuild.md | 0 .../docs/guides/nixpkgs-flake-input/index.md | 0 .../src/routes/docs/guides/secrets.md | 0 .../src/routes/docs/guides/secure-boot.md | 0 .../routes/docs/guides/services/community.md | 0 .../services/introduction-to-services.md | 0 .../docs/guides/vars/sops/age-plugins.md | 0 .../guides/vars/vars-advanced-examples.md | 0 .../routes/docs/guides/vars/vars-backend.md | 0 .../routes/docs/guides/vars/vars-concepts.md | 0 .../routes/docs/guides/vars/vars-overview.md | 0 .../docs/guides/vars/vars-troubleshooting.md | 0 .../src/routes/docs/reference/overview.md | 0 .../src/routes/docs/services/community.md | 0 .../src/routes/docs/test/overview.md | 0 {site => pkgs/docs-site}/src/routes/index.css | 0 {site => pkgs/docs-site}/static/robots.txt | 0 {site => pkgs/docs-site}/svelte.config.js | 0 {site => pkgs/docs-site}/tsconfig.json | 0 {site => pkgs/docs-site}/vite.config.ts | 2 +- site/src/lib/index.ts | 1 - site/src/routes/+layout.ts | 17 ------- site/src/routes/blog/+page.svelte | 1 - site/src/routes/docs/+layout.svelte | 51 ------------------- site/src/routes/docs/+page.svelte | 3 -- site/src/routes/docs/[...path]/+page.ts | 24 --------- 87 files changed, 57 insertions(+), 140 deletions(-) rename {site => pkgs/docs-site}/.envrc (100%) rename {site => pkgs/docs-site}/.gitignore (100%) rename {site => pkgs/docs-site}/.npmrc (100%) rename {site => pkgs/docs-site}/.postcssrc.json (100%) rename {site => pkgs/docs-site}/.prettierignore (100%) rename {site => pkgs/docs-site}/.prettierrc (100%) rename {site => pkgs/docs-site}/README.md (100%) rename {site => pkgs/docs-site}/default.nix (100%) rename {site => pkgs/docs-site}/flake-module.nix (100%) rename {site => pkgs/docs-site}/package-lock.json (100%) rename {site => pkgs/docs-site}/package.json (100%) rename {site => pkgs/docs-site}/src/app.d.ts (100%) rename {site => pkgs/docs-site}/src/app.html (100%) rename {site => pkgs/docs-site}/src/config.ts (67%) rename {site => pkgs/docs-site}/src/lib/assets/favicon.svg (100%) rename site/src/routes/docs/index.ts => pkgs/docs-site/src/lib/docs.ts (91%) create mode 100644 pkgs/docs-site/src/lib/index.ts rename {site/src/routes/docs/[...path] => pkgs/docs-site/src/lib/markdown}/admonition.css (100%) rename site/src/routes/docs/[...path]/markdown.css => pkgs/docs-site/src/lib/markdown/main.css (74%) rename {site/src/routes/docs/[...path] => pkgs/docs-site/src/lib/markdown}/shiki.css (100%) rename site/vitePlugins/markdown.ts => pkgs/docs-site/src/lib/markdown/vite.ts (93%) rename {site => pkgs/docs-site}/src/routes/+layout.svelte (79%) create mode 100644 pkgs/docs-site/src/routes/+layout.ts rename {site => pkgs/docs-site}/src/routes/+page.svelte (100%) rename {site/src/routes/docs => pkgs/docs-site/src/routes}/[...path]/+page.svelte (78%) create mode 100644 pkgs/docs-site/src/routes/[...path]/+page.ts rename {site => pkgs/docs-site}/src/routes/docs/decisions/01-Clan-Modules.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/decisions/02-clan-as-library.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/decisions/03-adr-numbering-process.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/decisions/04-fetching-nix-from-python.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/decisions/05-deployment-parameters.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/decisions/Architecture-decisions.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/decisions/template.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/add-machines.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/add-services.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/add-users.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/configure-disk.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/continuous-integration.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/convert-existing-NixOS-configuration.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/creating-your-first-clan.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/deploy-to-physical-machine/flash-installer.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/deploy-to-physical-machine/install-machine.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/deploy-to-virtual-machine.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/getting-started/update-machines.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/backups/advanced-example.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/backups/backup-intro.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/backups/digging-deeper.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/backups/minimal-example.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/contributing/debugging.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/contributing/testing.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/disk-encryption.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/disko-templates/community.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/flake-parts.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/inventory/autoincludes.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/inventory/inventory.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/macos.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/migrations/disk-id.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/migrations/migrate-inventory-services.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/migrations/migration-facts-vars.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/networking/mesh-vpn.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/networking/networking.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/nixos-rebuild.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/nixpkgs-flake-input/index.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/secrets.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/secure-boot.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/services/community.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/services/introduction-to-services.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/vars/sops/age-plugins.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/vars/vars-advanced-examples.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/vars/vars-backend.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/vars/vars-concepts.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/vars/vars-overview.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/guides/vars/vars-troubleshooting.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/reference/overview.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/services/community.md (100%) rename {site => pkgs/docs-site}/src/routes/docs/test/overview.md (100%) rename {site => pkgs/docs-site}/src/routes/index.css (100%) rename {site => pkgs/docs-site}/static/robots.txt (100%) rename {site => pkgs/docs-site}/svelte.config.js (100%) rename {site => pkgs/docs-site}/tsconfig.json (100%) rename {site => pkgs/docs-site}/vite.config.ts (76%) delete mode 100644 site/src/lib/index.ts delete mode 100644 site/src/routes/+layout.ts delete mode 100644 site/src/routes/blog/+page.svelte delete mode 100644 site/src/routes/docs/+layout.svelte delete mode 100644 site/src/routes/docs/+page.svelte delete mode 100644 site/src/routes/docs/[...path]/+page.ts diff --git a/site/.envrc b/pkgs/docs-site/.envrc similarity index 100% rename from site/.envrc rename to pkgs/docs-site/.envrc diff --git a/site/.gitignore b/pkgs/docs-site/.gitignore similarity index 100% rename from site/.gitignore rename to pkgs/docs-site/.gitignore diff --git a/site/.npmrc b/pkgs/docs-site/.npmrc similarity index 100% rename from site/.npmrc rename to pkgs/docs-site/.npmrc diff --git a/site/.postcssrc.json b/pkgs/docs-site/.postcssrc.json similarity index 100% rename from site/.postcssrc.json rename to pkgs/docs-site/.postcssrc.json diff --git a/site/.prettierignore b/pkgs/docs-site/.prettierignore similarity index 100% rename from site/.prettierignore rename to pkgs/docs-site/.prettierignore diff --git a/site/.prettierrc b/pkgs/docs-site/.prettierrc similarity index 100% rename from site/.prettierrc rename to pkgs/docs-site/.prettierrc diff --git a/site/README.md b/pkgs/docs-site/README.md similarity index 100% rename from site/README.md rename to pkgs/docs-site/README.md diff --git a/site/default.nix b/pkgs/docs-site/default.nix similarity index 100% rename from site/default.nix rename to pkgs/docs-site/default.nix diff --git a/site/flake-module.nix b/pkgs/docs-site/flake-module.nix similarity index 100% rename from site/flake-module.nix rename to pkgs/docs-site/flake-module.nix diff --git a/site/package-lock.json b/pkgs/docs-site/package-lock.json similarity index 100% rename from site/package-lock.json rename to pkgs/docs-site/package-lock.json diff --git a/site/package.json b/pkgs/docs-site/package.json similarity index 100% rename from site/package.json rename to pkgs/docs-site/package.json diff --git a/site/src/app.d.ts b/pkgs/docs-site/src/app.d.ts similarity index 100% rename from site/src/app.d.ts rename to pkgs/docs-site/src/app.d.ts diff --git a/site/src/app.html b/pkgs/docs-site/src/app.html similarity index 100% rename from site/src/app.html rename to pkgs/docs-site/src/app.html diff --git a/site/src/config.ts b/pkgs/docs-site/src/config.ts similarity index 67% rename from site/src/config.ts rename to pkgs/docs-site/src/config.ts index 4cae68087..9de5f8557 100644 --- a/site/src/config.ts +++ b/pkgs/docs-site/src/config.ts @@ -1,10 +1,6 @@ -import type { RawNavLink } from "./routes/docs"; +import type { RawNavLink } from "$lib"; -export const blog = { - base: "/blog", -}; -export const docs = { - base: "/docs", +export default { navLinks: [ { label: "Getting Started", @@ -25,7 +21,3 @@ export const docs = { }, ] as RawNavLink[], }; - -export const markdown = { - minLineNumberLines: 4, -}; diff --git a/site/src/lib/assets/favicon.svg b/pkgs/docs-site/src/lib/assets/favicon.svg similarity index 100% rename from site/src/lib/assets/favicon.svg rename to pkgs/docs-site/src/lib/assets/favicon.svg diff --git a/site/src/routes/docs/index.ts b/pkgs/docs-site/src/lib/docs.ts similarity index 91% rename from site/src/routes/docs/index.ts rename to pkgs/docs-site/src/lib/docs.ts index e6bec0a15..a98067ca5 100644 --- a/site/src/routes/docs/index.ts +++ b/pkgs/docs-site/src/lib/docs.ts @@ -1,16 +1,16 @@ -import * as config from "~/config"; +import config from "~/config"; export class Docs { articles: Record Promise
> = {}; navLinks: NavLink[] = []; async init() { this.articles = Object.fromEntries( - Object.entries(import.meta.glob
("./**/*.md")).map( - ([key, fn]) => [key.slice("./".length, -".md".length), fn], + Object.entries(import.meta.glob
("../routes/docs/**/*.md")).map( + ([key, fn]) => [key.slice("../routes/docs/".length, -".md".length), fn], ), ); this.navLinks = await Promise.all( - config.docs.navLinks.map((navLink) => this.#normalizeNavLink(navLink)), + config.navLinks.map((navLink) => this.#normalizeNavLink(navLink)), ); return this; } @@ -23,7 +23,7 @@ export class Docs { } return { label: (await article()).frontmatter.title, - link: `${config.docs.base}/${navLink}`, + link: `/${navLink}`, external: false, }; } @@ -46,7 +46,7 @@ export class Docs { } return { label: navLink.label ?? (await article()).frontmatter.title, - link: `${config.docs.base}/${navLink.slug}`, + link: `/${navLink.slug}`, badge: normalizeBadge(navLink.badge), external: false, }; @@ -98,7 +98,7 @@ export class Docs { .map((item) => this.#normalizeNavLink({ label: item.frontmatter.title, - link: `${config.docs.base}/${item.key}`, + link: `/${item.key}`, }), ), ); diff --git a/pkgs/docs-site/src/lib/index.ts b/pkgs/docs-site/src/lib/index.ts new file mode 100644 index 000000000..0df792aea --- /dev/null +++ b/pkgs/docs-site/src/lib/index.ts @@ -0,0 +1 @@ +export * from "./docs"; diff --git a/site/src/routes/docs/[...path]/admonition.css b/pkgs/docs-site/src/lib/markdown/admonition.css similarity index 100% rename from site/src/routes/docs/[...path]/admonition.css rename to pkgs/docs-site/src/lib/markdown/admonition.css diff --git a/site/src/routes/docs/[...path]/markdown.css b/pkgs/docs-site/src/lib/markdown/main.css similarity index 74% rename from site/src/routes/docs/[...path]/markdown.css rename to pkgs/docs-site/src/lib/markdown/main.css index 3ac939325..9241d9544 100644 --- a/site/src/routes/docs/[...path]/markdown.css +++ b/pkgs/docs-site/src/lib/markdown/main.css @@ -1,3 +1,6 @@ +@import url("./shiki.css"); +@import url("./admonition.css"); + code { font-family: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, diff --git a/site/src/routes/docs/[...path]/shiki.css b/pkgs/docs-site/src/lib/markdown/shiki.css similarity index 100% rename from site/src/routes/docs/[...path]/shiki.css rename to pkgs/docs-site/src/lib/markdown/shiki.css diff --git a/site/vitePlugins/markdown.ts b/pkgs/docs-site/src/lib/markdown/vite.ts similarity index 93% rename from site/vitePlugins/markdown.ts rename to pkgs/docs-site/src/lib/markdown/vite.ts index 5b8a880ef..675f1a444 100644 --- a/site/vitePlugins/markdown.ts +++ b/pkgs/docs-site/src/lib/markdown/vite.ts @@ -14,7 +14,6 @@ import rehypeAutolinkHeadings from "rehype-autolink-headings"; import { toc } from "mdast-util-toc"; import type { Nodes } from "mdast"; import type { Element } from "hast"; -import * as config from "../src/config"; import { transformerNotationDiff, transformerNotationHighlight, @@ -25,7 +24,17 @@ import { visit } from "unist-util-visit"; import { h } from "hastscript"; import type { PluginOption } from "vite"; -export default function (): PluginOption { +export type Options = { + codeLightTheme?: string; + codeDarkTheme?: string; + minLineNumberLines?: number; +}; + +export default function ({ + codeLightTheme = "catppuccin-latte", + codeDarkTheme = "catppuccin-macchiato", + minLineNumberLines = 4, +}: Options = {}): PluginOption { return { name: "markdown-loader", async transform(code, id) { @@ -42,8 +51,8 @@ export default function (): PluginOption { .use(rehypeShiki, { defaultColor: false, themes: { - light: "catppuccin-latte", - dark: "catppuccin-macchiato", + light: codeLightTheme, + dark: codeDarkTheme, }, transformers: [ transformerNotationDiff({ @@ -53,7 +62,7 @@ export default function (): PluginOption { transformerRenderIndentGuides(), transformerMetaHighlight(), transformerLineNumbers({ - minLines: config.markdown.minLineNumberLines, + minLines: minLineNumberLines, }), ], }) @@ -187,7 +196,7 @@ function linkMigration() { if (!cleanUrl.startsWith("/")) { throw new Error(`invalid doc link: ${cleanUrl}`); } - node.url = `${config.docs.base}/${cleanUrl}`; + node.url = `/docs/${cleanUrl}`; }); }; } diff --git a/site/src/routes/+layout.svelte b/pkgs/docs-site/src/routes/+layout.svelte similarity index 79% rename from site/src/routes/+layout.svelte rename to pkgs/docs-site/src/routes/+layout.svelte index 76becbda9..68d9acba4 100644 --- a/site/src/routes/+layout.svelte +++ b/pkgs/docs-site/src/routes/+layout.svelte @@ -1,16 +1,14 @@ @@ -19,18 +17,11 @@
- +
diff --git a/pkgs/docs-site/src/routes/+layout.ts b/pkgs/docs-site/src/routes/+layout.ts new file mode 100644 index 000000000..523fda111 --- /dev/null +++ b/pkgs/docs-site/src/routes/+layout.ts @@ -0,0 +1,9 @@ +import { Docs } from "$lib"; + +export const prerender = true; + +export async function load() { + return { + docs: await new Docs().init(), + }; +} diff --git a/site/src/routes/+page.svelte b/pkgs/docs-site/src/routes/+page.svelte similarity index 100% rename from site/src/routes/+page.svelte rename to pkgs/docs-site/src/routes/+page.svelte diff --git a/site/src/routes/docs/[...path]/+page.svelte b/pkgs/docs-site/src/routes/[...path]/+page.svelte similarity index 78% rename from site/src/routes/docs/[...path]/+page.svelte rename to pkgs/docs-site/src/routes/[...path]/+page.svelte index 7ad02442d..d7abf9dd3 100644 --- a/site/src/routes/docs/[...path]/+page.svelte +++ b/pkgs/docs-site/src/routes/[...path]/+page.svelte @@ -1,7 +1,5 @@ @@ -16,7 +14,6 @@ - diff --git a/site/src/routes/docs/+page.svelte b/site/src/routes/docs/+page.svelte deleted file mode 100644 index 7ec79901c..000000000 --- a/site/src/routes/docs/+page.svelte +++ /dev/null @@ -1,3 +0,0 @@ -

What is Clan

- -Content diff --git a/site/src/routes/docs/[...path]/+page.ts b/site/src/routes/docs/[...path]/+page.ts deleted file mode 100644 index eb3d2ab34..000000000 --- a/site/src/routes/docs/[...path]/+page.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { error } from "@sveltejs/kit"; - -const articles = Object.fromEntries( - Object.entries( - import.meta.glob<{ - content: string; - frontmatter: Record; - toc: string; - }>("../**/*.md"), - ).map(([key, fn]) => [key.slice("../".length, -".md".length), fn]), -); - -export async function load({ params }) { - const path = params.path.endsWith("/") - ? params.path.slice(0, -1) - : params.path; - const article = articles[path]; - if (!article) { - error(404, ""); - } - - const { frontmatter, toc, content } = await article(); - return { frontmatter, toc, content }; -}