Class: VivlioStarter::CLI::Guards::CodeFenceCheck

Inherits:
BaseCheck
  • Object
show all
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

Instance Method Details

#validateArray<Violation>

Returns エラーの配列(合格なら空配列).

Returns:

  • (Array<Violation>)

    エラーの配列(合格なら空配列)



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