Ovellum v0.12.0
日本語

最終更新

モード#

Ovellum には、どのパイプラインが実行されるかを決める設定つまみが1つあります:

{
  "mode": "hybrid"
}

有効な値は3つあります: automanualhybrid。プロジェクトごとに一度選ぶか、 ディレクトリごと・ファイルごとに上書きします。これらは自由に混在できるよう設計されて います。リポジトリ全体で1つに固定することを強いられることはありません。

auto#

TypeScript / JavaScript のソースから Markdown ドキュメントを生成し、output/ に 書き出します。既存の出力はビルドのたびに上書きされます。マージステップも、手動の レイヤーもありません。

src/utils/format.ts   →   docs/utils/format.md
src/models/User.ts    →   docs/models/User.md

次のようなときに使います:

  • 公開すべきものが API リファレンスだけのとき。
  • ドキュメントを手で編集する対象ではなく、ビルド成果物として扱っているとき。
  • TypeDoc などから移行していて、出力の形は変えつつ同じワークフローを保ちたいとき。

出力はプレーンな Markdown です。.md を読めるものなら何でも後処理に使えます。

manual#

正反対の端です。Ovellum は Jekyll スタイルの静的サイトビルダーとして振る舞います。 input/ をたどって .md ファイルを探し、デプロイ可能な HTML サイト — サイドバー ナビゲーション、右側の目次、シンタックスハイライト付きのコード、テーマ — を生成します。 ソースの解析は一切ありません。

content/index.md            →   dist/index.html
content/getting-started.md  →   dist/getting-started/index.html
content/guides/deploy.md    →   dist/guides/deploy/index.html

次のようなときに使います:

  • ドキュメントを手書きしていて、信頼できる唯一の情報源からの生成なしに、きれいな出力が ほしいとき。
  • ドキュメントと並んでマーケティングサイトやランディングページを構築するとき (site.landing を有効にすると Material for MkDocs 風のホームページになります)。
  • コードとは無関係な、純粋に文章のコンテンツをホストするとき。

いまご覧になっているこのサイトは manual モードでビルドされています。

hybrid(デフォルト)#

ソースから生成し、その後あなたの手書きコンテンツをマージして戻します。あなたの文章は、 自動生成されたリファレンスと同じファイルの中に存在します。Ovellum はタグ付けの 取り決めを尊重します。<!-- @manual:start --><!-- @manual:end --> のあいだに あるものはあなたのもので、決して触れられません。それ以外のすべては自動生成され、 ビルドのたびに書き換えられる可能性があります。

                            ┌──────────────┐
src/utils/format.ts ────►   │  build       │   ────►  docs/utils/format.md
docs/utils/format.md ───►   │  parse + gen │
(existing manual blocks) ►  │  + merge     │
                            └──────────────┘

次のようなときに使います:

  • 生成によって恩恵を受ける API の表面と、それと並んで存在するナラティブなコンテンツの 両方を持っているとき。
  • ある関数についてのすべて — そのシグネチャ、パラメーター、そして「注意、ここは遅い パスです」というチームのメモ — を1か所で見られるようにしたいとき。
  • リネームまたは削除されたシンボルが、黙って失われるのではなく、孤立した文章を確認用に 浮かび上がらせるようにしたいとき。

タグ付けの取り決めはアンカーとゾーンで、 孤立ブロックの扱いは孤立ブロックで解説しています。

ディレクトリごと・ファイルごとの上書き#

mode フィールドは次の場所にも置けます:

  • 任意のサブディレクトリ内のネストした ovellum.config.*。衝突時はより深い方が勝ちます。

  • 単一ファイルのフロントマター内の ovellum: ブロック:

    ---
    ovellum:
      mode: manual
    ---
    

    プロジェクトのデフォルトが autohybrid であっても、そのページは手動コンテンツ として扱われます。

上書きの解決の全容はリファレンス → 設定 にあります。

このページを編集