class Rouge::Formatters::HTML
Transforms a token stream into HTML output.
def escape_special_html_chars(value)
Returns either the given `value` argument string as is or a new string with the
a substitution is imminent.
a substitution occurs. This method however invokes `String#gsub` only if
`String#gsub` will always return a new string instance irrespective of whether
HTML from this formatter.
A performance-oriented helper method to escape `&`, `<` and `>` for the rendered
def escape_special_html_chars(value) escape_regex = /[&<>]/ return value unless value =~ escape_regex value.gsub(escape_regex, TABLE_FOR_ESCAPE_HTML) end
def safe_span(tok, safe_val)
def safe_span(tok, safe_val) if tok == Token::Tokens::Text safe_val else shortname = tok.shortname \ or raise "unknown token: #{tok.inspect} for #{safe_val.inspect}" "<span class=\"#{shortname}\">#{safe_val}</span>" end end
def span(tok, val)
def span(tok, val) return val if escape?(tok) safe_span(tok, escape_special_html_chars(val)) end
def stream(tokens, &b)
- Yield: - the html output.
def stream(tokens, &b) tokens.each { |tok, val| yield span(tok, val) } end