Module: Metanorma::Mirror
- Defined in:
- lib/metanorma/mirror.rb,
lib/metanorma/mirror/model.rb,
lib/metanorma/mirror/output.rb,
lib/metanorma/mirror/version.rb,
lib/metanorma/mirror/handlers.rb,
lib/metanorma/mirror/metadata.rb,
lib/metanorma/mirror/rewriter.rb,
lib/metanorma/mirror/math_util.rb,
lib/metanorma/mirror/safe_attr.rb,
lib/metanorma/mirror/model/leaf.rb,
lib/metanorma/mirror/model/mark.rb,
lib/metanorma/mirror/model/node.rb,
lib/metanorma/mirror/model/text.rb,
lib/metanorma/mirror/class_table.rb,
lib/metanorma/mirror/id_strategy.rb,
lib/metanorma/mirror/model/guide.rb,
lib/metanorma/mirror/transformer.rb,
lib/metanorma/mirror/handlers/list.rb,
lib/metanorma/mirror/handlers/note.rb,
lib/metanorma/mirror/handlers/term.rb,
lib/metanorma/mirror/model/factory.rb,
lib/metanorma/mirror/serialization.rb,
lib/metanorma/mirror/handler_result.rb,
lib/metanorma/mirror/handlers/quote.rb,
lib/metanorma/mirror/handlers/table.rb,
lib/metanorma/mirror/output/builder.rb,
lib/metanorma/mirror/output/formats.rb,
lib/metanorma/mirror/handlers/figure.rb,
lib/metanorma/mirror/handlers/inline.rb,
lib/metanorma/mirror/handlers/review.rb,
lib/metanorma/mirror/handlers/svgmap.rb,
lib/metanorma/mirror/model/container.rb,
lib/metanorma/mirror/output/pipeline.rb,
lib/metanorma/mirror/default_registry.rb,
lib/metanorma/mirror/handler_registry.rb,
lib/metanorma/mirror/handlers/example.rb,
lib/metanorma/mirror/handlers/formula.rb,
lib/metanorma/mirror/handlers/section.rb,
lib/metanorma/mirror/model/soft_break.rb,
lib/metanorma/mirror/handlers/imagemap.rb,
lib/metanorma/mirror/handlers/paragraph.rb,
lib/metanorma/mirror/handlers/admonition.rb,
lib/metanorma/mirror/handlers/sourcecode.rb,
lib/metanorma/mirror/handlers/structural.rb,
lib/metanorma/mirror/id_strategy/preserve.rb,
lib/metanorma/mirror/id_strategy/positional.rb,
lib/metanorma/mirror/handlers/inline/catalog.rb,
lib/metanorma/mirror/output/pipeline_context.rb,
lib/metanorma/mirror/output/formats/base_format.rb,
lib/metanorma/mirror/output/formats/inline_format.rb,
lib/metanorma/mirror/serialization/json_serializer.rb,
lib/metanorma/mirror/serialization/yaml_serializer.rb,
lib/metanorma/mirror/handlers/inline/text_extractor.rb,
lib/metanorma/mirror/handlers/inline/rich_html_renderer.rb
Overview
The Mirror format: a lossless JSON projection of a Metanorma document as a typed node tree (blocks, inlines, marks), for renderers and tooling (the SMART document reader, the HTML JS renderer, MKO payload provenance).
This gem is format + mechanism only: node models, the handler registry, the transformer walk, serializers, and the output pipeline. Model knowledge (which document classes map to which handlers, marks, renderers, id categories) is REGISTERED by the model gems — metanorma-document and metanorma-standoc seed the defaults at load time via the registration seams below.
Defined Under Namespace
Modules: DefaultRegistry, Handlers, IdStrategy, MathUtil, Metadata, Model, Output, SafeAttr, Serialization Classes: ClassTable, Error, HandlerRegistry, HandlerResult, Rewriter, Transformer
Constant Summary collapse
- DEFAULT_ID_STRATEGY =
IdStrategy::Preserve.new
- VERSION =
"1.0.0"
Class Attribute Summary collapse
-
.inline_content_iterator ⇒ Object
Returns the value of attribute inline_content_iterator.
Class Method Summary collapse
- .build_default_registry ⇒ Object
- .default_hooks ⇒ Object
- .default_registry ⇒ Object
-
.inline_text_substitutions ⇒ Object
Inline element classes -> plain-text substitutions (TabElement -> " ", BrElement -> "\n").
-
.mark_builders ⇒ Object
Inline element classes -> mark builders (e.g. EmRawElement -> emphasis mark).
- .register_default(&block) ⇒ Object
-
.rich_html_renderers ⇒ Object
Inline element classes -> rich-HTML renderer lambdas (stem, xref, link, eref, fn, span, br).
-
.semx_elements ⇒ Object
Element classes recognized as semx wrappers (cross-reference carriers); payload is always true.
-
.simple_inline_elements ⇒ Object
Inline element classes -> SIMPLE_WRAPS mark types (see Handlers::Inline::Catalog).
Class Attribute Details
.inline_content_iterator ⇒ Object
Returns the value of attribute inline_content_iterator.
87 88 89 |
# File 'lib/metanorma/mirror.rb', line 87 def inline_content_iterator @inline_content_iterator end |
Class Method Details
.build_default_registry ⇒ Object
94 95 96 |
# File 'lib/metanorma/mirror.rb', line 94 def self.build_default_registry DefaultRegistry.build end |
.default_hooks ⇒ Object
48 49 50 |
# File 'lib/metanorma/mirror.rb', line 48 def self.default_hooks @default_hooks end |
.default_registry ⇒ Object
90 91 92 |
# File 'lib/metanorma/mirror.rb', line 90 def self.default_registry @default_registry ||= build_default_registry end |
.inline_text_substitutions ⇒ Object
Inline element classes -> plain-text substitutions (TabElement -> " ", BrElement -> "\n").
66 67 68 |
# File 'lib/metanorma/mirror.rb', line 66 def self.inline_text_substitutions @inline_text_substitutions ||= ClassTable.new end |
.mark_builders ⇒ Object
Inline element classes -> mark builders (e.g. EmRawElement -> emphasis mark).
54 55 56 |
# File 'lib/metanorma/mirror.rb', line 54 def self.mark_builders @mark_builders ||= ClassTable.new end |
.register_default(&block) ⇒ Object
44 45 46 |
# File 'lib/metanorma/mirror.rb', line 44 def self.register_default(&block) @default_hooks << block end |
.rich_html_renderers ⇒ Object
Inline element classes -> rich-HTML renderer lambdas (stem, xref, link, eref, fn, span, br).
60 61 62 |
# File 'lib/metanorma/mirror.rb', line 60 def self.rich_html_renderers @rich_html_renderers ||= ClassTable.new end |
.semx_elements ⇒ Object
Element classes recognized as semx wrappers (cross-reference carriers); payload is always true.
78 79 80 |
# File 'lib/metanorma/mirror.rb', line 78 def self.semx_elements @semx_elements ||= ClassTable.new end |
.simple_inline_elements ⇒ Object
Inline element classes -> SIMPLE_WRAPS mark types (see Handlers::Inline::Catalog).
72 73 74 |
# File 'lib/metanorma/mirror.rb', line 72 def self.simple_inline_elements @simple_inline_elements ||= ClassTable.new end |