Add support using github backtick code blocks without supplying a language

This commit is contained in:
Brandon Mathis 2011-07-28 15:59:27 -04:00
parent 2af038a725
commit 49a67785dc

View File

@ -27,24 +27,36 @@ module OctopressFilters
# ``` # ```
def backtick_codeblock(input) def backtick_codeblock(input)
# Markdown support # Markdown support
input = input.gsub /<p>`{3}\s(\w+)<\/p>\s*<pre><code>\s*(.+?)\s*<\/code><\/pre>\s*<p>`{3}<\/p>/m do input = input.gsub /<p>`{3}\s*(\w+)?<\/p>\s*<pre><code>\s*(.+?)\s*<\/code><\/pre>\s*<p>`{3}<\/p>/m do
lang = $1 lang = $1
if lang != ''
str = $2.gsub('&lt;','<').gsub('&gt;','>') str = $2.gsub('&lt;','<').gsub('&gt;','>')
highlight(str, lang) highlight(str, lang)
else
"<pre><code>#{$2}</code></pre>"
end
end end
# Textile support # Textile support
input = input.gsub /<p>`{3}\s(\w+)<br\s*\/>\n(.+?)`{3}<\/p>/m do input = input.gsub /<p>`{3}\s*(\w+)?<br\s*\/>\n(.+?)`{3}<\/p>/m do
lang = $1 lang = $1
str = $2.gsub('&lt;','<').gsub('&gt;','>').gsub(/^\s{4}/, '').gsub(/(<br\s\/>)?$/, '') str = $2.gsub('&lt;','<').gsub('&gt;','>').gsub(/^\s{4}/, '').gsub(/(<br\s\/>)?$/, '')
if lang != ''
highlight(str, lang) highlight(str, lang)
else
"<pre><code>#{$2}</code></pre>"
end
end end
# Regular HTML support # Regular HTML support
input.gsub /^`{3}\s(\w+)\n(.+?)\n`{3}/m do input.gsub /^`{3}\s*(\w+)?\n(.+?)\n`{3}/m do
lang = $1 lang = $1
str = $2.gsub(/^\s{4}/, '') str = $2.gsub(/^\s{4}/, '')
if lang != ''
highlight(str, lang) highlight(str, lang)
else
"<pre><code>#{$2.gsub('<','&lt;').gsub('>','&gt;')}</code></pre>"
end
end end
end end