mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
Pass the full CommonMark spec
This commit is contained in:
@ -215,9 +215,12 @@ describe PrettyText do
|
||||
end
|
||||
|
||||
it 'can include code class correctly' do
|
||||
# keep in mind spaces should be trimmed per spec
|
||||
expect(PrettyText.cook("``` ruby the mooby\n`````")).to eq('<pre><code class="lang-ruby"></code></pre>')
|
||||
expect(PrettyText.cook("```cpp\ncpp\n```")).to match_html("<pre><code class='lang-cpp'>cpp\n</code></pre>")
|
||||
expect(PrettyText.cook("```\ncpp\n```")).to match_html("<pre><code class='lang-auto'>cpp\n</code></pre>")
|
||||
expect(PrettyText.cook("```text\ncpp\n```")).to match_html("<pre><code class='lang-nohighlight'>cpp\n</code></pre>")
|
||||
|
||||
end
|
||||
|
||||
it 'indents code correctly' do
|
||||
@ -966,69 +969,4 @@ HTML
|
||||
end
|
||||
end
|
||||
|
||||
# work in progress
|
||||
skip 'passes commonmark spec' do
|
||||
|
||||
SiteSetting.traditional_markdown_linebreaks = true
|
||||
|
||||
html,state,md = nil
|
||||
failed = 0
|
||||
|
||||
File.readlines(Rails.root + 'spec/fixtures/md/spec.txt').each do |line|
|
||||
if line == "```````````````````````````````` example\n"
|
||||
state = :example
|
||||
next
|
||||
end
|
||||
|
||||
if line == "````````````````````````````````\n"
|
||||
md.gsub!('→', "\t")
|
||||
html ||= ''
|
||||
html.gsub!('→', "\t")
|
||||
html.strip!
|
||||
|
||||
# normalize brs
|
||||
html.gsub!('<br />', '<br>')
|
||||
html.gsub!('<hr />', '<hr>')
|
||||
html.gsub!(/<img([^>]+) \/>/, "<img\\1>")
|
||||
|
||||
cooked = PrettyText.markdown(md, sanitize: false)
|
||||
cooked.strip!
|
||||
cooked.gsub!(" class='lang-auto'", '')
|
||||
cooked.gsub!(/<span class="hashtag">(.*)<\/span>/, "\\1")
|
||||
# we don't care about this
|
||||
cooked.gsub!("<blockquote>\n</blockquote>", "<blockquote></blockquote>")
|
||||
|
||||
unless cooked == html
|
||||
failed += 1
|
||||
puts "FAILED SPEC"
|
||||
puts "Expected: "
|
||||
puts html
|
||||
puts "Got: "
|
||||
puts cooked
|
||||
puts "Markdown: "
|
||||
puts md
|
||||
puts
|
||||
end
|
||||
html,state,md = nil
|
||||
next
|
||||
end
|
||||
|
||||
if state == :example && line == ".\n"
|
||||
state = :html
|
||||
next
|
||||
end
|
||||
|
||||
if state == :example
|
||||
md = (md || "") << line
|
||||
end
|
||||
|
||||
if state == :html
|
||||
html = (html || "") << line
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
expect(failed).to eq(0)
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user