Module: Metanorma::Mirror::Output::HtmlRenderers
- Defined in:
- lib/metanorma/mirror/output/html_renderers.rb,
lib/metanorma/mirror/output/html_renderers/list_renderers.rb,
lib/metanorma/mirror/output/html_renderers/mark_renderers.rb,
lib/metanorma/mirror/output/html_renderers/block_renderers.rb,
lib/metanorma/mirror/output/html_renderers/inline_renderer.rb,
lib/metanorma/mirror/output/html_renderers/table_renderers.rb,
lib/metanorma/mirror/output/html_renderers/section_renderers.rb,
lib/metanorma/mirror/output/html_renderers/structural_renderers.rb
Defined Under Namespace
Modules: BlockRenderers, InlineRenderer, ListRenderers, MarkRenderers, SectionRenderers, StructuralRenderers, TableRenderers
Constant Summary collapse
- MODULES =
%i[ StructuralRenderers SectionRenderers BlockRenderers ListRenderers TableRenderers InlineRenderer MarkRenderers ].freeze
Class Method Summary collapse
-
.build ⇒ Object
Build a single HTML root element via Nokogiri::HTML4::Builder.
-
.build_fragment ⇒ Object
Build an HTML fragment (multiple roots permitted) via Nokogiri::HTML4::Builder.
-
.embed(doc, html_string) ⇒ Object
Embed a pre-rendered HTML string under the current builder node without re-escaping.
-
.escape_text(text) ⇒ Object
Escape text for safe inclusion in HTML body content.
- .register_all(renderer_class) ⇒ Object
-
.wrap(tag, inner_html, **attrs) ⇒ Object
Wrap a pre-rendered HTML string in a tag.
Class Method Details
.build ⇒ Object
Build a single HTML root element via Nokogiri::HTML4::Builder. Returns the rendered HTML string.
37 38 39 40 |
# File 'lib/metanorma/mirror/output/html_renderers.rb', line 37 def self.build(&) builder = Nokogiri::HTML4::Builder.new(&) builder.doc.root.to_html end |
.build_fragment ⇒ Object
Build an HTML fragment (multiple roots permitted) via Nokogiri::HTML4::Builder. Returns the rendered HTML string.
44 45 46 47 48 |
# File 'lib/metanorma/mirror/output/html_renderers.rb', line 44 def self.build_fragment(&) fragment = Nokogiri::HTML4::DocumentFragment.parse("") Nokogiri::HTML4::Builder.with(fragment, &) fragment.to_html end |
.embed(doc, html_string) ⇒ Object
Embed a pre-rendered HTML string under the current builder node without re-escaping.
52 53 54 55 56 |
# File 'lib/metanorma/mirror/output/html_renderers.rb', line 52 def self.(doc, html_string) return if html_string.nil? || html_string.to_s.empty? doc << Nokogiri::HTML4::DocumentFragment.parse(html_string.to_s) end |
.escape_text(text) ⇒ Object
Escape text for safe inclusion in HTML body content.
68 69 70 71 72 |
# File 'lib/metanorma/mirror/output/html_renderers.rb', line 68 def self.escape_text(text) return "" unless text CGI.escapeHTML(text.to_s) end |
.register_all(renderer_class) ⇒ Object
29 30 31 32 33 |
# File 'lib/metanorma/mirror/output/html_renderers.rb', line 29 def self.register_all(renderer_class) MODULES.each do |mod_name| const_get(mod_name).register(renderer_class) end end |
.wrap(tag, inner_html, **attrs) ⇒ Object
Wrap a pre-rendered HTML string in a tag. Used by mark handlers.
59 60 61 62 63 64 65 |
# File 'lib/metanorma/mirror/output/html_renderers.rb', line 59 def self.wrap(tag, inner_html, **attrs) Nokogiri::HTML4::Builder.new do |doc| doc.public_send(tag, attrs) do doc.parent.inner_html = inner_html.to_s end end.doc.root.to_html end |