Class: Metanorma::Plugin::Glossarist::TemplateRenderer
- Inherits:
-
Object
- Object
- Metanorma::Plugin::Glossarist::TemplateRenderer
- Defined in:
- lib/metanorma/plugin/glossarist/template_renderer.rb
Constant Summary collapse
- DEFAULT_TEMPLATE =
File.join(TEMPLATES_DIR, "_concept.liquid")
Instance Method Summary collapse
-
#initialize(file_system:, lang: "eng") ⇒ TemplateRenderer
constructor
A new instance of TemplateRenderer.
- #render_concept(concept, depth:, anchor_prefix: nil, non_verbal: nil) ⇒ Object
- #render_concepts(concepts, depth:, anchor_prefix: nil, non_verbal: nil) ⇒ Object
Constructor Details
#initialize(file_system:, lang: "eng") ⇒ TemplateRenderer
Returns a new instance of TemplateRenderer.
9 10 11 12 |
# File 'lib/metanorma/plugin/glossarist/template_renderer.rb', line 9 def initialize(file_system:, lang: "eng") @file_system = file_system @lang = lang end |
Instance Method Details
#render_concept(concept, depth:, anchor_prefix: nil, non_verbal: nil) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/metanorma/plugin/glossarist/template_renderer.rb', line 23 def render_concept(concept, depth:, anchor_prefix: nil, non_verbal: nil) l10n = concept.localization(@lang) context = { "concept" => concept.to_liquid, "l10n" => l10n&.to_liquid, "depth_marker" => "=" * (depth + 1), "anchor" => build_anchor(concept.data.id.to_s, anchor_prefix), } rendered = render_template(File.read(DEFAULT_TEMPLATE), context) if non_verbal rendered += "\n\n#{non_verbal.render_concept_refs(concept)}" end normalize_whitespace(rendered) end |
#render_concepts(concepts, depth:, anchor_prefix: nil, non_verbal: nil) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/metanorma/plugin/glossarist/template_renderer.rb', line 14 def render_concepts(concepts, depth:, anchor_prefix: nil, non_verbal: nil) tree = build_concept_tree(concepts) parts = tree.map do |node| render_tree_node(node, depth, anchor_prefix, non_verbal) end normalize_whitespace(parts.join("\n\n")) end |