Skip to content

1.0 が凍結するもの ​

1.0 からは、1.x のリリースはこのページにあるものを削除も改名もせず、意味も変えず、既定値も変えません。既存の文書が含みえない、新しい省略可能なキー、コマンド、オプション、記法を足すことはあります。非推奨にした書き方は、置き換え先を名指す警告を出しながら動き続け、次のメジャーリリースより前には削除しません。警告の文言と出力のバイト列は凍結しません。全文は roadmap.md 12.4 にあります。

このページはすべての表面を 1 か所に挙げます。設定のスキーマ、CLI、診断コードにあってこのページに無いもの、またはその逆があると、テストが失敗します。それぞれの働きは 設定ファイル、コマンドオプション、記法 にあります。

設定キー ​

monodocs.config.yml が受け付けるすべてのキーと、その既定値です。知らないキーはエラーになります。

キー既定値
titleDocumentation
langen
fontCheckwarn
document.version未設定
document.date未設定
document.authors未設定
input./docs
rootinput の値(単一ファイルならそのディレクトリ)
output.formathtml
output.path./dist/docs.html(pdf は ./dist/docs.pdf、both は ./dist)
sources.markdown.extensions[.md, .markdown]
sources.asciidoc.extensions[.adoc, .asciidoc, .asc]
sources.asciidoc.attributes未設定
sources.include未設定
sources.exclude[]
sources.excludeDefaultstrue
sources.lineBreakspace
sidebar.modefolder
sidebar.items未設定
sidebar.items[].title未設定
sidebar.items[].path未設定
sidebar.items[].children未設定
sidebar.exclude未設定(非推奨。1.0 で削除)
sidebar.collapseDepth未設定
sidebar.titleTransform.pagenone
sidebar.titleTransform.page.type未設定(オブジェクトを書くときは必須)
sidebar.titleTransform.page.pattern未設定
sidebar.titleTransform.page.replacement未設定
sidebar.titleTransform.page.flags未設定
sidebar.titleTransform.directorynone
sidebar.titleTransform.directory.type未設定(オブジェクトを書くときは必須)
sidebar.titleTransform.directory.pattern未設定
sidebar.titleTransform.directory.replacement未設定
sidebar.titleTransform.directory.flags未設定
sidebar.titleFromheading
sidebar.flattenSingleChildfalse
toc.maxLevel3
numbering.sectionsfalse
figures.aligncenter
assets.embedImagestrue
assets.maxInlineSize5MB
assets.onLargeImagewarn
assets.budget未設定
assets.onBudgetwarn
mermaid.enabledtrue
mermaid.modeclient
mermaid.runtimeinline
highlight.enabledtrue
math.enabledtrue
html.themedefault
html.contentWidth860px
html.contentWidthToggletrue
html.contentWidthDefaultstandard
html.diffViewDefaultside-by-side
html.imageLightboxtrue
html.brandingtrue
html.colorSchemelight
html.labels.openSidebarlang から
html.labels.closeSidebarlang から
html.labels.searchPlaceholderlang から
html.labels.searchLabellang から
html.labels.clearSearchlang から
html.labels.searchResultslang から
html.labels.noResultslang から
html.labels.contentWidthTogglelang から
html.labels.useWideContentlang から
html.labels.useStandardContentlang から
html.labels.darkModeTogglelang から
html.labels.tocLabellang から
html.labels.tocTitlelang から
html.labels.pageNavLabellang から
html.labels.prevlang から
html.labels.nextlang から
html.labels.wrapTogglelang から
html.labels.copyCodelang から
html.labels.copylang から
html.labels.copiedlang から
html.labels.copyFailedlang から
html.labels.openImagePreviewlang から
html.labels.imagePreviewlang から
html.labels.closeImagePreviewlang から
html.labels.actualSizelang から
html.labels.fitToScreenlang から
html.labels.generatedBylang から
html.labels.versionlang から
html.labels.coverlang から
html.labels.contentslang から
html.labels.diffChangeslang から
html.labels.diffAddedPageslang から
html.labels.diffMovedPageslang から
html.labels.diffChangedPageslang から
html.labels.diffDeletedPageslang から
html.labels.diffUnchangedPageslang から
html.labels.diffNoChangeslang から
html.labels.diffPageAddedlang から
html.labels.diffPageDeletedlang から
html.labels.diffPageMovedlang から
html.labels.diffViewSideBySidelang から
html.labels.diffViewSideBySideHintlang から
html.labels.diffViewInlinelang から
html.labels.diffViewInlineHintlang から
html.labels.diffViewCurrentlang から
html.labels.diffViewEarlierlang から
html.labels.diffShowMarkslang から
html.labels.diffPreviouslang から
html.labels.diffNextlang から
html.labels.diffAddedlang から
html.labels.diffDeletedlang から
html.labels.diffChangedlang から
html.labels.diffMovedlang から
html.labels.diffTitleChangedlang から
html.labels.diffMergedIntolang から
pdf.pageSizeA4
pdf.margin.top20mm
pdf.margin.right15mm
pdf.margin.bottom20mm
pdf.margin.left15mm
pdf.printBackgroundtrue
pdf.bookmarkstrue
pdf.headerfalse
pdf.footerページ番号 / 総ページ数
pdf.cover.enabledfalse
pdf.toc.enabledfalse
pdf.toc.depth2
pdf.watermarkfalse
pdf.pageBreakLevelfalse
pdf.densitynormal
pdf.density.basenormal
pdf.density.fontSizebase から
pdf.density.lineHeightbase から
pdf.density.headingSpacingbase から
pdf.density.tableCellPaddingbase から

既定値の裏にある値 ​

2 つの既定値は値の集まりを表し、その値も一緒に凍結します。

  • sources.excludeDefaults が有効にする組み込みの除外:_partials/**、partials/**、includes/**、**/_*。
  • pdf.density のプリセット。既定は normal です。
プリセットfontSizelineHeightheadingSpacingtableCellPadding
relaxed16px1.71.8em0.5rem 0.8rem
normal16px1.450.9em0.35rem 0.6rem
compact14px1.350.8em0.3rem 0.5rem
tight12px1.30.6em0.2rem 0.35rem

コマンドとオプション ​

コマンド引数オプション
(共通)—-V, --version, --lang <lang>, -h, --help
init——
build[input]-o, --output <path>, -c, --config <file>, -f, --format <format>, --diff-from <ref>, --diff-from-dir <dir>
watch[input]-o, --output <file>, -c, --config <file>
serve[input]-o, --output <file>, -c, --config <file>, -p, --port <port>, -H, --host <host>, --open
validate[input]-c, --config <file>, --format <format>, --strict
help[command]—

どのコマンドも -h, --help を受け付けます。

診断 ​

monodocs validate --format json は "schemaVersion": 1 を持つ報告を書きます。CI のジョブが固定するのは monodocs のバージョンではなくこの番号です。ジョブが解析する形が変わったときだけ変わり、リリースは形を変えずに検査とコードを増やせます(コマンドオプション)。

診断の code はジョブが絞り込みに使うもので、名前を変えません。コードは次のとおりです。

  • browser/setup
  • config/deprecated-key
  • config/input-outside-root
  • config/invalid
  • config/not-found
  • diff/conflicting-options
  • diff/dir-not-found
  • diff/git-failed
  • diff/git-unavailable
  • diff/lfs-pointer
  • diff/not-a-repository
  • diff/outside-version
  • diff/ref-not-found
  • diff/unsupported
  • font/missing
  • font/no-math-table
  • font/unchecked
  • heading/level-skipped
  • image/embedded-for-pdf
  • image/large
  • image/no-alt
  • image/not-found
  • image/outside-input
  • image/too-large
  • image/unsupported
  • include/outside-input
  • init/exists
  • input/no-sources
  • input/not-found
  • input/unsupported-file
  • internal/unexpected
  • lang/no-label-table
  • lang/unsupported
  • link/unresolved
  • link/unresolved-anchor
  • math/command-not-allowed
  • math/construct-unsupported
  • math/notation-unsupported
  • math/numbering-unsupported
  • math/parse-failed
  • math/style-unsupported
  • mermaid/prerenderer-missing
  • mermaid/render-failed
  • numbering/sectnums
  • output/over-budget
  • page/alias-shadowed
  • page/duplicate-alias
  • page/duplicate-id
  • page/duplicate-route
  • page/no-renderer
  • page/no-title
  • pdf/margin-too-small
  • pdf/toc-not-converged
  • pdf/toc-unresolved
  • sidebar/group-empty
  • sidebar/item-duplicate
  • sidebar/item-hidden
  • sidebar/item-not-found
  • sidebar/page-unlisted
  • theme/invalid
  • theme/not-found
  • theme/unknown

CommonMark・GFM・AsciiDoc を超える記法 ​

  • Markdown のフロントマター:title、order、hidden、description、aliases。
  • AsciiDoc の属性::sd-title:、:sd-order:、:sd-hidden:、:sd-description:、:sd-aliases:。
  • Markdown の GitHub のアラート:> [!NOTE]、[!TIP]、[!IMPORTANT]、[!WARNING]、[!CAUTION]。
  • ファイル間のリンク:ほかのソースファイル(.md、.adoc、またはビルド後の .html)へのリンクは、#anchor の有無によらず、AsciiDoc の xref: とともに文書の中のルートになります。アンカーは、それが名指すページの中で解決します(記法)。
  • 改ページ:Markdown の <div class="page-break"></div> または <div style="page-break-after: always"></div>(受け付ける書き方は設定ファイルにあります)、AsciiDoc の <<<。
  • Mermaid:言語が mermaid のフェンスのブロック、AsciiDoc の [source,mermaid]。
  • Markdown の 数式:$...$、$`...`$、$$...$$、言語が math のフェンスのブロック。AsciiDoc の latexmath:[...]、asciimath:[...]、stem:[...] と、[latexmath]、[asciimath]、[stem] のブロック。stem は :stem: 属性(latexmath、latex、tex、asciimath)に従います。

そのほかに凍結するもの ​

上の表には無いが、スクリプト、テーマ、リンクが頼りにするので、これらも凍結します。

  • MONODOCS_LANG:CLI 自身のメッセージの言語を、--lang と同じく選びます。--lang が優先します(コマンドオプション)。
  • 設定ファイルを探す場所:-c, --config が名指すファイルで、無ければエラーです。指定が無ければ、入力引数があるときは入力ディレクトリ(単一ファイルならそのディレクトリ)の monodocs.config.yml だけを、入力引数が無いときはカレントディレクトリの monodocs.config.yml を探します(設定ファイル)。
  • オプションの既定値:--lang は MONODOCS_LANG に従い、無ければ en です。設定の lang は文書の言語であり、CLI の言語ではありません。validate --format は human で、--strict が無ければ警告だけでは validate は失敗しません。serve は 127.0.0.1 のポート 4173 で待ち受け、--open が無ければブラウザを開きません。-o と build -f は output.path と output.format から、-c は上のファイルの探し方から既定値を取ります。
  • アドレス:ページのルートは、入力ルートからの相対パスから拡張子を除いたもので、大文字小文字も文字もそのまま保ちます。どの階層でも index のページはそのディレクトリを表します(index.md は /、guide/index.md は /guide)。文書はそれを #/route として開きます。ページの ID はルートから作ります。区切りごとに小文字にし、空白をハイフンにし、文字・数字・ハイフン以外を落とし、続くハイフンを 1 つにし、両端のハイフンと空の区切りを除いて、ハイフンでつなぎます。空になれば index です(/Setup/API_Reference は setup-apireference、/foo--bar は foo-bar、/ は index)。要素の ID は、ページの ID、ハイフン、ソースが付けた ID を続けたものです。移動したページは、aliases(:sd-aliases:)で古いルートを保ちます。
  • 以前の版との差分(--diff-from、--diff-from-dir。コマンドオプション):変更の一覧はルート //changes にあり、削除されたページは //deleted に以前のルートを続けたルートにあります(/guide/old は //deleted/guide/old で、ページ ID は deleted-guide-old)。別名はこれらのルートを取れず、取るソースファイル——それを許すシステムで、パスがバックスラッシュで始まるものだけ——は page/duplicate-route になります。変更の一覧のページ ID は diff-changes、削除されたページのページ ID は deleted- に以前のページ ID を続けたものです。どちらも、そのページ ID を持つページがなくなり、そのページ ID か記事の ID を持つ要素がなくなり、それにハイフンを続けた文字列で始まる要素の ID がなくなるまで、-x を足します。差分は次の属性で表し、スタイルシートやスクリプトはこれらで選べます。monodocs が書くすべての <ins> と <del> に付く data-monodocs-diff、追加または削除されたブロックに付く data-monodocs-diff-block(ins、del)、ページの記事とそのサイドバーの項目に付く data-monodocs-diff-page(added、deleted、moved、changed)、変わっていない組の 2 つのブロックが同じ値で持つ data-monodocs-diff-pair です。差分のそのほかのマークアップ、クラス、スクリプトは凍結しません。
  • カスタムテーマは template.html、style.css、app.js を持てます。置かなかったものは既定のテーマのものになります。template.html は次のトークンを残す必要があります(設定ファイル)。凍結するのはファイル名とこれらのトークンです。任意のトークン、{{siteDataJson}} が運ぶデータの形、既定のテーマ自身のマークアップとクラスは凍結しないので、app.js を差し替えるテーマや既定のマークアップにスタイルを当てるテーマは、マイナーリリースで手直しが要ることがあります。
text
{{style}} {{sidebar}} {{pages}} {{siteDataJson}} {{appJs}} {{bodyScripts}}

テストは、オプションの既定値、トークン、差分のものを含むアドレスの例をコードと照らし合わせます。アドレスの規則、ファイルの探し方、上の記法はレビューで保ちます。

MIT License で公開しています。