trac-wiki 0.3.31 → 0.3.32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -1
- data/lib/trac-wiki/env.rb +4 -4
- data/lib/trac-wiki/parser.rb +12 -2
- data/lib/trac-wiki/version.rb +1 -1
- data/test/parser_test.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 486c2d7cf3dd8fbcb005759e6ef0cd9aa95dfc38
|
4
|
+
data.tar.gz: 25938551d6ec9e52aedfc163f738143476d9b406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f36f872853aa702f736f8d402acf2528ccdd9ff2b203ccbdd7635ae4fa78bf3b6e36e30dbf9e04216be1ae752bcba147ac05e84f4e7d3ede62479a16f7d91aed
|
7
|
+
data.tar.gz: c81847b6bbff57636edd5722165374aa01be69c0a62eee3a3bcdaf2ee2d244fa60f3445ee928dea9bd6c892a86fc7776aff34cdccf846307ec1e58b3c3652896
|
data/Gemfile.lock
CHANGED
data/lib/trac-wiki/env.rb
CHANGED
@@ -101,8 +101,8 @@ module TracWiki
|
|
101
101
|
@env[:cmd_args].size
|
102
102
|
end
|
103
103
|
|
104
|
-
def arg(idx)
|
105
|
-
@env[:cmd_args][idx] || ''
|
104
|
+
def arg(idx, default = nil)
|
105
|
+
@env[:cmd_args][idx] || default || ''
|
106
106
|
end
|
107
107
|
|
108
108
|
def prepare_y
|
@@ -265,8 +265,8 @@ module TracWiki
|
|
265
265
|
end
|
266
266
|
|
267
267
|
# template expand
|
268
|
-
def expand_arg(idx)
|
269
|
-
expand(arg(idx))
|
268
|
+
def expand_arg(idx, default = nil)
|
269
|
+
expand(arg(idx, default))
|
270
270
|
end
|
271
271
|
|
272
272
|
def pp_env
|
data/lib/trac-wiki/parser.rb
CHANGED
@@ -224,6 +224,11 @@ module TracWiki
|
|
224
224
|
},
|
225
225
|
'!ifdef' => proc { |env| env.at(env.expand_arg(0), nil, false).nil? ? env.expand_arg(2) : env.expand_arg(1) },
|
226
226
|
'!set' => proc { |env| env[env.expand_arg(0)] = env.expand_arg(1); '' },
|
227
|
+
'!append'=> proc { |env| key = env.expand_arg(0)
|
228
|
+
sep = env.expand_arg(2,'')
|
229
|
+
env[key] = (env[key].nil? ? '' : env[key] + sep ) + env.expand_arg(1);
|
230
|
+
''
|
231
|
+
},
|
227
232
|
'!yset' => proc { |env| env[env.expand_arg(0)] = YAML.load(env.arg(1)); '' },
|
228
233
|
'!sub' => proc { |env| pat = env.expand_arg(1)
|
229
234
|
pat = Regexp.new(pat[1..-2]) if pat =~ /\A\/.*\/\Z/
|
@@ -423,7 +428,12 @@ module TracWiki
|
|
423
428
|
# markup, for example to add html additional attributes or
|
424
429
|
# to put divs around the imgs.
|
425
430
|
def make_image(uri, attrs='')
|
426
|
-
|
431
|
+
attrs = make_image_attrs(uri, attrs)
|
432
|
+
link = attrs.delete('link')
|
433
|
+
|
434
|
+
@tree.tag_beg(:a, {href: make_explicit_link(link)}) if link
|
435
|
+
@tree.tag(:img, attrs)
|
436
|
+
@tree.tag_end(:a) if link
|
427
437
|
end
|
428
438
|
|
429
439
|
def make_image_attrs(uri, attrs)
|
@@ -439,7 +449,7 @@ module TracWiki
|
|
439
449
|
when /^(top|bottom|middle)$/i
|
440
450
|
a['valign'] = escape_url(opt)
|
441
451
|
when /^link=(.*)$/i
|
442
|
-
|
452
|
+
a['link'] = escape_url($1)
|
443
453
|
when /^nolink$/i
|
444
454
|
# pass
|
445
455
|
when /^(align|valign|border|width|height|alt|title|longdesc|class|id|usemap)=(.*)$/i
|
data/lib/trac-wiki/version.rb
CHANGED
data/test/parser_test.rb
CHANGED
@@ -609,6 +609,8 @@ describe TracWiki::Parser do
|
|
609
609
|
tc("<p><img src=\"image.jpg\"/></p>\n", "[[Image(image.jpg)]]", :no_link=>true)
|
610
610
|
tc("<p><img alt=\"a%22tag%22\" src=\"image.jpg\"/></p>\n", "[[Image(image.jpg,alt=a\"tag\")]]")
|
611
611
|
tc("<p><img alt=\"a%22tag%22\" src=\"image.jpg\"/></p>\n", "[[Image(image.jpg,alt=a\"tag\")]]", :no_link=>true)
|
612
|
+
tc("<p><a href=\"ahoj\"><img alt=\"a%22tag%22\" src=\"image.jpg\"/></a></p>\n", "[[Image(image.jpg,alt=a\"tag\",link=ahoj)]]", :no_link=>true)
|
613
|
+
tc("<p><a href=\"javascript%253Aalert%2528666%2529\"><img alt=\"a%22tag%22\" src=\"image.jpg\"/></a></p>\n", "[[Image(image.jpg,alt=a\"tag\",link=javascript:alert(666))]]", :no_link=>true)
|
612
614
|
|
613
615
|
# Malicious links should not be converted.
|
614
616
|
tc("<p><a href=\"javascript%3Aalert%28%22Boo%21%22%29\">Click</a></p>\n", "[[javascript:alert(\"Boo!\")|Click]]")
|
@@ -1308,6 +1310,12 @@ eos
|
|
1308
1310
|
tc "<p><tt>ahoj </tt></p>\n", "{{!sprintf `%-7s`|ahoj}}"
|
1309
1311
|
tc "<p>(sprintf error:<tt>malformed format string - %*[0-9]</tt>)</p>\n", "{{!sprintf %03|1}}"
|
1310
1312
|
end
|
1313
|
+
it 'should parse !append' do
|
1314
|
+
tc "<p>value</p>\n", "{{!set var|value}}{{$var}}"
|
1315
|
+
tc "<p>value</p>\n", "{{!append var|value}}{{$var}}"
|
1316
|
+
tc "<p>valuebalue</p>\n", "{{!append var|value}}{{!append var|balue}}{{$var}}"
|
1317
|
+
tc "<p>value:balue</p>\n", "{{!append var|value}}{{!append var|balue|:}}{{$var}}"
|
1318
|
+
end
|
1311
1319
|
it 'should parse sprintf' do
|
1312
1320
|
tc "<p><tt>ahoj</tt></p>\n", "{{!tt ahoj}}"
|
1313
1321
|
tc "<p>YWhvanRl</p>\n", "{{!base64 ahojte}}"
|
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.32
|
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: 2016-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bacon
|