このノートについて

会話(ChatGPT / Claude.ai / Claude Code)から抽出した「種」の冷却パッド。育てる価値があるものは Chat Log 経由で Atlas/Dots に蒸留・昇格する。生のままでは “自分の言葉” ではない点に注意(Add の冷却思想)。

2026-06-08 会話の種 — Quartz × Cloudflare Pagesによる個人ナレッジベース構築

何の会話か

Obsidianのmarkdownをmd→HTML→Git Push→Cloudflareでデプロイする構成の検討と、実際にQuartz v5をWindows環境にセットアップするまでのハンズオン。「HTML生成しても結局見ない問題」を起点に、静的サイトジェネレータの役割・選定基準・Zero Trustによるアクセス制御まで話が広がった。


🌱 種(育てる候補)

「HTML生成しても結局見ない問題」はデプロイの自動化で解決する

  • 根拠: 生成→commit→push→デプロイが1アクションで完結すれば「書く→見れる」のギャップがほぼゼロになる。スマホからURL開くだけで閲覧可能。既にSkillsでHTML生成→commit→pushまで自動化しているという運用実績が前提にある
  • 育てたい理由: 「作ったものを見る習慣がつかない」問題の構造的な解法として汎用性がある

静的サイトジェネレータの本質は「ページ単位の生成」と「サイト単位の生成」の違い

  • 根拠: Claude CodeのHTML生成は1md→1html(チラシを何枚も作る)。Quartzは全mdを読み込んでナビ・サイドバー・検索・バックリンク付きの1サイトを出力する(本を作る)。ページ数が増えたときにナビや相互リンクの整合性を自前で管理するか、ジェネレータに委譲するかが分岐点
  • 育てたい理由: ツール選定の判断基準として「今のページ数と将来のスケール」で使い分けられる

Quartzは毎回走る(初回セットアップツールではない)

  • 根拠: markdown追加・編集のたびにビルドし直してサイト全体を再生成する仕組み。サイドバー更新、バックリンク再計算、検索インデックス再構築が毎ビルドで起きる。ただしCloudflare側で自動実行されるので人間が意識するのは「書いてpush」だけ
  • 育てたい理由: 「ビルドツール」と「ワンタイムのセットアップツール」の混同は他のツールでも起きがちで、区別を明文化しておく価値がある

QuartzがObsidianと組む最大の理由はmarkdown方言の吸収

  • 根拠: [[wiki link]]![[embed]]、callout、タグ、LaTeXといったObsidian固有記法をHTMLに変換してくれる。Hugoだとショートコード自作が必要。ジェネレータ選定で一番ハマりやすいのもこの方言対応(dataviewは非対応など)
  • 育てたい理由: ツール間の互換性問題は「どの方言をどこまで吸収するか」で整理すると見通しが良くなる

Zero Trust + Cloudflare Pagesで「公開リスクゼロ・デバイスフリー」の個人ナレッジベースが成立する

  • 根拠: Cloudflare Pagesでデプロイすると *.pages.dev のURLが発行される。Zero Trustでメール認証を噛ませれば認証なしではアクセス不可。セッション期間設定で毎回ログイン不要。結果として「どこからでもアクセスできるが自分しか見れない」が実現する
  • 育てたい理由: 個人ナレッジ管理のアクセス制御パターンとして「認証付き静的サイト」は選択肢に入れておく価値がある

Node.jsのバージョン不一致は静的サイトジェネレータ導入の最頻出トラブル

  • 根拠: 実際にNode v24 + npm 11でQuartz v5のインストールに失敗。v5はNode 22以上を要求(v4はNode 18〜20)。nvm-windowsでバージョン切り替えて解決した。エラーメッセージは EBADENGINE--prefer-online cannot be provided when using --prefer-offline の2種類
  • 育てたい理由: 同じ罠に再度ハマらないための実体験ログ。他のNode系ツール導入時にも参照できる

index.mdが無くてもサイトは機能している(404はトップページだけ)

  • 根拠: Quartzビルド後にlocalhost:8080で404が出たが、これはトップページ用の index.md が無いだけ。個別ページは /ノート名 で全てアクセス可能。対処は3パターン:リンク集index.md手書き、既存ノートをindexにリネーム、フォルダ一覧の自動生成に任せる
  • 育てたい理由: 「404=壊れてる」と誤認しやすいが、構造を理解していれば慌てない

「困ってからでも遅くない」がツール導入の判断基準になる

  • 根拠: Claude Code HTML方式が既に回っている運用に対して、Quartzを入れるかどうかの判断。ページ数が少ないうちはHTML直接pushで十分、ナビや検索が欲しくなったタイミングで移行しても遅くない。過剰なインフラ整備は運用が固まる前にやると振り回される
  • 育てたい理由: 「ベストプラクティス」に飛びつく前に「今の運用で何が困ってるか」を問う習慣の根拠になる

❓ 開いた問い

  • Skillsの自動commit→pushは、ローカルObsidianの操作からフックしているのか、Claude側の生成物だけをpushしているのか(運用フローの詳細が未確認)
  • dataviewクエリやObsidianプラグイン固有の出力はQuartzビルド時にどこまで再現されるか(callout・embed以外の方言の限界)
  • ページ数がどのくらいになったら「HTML直接push」から「Quartz管理」に移行すべきか(閾値の体感値がまだない)
  • Cloudflare PagesのビルドでQuartzが失敗した場合のデバッグ導線はどうなるか(ローカルでは通ったがリモートで落ちるケース)

Chat Log へ戻る