mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 11:37:14 +00:00
Markdown text sections broken by thematic breaks (horizontal rules) (#35036).
Patch by Martin Cizek. git-svn-id: http://svn.redmine.org/redmine/trunk@20998 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
91379493cd
commit
183642ba20
@ -89,7 +89,7 @@ module Redmine
|
||||
i = 0
|
||||
l = 1
|
||||
inside_pre = false
|
||||
@text.split(/(^(?:.+\r?\n\r?(?:\=+|\-+)|#+.+|(?:~~~|```).*)\s*$)/).each do |part|
|
||||
@text.split(/(^(?:\S+\r?\n\r?(?:\=+|\-+)|#+.+|(?:~~~|```).*)\s*$)/).each do |part|
|
||||
level = nil
|
||||
if part =~ /\A(~{3,}|`{3,})(\s*\S+)?\s*$/
|
||||
if !inside_pre
|
||||
|
||||
@ -180,6 +180,75 @@ class Redmine::WikiFormatting::MarkdownFormatterTest < ActionView::TestCase
|
||||
)
|
||||
end
|
||||
|
||||
STR_SETEXT_LIKE = [
|
||||
# 0
|
||||
<<~STR.chomp,
|
||||
# Title
|
||||
STR
|
||||
# 1
|
||||
<<~STR.chomp,
|
||||
## Heading 2
|
||||
|
||||
Thematic breaks - not be confused with setext headings.
|
||||
|
||||
---
|
||||
|
||||
Preceding CRLF is the default for web-submitted data.
|
||||
\r
|
||||
---\r
|
||||
\r
|
||||
|
||||
A space-only line does not mean much.
|
||||
\s
|
||||
---
|
||||
|
||||
End of thematic breaks.
|
||||
STR
|
||||
# 2
|
||||
<<~STR.chomp,
|
||||
## Heading 2
|
||||
Nulla nunc nisi, egestas in ornare vel, posuere ac libero.
|
||||
STR
|
||||
]
|
||||
|
||||
STR_RARE_SETEXT_LIKE = [
|
||||
# 0
|
||||
<<~STR.chomp,
|
||||
# Title
|
||||
STR
|
||||
# 1
|
||||
<<~STR.chomp,
|
||||
## Heading 2
|
||||
|
||||
- item
|
||||
one
|
||||
-
|
||||
not a heading
|
||||
STR
|
||||
# 2
|
||||
<<~STR.chomp,
|
||||
## Heading 2
|
||||
Nulla nunc nisi, egestas in ornare vel, posuere ac libero.
|
||||
STR
|
||||
]
|
||||
|
||||
def test_get_section_should_ignore_setext_like_text
|
||||
text = STR_SETEXT_LIKE.join("\n\n")
|
||||
assert_section_with_hash STR_SETEXT_LIKE[1], text, 2
|
||||
assert_section_with_hash STR_SETEXT_LIKE[2], text, 3
|
||||
end
|
||||
|
||||
def test_get_section_should_ignore_rare_setext_like_text
|
||||
begin
|
||||
text = STR_RARE_SETEXT_LIKE.join("\n\n")
|
||||
assert_section_with_hash STR_RARE_SETEXT_LIKE[1], text, 2
|
||||
assert_section_with_hash STR_RARE_SETEXT_LIKE[2], text, 3
|
||||
rescue Minitest::Assertion => e
|
||||
skip "Section extraction is currently limited, see #35037. Known error: #{e.message}"
|
||||
end
|
||||
assert_not "This test should be adjusted when fixing the known error."
|
||||
end
|
||||
|
||||
def test_should_support_underlined_text
|
||||
text = 'This _text_ should be underlined'
|
||||
assert_equal '<p>This <u>text</u> should be underlined</p>', @formatter.new(text).to_html.strip
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user