Fix parsing extra whitespace in code blocks

This commit is contained in:
Vicent Marti
2012-07-21 15:34:56 +02:00
parent 7392bce5dc
commit 77fb5ec3cb
2 changed files with 17 additions and 2 deletions
+3 -2
View File
@@ -459,11 +459,12 @@ module Gollum
# Returns the placeholder'd String data.
def extract_code(data)
data.gsub!(/^([ \t]*)``` ?([^\r\n]+)?\r?\n(.+?)\r?\n\1```\r?$/m) do
id = Digest::SHA1.hexdigest("#{$2}.#{$3}")
lang = $2 ? $2.strip : nil
id = Digest::SHA1.hexdigest("#{lang}.#{$3}")
cached = check_cache(:code, id)
@codemap[id] = cached ?
{ :output => cached } :
{ :lang => $2, :code => $3, :indent => $1 }
{ :lang => lang, :code => $3, :indent => $1 }
"#{$1}#{id}" # print the SHA1 ID with the proper indentation
end
data
+14
View File
@@ -478,6 +478,20 @@ np.array([[2,2],[1,3]],np.float)
assert_markup_highlights_code Gollum::Markup, rendered
end
test "code with trailing whitespace" do
content = <<-END
shoop da woop
``` python
np.array([[2,2],[1,3]],np.float)
```
END
# rendered with Gollum::Markup
page, rendered = render_page(content)
assert_markup_highlights_code Gollum::Markup, rendered
end
def assert_markup_highlights_code(markup_class, rendered)
assert_match /div class="highlight"/, rendered, "#{markup_class} doesn't highlight code\n #{rendered}"
assert_match /span class="n"/, rendered, "#{markup_class} doesn't highlight code\n #{rendered}"