hikidoc 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +25 -0
- data/bin/hikidoc +33 -20
- data/coverage/index.html +100 -0
- data/coverage/lib-hikidoc_rb.html +1195 -0
- data/lib/hikidoc.rb +6 -6
- data/test/run-test.rb +0 -0
- data/test/test_hikidoc.rb +74 -2
- metadata +7 -4
data/lib/hikidoc.rb
CHANGED
@@ -37,7 +37,7 @@ rescue LoadError
|
|
37
37
|
end
|
38
38
|
|
39
39
|
class HikiDoc
|
40
|
-
VERSION = "0.0.
|
40
|
+
VERSION = "0.0.2" # FIXME
|
41
41
|
|
42
42
|
class Error < StandardError
|
43
43
|
end
|
@@ -330,9 +330,9 @@ class HikiDoc
|
|
330
330
|
|
331
331
|
def compile_indented_pre(f)
|
332
332
|
lines = f.span(INDENTED_PRE_RE)\
|
333
|
-
.map {|line| rstrip(line.sub(INDENTED_PRE_RE, "")) }
|
334
|
-
|
335
|
-
@output.preformatted
|
333
|
+
.map {|line| rstrip(line.sub(INDENTED_PRE_RE, "")) }
|
334
|
+
text = restore_plugin_block(lines.join("\n"))
|
335
|
+
@output.preformatted(@output.text(text))
|
336
336
|
end
|
337
337
|
|
338
338
|
BLOCK_PRE_OPEN_RE = /\A<<<\s*(\w+)?/
|
@@ -468,7 +468,7 @@ class HikiDoc
|
|
468
468
|
end
|
469
469
|
|
470
470
|
def fix_uri(uri)
|
471
|
-
if
|
471
|
+
if /\A(?:https?|ftp|file):(?!\/\/)/ =~ uri
|
472
472
|
uri.sub(/\A\w+:/, "")
|
473
473
|
else
|
474
474
|
uri
|
@@ -506,7 +506,7 @@ class HikiDoc
|
|
506
506
|
when chunk = m[1]
|
507
507
|
mod, s = split_mod(chunk)
|
508
508
|
mid = MODTAG[mod]
|
509
|
-
buf << @output.__send__(mid,
|
509
|
+
buf << @output.__send__(mid, compile_inline(s))
|
510
510
|
else
|
511
511
|
raise UnexpectedError, "must not happen"
|
512
512
|
end
|
data/test/run-test.rb
CHANGED
File without changes
|
data/test/test_hikidoc.rb
CHANGED
@@ -47,6 +47,32 @@ class HikiDocTestCase < Test::Unit::TestCase
|
|
47
47
|
options)
|
48
48
|
end
|
49
49
|
|
50
|
+
def test_multi_line_plugin
|
51
|
+
assert_convert(<<-END_OF_EXPECTED, <<-END_OF_INPUT)
|
52
|
+
<div class="plugin">{{<<TEST2
|
53
|
+
test2
|
54
|
+
TEST2}}</div>
|
55
|
+
END_OF_EXPECTED
|
56
|
+
{{<<TEST2
|
57
|
+
test2
|
58
|
+
TEST2}}
|
59
|
+
END_OF_INPUT
|
60
|
+
|
61
|
+
assert_convert(<<-END_OF_EXPECTED, <<-END_OF_INPUT)
|
62
|
+
<div class="plugin">{{<<TEST
|
63
|
+
<<<
|
64
|
+
here is not pre but plugin.
|
65
|
+
>>>
|
66
|
+
TEST}}</div>
|
67
|
+
END_OF_EXPECTED
|
68
|
+
{{<<TEST
|
69
|
+
<<<
|
70
|
+
here is not pre but plugin.
|
71
|
+
>>>
|
72
|
+
TEST}}
|
73
|
+
END_OF_INPUT
|
74
|
+
end
|
75
|
+
|
50
76
|
def test_blockquote
|
51
77
|
assert_convert("<blockquote><p>hoge</p>\n</blockquote>\n",
|
52
78
|
%Q|""hoge\n|)
|
@@ -119,6 +145,10 @@ class HikiDocTestCase < Test::Unit::TestCase
|
|
119
145
|
" foo\n bar\n")
|
120
146
|
assert_convert("<pre><foo></pre>\n",
|
121
147
|
" <foo>")
|
148
|
+
assert_convert("<pre>{{_:a/a}}</pre>\n",
|
149
|
+
" {{_:a/a}}")
|
150
|
+
assert_convert("<pre>[[_:a/a]]</pre>\n",
|
151
|
+
" [[_:a/a]]")
|
122
152
|
end
|
123
153
|
|
124
154
|
def test_multi_pre
|
@@ -132,6 +162,12 @@ class HikiDocTestCase < Test::Unit::TestCase
|
|
132
162
|
"<<<\n<foo>\n>>>")
|
133
163
|
end
|
134
164
|
|
165
|
+
def test_multi_pre_with_plugin
|
166
|
+
assert_convert("<pre>{{{}}}</pre>\n" +
|
167
|
+
"<div class=\"plugin\">{{'test'}}</div>\n",
|
168
|
+
"<<<\n{{{}}}\n>>>\n{{'test'}}")
|
169
|
+
end
|
170
|
+
|
135
171
|
def test_comment
|
136
172
|
assert_convert("", "// foo")
|
137
173
|
assert_convert("", "// foo\n")
|
@@ -189,6 +225,13 @@ class HikiDocTestCase < Test::Unit::TestCase
|
|
189
225
|
"[[aa]]bb[[cc]]")
|
190
226
|
end
|
191
227
|
|
228
|
+
def test_inter_wiki_name
|
229
|
+
assert_convert("<p><a href=\"scheme:keyword\">scheme:keyword</a></p>\n",
|
230
|
+
"[[scheme:keyword]]")
|
231
|
+
assert_convert("<p><a href=\"scheme:keyword\">label</a></p>\n",
|
232
|
+
"[[label|scheme:keyword]]")
|
233
|
+
end
|
234
|
+
|
192
235
|
def test_wiki_name
|
193
236
|
assert_convert("<p><a href=\"WikiName\">WikiName</a></p>\n",
|
194
237
|
"WikiName")
|
@@ -277,13 +320,33 @@ class HikiDocTestCase < Test::Unit::TestCase
|
|
277
320
|
end
|
278
321
|
|
279
322
|
def test_definition_with_link
|
280
|
-
assert_convert(
|
323
|
+
assert_convert("<dl>\n<dt><a href=\"http://hikiwiki.org/\">Hiki</a></dt>\n" +
|
324
|
+
"<dd>Website</dd>\n</dl>\n",
|
281
325
|
":[[Hiki|http://hikiwiki.org/]]:Website")
|
326
|
+
assert_convert("<dl>\n<dt>a</dt>\n" +
|
327
|
+
"<dd><a href=\"http://hikiwiki.org/\">Hiki</a></dd>\n" +
|
328
|
+
"</dl>\n",
|
329
|
+
":a:[[Hiki|http://hikiwiki.org/]]")
|
282
330
|
end
|
283
331
|
|
284
332
|
def test_definition_with_modifier
|
285
|
-
assert_convert(
|
333
|
+
assert_convert("<dl>\n<dt><strong>foo</strong></dt>\n" +
|
334
|
+
"<dd>bar</dd>\n</dl>\n",
|
286
335
|
":'''foo''':bar")
|
336
|
+
assert_convert("<dl>\n<dt>foo</dt>\n" +
|
337
|
+
"<dd><strong>bar</strong></dd>\n</dl>\n",
|
338
|
+
":foo:'''bar'''")
|
339
|
+
end
|
340
|
+
|
341
|
+
def test_definition_with_modifier_link
|
342
|
+
assert_convert("<dl>\n<dt>" +
|
343
|
+
"<strong><a href=\"http://hikiwiki.org/\">Hiki</a></strong>" +
|
344
|
+
"</dt>\n<dd>Website</dd>\n</dl>\n",
|
345
|
+
":'''[[Hiki|http://hikiwiki.org/]]''':Website")
|
346
|
+
assert_convert("<dl>\n<dt>Website</dt>\n<dd>" +
|
347
|
+
"<strong><a href=\"http://hikiwiki.org/\">Hiki</a></strong>" +
|
348
|
+
"</dd>\n</dl>\n",
|
349
|
+
":Website:'''[[Hiki|http://hikiwiki.org/]]'''")
|
287
350
|
end
|
288
351
|
|
289
352
|
def test_table
|
@@ -335,6 +398,8 @@ class HikiDocTestCase < Test::Unit::TestCase
|
|
335
398
|
def test_modifier_and_link
|
336
399
|
assert_convert("<p><a href=\"http://hikiwiki.org/\"><strong>Hiki</strong></a></p>\n",
|
337
400
|
"[['''Hiki'''|http://hikiwiki.org/]]")
|
401
|
+
assert_convert("<p><strong><a href=\"http://hikiwiki.org/\">Hiki</a></strong></p>\n",
|
402
|
+
"'''[[Hiki|http://hikiwiki.org/]]'''")
|
338
403
|
end
|
339
404
|
|
340
405
|
def test_pre_and_plugin
|
@@ -363,6 +428,13 @@ class HikiDocTestCase < Test::Unit::TestCase
|
|
363
428
|
end
|
364
429
|
end
|
365
430
|
|
431
|
+
def test_plugin_in_pre_with_header
|
432
|
+
assert_convert("<h1>Title</h1>\n<pre>{{_/a:a}}</pre>\n",
|
433
|
+
"! Title\n {{_/a:a}}")
|
434
|
+
assert_convert("<h1>Title</h1>\n<pre>{{_/a:a}}\n{{_/a:a}}</pre>\n",
|
435
|
+
"! Title\n {{_/a:a}}\n {{_/a:a}}")
|
436
|
+
end
|
437
|
+
|
366
438
|
private
|
367
439
|
def assert_convert(expected, markup, options={}, message=nil)
|
368
440
|
assert_equal(expected, HikiDoc.to_xhtml(markup, options), message)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hikidoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuhiko
|
@@ -9,17 +9,18 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2008-08-12 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hoe
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
20
21
|
- - ">="
|
21
22
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
23
|
+
version: 1.2.1
|
23
24
|
version:
|
24
25
|
description: "'HikiDoc' is a text-to-HTML conversion tool for web writers. HikiDoc allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid HTML (or XHTML)."
|
25
26
|
email:
|
@@ -38,6 +39,8 @@ files:
|
|
38
39
|
- TextFormattingRules
|
39
40
|
- TextFormattingRules.ja
|
40
41
|
- bin/hikidoc
|
42
|
+
- coverage/index.html
|
43
|
+
- coverage/lib-hikidoc_rb.html
|
41
44
|
- lib/hikidoc.rb
|
42
45
|
- setup.rb
|
43
46
|
- test/run-test.rb
|
@@ -65,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
68
|
requirements: []
|
66
69
|
|
67
70
|
rubyforge_project: hikidoc
|
68
|
-
rubygems_version: 1.0
|
71
|
+
rubygems_version: 1.2.0
|
69
72
|
signing_key:
|
70
73
|
specification_version: 2
|
71
74
|
summary: "'HikiDoc' is a text-to-HTML conversion tool for web writers."
|