Class: Metanorma::Html::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/metanorma/html/generator.rb

Class Method Summary collapse

Class Method Details

.flavorsObject

Returns the full FlavorRegistry built from setup!. Read-only access for BaseRenderer, PubidRenderer, and any consumer that needs flavor identity.



13
14
15
16
# File 'lib/metanorma/html/generator.rb', line 13

def flavors
  setup! unless @setup
  @flavors
end

.generate(document) ⇒ Object



26
27
28
29
# File 'lib/metanorma/html/generator.rb', line 26

def generate(document, **)
  setup! unless @setup
  renderer_for(document).new.generate_full_document(document, **)
end

.register_taste(model_class, publisher_abbrev, renderer_class) ⇒ Object

Register a taste: same document model, different renderer based on publisher. When the document's first author publisher abbreviation matches, the taste renderer takes precedence over the model-based renderer.



22
23
24
# File 'lib/metanorma/html/generator.rb', line 22

def register_taste(model_class, publisher_abbrev, renderer_class)
  @tastes << [model_class, publisher_abbrev, renderer_class]
end

.renderer_for(document) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/metanorma/html/generator.rb', line 31

def renderer_for(document)
  setup! unless @setup

  taste_renderer = find_taste(document)
  return taste_renderer if taste_renderer

  flavor = @flavors.find_for(document.class)
  flavor&.renderer_class || BaseRenderer
end