Class: VivlioStarter::CLI::Guards::ContainerFenceCheck

Inherits:
BaseCheck
  • Object
show all
Defined in:
lib/vivlio_starter/cli/guards/container_fence_check.rb

Overview

contents/*.md の ::: コンテナ記法の開始・終了が揃っているかを検出して停止する。

なぜエラー(停止)なのか:

`:::{.class}` は最終的に `<div class="class">` へ、残る `:::` は一律 `</div>` へ
置換される(組み込み置換ルール ReplacementRules)。数が合わなければ `<div>` が閉じず、
以降の本文がまるごと枠の中へ飲み込まれる。CodeFenceCheck(``` の数)と同じ性質の
破綻であり、ビルド前に止めるのが親切である。

判定: 開始(:::{…})で深さ +1、終了(::: のみ)で −1。 深さが負になれば「対応する開始がない終了」、走査後に正なら「閉じ忘れ」。 入れ子(:::{.column} の中の :::{.note})は正しく均衡と判定される。

Instance Method Summary collapse

Instance Method Details

#validateArray<Violation>

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

Returns:

  • (Array<Violation>)

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



21
22
23
# File 'lib/vivlio_starter/cli/guards/container_fence_check.rb', line 21

def validate
  markdown_files.filter_map { check_file(it) }
end