Class: VivlioStarter::CLI::Build::EpubFlow
- Inherits:
-
Object
- Object
- VivlioStarter::CLI::Build::EpubFlow
- Defined in:
- lib/vivlio_starter/cli/build/epub_flow.rb
Overview
================================================================
Build::EpubFlow — EPUB / Kindle ビルドのオーケストレーション(§1-3 方式B)
生成済みの章 HTML を再利用して EPUB(クリーン)/ Kindle(KPF)を生成する一連の フローを担う。P2 で pipeline.rb から本フローへ移設した。
P4 段階 4: 各フレーバは専用の消費者 dir(.cache/vs/build/epub/・kindle/)で 完結する。html/(常にクリーンな原本・dedup 非通過)から prefix を剥がして ステージし、参照資産を dir 内へローカライズ、entryContext 指定の生成 config で ビルドする(実験 E2 の確定案)。フレーバごとに dir が分かれるため、 旧来の「dedup 前スナップショット」「epub⇄kindle フレーバ間スナップショット」は 構造的に不要となり撤去した(完了条件 1)。
Instance Method Summary collapse
-
#initialize(entries, targets, options) ⇒ EpubFlow
constructor
A new instance of EpubFlow.
-
#run! ⇒ Object
EPUB / Kindle 生成のメインフロー。 各フレーバは独立した消費者 dir でビルドされるため相互汚染は構造的に起こらない。.
Constructor Details
#initialize(entries, targets, options) ⇒ EpubFlow
Returns a new instance of EpubFlow.
26 27 28 29 30 |
# File 'lib/vivlio_starter/cli/build/epub_flow.rb', line 26 def initialize(entries, targets, ) @entries = Array(entries) @targets = targets @options = end |
Instance Method Details
#run! ⇒ Object
EPUB / Kindle 生成のメインフロー。 各フレーバは独立した消費者 dir でビルドされるため相互汚染は構造的に起こらない。
表紙画像はここでは作らない。PDF 枝と同じ .cache/vs/covers/ へ書くため、
枝を並列に走らせると衝突する——生成は共通前段の prepare cover assets が
1 回だけ行う(build-target-parallelization-spec.md §3.2)。
38 39 40 41 42 43 |
# File 'lib/vivlio_starter/cli/build/epub_flow.rb', line 38 def run! Common.log_action('[generate epub] EPUB を生成します…') build_flavor(:epub) if targets.epub build_flavor(:kindle) if targets.kindle end |