Class: Metanorma::Plugin::Lutaml::BasePreprocessor
- Inherits:
-
Asciidoctor::Extensions::Preprocessor
- Object
- Asciidoctor::Extensions::Preprocessor
- Metanorma::Plugin::Lutaml::BasePreprocessor
- Includes:
- Utils
- Defined in:
- lib/metanorma/plugin/lutaml/base_preprocessor.rb
Overview
Base preprocessor for LutaML format-specific preprocessors.
Subclasses must implement:
- #lutaml_liquid?(line) — match the macro header line
- #load_lutaml_file(document, file_path, options)
parse format-specific input
Subclasses may override:
- #index_type_name — human-readable format name for error messages
- #update_repo(options, repo) — transform parsed repo before rendering
- #template(lines) — parse Liquid template lines
- #reorder_schemas(repo_liquid, options) — reorder/filter schemas
Direct Known Subclasses
Constant Summary
Constants included from Utils
Instance Method Summary collapse
Methods included from Utils
create_liquid_environment, error_signature, load_express_from_folder, load_express_from_index, load_express_repo_from_cache, load_express_repo_from_path, load_express_repositories, notify_render_errors, parse_document_express_indexes, processed_lines, relative_file_path, render_liquid_string, save_express_repo_to_cache
Instance Method Details
#process(document, reader) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/metanorma/plugin/lutaml/base_preprocessor.rb', line 27 def process(document, reader) input_lines = Asciidoctor::PreprocessorNoIfdefsReader .new(document, reader.lines).readlines.to_enum express_indexes = Utils.parse_document_express_indexes( document, input_lines ) result_content = process_input_lines( document: document, input_lines: input_lines, express_indexes: express_indexes, ) Asciidoctor::PreprocessorNoIfdefsReader.new(document, result_content) end |