diff --git a/app/assets/stylesheets/common/dtext.css.scss b/app/assets/stylesheets/common/dtext.css.scss index 84fe6510a..1c7b88e0a 100644 --- a/app/assets/stylesheets/common/dtext.css.scss +++ b/app/assets/stylesheets/common/dtext.css.scss @@ -35,6 +35,13 @@ div.prose { li { list-style-type: disc; } + + pre { + font-family: monospace; + margin: 1em 0; + padding: 1em 2em; + background: #eee; + } } div.dtext-preview { diff --git a/app/logical/d_text.rb b/app/logical/d_text.rb index f48668971..54b1ed704 100644 --- a/app/logical/d_text.rb +++ b/app/logical/d_text.rb @@ -132,6 +132,7 @@ class DText str.strip! blocks = str.split(/(?:\r?\n){2}/) stack = [] + flags = {} html = blocks.map do |block| case block @@ -167,9 +168,11 @@ class DText end when /\[code\](?!\])/ + flags[:code] = true '
'
when /\[\/code\](?!\])/
+ flags[:code] = false
''
when /\[spoilers?\](?!\])/
@@ -183,7 +186,11 @@ class DText
end
else
- '' + parse_inline(block) + "
" + if flags[:code] + block + else + '' + parse_inline(block) + '
' + end end end @@ -192,6 +199,8 @@ class DText html << "" elsif tag == "div" html << "" + elsif tag == "pre" + html << "" end end