18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/markdown-highlight-extended-filter.rb', line 18
def format_syntax(text)
text.gsub(/^`{3} *([^\n]+)?\n(.+?)\n`{3}/m) do
options = $1 || ''
str = $2
if options =~ AllOptions
lang = $1
caption = "<figcaption><span>#{$2}</span><a href='#{$3}'>#{$4 || 'link'}</a></figcaption>"
elsif options =~ LangCaption
lang = $1
caption = "<figcaption><span>#{$2}</span></figcaption>"
end
if str.match(/\A( {4}|\t)/)
str = str.gsub(/^( {4}|\t)/, '')
end
if lang.nil? || lang == 'plain'
code = highlight_code(str.gsub('<','<').gsub('>','>'), "plain")
"<figure class='code'>#{caption}#{code}</figure>"
else
if lang.include? "-raw"
raw = "``` #{options.sub('-raw', '')}\n"
raw += str
raw += "\n```\n"
else
code = highlight_code(str, lang)
"<figure class='code'>#{caption}#{code}</figure>"
end
end
end
end
|