lib/rouge/lexers/markdown.rb in rouge-0.2.1 vs lib/rouge/lexers/markdown.rb in rouge-0.2.2
- old
+ new
@@ -28,32 +28,16 @@
rule /^#(?=[^#]).*?$/, 'Generic.Heading'
rule /^##*.*?$/, 'Generic.Subheading'
# TODO: syntax highlight the code block, github style
rule /(\n[ \t]*)(```|~~~)(.*?)(\n.*?)(\2)/m do |m|
- sublexer, opts = m[3].strip.split('?', 2)
+ sublexer = Lexer.find_fancy(m[3].strip, m[4])
+ sublexer ||= Text.new(:token => 'Literal.String.Backtick')
- if sublexer
- sublexer = Lexer.find(sublexer)
-
- # parse the options hash from a cgi-style string
- opts = CGI.parse(opts || '').map do |k, vals|
- [ k.to_sym, vals.empty? ? true : vals[0] ]
- end
-
- opts = Hash[opts]
-
- sublexer &&= sublexer.new(opts)
- end
-
token 'Text', m[1]
token 'Punctuation', m[2]
token 'Name.Label', m[3]
- if sublexer
- delegate sublexer, m[4]
- else
- token 'Literal.String.Backtick', m[4]
- end
+ delegate sublexer, m[4]
token 'Punctuation', m[5]
end
rule /\n\n(( |\t).*?\n|\n)+/, 'Literal.String.Backtick'