Class: VivlioStarter::CLI::PreProcessCommands::MarkdownPreprocessor
- Inherits:
-
Object
- Object
- VivlioStarter::CLI::PreProcessCommands::MarkdownPreprocessor
- Defined in:
- lib/vivlio_starter/cli/pre_process/markdown_preprocessor.rb
Overview
Markdown 前処理を段階的に実行するクラス
Constant Summary collapse
- TABLE_CONTAINER_CLASSES =
テーブルコンテナのクラス名(long-table との語順統一で rotate-table を採用)。
%w[long-table rotate-table].freeze
- INVALID_PAGEBREAK_PATTERN =
マッチしないため、放置すると生テキストのまま紙面に出る(§2.2 の否定先読みの裏面)。
/@pagebreak:(?!(?:recto|verso)\b)([\w-]*)/
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Instance Method Summary collapse
-
#initialize(md_file, entry) ⇒ MarkdownPreprocessor
constructor
A new instance of MarkdownPreprocessor.
-
#run ⇒ Object
指定Markdownの前処理パイプラインを順次実行する.
Constructor Details
#initialize(md_file, entry) ⇒ MarkdownPreprocessor
Returns a new instance of MarkdownPreprocessor.
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/vivlio_starter/cli/pre_process/markdown_preprocessor.rb', line 71 def initialize(md_file, entry) filename = File.basename(md_file) @context = PreProcessContext.new( source_path: md_file, # 中間 .md はルートではなくワークスペースの html/ へ書く(P4 §3.4-1) output_path: File.join(Common::BUILD_HTML_DIR, filename), filename: filename, file_type: entry.kind.to_s, chapter_number: entry.number, content: File.read(md_file, encoding: 'utf-8') ) end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
60 61 62 |
# File 'lib/vivlio_starter/cli/pre_process/markdown_preprocessor.rb', line 60 def context @context end |
Instance Method Details
#run ⇒ Object
指定Markdownの前処理パイプラインを順次実行する
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/vivlio_starter/cli/pre_process/markdown_preprocessor.rb', line 85 def run Common.log_info("#{context.source_path} → #{context.output_path}") validate_directives! validate_links! apply_frontmatter! strip_html_comments! transform_terminal_blocks! process_data_streams! normalize_image_paths! transform_qr_codes! validate_images! transform_showcases! transform_mermaid! transform_talk! process_code_includes! transform_math! normalize_html_block_boundaries! escape_inline_code_html! transform_text_right_inlines! transform_spacing_markers! transform_text_align_containers! transform_book_cards! transform_tables! normalize_container_fences! transform_fancy_lists! transform_definition_lists! transform_links! expose_container_footnotes! strip_index_markup! write_output! end |