dtext_rb 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +11 -3
- data/VERSION +1 -1
- data/dtext_rb.gemspec +5 -3
- data/ext/dtext/dtext.c +2608 -2618
- data/ext/dtext/dtext.rl +217 -199
- data/lib/dtext_ruby.rb +1 -1
- data/test/dtext_test.rb +28 -2
- data/test/test_forum_posts.rb +13 -0
- data/test/test_wiki_pages.rb +13 -0
- metadata +4 -2
data/lib/dtext_ruby.rb
CHANGED
@@ -282,7 +282,7 @@ class DTextRuby
|
|
282
282
|
when /\[expand(?:\=([^\]]*))?\](?!\])/
|
283
283
|
stack << "expandable"
|
284
284
|
expand_html = '<div class="expandable"><div class="expandable-header">'
|
285
|
-
expand_html << "<span>#{h($1)}</span>" if $1
|
285
|
+
expand_html << "<span>#{h($1)}</span>" if $1
|
286
286
|
expand_html << '<input type="button" value="Show" class="expandable-button"/></div>'
|
287
287
|
expand_html << '<div class="expandable-content">'
|
288
288
|
expand_html
|
data/test/dtext_test.rb
CHANGED
@@ -81,6 +81,11 @@ class DTextTest < Minitest::Test
|
|
81
81
|
assert_parse('<blockquote><p>test</p></blockquote>', "[quote]\ntest\n[/quote]")
|
82
82
|
end
|
83
83
|
|
84
|
+
def test_quote_blocks_with_list
|
85
|
+
assert_parse("<blockquote><ul><li>hello</li><li>there<br></li></ul></blockquote><p>abc</p>", "[quote]\n* hello\n* there\n[/quote]\nabc")
|
86
|
+
assert_parse("<blockquote><ul><li>hello</li><li>there</li></ul></blockquote><p>abc</p>", "[quote]\n* hello\n* there\n\n[/quote]\nabc")
|
87
|
+
end
|
88
|
+
|
84
89
|
def test_quote_blocks_nested
|
85
90
|
assert_parse("<blockquote><p>a</p><blockquote><p>b</p></blockquote><p>c</p></blockquote>", "[quote]\na\n[quote]\nb\n[/quote]\nc\n[/quote]")
|
86
91
|
end
|
@@ -127,7 +132,7 @@ class DTextTest < Minitest::Test
|
|
127
132
|
end
|
128
133
|
|
129
134
|
def test_old_style_links_with_special_entities
|
130
|
-
assert_parse('<p
|
135
|
+
assert_parse('<p>"1" <a href="http://three.com">2 & 3</a></p>', '"1" "2 & 3":http://three.com')
|
131
136
|
end
|
132
137
|
|
133
138
|
def test_new_style_links
|
@@ -183,10 +188,11 @@ class DTextTest < Minitest::Test
|
|
183
188
|
|
184
189
|
def test_complex_links_1
|
185
190
|
assert_parse("<p><a href=\"/wiki_pages/show_or_new?title=1\">2 3</a> | <a href=\"/wiki_pages/show_or_new?title=4\">5 6</a></p>", "[[1|2 3]] | [[4|5 6]]")
|
191
|
+
assert_parse("", "[[chaos_(dff)|Chaos]]")
|
186
192
|
end
|
187
193
|
|
188
194
|
def test_complex_links_2
|
189
|
-
assert_parse("<p>Tags <strong>(<a href=\"/wiki_pages/show_or_new?title=howto
|
195
|
+
assert_parse("<p>Tags <strong>(<a href=\"/wiki_pages/show_or_new?title=howto%3Atag\">Tagging Guidelines</a> | <a href=\"/wiki_pages/show_or_new?title=howto%3Atag_checklist\">Tag Checklist</a> | <a href=\"/wiki_pages/show_or_new?title=tag_groups\">Tag Groups</a>)</strong></p>", "Tags [b]([[howto:tag|Tagging Guidelines]] | [[howto:tag_checklist|Tag Checklist]] | [[Tag Groups]])[/b]")
|
190
196
|
end
|
191
197
|
|
192
198
|
def test_table
|
@@ -205,6 +211,22 @@ class DTextTest < Minitest::Test
|
|
205
211
|
assert_parse('<p><a rel="nofollow" href="/users?name=mack">@mack</a><</p>', "@mack<")
|
206
212
|
end
|
207
213
|
|
214
|
+
def test_expand
|
215
|
+
assert_parse("<div class=\"expandable\"><div class=\"expandable-header\"><input type=\"button\" value=\"Show\" class=\"expandable-button\"/></div><div class=\"expandable-content\"><p>hello world</p></div></div>", "[expand]hello world[/expand]")
|
216
|
+
end
|
217
|
+
|
218
|
+
def test_aliased_expand
|
219
|
+
assert_parse("<div class=\"expandable\"><div class=\"expandable-header\"><span>hello</span><input type=\"button\" value=\"Show\" class=\"expandable-button\"/></div><div class=\"expandable-content\"><p>blah blah</p></div></div>", "[expand=hello]blah blah[/expand]")
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_expand_with_nested_code
|
223
|
+
assert_parse("<div class=\"expandable\"><div class=\"expandable-header\"><input type=\"button\" value=\"Show\" class=\"expandable-button\"/></div><div class=\"expandable-content\"><pre>hello\n</pre></div></div>", "[expand]\n[code]\nhello\n[/code]\n[/expand]")
|
224
|
+
end
|
225
|
+
|
226
|
+
def test_expand_with_nested_list
|
227
|
+
assert_parse("<div class=\"expandable\"><div class=\"expandable-header\"><input type=\"button\" value=\"Show\" class=\"expandable-button\"/></div><div class=\"expandable-content\"><ul><li>a</li><li>b<br></li></ul></div></div><p>c</p>", "[expand]\n* a\n* b\n[/expand]\nc")
|
228
|
+
end
|
229
|
+
|
208
230
|
def test_inline_mode
|
209
231
|
assert_equal("hello", DTextRagel.parse_inline("hello").strip)
|
210
232
|
end
|
@@ -212,4 +234,8 @@ class DTextTest < Minitest::Test
|
|
212
234
|
def test_strip
|
213
235
|
assert_equal("hellozworld", DTextRagel.parse_strip("h[b]e[/b]llo[quote]z[/quote]wo[expand]rld[/expand]"))
|
214
236
|
end
|
237
|
+
|
238
|
+
def test_old_asterisks
|
239
|
+
assert_parse("<p>hello *world* neutral</p>", "hello *world* neutral")
|
240
|
+
end
|
215
241
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Dir["/dev_exclusions/dtext_bench/forum_posts/*.txt"].slice(80, 10).each do |file|
|
2
|
+
input = File.read(file)
|
3
|
+
o1 = DTextRagel.parse(input).gsub(/\s+<\/p>/, "</p>")
|
4
|
+
o2 = DTextRuby.parse(input).gsub(/\r/, "").gsub(/\s+<\/p>/, "</p>").gsub(/%3A/, ":")
|
5
|
+
if o1.size != o2.size
|
6
|
+
puts input
|
7
|
+
puts "---"
|
8
|
+
puts o1
|
9
|
+
puts "~~~"
|
10
|
+
puts o2
|
11
|
+
puts "==="
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Dir["/dev_exclusions/dtext_bench/wiki_pages/*.txt"].sort.slice(20, 10).each do |file|
|
2
|
+
input = File.read(file)
|
3
|
+
o1 = DTextRagel.parse(input.dup).gsub(/\s+<\/p>/, "</p>")
|
4
|
+
o2 = DTextRuby.parse(input.dup).gsub(/\r/, "").gsub(/\s+<\/p>/, "</p>")
|
5
|
+
if o1.size != o2.size
|
6
|
+
puts input
|
7
|
+
puts "---"
|
8
|
+
puts o1
|
9
|
+
puts "~~~"
|
10
|
+
puts o2
|
11
|
+
puts "==="
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dtext_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- r888888888
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -73,6 +73,8 @@ files:
|
|
73
73
|
- lib/dtext_ruby.rb
|
74
74
|
- test/dtext_test.rb
|
75
75
|
- test/ragel_output.txt
|
76
|
+
- test/test_forum_posts.rb
|
77
|
+
- test/test_wiki_pages.rb
|
76
78
|
- test/wiki.txt
|
77
79
|
homepage: http://github.com/r888888888/dtext_rb
|
78
80
|
licenses:
|