Class: VivlioStarter::CLI::TocCommands::TocDocumentBuilder
- Inherits:
-
Object
- Object
- VivlioStarter::CLI::TocCommands::TocDocumentBuilder
- Defined in:
- lib/vivlio_starter/cli/toc.rb
Overview
TOC の Markdown ドキュメントを構築する
Defined Under Namespace
Classes: ListState
Class Method Summary collapse
-
.front_matter ⇒ Object
href はワークスペース内 HTML からの相対(Common.asset_prefix 前置・P4 §3.3)。 book-settings.css を toc.css の後段に置く——章 HTML と同じ順序で、book.yml 由来の 設定値がテーマ CSS にカスケードで勝つ(P3)。これが無いと目次だけが book.yml を 見ずに組まれる(chapter-pagebreak-spec.md §6 実装記録)。.
Instance Method Summary collapse
-
#build ⇒ Object
TOC の Markdown 文字列を構築する.
-
#initialize(entry_map, base_dir:) ⇒ TocDocumentBuilder
constructor
A new instance of TocDocumentBuilder.
Constructor Details
#initialize(entry_map, base_dir:) ⇒ TocDocumentBuilder
Returns a new instance of TocDocumentBuilder.
158 159 160 161 162 |
# File 'lib/vivlio_starter/cli/toc.rb', line 158 def initialize(entry_map, base_dir:) @entry_map = entry_map @targets = entry_map.keys.sort @base_dir = Pathname.new(base_dir) end |
Class Method Details
.front_matter ⇒ Object
href はワークスペース内 HTML からの相対(Common.asset_prefix 前置・P4 §3.3)。 book-settings.css を toc.css の後段に置く——章 HTML と同じ順序で、book.yml 由来の 設定値がテーマ CSS にカスケードで勝つ(P3)。これが無いと目次だけが book.yml を 見ずに組まれる(chapter-pagebreak-spec.md §6 実装記録)。
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/vivlio_starter/cli/toc.rb', line 139 def self.front_matter <<~MD --- link: - rel: "stylesheet" href: "#{Common.asset_prefix}stylesheets/toc.css" - rel: "stylesheet" href: "#{Common.asset_prefix}#{PreProcessCommands::BookSettingsCss.output_path}" lang: 'ja' --- # 目次 <nav id="toc" role="doc-toc"> <ul> MD end |
Instance Method Details
#build ⇒ Object
TOC の Markdown 文字列を構築する
165 166 167 168 169 170 171 172 |
# File 'lib/vivlio_starter/cli/toc.rb', line 165 def build buffer = [self.class.front_matter] append_preface(buffer) append_headings(buffer) append_postface(buffer) buffer << "</ul>\n</nav>" buffer.join end |