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

Class Method Summary collapse

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