1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
# -*- coding: utf-8 -*- #
# frozen_string_literal: true
module Rouge
module Formatters
class HTMLInline < HTML
tag 'html_inline'
def initialize(theme)
if theme.is_a?(Class) && theme < Rouge::Theme
@theme = theme.new
elsif theme.is_a?(Rouge::Theme)
@theme = theme
elsif theme.is_a?(String)
@theme = Rouge::Theme.find(theme).new
else
raise ArgumentError, "invalid theme: #{theme.inspect}"
end
end
def safe_span(tok, safe_val)
return safe_val if tok == Token::Tokens::Text
rules = @theme.style_for(tok).rendered_rules
"<span style=\"#{rules.to_a.join(';')}\">#{safe_val}</span>"
end
end
end
end
|