zudo-doc
GitHub リポジトリ

検索したい単語を入力

いつでも検索バーを開ける

create-zudo-doc CLI

作成 2026年3月15日更新 2026年9月7日Takeshi Takatsudo

create-zudo-doc プロジェクトスキャフォルダーの完全な CLI リファレンス。

使い方

create-zudo-doc [destination] [options]

フラグなしで実行すると、対話式ウィザードが起動します。すべてのオプションはフラグで指定でき、非対話的(CI/エージェント)に使用できます。

セットアッププリセットジェネレーターを使って、対話的に設定を構成し、JSON プリセットまたは CLI コマンドとしてコピーすることもできます。

スキャフォールド先とプロジェクト名

最初の位置引数はスキャフォールド先(destination)、つまりプロジェクトを作成するディレクトリです。パスを渡すこともでき、その最後のセグメントが、生成される package.json に書き込まれるプロジェクト名になります。

# ./sub/ref-doc を作成し、パッケージ名は "ref-doc" になります
pnpm create zudo-doc sub/ref-doc --yes

プロジェクト名の文法(先頭は英小文字か数字、使えるのは英小文字・数字・ドット・アンダースコア・ハイフンのみ、最大 214 文字)が適用されるのは、この最後のセグメントだけです。その手前のディレクトリは単なるパスとして扱われるため、Scratch-Dir/ref-doc のような指定も通ります。

destination作成されるディレクトリプロジェクト名
my-docs./my-docsmy-docs
sub/ref-doc./sub/ref-docref-doc
./sub/ref-doc/./sub/ref-docref-doc
../ref-doc../ref-docref-doc
/tmp/scratch/ref-doc/tmp/scratch/ref-docref-doc

上位ディレクトリへ遡る ../ref-doc も、絶対パスも受け付けられます。拒否されるのは ...、ファイルシステムのルート(/)で、プロジェクト名を導き出す最後のセグメントを持たないためです:

Destination "." has no final path segment to name the project. Pass a destination whose last segment names the project, e.g. "sub/my-docs"

最後のセグメントがディレクトリ名としては妥当でも、パッケージ名の文法に反する場合は、そのセグメントを指すエラーになります:

Invalid project name "My-Docs" — the last segment of destination "sub/My-Docs" is used as the package name. Project name must start with a lowercase letter or digit and contain only lowercase letters, digits, dots, underscores, and hyphens

--name を併用すると、ディレクトリは位置引数のまま、プロジェクト名だけを上書きできます。パッケージ名としては使えない名前のディレクトリにスキャフォールドしたい場合の手段です:

# ./sub/My-Docs を作成し、パッケージ名は "ref-doc" になります
pnpm create zudo-doc sub/My-Docs --name ref-doc --yes

--name に渡せるのは従来どおり素のパッケージ名だけで、パスを渡すと拒否されます。また --name を付けた場合でも、最後のセグメントを持たない destination は拒否されたままです。

CLI が生成するもの

スキャフォールドは最小限で、ファイル数はおよそ12個です(プロジェクト構成を参照)。レイアウト、クローム、スキーマはすべて @takazudo/zudo-doc から出荷され、node_modules から消費されるため、生成されるプロジェクトが持つのは本当に固有のものだけです。

機能の選択は単一の zfb.config.tszudoDoc({ … }) 呼び出しとして書き込まれ、デフォルトと異なるフィールドだけを含みます(siteName は常に出力されます)。別個の src/config/settings.ts はありません — 唯一の設定ファイルが設定サーフェス全体です。各フィールドについては 設定 を参照してください。

新しいスキャフォールドが意図的に含まないものがいくつかあります:

  • .zudo-doc.json なし — eject のプロベナンスファイルは最初の zudo-doc eject 時に遅延生成されるため、eject していないプロジェクトはこれを持ちません。

  • check:html / HTML バリデーションステップと gen:z-index / check:z-index コードジェネレーションなし — どちらも生成プロジェクトから削除されました。デフォルトの z-index ティアはパッケージから出荷され、HTML バリデーションと pre-push スイートはオプトインの追加項目です(カスタマイズの pre-push / HTML バリデーション復元の節を参照)。

  • デプロイアダプターや wrangler.toml なし — デフォルトのビルドは純粋な静的エクスポートです。デプロイ(や AI アシスタントのような SSR 機能の有効化)は明示的な拡張ステップです。

Note

@takazudo/zdtp は、designTokenPanel を有効化した場合にのみ追加されます。これは @takazudo/zudo-docオプショナルなピア依存であり、パネルを無効にしたプロジェクトにはインストールされません。パッケージのクロームは引き続きパネルのブートストラップモジュールをモジュールスコープでインポートしますが(zfb のアイランドスキャナーがそれを見つけられるようにするためです)、そのモジュールが @takazudo/zdtp に到達する経路は、最初の利用時の拒否ハンドリング付き動的 import() だけです(遅延読み込みを参照)。この動的インポートはパッケージが存在しなくてもバンドラーが許容するため、パネルなしのプロジェクトはインストールせずにビルドできます。パネルなしでスキャフォールドしたプロジェクトで後から designTokenPanel を有効化する場合は、@takazudo/zdtp を自分でインストールし、src/styles/global.css@import "@takazudo/zdtp/styles.css"; を追加してください。

カラースキーム

zudo-doc が同梱するカラースキームは Default LightDefault Dark の 2 つだけで、両者は 1 セットの OKLCH ランプを共有しています。--scheme の値として選べる、コミュニティ製やターミナル由来のプリセットカタログはバンドルされていません。

カスタマイズはもう一段深いレイヤー、zfb.config.tscolorSchemes エスケープハッチフィールドで行います。独自の { ramps, map } パレットマップを zudoDoc({ colorSchemes: { … } }) に渡します(Color の「カスタムカラースキームの追加」を参照)。ソースにコミットする前に Design Token Panel の Palette タブで結果をライブプレビューできます(カラースキームプレビューを参照)。

テーマパック

カラースキームとは独立に、スキャフォールドは同梱のテーマパック — スキームシステムの上に重なる完成済みデザインバンドル — を起点にしたプロジェクトを生成できます。--theme-pack <slug> を渡すか、対話式の「Theme pack:」プロンプト(カラースキームの質問と機能のマルチセレクトの間に表示されます)で答えます。選んだスラッグは生成される zfb.config.tsthemePack に書き込まれます(デフォルト差分のみ出力する規則に従い、default と異なる場合のみ)。ページ内のスイッチャー UI は独立した機能トグル --theme-pack-switcher です。

オプション

プロジェクト

フラグ説明デフォルト
[destination]スキャフォールド先のディレクトリ(最初の位置引数)。パスも指定でき、その最後のセグメントがプロジェクト名になるmy-docs
--name <name>生成される package.json に書き込まれるプロジェクト名。destination の最後のセグメントから導出される名前を上書きするdestination の最後のセグメント
--lang <code>デフォルト言語コードen
--additional-langs <a,b>追加ロケールコード(順序付き)。i18n を有効にし、プリセットのリストを置き換える
--changelog-packages <a,b>ネストした変更履歴ランディングページと、カンマ区切りの各スラッグに対応するパッケージインデックスを生成
--github-url <url>GitHub リポジトリ URL(ヘッダーリンク + ソースリンクに使用)
--pm <manager>パッケージマネージャー: pnpm, npm, yarn, bunpnpm
--[no-]installスキャフォールディング後に依存関係をインストールプロンプト
--[no-]gitgit リポジトリと初回コミットを初期化(doc-history メタデータを有効化)オン

--changelog-packages core,cli--changelogを暗黙的に有効にし、マルチパッケージ用の変更履歴レイアウトを生成します。

カラースキーム

フラグ説明デフォルト
--color-scheme-mode <mode>single または light-darklight-dark
--scheme <name>カラースキーム(single モード)Default Dark
--light-scheme <name>ライトスキーム(light-dark モード)Default Light
--dark-scheme <name>ダークスキーム(light-dark モード)Default Dark
--default-mode <mode>light または dark(light-dark モード)dark
--[no-]respect-system-preferenceOS のカラースキーム設定を尊重true

テーマパック

フラグ説明デフォルト
--theme-pack <slug>生成プロジェクトに適用するテーマパック — 指定できるスラッグはテーマギャラリーを参照default

機能

フラグ説明デフォルト
--[no-]i18n旧来の多言語トグル。リストがない場合は追加ロケールを1つ推論オフ
--[no-]search生成された search-index.json を使った組み込みの全文/ワードマッチ検索オン
--[no-]sidebar-filterサイドバーのリアルタイムフィルタリングオン
--[no-]claude-resourcesClaude Code ドキュメント生成オフ
--[no-]codex-resourcesCodex ドキュメント生成オフ
--[no-]claude-skillszudo-doc-* Claude Code スキルを同梱(design-system、translate、version-bump)オフ
--[no-]claude-skills-writingzudo-doc-writing スキルを同梱(AI 支援執筆向けのドキュメント執筆 + ナビゲーション構造ガイド)オフ
--[no-]design-token-panelスペーシング・フォント・サイズ・カラーの各トークンを編集するタブ型パネルオフ
--[no-]theme-pack-switcherインストール済みテーマパックを切り替える右下のフライアウト(と一覧ダイアログ)オフ
--[no-]sidebar-resizerドラッグでサイドバー幅を変更オン
--[no-]sidebar-toggleデスクトップサイドバーの表示/非表示オン
--[no-]toc-toggleデスクトップ目次の表示/非表示(xl 画面の端のシェブロン)オン
--[no-]versioning複数バージョンのドキュメント対応オフ
--[no-]doc-historyドキュメント編集履歴オン
--[no-]body-foot-utilドキュメント下部の右寄せストリップ: ドキュメント履歴トリガー + GitHub でソースを表示リンクオフ
--[no-]llms-txtLLM 向け llms.txt を生成オン
--[no-]skill-symlinkerドキュメントスキルをClaude CodeまたはCodexへシンボリックリンクオフ
--[no-]tauriTauri デスクトップアプリ(Mode 1)— ページ内検索付き macOS オフラインリーダーオフ
--[no-]tauri-devTauri 開発ラッパー(Mode 2)— 任意プロジェクト向けの設定可能なデスクトップ開発ラッパーオフ
--[no-]footer-nav-groupフッターのナビゲーションリンクオフ
--[no-]image-enlargeマークダウン画像のクリック拡大表示オン
--[no-]asset-viewerpublic/assets 配下のファイル向けの閲覧ページオン
--[no-]dynamic-page-transition履歴管理付きのSPA風ページ遷移オン
--[no-]footer-copyrightフッターの著作権表示オン
--[no-]changelog変更履歴ページオフ
--[no-]tag-governance語彙対応タグ監査・サジェストスクリプトオフ
--[no-]doc-tagsタグ別・タグ一覧の閲覧ルート(docs/tags/...)オフ
--[no-]footer-taglistフッターのグループ化されたタグ一覧(tagGovernance が必要)オフ
--[no-]noindexロボットによるインデックスを回避 — noindex メタ + robots.txtオフ

プリセット

フラグ説明
--preset <path>JSON プリセットファイルから設定を読み込み("-" で標準入力)

--preset フラグはセットアッププリセットジェネレーターの JSON 出力を受け付けます。プリセットを読み込むと、すべてのプロンプトがスキップされます(--yes と同様)。個別の CLI フラグはプリセットの値を上書きします。特に --additional-langs ja,de はプリセットの additionalLangs リストに追加するのではなく置き換えます。空でない明示リストは、プリセットまたは CLI に --no-i18n が含まれていても i18n を有効にします。明示的な無効化を上書きする場合、CLI は警告を表示します。

一般

フラグ説明
-y, --yes未指定オプションにデフォルトを使用し、プロンプトをスキップ
-h, --helpヘルプメッセージを表示

サポート言語

--lang フラグは以下の言語コードを受け付けます:

コード言語
en英語
ja日本語
zh-cn中国語(簡体字)
zh-tw中国語(繁体字)
ko韓国語
esスペイン語
frフランス語
deドイツ語
ptポルトガル語

--lang はルートページ(/docs/...)で使用するプライマリロケールを選択します。--lang en --additional-langs ja,de のように任意の数の追加ロケールコードを渡せます。それぞれに src/content/docs-<code>/ ツリーと /<code>/docs/... ルートが作成されます。順序は生成される設定と言語切り替えで保持され、ラベルは JP/JA のような固定値ではなく設定したロケールマップから取得されます。

--additional-langs を省略する、対話 UI で空欄にする、またはプリセットで additionalLangs を省略すると単一ロケールのプロジェクトになります。i18n: true だけを指定する旧来のプリセットまたは API 呼び出しでは互換推論が残り、プライマリが en なら ja、それ以外なら en が推論されます。明示したロケールコードは小文字化され、パス/URL で安全に使える形式に検証されます。無効なコード、区切り文字、トラバーサル要素、重複、プライマリコードはファイル書き込み前に拒否されます。

ja ツリーには日本語のスターター文章が配置されます。それ以外の任意の追加ロケールには、公開前に翻訳すべき英語のプレースホルダー文章が配置されます。組み込み UI 翻訳は 要求されたロケール → 設定済みデフォルトロケール → パッケージの英語 → 生の UI 文字列キー の順に解決されます。

使用例

対話モード

pnpm create zudo-doc

すべてデフォルトで非対話的に実行

pnpm create zudo-doc my-docs --yes

サブディレクトリへのスキャフォールド

pnpm create zudo-doc sub/ref-doc --yes

sub/ref-doc/ を作成し、パッケージ名は ref-doc になります。1 つの作業用ディレクトリの下に複数のプロジェクトを並べて生成したいとき(たとえば 2 つのテンプレートバージョンを diff で比較したいとき)に便利です。

日本語サイト、単一ダークスキーム

pnpm create zudo-doc my-docs --lang ja --scheme "Default Dark" --no-i18n --pm pnpm --install

明示的なデフォルトモードを指定した Light/Dark モード

pnpm create zudo-doc my-docs \
  --color-scheme-mode light-dark \
  --default-mode light \
  --no-respect-system-preference \
  --yes

プリセットファイルの使用

セットアッププリセットジェネレーターで JSON プリセットを生成し、ファイルに保存してから CLI に渡します:

pnpm create zudo-doc --preset setup.json --install

標準入力から JSON を直接パイプすることもできます:

cat setup.json | pnpm create zudo-doc --preset - --install

CI/自動化での使用

pnpm create zudo-doc my-docs \
  --lang en \
  --scheme "Default Dark" \
  --no-i18n \
  --search \
  --no-claude-resources \
  --no-codex-resources \
  --pm pnpm \
  --install \
  --yes

プログラム API

パッケージはプログラム API もエクスポートしています。オプションオブジェクトは JSON プリセットと同じフィールドに加え、installgit オプションを受け付けます。プログラム API ではどちらもデフォルトで false です。destination オプションはありません。スキャフォールド先のパスは CLI レベルの概念であり、プログラム API ではカレントディレクトリを基準に projectName がそのままディレクトリ名を兼ねます:

import { createZudoDoc } from "create-zudo-doc";

await createZudoDoc({
  projectName: "my-docs",
  defaultLang: "en",
  colorSchemeMode: "light-dark",
  lightScheme: "Default Light",
  darkScheme: "Default Dark",
  defaultMode: "dark",
  respectPrefersColorScheme: true,
  themePack: "foundry",
  features: [
    "search",
    "sidebarFilter",
    "sidebarResizer",
    "sidebarToggle",
    "tocToggle",
    "docHistory",
    "footerCopyright",
  ],
  cjkFriendly: false,
  minifyHtml: true,
  headerRightItems: [
    { type: "component", component: "theme-toggle" },
    { type: "component", component: "github-link" },
  ],
  metaTags: {
    description: true,
    ogImage: "/img/ogp.png",
  },
  packageManager: "pnpm",
  install: true,
  git: true,
});

headerRightItemsHeader Right Items ガイドを参照)と metaTags設定を参照)は、同名の JSON プリセットフィールドと同じ形式を受け付け、同じルールで検証されます — 未知の headerRightItems コンポーネント/トリガー名や不正な metaTags サブフィールドの型は、スキャフォールド開始前に例外をスローします。

Revision History

Takeshi Takatsudo作成: 2026-03-15T19:02:13+09:00更新: 2026-09-07T12:42:46+09:00

AI Assistant

Ask a question about the documentation.

Preview theme

Loading theme previews…