summaryrefslogtreecommitdiffstats
path: root/lib/redmine/wiki_formatting/markdown/formatter.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2018-04-07 07:34:43 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2018-04-07 07:34:43 +0000
commit040f31d867c3764abda4e0d0b08b96565ba088f9 (patch)
tree411077d2849e231d3f767319e819fe6fb0b1b62a /lib/redmine/wiki_formatting/markdown/formatter.rb
parent9e05f69fdec53bbea0dce0877a9a7b2a3184137b (diff)
downloadredmine-040f31d867c3764abda4e0d0b08b96565ba088f9.tar.gz
redmine-040f31d867c3764abda4e0d0b08b96565ba088f9.zip
Markdown pre-block could derive incorrect wiki sections (#25299).
Patch by Kiichi Ozaki. git-svn-id: http://svn.redmine.org/redmine/trunk@17266 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib/redmine/wiki_formatting/markdown/formatter.rb')
-rw-r--r--lib/redmine/wiki_formatting/markdown/formatter.rb14
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/redmine/wiki_formatting/markdown/formatter.rb b/lib/redmine/wiki_formatting/markdown/formatter.rb
index c959c3a06..c7611d977 100644
--- a/lib/redmine/wiki_formatting/markdown/formatter.rb
+++ b/lib/redmine/wiki_formatting/markdown/formatter.rb
@@ -94,15 +94,13 @@ module Redmine
i = 0
l = 1
inside_pre = false
- @text.split(/(^(?:.+\r?\n\r?(?:\=+|\-+)|#+.+|~~~.*)\s*$)/).each do |part|
+ @text.split(/(^(?:.+\r?\n\r?(?:\=+|\-+)|#+.+|(?:~~~|```).*)\s*$)/).each do |part|
level = nil
- if part =~ /\A~{3,}(\S+)?\s*$/
- if $1
- if !inside_pre
- inside_pre = true
- end
- else
- inside_pre = !inside_pre
+ if part =~ /\A(~{3,}|`{3,})(\S+)?\s*$/
+ if !inside_pre
+ inside_pre = true
+ elsif !$2
+ inside_pre = false
end
elsif inside_pre
# nop