Method: RDoc::TokenStream.to_html

Defined in:
lib/rdoc/token_stream.rb

.to_html(token_stream) ⇒ Object

Converts token_stream to HTML wrapping various tokens with <span> elements. The following tokens types are wrapped in spans with the given class names:

TkCONSTANT

‘ruby-constant’

TkKW

‘ruby-keyword’

TkIVAR

‘ruby-ivar’

TkOp

‘ruby-operator’

TkId

‘ruby-identifier’

TkNode

‘ruby-node’

TkCOMMENT

‘ruby-comment’

TkREGEXP

‘ruby-regexp’

TkSTRING

‘ruby-string’

TkVal

‘ruby-value’

Other token types are not wrapped in spans.



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/rdoc/token_stream.rb', line 29

def self.to_html token_stream
  token_stream.map do |t|
    next unless t

    style = case t
            when RDoc::RubyToken::TkCONSTANT then 'ruby-constant'
            when RDoc::RubyToken::TkKW       then 'ruby-keyword'
            when RDoc::RubyToken::TkIVAR     then 'ruby-ivar'
            when RDoc::RubyToken::TkOp       then 'ruby-operator'
            when RDoc::RubyToken::TkId       then 'ruby-identifier'
            when RDoc::RubyToken::TkNode     then 'ruby-node'
            when RDoc::RubyToken::TkCOMMENT  then 'ruby-comment'
            when RDoc::RubyToken::TkREGEXP   then 'ruby-regexp'
            when RDoc::RubyToken::TkSTRING   then 'ruby-string'
            when RDoc::RubyToken::TkVal      then 'ruby-value'
            end

    text = CGI.escapeHTML t.text

    if style then
      "<span class=\"#{style}\">#{text}</span>"
    else
      text
    end
  end.join
end