この source は、この repo 自身の Pages 配信実装 と Quartz 4 の公式 docs を並べて読むためのもの。kouchou-ai 本体ではなく、kouchou-ai-developer-wiki の公開方法に関する一次参照として使う。
Pre-switch repo observation
- 現状の Pages 配信は
mkdocs.yml、requirements-pages.txt、scripts/build_pages_docs.py、.github/workflows/deploy-pages.ymlで成立している。mkdocs.ymlはdocs_dir: .pages/docs、workflow は Python を立ててmkdocs buildする構成。mkdocs.yml/.github/workflows/deploy-pages.yml/requirements-pages.txtより scripts/build_pages_docs.pyはwiki/以下の Markdown を.pages/docs/へコピーしつつ、[[wikilink]]を通常 Markdown link に書き換える adapter である。つまり MkDocs は source of truth ではなく、変換済み docs tree の renderer として使われている。scripts/build_pages_docs.pyより- この repo の wiki 本文は
[[foo]]/[[foo|label]]形式の wikilink と YAML frontmatter を前提にしている。wiki/index.mdや各wiki/analyses/*.mdより
Quartz official docs
- Quartz 4 は Markdown をサイト化する static-site generator で、authoring content は
/contentfolder 配下を前提とする。wikilinks を含む Obsidian Flavored Markdown を default で扱える。Welcome to Quartz 4 / Authoring Content より - Quartz の build command は
npx quartz buildで、-dないし--directoryで content folder を差し替えられる。つまりwiki/をそのまま content root として指定できる余地がある。Building your Quartz より - GitHub Pages 配信は GitHub Actions workflow で
npm ci→npx quartz build→public/を upload するのが公式導線。baseUrlを正しく設定しないと RSS や sitemap など一部機能に影響する。Hosting より - Quartz は
file.html形式を出力するため、GitHub Pages では trailing slash 付き既存リンクを持っていると移行時に注意が要る。Hosting より
Interpretation
- この repo の現行 MkDocs 構成は「Markdown authoring 体験」と「公開 renderer」の間に custom rewrite script を挟む暫定構成と読める。
scripts/build_pages_docs.pyより - 一方 Quartz は wikilinks を default で解釈し、Explorer / Backlinks / Graph / Folder listing のような wiki 向け導線を持つので、この repo の wiki 的な書き方と公開体験の距離が近い と判断しやすい。Welcome to Quartz 4 / Authoring Content より
Current repo observation (after switch)
- 2026-05-21 の切替後は、repo root に Quartz 本体ソース (
quartz/)、package.json、quartz.config.ts、quartz.layout.ts、tsconfig.jsonを置き、pnpm buildがnode ./quartz/bootstrap-cli.mjs build -d wikiを呼ぶ構成になった。repo 実装より - GitHub Pages workflow も Python + MkDocs から Node 22 + pnpm + Quartz build へ差し替わり、upload 対象は
site/ではなくpublic/になった。.github/workflows/deploy-pages.ymlより wiki/は変わらず source of truth で、Quartz が-d wikiで直接読む。MkDocs 時代に必要だった.pages/docs/への変換コピーは消えた。repo 実装より- 切替の過程で、既存 page の frontmatter は lint が想定していたより緩く、Quartz の YAML parser では落ちる summary 行が複数見つかったため、summary を quoted string に正規化し、
scripts/lint_wiki.pyも strict YAML parse を行うよう補強した。repo 実装より
Project-site subpath observation
- Quartz 4 の GitHub Pages project-site 配信では、
configuration.baseUrlにnishio.github.io/kouchou-ai-developer-wikiのように subpath まで含めるのが公式導線である。内部リンク自体は相対 URL として出るため、renderer 本体は project-site hosting を前提にできる。Hosting より - 2026-05-28 時点で、GitHub Pages は
https://nishio.github.io/kouchou-ai-developer-wikiをhttps://nishio.github.io/kouchou-ai-developer-wiki/へ 301 redirect していた。したがって root の末尾 slash 欠落を QuartzHeadで補正する必要性は低い。repo 実装と live Pages 確認より - 以前の local patch では
quartz/components/Head.tsxに root 専用<base href="https://nishio.github.io/kouchou-ai-developer-wiki/">と redirect script を足していたが、これは upstream Quartz v4.5.2 のHead.tsxにはない差分だった。project-site 対応はbaseUrl設定に寄せ、HTML<base>に頼らない方が Quartz の相対 URL 設計と合う。repo 実装と upstream Quartz より - 2026-05-28 の修正で
Head.tsxを upstream 相当へ戻し、scripts/check_pages_links.pyを追加した。build 後のpublic/全 HTML を/kouchou-ai-developer-wiki/配下として解決し、内部リンク・静的 asset・fetch()が subpath 外へ逃げないこと、存在する public path に解決されること、生成 HTML に<base>が入らないことを CI で検査する。repo 実装より - Scrapbox から辿った旧 Gist は、
wiki/を編集用、content/を Quartz 入力用に分け、resolve-links.pyで wikilink を正規化する汎用移植ガイドだった。これは Obsidian vault から公開用 tree を作る方式として有効だが、この repo のようにwiki/自体が公開 source of truth である場合にはquartz build -d wikiの直接方式が自然である。旧 Gist より - この整理を新 Gist
Quartz + GitHub Pages project site で Wiki を公開する設計メモとして外部化した。新 Gist では、baseUrlが project-site hosting の正規支点であること、<base>patch を避けること、wiki/direct とwiki/ -> content/変換は用途で選ぶこと、生成物リンク検査を CI に入れることをまとめた。新 Gist より
Open Questions
- Quartz をこの repo に vendor するか、別 repo で publish layer を持つか
wiki/log.mdや source ページ群を公開ナビゲーションにどう見せるか- 既存の
mkdocs.yml/scripts/build_pages_docs.pyを完全撤去するか、移行期間だけ残すか - Quartz vendor 側の local patch をどこまで許すか。project-site hosting のように upstream が持つ前提は、まず公式設定に寄せる方がよい
Updates
- 2026-05-21: 初版作成
- 2026-05-21: Quartz 実切替を反映。MkDocs 関連ファイルを撤去し、Node/pnpm/Quartz workflow へ移行した current state を追記
- 2026-05-28: project-site subpath のリンク切れ再発を受け、local
<base>patch を撤去してbaseUrl+ 生成物リンク検査へ寄せる観測を追記 - 2026-05-28: Scrapbox / 旧 Gist の
wiki/ -> content/方式と、この repo のwiki/direct 方式を分けて整理し、新 Gist として外部化したことを追記