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 =

インライン