Module: VivlioStarter::CLI::Build::EpubBuilder
- Defined in:
- lib/vivlio_starter/cli/build/epub_builder.rb
Overview
EPUB ビルド用の中間ファイル生成モジュール
Constant Summary collapse
- EPUB_CONFIG_FILE =
EPUB 専用設定ファイル名
'vivliostyle.config.epub.js'- EPUB_ENTRIES_FILE =
EPUB 専用 entries ファイル名
'entries.epub.js'- EPUB_OUTPUT_FILE =
EPUB デフォルト出力ファイル名
'output.epub'- EPUB_BOOK_SETTINGS_FILE =
EPUB へ同梱する book-settings.css の配置先(消費者 dir 直下)。 生成物の正規の置き場は .cache/vs/ だが、EPUB パッケージルート(= 消費者 dir)の 外にあるため、dir 直下へ url() を組み替えた変種をコピーして同梱する(§7.2 → P4 §5.4)。
'book-settings.css'- EXCLUDED_BASENAMES =
EPUB で除外する特殊ページ 目次は EPUB リーダーが自動生成するため不要
%w[_toc].freeze
- MARGIN_BOX_PATTERN =
epubcheck はこれらの構文そのものを CSS-008 ERROR として拒否する (@footnote は Vivliostyle が float: footnote 要素を収めるマージン at-rule)。 いずれも 1 段ネスト(
@bottom-center { content: ...; })を前提に非貪欲で本体を捕捉する。margin-bottom等のプロパティ名(先頭 @ 無し)には誤マッチしない。 /@(?:(?:top|bottom|left|right)-[a-z-]+|footnote)\s*\{[^{}]*\}/- FONT_FACE_PATTERN =
@font-face ブロックを検出する正規表現(1 段ネスト前提)。 フォント非埋め込み時、EPUB から fonts/ を除外すると src の参照が切れて RSC-007 になるため、EPUB パッケージ内 CSS から @font-face ごと除去する。
/@font-face\s*\{[^{}]*\}/- KEYFONT_FACE_PATTERN =
非埋め込みでも保持する @font-face(keyfont・keyfont_asset? で実体も同梱される)。
/font-family:\s*["']?keyfont\b/i- FONT_IMPORT_PATTERN =
fonts/ 配下を参照する @import を検出する正規表現。 page-settings.css は FontManager 生成の
@import url("fonts/google-fonts.css")を持つ。非埋め込みで fonts/ を除外すると参照切れ(RSC-007)になるため、 @font-face とあわせて EPUB 内 CSS から除去する。 /@import\s+url\(\s*["']?fonts\/[^"')]+["']?\s*\)\s*;?/- INLINE_WEBP_DECL_PATTERN =
インライン