trac-wiki 0.3.36 → 0.3.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trac-wiki/parser.rb +44 -7
- data/lib/trac-wiki/version.rb +1 -1
- data/test/parser_test.rb +23 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6a9b2012dc7878dd0159e6e4e41390ba93ebd7f63f882c4f852f1242638bcd5
|
4
|
+
data.tar.gz: f742a4c5854c60e4c1a35021a98a0dc8e736666e58c21edf5f0135dec299c8ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5460fd31064a07823a966a4ef565515c03dfc3b3009ea81329f58152169bf8ea50c2c1cd721de610326a262fef0407080ad1c4f7d2c9ebb128c5eba692f7ee65
|
7
|
+
data.tar.gz: 61d2faf5433f03f02e4f3508fc5b58936a42ffbfce1bee592b70dfe649ac8040eacfd053607947c75e3bfa49782420f113086cb958e7ba23d2ae42fac2a8bf41
|
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"))
|
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
@@ -13,6 +13,16 @@ class Bacon::Context
|
|
13
13
|
parser.at_callback = Proc.new { |k,env| k == 'MEOW' ? 'WUF' : nil }
|
14
14
|
html.should.equal parser.to_html(wiki)
|
15
15
|
end
|
16
|
+
def tc_mailto(html, wiki, options = {})
|
17
|
+
options[:macro_commands] = { '!print' => proc { |env| env.arg(0) + '! ' },
|
18
|
+
}
|
19
|
+
options[:allowed_schemes] = %w(http https ftp ftps mailto)
|
20
|
+
options[:template_handler] = self.method(:template_handler)
|
21
|
+
|
22
|
+
parser = TracWiki.parser(options)
|
23
|
+
parser.at_callback = Proc.new { |k,env| k == 'MEOW' ? 'WUF' : nil }
|
24
|
+
html.should.equal parser.to_html(wiki)
|
25
|
+
end
|
16
26
|
def env(wiki, var, val,options = {})
|
17
27
|
options[:macro_commands] = { '!print' => proc { |env| env.arg(0) + '! ' }, }
|
18
28
|
options[:template_handler] = self.method(:template_handler)
|
@@ -183,7 +193,7 @@ describe 'TracWiki::Parser' do
|
|
183
193
|
|
184
194
|
# table with div_around_table
|
185
195
|
tc("<div class=\"table-div\"><table><tr><td>This is <em>italic</em></td>\n</tr>\n</table>\n</div>\n",
|
186
|
-
"||This is ''italic''||", div_around_table: true
|
196
|
+
"||This is ''italic''||", div_around_table: true)
|
187
197
|
|
188
198
|
# Links can appear inside italic text:
|
189
199
|
tc("<p>A italic link: <em><a href=\"http://example.org/\">http://example.org/</a> nice! </em></p>\n",
|
@@ -665,6 +675,11 @@ describe 'TracWiki::Parser' do
|
|
665
675
|
tc "<p>-- --</p>\n", "--\t-- "
|
666
676
|
end
|
667
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
|
668
683
|
it 'should parse table' do
|
669
684
|
tc "<table><tr><td>Hello</td>\n<td>World!</td>\n</tr>\n</table>\n", "||Hello||World!||"
|
670
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"
|
@@ -1332,5 +1347,12 @@ eos
|
|
1332
1347
|
tc "<p>(bhojte|ahoj=dhoj:m8afmveEhG78gsv5Pt-gJ56idfKCR10JNPr-G72Fttc=)</p>\n", "{{digesttest bhojte|ahoj=dhoj}}"
|
1333
1348
|
tc "<p><tt>ah!@\#$%^&*()[]oj</tt></p>\n", "{{!tt ah!@\#$%^&*()[]oj}}"
|
1334
1349
|
end
|
1350
|
+
it 'should parse mailto' do
|
1351
|
+
tc_mailto "<p><a href=\"mailto:vitas@matfyz.cz\">mailto:vitas@matfyz.cz</a></p>\n", "[[mailto:vitas@matfyz.cz]]\n"
|
1352
|
+
tc_mailto "<p><a href=\"mailto:vitas@matfyz.cz\">vitas</a></p>\n", "[[mailto:vitas@matfyz.cz | vitas]]\n"
|
1353
|
+
tc_mailto "<p><a href=\"mailto:vitas@matfyz.cz?subject=napis\">vitas</a></p>\n", "[[mailto:vitas@matfyz.cz?subject=napis | vitas]]\n"
|
1354
|
+
tc_mailto "<p><a href=\"mailto:vitas@matfyz.cz?body=odpovez\">vitas</a></p>\n", "[[mailto:vitas@matfyz.cz?body=odpovez | vitas]]\n"
|
1355
|
+
tc "<p><a href=\"mailto%3Avitas%40matfyz.cz\">vitas</a></p>\n", "[[mailto:vitas@matfyz.cz | vitas]]\n"
|
1356
|
+
end
|
1335
1357
|
end
|
1336
1358
|
# vim: tw=0
|
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.41
|
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-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bacon
|
@@ -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.5
|
86
85
|
signing_key:
|
87
86
|
specification_version: 4
|
88
87
|
summary: Trac Wiki markup language
|