Class: VivlioStarter::CLI::Guards::OrphanFileCheck
- Defined in:
- lib/vivlio_starter/cli/guards/orphan_file_check.rb
Overview
contents/ にあるが config/catalog.yml に未登録の原稿(孤立ファイル)を検出する。
catalog.yml で章をコメントアウトして除外するのは正規のワークフローのため、 警告のみ(preflight 専用)とし、1件ずつではなく1つの警告にまとめて列挙する。
Instance Method Summary collapse
Instance Method Details
#validate ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/vivlio_starter/cli/guards/orphan_file_check.rb', line 11 def validate return [] unless File.file?(Build::CatalogLoader::CATALOG_FILE) # macOS は濁点付きファイル名を NFD で保持することがあり、catalog の # NFC 表記と文字列比較で不一致になる(NF-02 で検出)。両辺を NFC へ # 揃えて正規化差だけのファイルを孤立扱いしない catalog_basenames = TokenResolver::Resolver.new.resolve.map { it.basename.unicode_normalize(:nfc) } orphans = contents_basenames.map { it.unicode_normalize(:nfc) } - catalog_basenames return [] if orphans.empty? [warning( "catalog.yml に未登録の原稿が #{orphans.size} 件あります(ビルド対象外)", detail: orphans.map { "- contents/#{it}.md" } )] end |