mirror of
https://github.com/meineerde/redmine.git
synced 2026-02-05 16:43:25 +00:00
Faster textile table parsing by using a single scan instead of a regexp matching for each cell (#18883).
git-svn-id: http://svn.redmine.org/redmine/trunk@13918 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
0bc87002d2
commit
b7b1f64079
@ -529,13 +529,13 @@ class RedCloth3 < String
|
||||
fullrow.each_line do |row|
|
||||
ratts, row = pba( $1, 'tr' ), $2 if row =~ /^(#{A}#{C}\. )(.*)/m
|
||||
cells = []
|
||||
row.split( /(\|)(?![^\[\|]*\]\])/ )[1..-2].each do |cell|
|
||||
next if cell == '|'
|
||||
# the regexp prevents wiki links with a | from being cut as cells
|
||||
row.scan(/\|(_?#{S}#{A}#{C}\. ?)?((\[\[[^|\]]*\|[^|\]]*\]\]|[^|])*?)(?=\|)/) do |modifiers, cell|
|
||||
ctyp = 'd'
|
||||
ctyp = 'h' if cell =~ /^_/
|
||||
ctyp = 'h' if modifiers && modifiers =~ /^_/
|
||||
|
||||
catts = nil
|
||||
catts, cell = pba( $1, 'td' ), $2 if cell =~ /^(_?#{S}#{A}#{C}\. ?)(.*)/
|
||||
catts = pba( modifiers, 'td' ) if modifiers
|
||||
|
||||
catts = shelve( catts ) if catts
|
||||
cells << "\t\t\t<t#{ ctyp }#{ catts }>#{ cell }</t#{ ctyp }>"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user