merge expandable branch; fixes #1638

This commit is contained in:
Toks
2013-06-14 12:43:40 -04:00
3 changed files with 64 additions and 2 deletions

View File

@@ -134,6 +134,8 @@ class DText
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")
str.gsub!(/\s*\[expand(\=[^\]]*)?\]\s*/m, "\n\n[expand\\1]\n\n")
str.gsub!(/\s*\[\/expand\]\s*/m, "\n\n[/expand]\n\n")
end
str.gsub!(/(?:\r?\n){3,}/, "\n\n")
@@ -195,6 +197,20 @@ class DText
flags[:code] = false
'</pre>'
when /\[expand(?:\=([^\]]*))?\](?!\])/
stack << "expandable"
expand_html = '<div class="expandable"><div class="expandable-header">'
expand_html << "<span>#{h($1)}</span>" if $1.present?
expand_html << '<div class="expandable-button">Show</div></div>'
expand_html << '<div class="expandable-content">'
expand_html
when /\[\/expand\](?!\])/
if stack.last == "expandable"
stack.pop
'</div></div>'
end
else
if flags[:code]
CGI.escape_html(block) + "\n\n"
@@ -213,6 +229,8 @@ class DText
html << "</pre>"
elsif tag == "spoiler"
html << "</div>"
elsif tag == "expandable"
html << "</div></div>"
end
end