Class: Metanorma::Plugin::Datastruct::BaseStructuredTextPreprocessor

Inherits:
Asciidoctor::Extensions::Preprocessor
  • Object
show all
Defined in:
lib/metanorma/plugin/datastruct/base_structured_text_preprocessor.rb

Overview

Base class for processing structured data blocks(yaml, json)

Constant Summary collapse

BLOCK_START_REGEXP =
/\{(.+?)\.\*,(.+),(.+)\}/.freeze
BLOCK_END_REGEXP =
/\A\{[A-Z]+\}\z/.freeze
LOAD_FILE_REGEXP =
/{% assign (.*) = (.*) \| load_file %}/.freeze

Instance Method Summary collapse

Instance Method Details

#process(document, reader) ⇒ Object


34
35
36
37
38
39
40
41
42
43
44
# File 'lib/metanorma/plugin/datastruct/base_structured_text_preprocessor.rb', line 34

def process(document, reader)
  r = ::Asciidoctor::PreprocessorNoIfdefsReader
    .new document, reader.lines
  input_lines = r.readlines
  Metanorma::Plugin::Datastruct::SourceExtractor.extract(
    document,
    input_lines,
  )
  Asciidoctor::PreprocessorNoIfdefsReader
    .new(document, processed_lines(document, input_lines.to_enum))
end