mdmark check で設定と索引を点検し、ずれを直す手順
書き出す前と、設定・索引・文書を書き換えた後に実行する。
mdmark.config.yaml を今のフォルダか上のフォルダに置いている)check を呼ぶnpx github:shuhei1101/mdmark#v{版} check [--config {設定ファイル}] [--base {git の ref}]
--config を省くと、今のフォルダから上のフォルダへ順に mdmark.config.yaml を探し、最初に見つかったものを使う。
--base は、直し忘れを検査するときだけ渡す(直し忘れを検査する)。
設定・索引・文書は書き換えない。
次を点検する。
schemas/mdmark.config.schema.json に合うこと。build.glossary・build.entry が build.include に当たらないこと、theme・extensions のファイルが無いこと、extensions の拡張を読み込めないことも、合わないものとして出すindex があるとき、索引が schemas/mdmark.index.schema.json に合うことと、索引と文書のずれ。索引のフォルダの下の拡張子 .md のファイルのうち build.exclude に当たらないものを文書として確かめるbuild があるとき、build.include に当たり build.exclude に当たらない文書が 0 件でないことbuild の対象の文書の本文に、知らない印が無いこと。記法の印・features・libraries の対応表・extensions の拡張の印・check.ignore の名前のどれにも当たらない印を出す。コードブロックとインラインコードの中は見ないずれ 1 つが 1 行で、最後に件数の行が出る。
docs/index.yaml:docs[1].path: missing_doc: `old.md` が見つかりません。文書を戻すか、索引の `docs[1]` を消してください。
mdmark.config.yaml:build: schema: `build.out` がありません。書き出す HTML のパスを書いてください。
ずれ 2 件
行は {ファイル}:{場所}: {種類}: {内容} で、場所が空のときは {ファイル}: {種類}: {内容}。
ファイルは設定ファイルのあるフォルダからの相対パス。
種類と意味は CLI。
内容に、何が合わないかと直し方が書いてある。
内容に従って設定・索引・文書を直し、check をもう一度呼ぶ。
avoided_term は、内容に書いた行のやめた言い方を、代わりに使う用語の語に書き直す。
やめた言い方を使い続けるときは、索引の用語の avoid か、用語集の表のやめた言い方の列から外す。
unregistered_tag は、内容に書いたタグを、索引の tags に語彙として足すか、近いタグに直す。
deprecated_tag は、文書のタグを、内容に書いた振り替え先のタグに直す。
duplicate_tag は、索引の tags の同じ name を 1 つにまとめる。
tag_alias_conflict は、内容に書いた重なった先のタグと重ならないよう、aliases を直す。
broken_tag_replacement は、deprecated を索引の tags にある name に直すか、振り替え先のタグを語彙に足す。
untyped_related は、文字列の関連を、to・type・when を持つオブジェクトに書き換える。
one_sided_change_together は、内容に書いた相手の文書にも、自分への change_together を記載する。
related_link_overlap は、本文でリンクしている相手を related から外すか、本文のリンクを外す。
broken_ref は、related の to を索引にある文書の id に直す。
unknown_mark は、内容に書いた行の印の名前を直す。
extensions の拡張を読み込めないと出たときは、拡張のモジュールが読み込みの時点で使うブラウザの API(HTMLElement・window など)を、load の中へ移す。
他のツールへの指示(<!-- prettier-ignore --> など)のように印として書いていないコメントは、設定の check.ignore に名前を足す(点検から外す名前)。
ずれ 0 件 になるまで繰り返す。
change_together の組のうち片方の文書だけを直したことを検査するときは、比べる基準の git の ref を --base に渡す。
npx github:shuhei1101/mdmark#v{版} check --base origin/develop
基準と HEAD の merge-base から作業ツリーまでに変わったファイルを引き、片方の文書だけが変わった組を missed_change_together で出す。
内容に書いた変わった側の文書の内容を確かめ、変わっていない側の文書も直す。
直さなくてよいときは、change_together の関連を見直す。
--base を省くと、直し忘れを検査しない。
CI で流すときは、基準の ref と HEAD の merge-base を引けるよう、checkout の fetch-depth を 0 にして履歴を全て取得する。
設定ファイルが無いときは、探した場所と mdmark init で置けることを標準エラーに出す。
設定ファイルを YAML として読めないときは、ファイルと読めない行と直し方を標準エラーに出す。
--base の ref と HEAD の merge-base を引けないときは、渡した ref と引けない理由と、ref を直すか履歴を取得する直し方を標準エラーに出す。
どれも終了コード 1 で終わる。
即時。check を呼ぶたびに、その場の設定・索引・文書を点検する。
標準出力が ずれ 0 件 の 1 行になり、終了コードが 0 になる。
ずれがあるときの終了コードは 1。
check は何も書き換えないため、戻すものは無い。