Class: Metanorma::Plugin::Lutaml::LutamlPreprocessor
- Inherits:
-
Asciidoctor::Extensions::Preprocessor
- Object
- Asciidoctor::Extensions::Preprocessor
- Metanorma::Plugin::Lutaml::LutamlPreprocessor
- Includes:
- Utils
- Defined in:
- lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb
Overview
Class for processing Lutaml files
Constant Summary collapse
- REMARKS_ATTRIBUTE =
"remarks"- EXPRESS_PREPROCESSOR_REGEX =
%r{ ^ # Start of line \[ # Opening bracket (?:\blutaml\b| # Match lutaml or \blutaml_express\b| # lutaml_express or \blutaml_express_liquid\b) # lutaml_express_liquid , # Comma separator (?<index_names>[^,]+)? # Optional index names ,? # Optional comma (?<context_name>[^,]+)? # Optional context name (?<options>,.*)? # Optional options \] # Closing bracket }x.freeze
Constants included from Utils
Instance Method Summary collapse
-
#process(document, reader) ⇒ Object
rubocop:disable Metrics/MethodLength.
Methods included from Utils
create_liquid_environment, 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
rubocop:disable Metrics/MethodLength
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb', line 33 def process(document, reader) # rubocop:disable Metrics/MethodLength r = Asciidoctor::PreprocessorNoIfdefsReader.new(document, reader.lines) input_lines = r.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 |