Class: CommonMarker::Renderer
- Inherits:
- 
      Object
      
        - Object
- CommonMarker::Renderer
 
- Defined in:
- lib/commonmarker/renderer.rb
Direct Known Subclasses
Instance Attribute Summary collapse
- 
  
    
      #in_plain  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute in_plain. 
- 
  
    
      #in_tight  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute in_tight. 
- 
  
    
      #warnings  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute warnings. 
Instance Method Summary collapse
- #block ⇒ Object
- #blocksep ⇒ Object
- #code_block(node) ⇒ Object
- #container(starter, ender) ⇒ Object
- #containersep ⇒ Object
- #cr ⇒ Object
- #document(_node) ⇒ Object
- 
  
    
      #initialize(options: :DEFAULT, extensions: [])  ⇒ Renderer 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Renderer. 
- #out(*args) ⇒ Object
- #plain ⇒ Object
- #reference_def(_node) ⇒ Object
- #render(node) ⇒ Object
Constructor Details
#initialize(options: :DEFAULT, extensions: []) ⇒ Renderer
Returns a new instance of Renderer.
| 9 10 11 12 13 14 15 16 17 | # File 'lib/commonmarker/renderer.rb', line 9 def initialize(options: :DEFAULT, extensions: []) @opts = Config.(, :render) @stream = StringIO.new(+'') @need_blocksep = false @warnings = Set.new [] @in_tight = false @in_plain = false @tagfilter = extensions.include?(:tagfilter) end | 
Instance Attribute Details
#in_plain ⇒ Object
Returns the value of attribute in_plain.
| 8 9 10 | # File 'lib/commonmarker/renderer.rb', line 8 def in_plain @in_plain end | 
#in_tight ⇒ Object
Returns the value of attribute in_tight.
| 8 9 10 | # File 'lib/commonmarker/renderer.rb', line 8 def in_tight @in_tight end | 
#warnings ⇒ Object
Returns the value of attribute warnings.
| 8 9 10 | # File 'lib/commonmarker/renderer.rb', line 8 def warnings @warnings end | 
Instance Method Details
#block ⇒ Object
| 74 75 76 77 78 | # File 'lib/commonmarker/renderer.rb', line 74 def block cr yield cr end | 
#blocksep ⇒ Object
| 66 67 68 | # File 'lib/commonmarker/renderer.rb', line 66 def blocksep out("\n") end | 
#code_block(node) ⇒ Object
| 54 55 56 | # File 'lib/commonmarker/renderer.rb', line 54 def code_block(node) code_block(node) end | 
#container(starter, ender) ⇒ Object
| 80 81 82 83 84 | # File 'lib/commonmarker/renderer.rb', line 80 def container(starter, ender) out(starter) yield out(ender) end | 
#containersep ⇒ Object
| 70 71 72 | # File 'lib/commonmarker/renderer.rb', line 70 def containersep cr unless @in_tight end | 
#cr ⇒ Object
| 60 61 62 63 64 | # File 'lib/commonmarker/renderer.rb', line 60 def cr return if @stream.string.empty? || @stream.string[-1] == "\n" out("\n") end | 
#document(_node) ⇒ Object
| 50 51 52 | # File 'lib/commonmarker/renderer.rb', line 50 def document(_node) out(:children) end | 
#out(*args) ⇒ Object
| 19 20 21 22 23 24 25 26 27 28 29 30 31 | # File 'lib/commonmarker/renderer.rb', line 19 def out(*args) args.each do |arg| if arg == :children @node.each { |child| out(child) } elsif arg.is_a?(Array) arg.each { |x| render(x) } elsif arg.is_a?(Node) render(arg) else @stream.write(arg) end end end | 
#plain ⇒ Object
| 86 87 88 89 90 91 | # File 'lib/commonmarker/renderer.rb', line 86 def plain old_in_plain = @in_plain @in_plain = true yield @in_plain = old_in_plain end | 
#reference_def(_node) ⇒ Object
| 58 | # File 'lib/commonmarker/renderer.rb', line 58 def reference_def(_node); end | 
#render(node) ⇒ Object
| 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # File 'lib/commonmarker/renderer.rb', line 33 def render(node) @node = node if node.type == :document document(node) @stream.string elsif @in_plain && node.type != :text && node.type != :softbreak node.each { |child| render(child) } else begin send(node.type, node) rescue NoMethodError => e @warnings.add("WARNING: #{node.type} not implemented.") raise e end end end |