trac-wiki 0.2.23 → 0.2.24

Sign up to get free protection for your applications and to get access to all the features.
data/lib/trac-wiki/env.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  module TracWiki
2
3
 
3
4
  class Env
@@ -207,8 +208,9 @@ module TracWiki
207
208
  arg.sub!(/\A\s*\|?/, '')
208
209
  env = { 'arg' => arg , depth: (depth||0) + 1 }
209
210
  idx = 1
211
+ print "arg:#{arg.encoding}\n"
210
212
  arg.split(/\|/).each do |val|
211
- if val =~ /\A\s*(\w+)\s*=\s*(.*)/s
213
+ if val =~ /\A\s*(\w+)\s*=\s*(.*)/m
212
214
  env[$1] = $2
213
215
  else
214
216
  env[idx.to_s] = val
@@ -249,7 +251,7 @@ module TracWiki
249
251
  end
250
252
  #print "text: #{text.nil?}\n"
251
253
  #print "ret: #{ret.nil?}\n"
252
- return ret + str
254
+ return ret + str.gsub(/\\\r?\n/, '')
253
255
  end
254
256
  end
255
257
 
@@ -282,6 +282,7 @@ module TracWiki
282
282
  # make_local_link("LocalLink") #=> "/LocalLink"
283
283
  # make_local_link("Wikipedia:Bread") #=> "http://en.wikipedia.org/wiki/Bread"
284
284
  def make_local_link(link) #:doc:
285
+ # FIXME: xss when no_escape
285
286
  link, anch = link.split(/#/, 2)
286
287
  if no_escape?
287
288
  return "#{@base}#{link}" if ! anch
@@ -478,9 +479,8 @@ module TracWiki
478
479
  when str =~ /\A`(.*?)`/ # inline pre (tt)
479
480
  @tree.tag(:tt, $1)
480
481
  when math? && str =~ /\A\$(.+?)\$/ # inline math (tt)
481
- @tree.add("\\( #{$1} \\)")
482
- #@tree.add("$#{$1}$")
483
- #@tree.tag(:span, {class:'math'}, $1)
482
+ #@tree.add("\\( #{$1} \\)")
483
+ @tree.tag(:span, {class:'math'}, $1)
484
484
  @was_math = true
485
485
  when str =~ /\A(\&\w*;)/ # html entity
486
486
  #print "add html ent: #{$1}\n"
@@ -645,7 +645,8 @@ module TracWiki
645
645
 
646
646
  def do_math(text)
647
647
  end_paragraph
648
- @tree.add("$$#{text}$$\n")
648
+ #@tree.add("$$#{text}$$\n")
649
+ @tree.tag(:div, {class:'math'}, text)
649
650
  @was_math = true
650
651
  end
651
652
  def do_merge(merge_type, who)
@@ -1,3 +1,3 @@
1
1
  module TracWiki
2
- VERSION = '0.2.23'
2
+ VERSION = '0.2.24'
3
3
  end
data/test/parser_test.rb CHANGED
@@ -48,6 +48,7 @@ end
48
48
 
49
49
  describe TracWiki::Parser do
50
50
  it 'should not parse linkd' do
51
+ tc "<p>[[ahoj]]</p>\n", "[ahoj]", :no_link => true
51
52
  tc "<p>[[ahoj]]</p>\n", "[[ahoj]]", :no_link => true
52
53
  tc "<p>[[ahoj|bhoj]]</p>\n", "[[ahoj|bhoj]]", :no_link => true
53
54
  tc "<ul><li>[[ahoj|bhoj]]</li>\n</ul>\n", "* [[ahoj|bhoj]]", :no_link => true
@@ -162,17 +163,17 @@ describe TracWiki::Parser do
162
163
  end
163
164
 
164
165
  it 'should parse math' do
165
- tc "<p>\\( the \\)</p>\n", '$the$', math: true
166
- tc "<p>test \\( the \\) west</p>\n", 'test $the$ west', math: true
167
- tc "<p>test \\( e^{i\\pi} \\) test</p>\n", 'test $e^{i\pi}$ test', math: true
166
+ tc "<p><span class=\"math\">the</span></p>\n", '$the$', math: true
167
+ tc "<p>test <span class=\"math\">the</span> west</p>\n", 'test $the$ west', math: true
168
+ tc "<p>test <span class=\"math\">e^{i\\pi}</span> test</p>\n", 'test $e^{i\pi}$ test', math: true
168
169
  tc "<p>test $ e<sup>{i\\pi} test</sup></p>\n", 'test $ e^{i\pi} test', math: true
169
170
  tc "<p>$the$</p>\n", '$the$', math: false
170
171
 
171
- tc "<p>ahoj</p>\n$$e^{i\\pi}$$\n<p>nazdar</p>\n", "ahoj\n$$e^{i\\pi}$$\nnazdar", math: true
172
+ tc "<p>ahoj</p>\n<div class=\"math\">e^{i\\pi}</div>\n<p>nazdar</p>\n", "ahoj\n$$e^{i\\pi}$$\nnazdar", math: true
172
173
  tc "<p>ahoj $$e<sup>{i\\pi}$$ nazdar</sup></p>\n", "ahoj\n$$e^{i\\pi}$$\nnazdar", math: false
173
174
 
174
- tc "$$\\\\$$\n", "$$\\\\$$", math: true
175
- tc "$$\n^test\n$$\n", "$$\n^test\n$$", math: true
175
+ tc "<div class=\"math\">\\\\</div>\n", "$$\\\\$$", math: true
176
+ tc "<div class=\"math\">\n^test\n</div>\n", "$$\n^test\n$$", math: true
176
177
 
177
178
  tc "<p>$a<sup>b</sup>c$</p>\n", "!$a^b^c$", math: true
178
179
  tc "<p>$a<strong>b</strong>c$</p>\n", "!$a**b**c$", math: true
@@ -228,6 +229,10 @@ describe TracWiki::Parser do
228
229
  it 'should parse links' do
229
230
  # Links
230
231
  tc "<p><a href=\"link\">link</a></p>\n", "[[link]]"
232
+ tc "<p><a href=\"link\">Flink</a></p>\n", "[[link|Flink]]"
233
+
234
+ # FIXME: http://trac.edgewall.org/wiki/TracLinks: this is wrong
235
+ #tc "<p><a href=\"link\">Flink</a></p>\n", "[link Flink]"
231
236
  tc "<p><a href=\"BASE/link\">link</a></p>\n", "[[link]]", base: 'BASE'
232
237
  tc "<p><a href=\"BASE/link\">link</a></p>\n", "[[link]]", base: 'BASE/'
233
238
  tc "<p><a href=\"link#link\">link#link</a></p>\n", "[[link#link]]"
@@ -1007,6 +1012,12 @@ eos
1007
1012
  tc "<p><a href=\"http://example.com/there#i+m\">There</a></p>\n", "[[there#i m|There]]", base: 'http://example.com/'
1008
1013
  tc "<p><a href=\"#here+i+m\">Here</a></p>\n", "[[#here i m|Here]]", base: 'http://example.com/'
1009
1014
  end
1015
+ it 'should parse dnl inside macro' do
1016
+ tc "<p>d<blockquote>e</blockquote></p>\n", "{{!ifeq a|b|c|d\n e}}"
1017
+ tc "<p>d e</p>\n", "{{!ifeq a|b|c|d\\\n e}}"
1018
+ tc "<p>d<strong>e</strong></p>\n", "{{!ifeq a|b|c|d**\\\ne**}}"
1019
+ tc "<p>d<strong>e</strong></p>\n", "{{!ifeq a|b|c|d*\\\n*e**}}"
1020
+ end
1010
1021
 
1011
1022
  end
1012
1023
  # vim: tw=0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trac-wiki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.23
4
+ version: 0.2.24
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-01 00:00:00.000000000 Z
12
+ date: 2014-02-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bacon