Class: HTMLGenerator
- Inherits:
-
Object
- Object
- HTMLGenerator
- Defined in:
- lib/rosetta/formatters/html/html_generator.rb
Overview
Generates HTML for a given AST token.
Instance Method Summary collapse
- #generate(token) ⇒ Object
- #generate_basic_list(token) ⇒ Object
- #generate_block_quote(token) ⇒ Object
- #generate_bold(token) ⇒ Object
- #generate_break(_token) ⇒ Object
- #generate_code_block(token) ⇒ Object
- #generate_inline_code(token) ⇒ Object
- #generate_italics(token) ⇒ Object
- #generate_link(token) ⇒ Object
- #generate_list_item(token) ⇒ Object
- #generate_new_line(_token) ⇒ Object
- #generate_numbered_list(token) ⇒ Object
- #generate_paragraph(token) ⇒ Object
- #generate_quote(token) ⇒ Object
- #generate_strikethrough(token) ⇒ Object
- #generate_text(token) ⇒ Object
-
#initialize ⇒ HTMLGenerator
constructor
A new instance of HTMLGenerator.
Constructor Details
#initialize ⇒ HTMLGenerator
5 6 7 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 5 def initialize define_header_generators end |
Instance Method Details
#generate(token) ⇒ Object
9 10 11 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 9 def generate(token) token.accept(self) end |
#generate_basic_list(token) ⇒ Object
13 14 15 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 13 def generate_basic_list(token) generate_list(token.children, 'ul') end |
#generate_block_quote(token) ⇒ Object
25 26 27 28 29 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 25 def generate_block_quote(token) child_tokens = token.children.map { |child_token| generate(child_token) } ["<pre><blockquote>\n", child_tokens, "</blockquote></pre>\n"].join end |
#generate_bold(token) ⇒ Object
71 72 73 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 71 def generate_bold(token) "<b>#{token.value}</b>" end |
#generate_break(_token) ⇒ Object
49 50 51 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 49 def generate_break(_token) "</br>\n" end |
#generate_code_block(token) ⇒ Object
31 32 33 34 35 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 31 def generate_code_block(token) child_tokens = token.children.map { |child_token| generate(child_token) } ["<pre><code>\n", child_tokens, "</code></pre>\n"].compact.join end |
#generate_inline_code(token) ⇒ Object
67 68 69 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 67 def generate_inline_code(token) "<code>#{token.value}</code>" end |
#generate_italics(token) ⇒ Object
63 64 65 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 63 def generate_italics(token) "<em>#{token.value}</em>" end |
#generate_link(token) ⇒ Object
75 76 77 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 75 def generate_link(token) "<a href='#{token.url}'>#{token.value}</a>" end |
#generate_list_item(token) ⇒ Object
21 22 23 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 21 def generate_list_item(token) "<li>#{token.value}</li>\n" end |
#generate_new_line(_token) ⇒ Object
37 38 39 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 37 def generate_new_line(_token) "\n" end |
#generate_numbered_list(token) ⇒ Object
17 18 19 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 17 def generate_numbered_list(token) generate_list(token.children, 'ol') end |
#generate_paragraph(token) ⇒ Object
53 54 55 56 57 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 53 def generate_paragraph(token) child_tokens = token.children.map { |child_token| generate(child_token) } ["<p>\n", child_tokens, "</p>\n"].join end |
#generate_quote(token) ⇒ Object
41 42 43 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 41 def generate_quote(token) "#{token.value}\n" end |
#generate_strikethrough(token) ⇒ Object
59 60 61 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 59 def generate_strikethrough(token) "<del>#{token.value}</del>" end |
#generate_text(token) ⇒ Object
45 46 47 |
# File 'lib/rosetta/formatters/html/html_generator.rb', line 45 def generate_text(token) token.value end |