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 31 32 33 34
|
# -*- coding: utf-8 -*- #
# frozen_string_literal: true
module Rouge
module Lexers
class LiterateCoffeescript < RegexLexer
tag 'literate_coffeescript'
title "Literate CoffeeScript"
desc 'Literate coffeescript'
aliases 'litcoffee'
filenames '*.litcoffee'
def markdown
@markdown ||= Markdown.new(options)
end
def coffee
@coffee ||= Coffeescript.new(options)
end
start { markdown.reset!; coffee.reset! }
state :root do
rule %r/^( .*?\n)+/m do
delegate coffee
end
rule %r/^([ ]{0,3}(\S.*?|)\n)*/m do
delegate markdown
end
end
end
end
end
|