Class: VivlioStarter::CLI::Guards::CodeFenceCheck
- Defined in:
- lib/vivlio_starter/cli/guards/code_fence_check.rb
Overview
contents/*.md のコードフェンス(``` / ~~~)の開始・終了が揃っているかを ビルド前に検出して警告する。閉じ忘れや余分なフェンスがあると、以降の本文が コード扱い(またはその逆)になり、ビルドの体裁や校正が崩れる。
きっかけ: 同じバッククォート数でフェンスを入れ子にした原稿
(外: markdown / 内: css)が閉じきらず、以降の校正・体裁がずれた。
vs lint のスペルチェックが大量に誤検出して発覚した。
判定: 行頭の (3 連以上)/ ~~~(3 連以上)を「フェンス区切り」と数え、 総数が奇数なら「閉じ忘れ/余分」と見なす。整形式の原稿では、入れ子を含め 常に偶数になる(コード例の中で を示す入れ子は、外側を ```` 4 連にすれば
内側の ``` 2 行と合わせて偶数で整合する)。
重大度はエラー(ビルドしても意図通りにならないため、画像名チェック等と同様に
ビルド前に停止させる)。
Instance Method Summary collapse
-
#validate ⇒ Array<Violation>
エラーの配列(合格なら空配列).
Instance Method Details
#validate ⇒ Array<Violation>
Returns エラーの配列(合格なら空配列).
24 25 26 |
# File 'lib/vivlio_starter/cli/guards/code_fence_check.rb', line 24 def validate markdown_files.filter_map { |path| check_file(path) } end |