Class: Coradoc::Html::Converters::TemplateHtmlConverter
- Defined in:
- lib/coradoc/html/converters/template_html_converter.rb
Overview
HTML converter that uses Liquid templates for rendering
This converter provides template-based rendering where:
-
Users can provide custom template directories
-
Falls back to default templates
-
Supports template inheritance
Class Method Summary collapse
-
.convert_content_to_html(content, state = {}) ⇒ String
Convert content to HTML using template renderer.
-
.render_with_templates(model, state = {}) ⇒ String
Render a CoreModel document to HTML using the template renderer.
-
.to_html(model, state = {}) ⇒ String
Render a CoreModel document to HTML.
Instance Method Summary collapse
-
#initialize(template_paths: [], options: {}) ⇒ TemplateHtmlConverter
constructor
Initialize the converter.
-
#renderer ⇒ Coradoc::Html::TemplateRenderer
Get or create the template renderer.
Methods inherited from Base
build_class_attribute, build_element, build_html_attributes, convert_element_to_core, convert_node_to_core, escape_attribute, escape_html, extract_model_attributes, extract_node_attributes, extract_text_fallback, find_converter_class_by_name, find_converter_for_model, handle_unknown_content, render_core_abbreviation, render_core_annotation_block, render_core_bibliography, render_core_bibliography_entry, render_core_block, render_core_block_image, render_core_definition_item, render_core_definition_list, render_core_footnote, render_core_footnote_reference, render_core_inline_element, render_core_inline_image, render_core_list_block, render_core_list_item, render_core_span, render_core_structural_element, render_core_table_cell, render_core_table_row, render_core_term, render_core_toc, render_core_toc_entry, resolve_block_semantic_type, resolve_format_specific_semantic, transform_to_coremodel, treat_children
Constructor Details
#initialize(template_paths: [], options: {}) ⇒ TemplateHtmlConverter
Initialize the converter
24 25 26 27 28 |
# File 'lib/coradoc/html/converters/template_html_converter.rb', line 24 def initialize(template_paths: [], options: {}) @template_paths = template_paths @options = @renderer = nil end |
Class Method Details
.convert_content_to_html(content, state = {}) ⇒ String
Convert content to HTML using template renderer
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/coradoc/html/converters/template_html_converter.rb', line 61 def self.convert_content_to_html(content, state = {}) return '' if content.nil? renderer = Coradoc::Html::TemplateRenderer.new( template_paths: state[:template_paths] || [], options: state[:template_options] || {} ) renderer.render(content) end |
.render_with_templates(model, state = {}) ⇒ String
Render a CoreModel document to HTML using the template renderer
77 78 79 80 81 82 83 84 |
# File 'lib/coradoc/html/converters/template_html_converter.rb', line 77 def self.render_with_templates(model, state = {}) renderer = Coradoc::Html::TemplateRenderer.new( template_paths: state[:template_paths] || [], options: state[:template_options] || {} ) renderer.render(model) end |
.to_html(model, state = {}) ⇒ String
Render a CoreModel document to HTML
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/coradoc/html/converters/template_html_converter.rb', line 45 def self.to_html(model, state = {}) # Get template_paths from state or use defaults template_paths = state[:template_paths] || [] # Create converter with template paths new(template_paths: template_paths, options: state[:template_options] || {}) # Convert content using template renderer convert_content_to_html(model, state) end |
Instance Method Details
#renderer ⇒ Coradoc::Html::TemplateRenderer
Get or create the template renderer
33 34 35 36 37 38 |
# File 'lib/coradoc/html/converters/template_html_converter.rb', line 33 def renderer @renderer ||= Coradoc::Html::TemplateRenderer.new( template_paths: @template_paths, options: @options ) end |