create-zudo-doc CLI
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-docs |
sub/ref-doc | . | ref-doc |
. | . | ref-doc |
. | . | ref-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.ts に zudoDoc({ … }) 呼び出しとして書き込まれ、デフォルトと異なるフィールドだけを含みます(siteName は常に出力されます)。別個の src/ はありません — 唯一の設定ファイルが設定サーフェス全体です。各フィールドについては 設定 を参照してください。
新しいスキャフォールドが意図的に含まないものがいくつかあります:
.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/ に @import "@takazudo/ を追加してください。
カラースキーム
zudo-doc が同梱するカラースキームは Default Light と Default Dark の 2 つだけで、両者は 1 セットの OKLCH ランプを共有しています。--scheme の値として選べる、コミュニティ製やターミナル由来のプリセットカタログはバンドルされていません。
カスタマイズはもう一段深いレイヤー、zfb.config.ts の colorSchemes エスケープハッチフィールドで行います。独自の { ramps, map } パレットマップを zudoDoc({ colorSchemes: { … } }) に渡します(Color の「カスタムカラースキームの追加」を参照)。ソースにコミットする前に Design Token Panel の Palette タブで結果をライブプレビューできます(カラースキームプレビューを参照)。
テーマパック
カラースキームとは独立に、スキャフォールドは同梱のテーマパック — スキームシステムの上に重なる完成済みデザインバンドル — を起点にしたプロジェクトを生成できます。--theme-pack <slug> を渡すか、対話式の「Theme pack:」プロンプト(カラースキームの質問と機能のマルチセレクトの間に表示されます)で答えます。選んだスラッグは生成される zfb.config.ts の themePack に書き込まれます(デフォルト差分のみ出力する規則に従い、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, bun | pnpm |
--[no-]install | スキャフォールディング後に依存関係をインストール | プロンプト |
--[no-]git | git リポジトリと初回コミットを初期化(doc-history メタデータを有効化) | オン |
--changelog-packages core,cliは--changelogを暗黙的に有効にし、マルチパッケージ用の変更履歴レイアウトを生成します。
カラースキーム
| フラグ | 説明 | デフォルト |
|---|---|---|
--color-scheme-mode <mode> | single または light-dark | light-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-preference | OS のカラースキーム設定を尊重 | true |
テーマパック
| フラグ | 説明 | デフォルト |
|---|---|---|
--theme-pack <slug> | 生成プロジェクトに適用するテーマパック — 指定できるスラッグはテーマギャラリーを参照 | default |
機能
| フラグ | 説明 | デフォルト |
|---|---|---|
--[no-]i18n | 旧来の多言語トグル。リストがない場合は追加ロケールを1つ推論 | オフ |
--[no-]search | 生成された search-index.json を使った組み込みの全文/ワードマッチ検索 | オン |
--[no-]sidebar-filter | サイドバーのリアルタイムフィルタリング | オン |
--[no-]claude-resources | Claude Code ドキュメント生成 | オフ |
--[no-]codex-resources | Codex ドキュメント生成 | オフ |
--[no-]claude-skills | zudo-doc-* Claude Code スキルを同梱(design-system、translate、version-bump) | オフ |
--[no-]claude-skills-writing | zudo-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-txt | LLM 向け llms.txt を生成 | オン |
--[no-]skill-symlinker | ドキュメントスキルをClaude CodeまたはCodexへシンボリックリンク | オフ |
--[no-]tauri | Tauri デスクトップアプリ(Mode 1)— ページ内検索付き macOS オフラインリーダー | オフ |
--[no-]tauri-dev | Tauri 開発ラッパー(Mode 2)— 任意プロジェクト向けの設定可能なデスクトップ開発ラッパー | オフ |
--[no-]footer-nav-group | フッターのナビゲーションリンク | オフ |
--[no-]image-enlarge | マークダウン画像のクリック拡大表示 | オン |
--[no-]asset-viewer | public/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 はルートページ(/)で使用するプライマリロケールを選択します。--lang en --additional-langs ja,de のように任意の数の追加ロケールコードを渡せます。それぞれに src/ ツリーと / ルートが作成されます。順序は生成される設定と言語切り替えで保持され、ラベルは 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 --yessub/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 - --installCI/自動化での使用
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 プリセットと同じフィールドに加え、install と git オプションを受け付けます。プログラム 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,
});headerRightItems(Header Right Items ガイドを参照)と metaTags(設定を参照)は、同名の JSON プリセットフィールドと同じ形式を受け付け、同じルールで検証されます — 未知の headerRightItems コンポーネント/トリガー名や不正な metaTags サブフィールドの型は、スキャフォールド開始前に例外をスローします。