Class: Inverter::Renderer
- Inherits:
-
Object
- Object
- Inverter::Renderer
- Defined in:
- lib/inverter/renderer.rb
Class Method Summary collapse
Class Method Details
.markdown ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/inverter/renderer.rb', line 14 def self.markdown # markdown configuration # https://github.com/vmg/redcarpet#and-its-like-really-simple-to-use @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true) end |
.markdown_input_type?(name) ⇒ Boolean
4 5 6 7 8 9 10 11 12 |
# File 'lib/inverter/renderer.rb', line 4 def self.markdown_input_type?(name) name_and_type = name.split(':') if name_and_type.size > 1 return name_and_type[1].strip == 'markdown' end return false end |
.render(html, blocks) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/inverter/renderer.rb', line 22 def self.render(html, blocks) offset = 0 map = ::Inverter::Parser.map_blocks_for(html) map.each do |name, pos| block = blocks[name] if markdown_input_type?(name) block = markdown.render(block) end block = "#{ block }" html[offset+pos[0]..offset+pos[1]] = block block_size = block.size template_block_size = pos[1] - pos[0] offset += block_size - template_block_size - 1 end return html end |