fixes #1568
This commit is contained in:
@@ -131,6 +131,8 @@ class DText
|
||||
str.gsub!(/\s*\[\/quote\]\s*/m, "\n\n[/quote]\n\n")
|
||||
str.gsub!(/\s*\[code\]\s*/m, "\n\n[code]\n\n")
|
||||
str.gsub!(/\s*\[\/code\]\s*/m, "\n\n[/code]\n\n")
|
||||
str.gsub!(/\[spoilers?\]\s+/m, "\n\n[spoiler]\n\n")
|
||||
str.gsub!(/\s+\[\/spoilers?\]/m, "\n\n[/spoiler]\n\n")
|
||||
str.gsub!(/^(h[1-6]\.\s*.+)$/, "\n\n\\1\n\n")
|
||||
end
|
||||
|
||||
@@ -172,6 +174,18 @@ class DText
|
||||
else
|
||||
""
|
||||
end
|
||||
|
||||
when "[spoiler]"
|
||||
stack << "spoiler"
|
||||
'<div class="spoiler">'
|
||||
|
||||
when "[/spoiler]"
|
||||
if stack.last == "spoiler"
|
||||
stack.pop
|
||||
"</div>"
|
||||
else
|
||||
""
|
||||
end
|
||||
|
||||
when /\[code\](?!\])/
|
||||
flags[:code] = true
|
||||
@@ -197,6 +211,8 @@ class DText
|
||||
html << "</div>"
|
||||
elsif tag == "pre"
|
||||
html << "</pre>"
|
||||
elsif tag == "spoiler"
|
||||
html << "</div>"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -18,10 +18,11 @@ class DTextTest < ActiveSupport::TestCase
|
||||
|
||||
def test_spoilers
|
||||
assert_equal("<p>this is <span class=\"spoiler\">an inline spoiler</span>.</p>", p("this is [spoiler]an inline spoiler[/spoiler]."))
|
||||
assert_equal("<p>this is</p><p><span class=\"spoiler\"><br>a block spoiler<br></span>.</p>", p("this is\n\n[spoiler]\na block spoiler\n[/spoiler]."))
|
||||
assert_equal("<p>this is</p><div class=\"spoiler\"><p>a block spoiler</p></div><p>.</p>", p("this is\n\n[spoiler]\na block spoiler\n[/spoiler]."))
|
||||
assert_equal("<p>[spoiler]this is a spoiler with no closing tag</p><p>new text</p>", p("[spoiler]this is a spoiler with no closing tag\n\nnew text"))
|
||||
assert_equal("<p>[spoiler]this is a spoiler with no closing tag<br>new text</p>", p("[spoiler]this is a spoiler with no closing tag\nnew text"))
|
||||
assert_equal("<p><span class=\"spoiler\">this is [spoiler]a nested</span> spoiler[/spoiler]</p>", p("[spoiler]this is [spoiler]a nested[/spoiler] spoiler[/spoiler]"))
|
||||
assert_equal("<div class=\"spoiler\"><p>this is a block spoiler with no closing tag</p></div>", p("[spoiler]\nthis is a block spoiler with no closing tag"))
|
||||
end
|
||||
|
||||
def test_paragraphs
|
||||
|
||||
Reference in New Issue
Block a user