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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e0a2c31f6a8138bebdf78c8f3951b5b362c183d
4
- data.tar.gz: 5495008115fb52b374a50418e53a419dac0497d8
3
+ metadata.gz: 486c2d7cf3dd8fbcb005759e6ef0cd9aa95dfc38
4
+ data.tar.gz: 25938551d6ec9e52aedfc163f738143476d9b406
5
5
  SHA512:
6
- metadata.gz: 4888042f069752ae6192cc3b0b7f6ca84f93c6ede3e559e6f735d4e52e655eac33cf1ed2e96b7b8d322c417769cc4c46848d771e979371c57796de67c79e8f07
7
- data.tar.gz: ad42ebe564e253088819abd52150d7fa5d884804db3ebc9df97f4324dbff408cae20098330a7a3bc713c989766f523ca3563fae45c253681220ca47e7145fc64
6
+ metadata.gz: f36f872853aa702f736f8d402acf2528ccdd9ff2b203ccbdd7635ae4fa78bf3b6e36e30dbf9e04216be1ae752bcba147ac05e84f4e7d3ede62479a16f7d91aed
7
+ data.tar.gz: c81847b6bbff57636edd5722165374aa01be69c0a62eee3a3bcdaf2ee2d244fa60f3445ee928dea9bd6c892a86fc7776aff34cdccf846307ec1e58b3c3652896
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trac-wiki (0.3.31)
4
+ trac-wiki (0.3.32)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -18,3 +18,6 @@ DEPENDENCIES
18
18
  rake
19
19
  trac-wiki!
20
20
  unicode_utils
21
+
22
+ BUNDLED WITH
23
+ 1.13.2
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
@@ -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
- @tree.tag(:img, make_image_attrs(uri, attrs))
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
- # pass
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
@@ -1,3 +1,3 @@
1
1
  module TracWiki
2
- VERSION = '0.3.31'
2
+ VERSION = '0.3.32'
3
3
  end
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.31
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: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2016-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bacon