trac-wiki 0.3.37 → 0.3.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/trac-wiki/parser.rb +44 -7
- data/lib/trac-wiki/version.rb +1 -1
- data/test/parser_test.rb +5 -0
- data/trac-wiki.gemspec +1 -1
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc28b8d25c68d501bec4993cffeadbe55993edc78418564e04885432a5210488
|
4
|
+
data.tar.gz: 59f6b969838f1805362f3b0cfcd32cab19ac4e2080e265c64fe017ed3f190e8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff8dd55257f46c32abcca139434547c70aad494d13eb1b3988b90b0f76a1e406ff9db082869fa8ec6ade00efe8a80bc8640f029b8d638631198436a09ff45d15
|
7
|
+
data.tar.gz: ac6c6b34b2662a7b4699b3090edc841dcabd368a2f1416f5821765e4894977d2247cb91f30e357a481f65beae7c472009a2160f899aa76795ba6c6f45baa199a
|
data/Gemfile.lock
CHANGED
data/lib/trac-wiki/parser.rb
CHANGED
@@ -91,7 +91,7 @@ module TracWiki
|
|
91
91
|
attr_writer :math
|
92
92
|
def math?; @math; end
|
93
93
|
|
94
|
-
# allow some <b> <form> <html>
|
94
|
+
# allow some <b> <form> <html>
|
95
95
|
# html will be sanitized
|
96
96
|
attr_writer :allow_html
|
97
97
|
def allow_html?; @allow_html; end
|
@@ -255,7 +255,7 @@ module TracWiki
|
|
255
255
|
begin
|
256
256
|
sprintf fmt, *args
|
257
257
|
rescue Exception => e
|
258
|
-
"(sprintf error:`#{e}`)"
|
258
|
+
"(sprintf error:`#{e}`)"
|
259
259
|
end
|
260
260
|
},
|
261
261
|
'!digest' => proc { |env| Base64.urlsafe_encode64(Digest::SHA256.digest(env.expand_arg(0))) },
|
@@ -376,6 +376,13 @@ module TracWiki
|
|
376
376
|
end
|
377
377
|
end
|
378
378
|
|
379
|
+
def end_to_tag(tag)
|
380
|
+
if @stack.include?(tag)
|
381
|
+
end_tag while @stack.last != tag
|
382
|
+
end_tag
|
383
|
+
end
|
384
|
+
end
|
385
|
+
|
379
386
|
def end_paragraph
|
380
387
|
end_tag while !@stack.empty?
|
381
388
|
@p = false
|
@@ -515,7 +522,7 @@ module TracWiki
|
|
515
522
|
notlink, link = $1, $2
|
516
523
|
make_link(link, nil, link, 0, !!notlink)
|
517
524
|
# [[Image(pic.jpg|tag)]]
|
518
|
-
when str =~ /\A\[\[Image\(([^,]*?)(,(.*?))?\)\]\]/ # image
|
525
|
+
when str =~ /\A\[\[Image\(([^,]*?)(,(.*?))?\)\]\]/ # image
|
519
526
|
make_image($1, $3)
|
520
527
|
# [[link]]
|
521
528
|
# [ link2 | text5 ]
|
@@ -543,7 +550,7 @@ module TracWiki
|
|
543
550
|
when math? && str =~ /\A\$(.+?)\$/ # inline math (tt)
|
544
551
|
@tree.tag(:span, {:class => 'math'}, $1)
|
545
552
|
@was_math = true
|
546
|
-
when str =~ /\A(\&\w*;)/ # html entity
|
553
|
+
when str =~ /\A(\&\w*;)/ # html entity
|
547
554
|
#print "add html ent: #{$1}\n"
|
548
555
|
@tree.add_raw($1)
|
549
556
|
when str =~ /\A([:alpha:]|[:digit:])+/
|
@@ -571,7 +578,7 @@ module TracWiki
|
|
571
578
|
when str =~ /\A,,/
|
572
579
|
toggle_tag 'sub', $& # _{}
|
573
580
|
when str =~ /\A!\./
|
574
|
-
@tree.add('') # !. \relax
|
581
|
+
@tree.add('') # !. \relax
|
575
582
|
when str =~ /\A!(\{\{|[\S])/
|
576
583
|
@tree.add($1) # !neco !{{
|
577
584
|
# when str =~ /\A!(\{\{)/
|
@@ -761,6 +768,33 @@ module TracWiki
|
|
761
768
|
end_paragraph
|
762
769
|
@tree.tag(:div, { class: "merge #{merge_class}" }, who)
|
763
770
|
end
|
771
|
+
|
772
|
+
def do_wikimedia_table(text)
|
773
|
+
end_paragraph
|
774
|
+
if div_around_table?
|
775
|
+
start_tag('div', class: 'table-div', 'data-line' => @line_no, 'data-lines' => text.count("\n") + 2)
|
776
|
+
end
|
777
|
+
start_tag(:table)
|
778
|
+
start_tag(:tr)
|
779
|
+
offset = 0
|
780
|
+
text.split("\n").each do |line|
|
781
|
+
offset += line.length + 1
|
782
|
+
if line == '|-'
|
783
|
+
end_to_tag :tr
|
784
|
+
start_tag(:tr)
|
785
|
+
elsif line =~ /^([!\|])(.*)/
|
786
|
+
end_to_tag :td
|
787
|
+
end_to_tag :th
|
788
|
+
fst, rest = $1, $2
|
789
|
+
start_tag($1 == '|' ? :td : :th)
|
790
|
+
parse_inline(rest.strip, offset)
|
791
|
+
else
|
792
|
+
parse_inline(' ' +line.strip, offset)
|
793
|
+
end
|
794
|
+
end
|
795
|
+
end_to_tag :table
|
796
|
+
end
|
797
|
+
|
764
798
|
def do_pre(text)
|
765
799
|
end_paragraph
|
766
800
|
nowikiblock = make_nowikiblock(text)
|
@@ -876,6 +910,9 @@ module TracWiki
|
|
876
910
|
# pre {{{ ... }}}
|
877
911
|
when str =~ /\A\{\{\{\r?\n(.*?)\r?\n\}\}\}/m
|
878
912
|
do_pre($1)
|
913
|
+
# wikimedia table {| ... |}
|
914
|
+
when str =~ /\A\{\|\r?\n(.*?)\r?\n\|\}/m
|
915
|
+
do_wikimedia_table($1)
|
879
916
|
# horizontal rule
|
880
917
|
when str =~ /\A\s*-{4,}\s*$/
|
881
918
|
do_hr()
|
@@ -892,11 +929,11 @@ module TracWiki
|
|
892
929
|
#when str =~ /\A([:\w\s]+)::(\s+|\r?\n)/
|
893
930
|
when str =~ /\A(.+)::(\s+|\r?\n)/
|
894
931
|
do_term($1)
|
895
|
-
# li
|
932
|
+
# li *
|
896
933
|
when str =~ /\A((\s*)([*-]|[aAIi\d]\.)\s+)(.*?)$(\r?\n)?/
|
897
934
|
parse_li_line($2.size, $3)
|
898
935
|
parse_inline($4, $1.size)
|
899
|
-
# citation
|
936
|
+
# citation >
|
900
937
|
when str =~ /\A(>[>\s]*)(.*?)$(\r?\n)?/
|
901
938
|
do_citation($1.count('>'))
|
902
939
|
parse_inline($2, $1.size)
|
data/lib/trac-wiki/version.rb
CHANGED
data/test/parser_test.rb
CHANGED
@@ -675,6 +675,11 @@ describe 'TracWiki::Parser' do
|
|
675
675
|
tc "<p>-- --</p>\n", "--\t-- "
|
676
676
|
end
|
677
677
|
|
678
|
+
it 'should parse wm-table' do
|
679
|
+
tc "<table><tr><td>Hello</td>\n<th>World!</th>\n</tr>\n<tr><td>Hello</td>\n<td>World!</td>\n</tr>\n</table>\n", "{|\n|Hello\n!World!\n|-\n|Hello\n|World!\n|}\n\n"
|
680
|
+
tc "<table><tr><td><strong>Hello</strong></td>\n<td>World!</td>\n</tr>\n<tr><td>Hello</td>\n<td>World!</td>\n</tr>\n</table>\n", "{|\n|**Hello**\n|World!\n|-\n|Hello\n|World!\n|}\n\n"
|
681
|
+
tc "<table><tr><td><strong>Hello</strong></td>\n<td>Wor ld</td>\n</tr>\n</table>\n", "{|\n|**Hello**\n|Wor\nld\n|}\n\n"
|
682
|
+
end
|
678
683
|
it 'should parse table' do
|
679
684
|
tc "<table><tr><td>Hello</td>\n<td>World!</td>\n</tr>\n</table>\n", "||Hello||World!||"
|
680
685
|
tc "<table><tr><td>Hello</td>\n<td>World!</td>\n</tr>\n<tr><td>Hello</td>\n<td>World!</td>\n</tr>\n</table>\n", "||Hello||World!||\n||Hello||World!||\n\n"
|
data/trac-wiki.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trac-wiki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.42
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vitas Stradal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bacon
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 12.3.3
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 12.3.3
|
41
41
|
description: TracWiki markup language render (http://trac.edgewall.org/wiki/WikiFormatting
|
42
42
|
).
|
43
43
|
email:
|
@@ -81,8 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
|
-
|
85
|
-
rubygems_version: 2.7.6
|
84
|
+
rubygems_version: 3.2.27
|
86
85
|
signing_key:
|
87
86
|
specification_version: 4
|
88
87
|
summary: Trac Wiki markup language
|