class Syntax::Convertors::HTML
A simple class for converting a text into HTML.
Public Instance Methods
convert( text, pre=true )
click to toggle source
Converts the given text to HTML, using spans to
represent token groups of any type but :normal
(which is
always unhighlighted). If pre
is true
, the html
is automatically wrapped in pre tags.
# File lib/syntax/convertors/html.rb, line 12 def convert( text, pre=true ) html = "" html << "<pre>" if pre regions = [] @tokenizer.tokenize( text ) do |tok| value = html_escape(tok) case tok.instruction when :region_close then regions.pop html << "</span>" when :region_open then regions.push tok.group html << "<span class=\"#{tok.group}\">#{value}" else if tok.group == ( regions.last || :normal ) html << value else html << "<span class=\"#{tok.group}\">#{value}</span>" end end end html << "</span>" while regions.pop html << "</pre>" if pre html end
Private Instance Methods
html_escape( string )
click to toggle source
Replaces some characters with their corresponding HTML entities.
# File lib/syntax/convertors/html.rb, line 41 def html_escape( string ) string.gsub( /&/, "&" ). gsub( /</, "<" ). gsub( />/, ">" ). gsub( /"/, """ ) end