wikitext 2.0 → 2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/depend +20 -13
- data/ext/parser.c +32 -8
- data/ext/wikitext.c +1 -0
- data/lib/wikitext/version.rb +1 -1
- data/spec/external_link_spec.rb +41 -0
- data/spec/spec_helper.rb +1 -1
- metadata +38 -9
data/ext/depend
CHANGED
@@ -1,18 +1,25 @@
|
|
1
|
-
#
|
2
|
-
# Additional material for Makefile
|
3
|
-
# Copyright 2008 Wincent Colaiuta
|
4
|
-
# This program is free software: you can redistribute it and/or modify
|
5
|
-
# it under the terms of the GNU General Public License as published by
|
6
|
-
# the Free Software Foundation, either version 3 of the License, or
|
7
|
-
# (at your option) any later version.
|
1
|
+
# Copyright 2008-2010 Wincent Colaiuta. All rights reserved.
|
8
2
|
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
-
# GNU General Public License for more details.
|
3
|
+
# Redistribution and use in source and binary forms, with or without
|
4
|
+
# modification, are permitted provided that the following conditions are met:
|
13
5
|
#
|
14
|
-
#
|
15
|
-
#
|
6
|
+
# 1. Redistributions of source code must retain the above copyright notice,
|
7
|
+
# this list of conditions and the following disclaimer.
|
8
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
9
|
+
# this list of conditions and the following disclaimer in the documentation
|
10
|
+
# and/or other materials provided with the distribution.
|
11
|
+
#
|
12
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
13
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
14
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
15
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
16
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
17
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
18
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
19
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
20
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
21
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
22
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
16
23
|
|
17
24
|
# don't warn about unused params because many Ruby methods accept "self" but don't use it
|
18
25
|
CFLAGS += -std=gnu99 -Wall -Wextra -Wno-unused-parameter
|
data/ext/parser.c
CHANGED
@@ -51,6 +51,7 @@ typedef struct
|
|
51
51
|
ary_t *line; // stack for tracking scope as implied by current line
|
52
52
|
ary_t *line_buffer; // stack for tracking raw tokens (not scope) on current line
|
53
53
|
VALUE external_link_class; // CSS class applied to external links
|
54
|
+
VALUE external_link_rel; // rel attribute applied to external links
|
54
55
|
VALUE mailto_class; // CSS class applied to email (mailto) links
|
55
56
|
VALUE img_prefix; // path prepended when emitting img tags
|
56
57
|
int output_style; // HTML_OUTPUT (default) or XML_OUTPUT
|
@@ -112,6 +113,7 @@ const char p_end[] = "</p>";
|
|
112
113
|
const char space[] = " ";
|
113
114
|
const char a_start[] = "<a href=\"";
|
114
115
|
const char a_class[] = "\" class=\"";
|
116
|
+
const char a_rel[] = "\" rel=\"";
|
115
117
|
const char a_start_close[] = "\">";
|
116
118
|
const char a_end[] = "</a>";
|
117
119
|
const char link_start[] = "[[";
|
@@ -153,6 +155,7 @@ parser_t *parser_new(void)
|
|
153
155
|
parser->line = ary_new();
|
154
156
|
parser->line_buffer = ary_new();
|
155
157
|
parser->external_link_class = Qnil; // caller should set up
|
158
|
+
parser->external_link_rel = Qnil; // caller should set up
|
156
159
|
parser->mailto_class = Qnil; // caller should set up
|
157
160
|
parser->img_prefix = Qnil; // caller should set up
|
158
161
|
parser->output_style = HTML_OUTPUT;
|
@@ -280,7 +283,7 @@ void wiki_downcase_bang(char *ptr, long len)
|
|
280
283
|
// if check_autolink is true, checks parser->autolink to decide whether to emit a real hyperlink
|
281
284
|
// or merely the literal link target
|
282
285
|
// if link_text is Qnil, the link_target is re-used for the link text
|
283
|
-
void wiki_append_hyperlink(parser_t *parser, VALUE link_prefix, str_t *link_target, str_t *link_text, VALUE link_class, bool check_autolink)
|
286
|
+
void wiki_append_hyperlink(parser_t *parser, VALUE link_prefix, str_t *link_target, str_t *link_text, VALUE link_class, VALUE link_rel, bool check_autolink)
|
284
287
|
{
|
285
288
|
if (check_autolink && !parser->autolink)
|
286
289
|
str_append_str(parser->output, link_target);
|
@@ -305,6 +308,11 @@ void wiki_append_hyperlink(parser_t *parser, VALUE link_prefix, str_t *link_targ
|
|
305
308
|
str_append(parser->output, a_class, sizeof(a_class) - 1); // " class="
|
306
309
|
str_append_string(parser->output, link_class);
|
307
310
|
}
|
311
|
+
if (link_rel != Qnil)
|
312
|
+
{
|
313
|
+
str_append(parser->output, a_rel, sizeof(a_rel) - 1); // " rel="
|
314
|
+
str_append_string(parser->output, link_rel);
|
315
|
+
}
|
308
316
|
str_append(parser->output, a_start_close, sizeof(a_start_close) - 1); // ">
|
309
317
|
if (!link_text || link_text->len == 0) // re-use link_target
|
310
318
|
str_append_str(parser->output, link_target);
|
@@ -963,12 +971,13 @@ void wiki_rollback_failed_external_link(parser_t *parser)
|
|
963
971
|
// store a couple of values before popping
|
964
972
|
int scope_includes_space = IN(SPACE);
|
965
973
|
VALUE link_class = IN(PATH) ? Qnil : parser->external_link_class;
|
974
|
+
VALUE link_rel = IN(PATH) ? Qnil : parser->external_link_rel;
|
966
975
|
wiki_pop_from_stack_up_to(parser, NULL, EXT_LINK_START, true);
|
967
976
|
|
968
977
|
str_append(parser->output, ext_link_start, sizeof(ext_link_start) - 1);
|
969
978
|
if (parser->link_target->len > 0)
|
970
979
|
{
|
971
|
-
wiki_append_hyperlink(parser, Qnil, parser->link_target, NULL, link_class, true);
|
980
|
+
wiki_append_hyperlink(parser, Qnil, parser->link_target, NULL, link_class, link_rel, true);
|
972
981
|
if (scope_includes_space)
|
973
982
|
{
|
974
983
|
str_append(parser->output, space, sizeof(space) - 1);
|
@@ -998,6 +1007,7 @@ VALUE Wikitext_parser_initialize(int argc, VALUE *argv, VALUE self)
|
|
998
1007
|
VALUE autolink = Qtrue;
|
999
1008
|
VALUE line_ending = rb_str_new2("\n");
|
1000
1009
|
VALUE external_link_class = rb_str_new2("external");
|
1010
|
+
VALUE external_link_rel = Qnil;
|
1001
1011
|
VALUE mailto_class = rb_str_new2("mailto");
|
1002
1012
|
VALUE internal_link_prefix = rb_str_new2("/wiki/");
|
1003
1013
|
VALUE img_prefix = rb_str_new2("/images/");
|
@@ -1014,6 +1024,7 @@ VALUE Wikitext_parser_initialize(int argc, VALUE *argv, VALUE self)
|
|
1014
1024
|
autolink = OVERRIDE_IF_SET(autolink);
|
1015
1025
|
line_ending = OVERRIDE_IF_SET(line_ending);
|
1016
1026
|
external_link_class = OVERRIDE_IF_SET(external_link_class);
|
1027
|
+
external_link_rel = OVERRIDE_IF_SET(external_link_rel);
|
1017
1028
|
mailto_class = OVERRIDE_IF_SET(mailto_class);
|
1018
1029
|
internal_link_prefix = OVERRIDE_IF_SET(internal_link_prefix);
|
1019
1030
|
img_prefix = OVERRIDE_IF_SET(img_prefix);
|
@@ -1027,6 +1038,7 @@ VALUE Wikitext_parser_initialize(int argc, VALUE *argv, VALUE self)
|
|
1027
1038
|
rb_iv_set(self, "@autolink", autolink);
|
1028
1039
|
rb_iv_set(self, "@line_ending", line_ending);
|
1029
1040
|
rb_iv_set(self, "@external_link_class", external_link_class);
|
1041
|
+
rb_iv_set(self, "@external_link_rel", external_link_rel);
|
1030
1042
|
rb_iv_set(self, "@mailto_class", mailto_class);
|
1031
1043
|
rb_iv_set(self, "@internal_link_prefix", internal_link_prefix);
|
1032
1044
|
rb_iv_set(self, "@img_prefix", img_prefix);
|
@@ -1070,6 +1082,8 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
1070
1082
|
line_ending = StringValue(line_ending);
|
1071
1083
|
VALUE link_class = rb_iv_get(self, "@external_link_class");
|
1072
1084
|
link_class = NIL_P(link_class) ? Qnil : StringValue(link_class);
|
1085
|
+
VALUE link_rel = rb_iv_get(self, "@external_link_rel");
|
1086
|
+
link_rel = NIL_P(link_rel) ? Qnil : StringValue(link_rel);
|
1073
1087
|
VALUE mailto_class = rb_iv_get(self, "@mailto_class");
|
1074
1088
|
mailto_class = NIL_P(mailto_class) ? Qnil : StringValue(mailto_class);
|
1075
1089
|
VALUE prefix = rb_iv_get(self, "@internal_link_prefix");
|
@@ -1102,6 +1116,14 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
1102
1116
|
if (rb_funcall(options, has_key, 1, id) == Qtrue)
|
1103
1117
|
base_heading_level = NUM2INT(rb_hash_aref(options, id));
|
1104
1118
|
|
1119
|
+
// :external_link_rel => 'nofollow'
|
1120
|
+
id = ID2SYM(rb_intern("external_link_rel"));
|
1121
|
+
if (rb_funcall(options, has_key, 1, id) == Qtrue)
|
1122
|
+
{
|
1123
|
+
link_rel = rb_hash_aref(options, id);
|
1124
|
+
link_rel = NIL_P(link_rel) ? Qnil : StringValue(link_rel);
|
1125
|
+
}
|
1126
|
+
|
1105
1127
|
// :output_style => :html/:xml
|
1106
1128
|
id = ID2SYM(rb_intern("output_style"));
|
1107
1129
|
if (rb_funcall(options, has_key, 1, id) == Qtrue)
|
@@ -1128,6 +1150,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
1128
1150
|
parser_t *parser = parser_new();
|
1129
1151
|
GC_WRAP_PARSER(parser, parser_gc);
|
1130
1152
|
parser->external_link_class = link_class;
|
1153
|
+
parser->external_link_rel = link_rel;
|
1131
1154
|
parser->mailto_class = mailto_class;
|
1132
1155
|
parser->img_prefix = rb_iv_get(self, "@img_prefix");
|
1133
1156
|
parser->autolink = rb_iv_get(self, "@autolink") == Qtrue ? true : false;
|
@@ -1947,7 +1970,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
1947
1970
|
wiki_start_para_if_necessary(parser);
|
1948
1971
|
token_str->ptr = token->start;
|
1949
1972
|
token_str->len = TOKEN_LEN(token);
|
1950
|
-
wiki_append_hyperlink(parser, rb_str_new2("mailto:"), token_str, NULL, mailto_class, true);
|
1973
|
+
wiki_append_hyperlink(parser, rb_str_new2("mailto:"), token_str, NULL, mailto_class, Qnil, true);
|
1951
1974
|
}
|
1952
1975
|
break;
|
1953
1976
|
|
@@ -1962,7 +1985,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
1962
1985
|
wiki_rollback_failed_internal_link(parser);
|
1963
1986
|
token_str->ptr = token->start;
|
1964
1987
|
token_str->len = TOKEN_LEN(token);
|
1965
|
-
wiki_append_hyperlink(parser, Qnil, token_str, NULL, parser->external_link_class, true);
|
1988
|
+
wiki_append_hyperlink(parser, Qnil, token_str, NULL, parser->external_link_class, parser->external_link_rel, true);
|
1966
1989
|
}
|
1967
1990
|
else if (IN(EXT_LINK_START))
|
1968
1991
|
{
|
@@ -1987,7 +2010,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
1987
2010
|
wiki_pop_excess_elements(parser);
|
1988
2011
|
wiki_start_para_if_necessary(parser);
|
1989
2012
|
str_append(parser->output, ext_link_start, sizeof(ext_link_start) - 1);
|
1990
|
-
wiki_append_hyperlink(parser, Qnil, token_str, NULL, parser->external_link_class, true);
|
2013
|
+
wiki_append_hyperlink(parser, Qnil, token_str, NULL, parser->external_link_class, parser->external_link_rel, true);
|
1991
2014
|
}
|
1992
2015
|
}
|
1993
2016
|
else
|
@@ -1999,7 +2022,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
1999
2022
|
wiki_start_para_if_necessary(parser);
|
2000
2023
|
token_str->ptr = token->start;
|
2001
2024
|
token_str->len = TOKEN_LEN(token);
|
2002
|
-
wiki_append_hyperlink(parser, Qnil, token_str, NULL, parser->external_link_class, true);
|
2025
|
+
wiki_append_hyperlink(parser, Qnil, token_str, NULL, parser->external_link_class, parser->external_link_rel, true);
|
2003
2026
|
}
|
2004
2027
|
break;
|
2005
2028
|
|
@@ -2202,7 +2225,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
2202
2225
|
wiki_encode_link_target(parser);
|
2203
2226
|
wiki_pop_from_stack_up_to(parser, output, LINK_START, true);
|
2204
2227
|
parser->capture = NULL;
|
2205
|
-
wiki_append_hyperlink(parser, prefix, parser->link_target, parser->link_text, j, false);
|
2228
|
+
wiki_append_hyperlink(parser, prefix, parser->link_target, parser->link_text, j, Qnil, false);
|
2206
2229
|
str_clear(parser->link_target);
|
2207
2230
|
str_clear(parser->link_text);
|
2208
2231
|
}
|
@@ -2270,9 +2293,10 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
|
|
2270
2293
|
{
|
2271
2294
|
// success!
|
2272
2295
|
j = IN(PATH) ? Qnil : parser->external_link_class;
|
2296
|
+
k = IN(PATH) ? Qnil : parser->external_link_rel;
|
2273
2297
|
wiki_pop_from_stack_up_to(parser, output, EXT_LINK_START, true);
|
2274
2298
|
parser->capture = NULL;
|
2275
|
-
wiki_append_hyperlink(parser, Qnil, parser->link_target, parser->link_text, j, false);
|
2299
|
+
wiki_append_hyperlink(parser, Qnil, parser->link_target, parser->link_text, j, k, false);
|
2276
2300
|
}
|
2277
2301
|
str_clear(parser->link_target);
|
2278
2302
|
str_clear(parser->link_text);
|
data/ext/wikitext.c
CHANGED
@@ -78,6 +78,7 @@ void Init_wikitext()
|
|
78
78
|
rb_define_attr(cWikitextParser, "internal_link_prefix", Qtrue, Qtrue);
|
79
79
|
rb_define_attr(cWikitextParser, "img_prefix", Qtrue, Qtrue);
|
80
80
|
rb_define_attr(cWikitextParser, "external_link_class", Qtrue, Qtrue);
|
81
|
+
rb_define_attr(cWikitextParser, "external_link_rel", Qtrue, Qtrue);
|
81
82
|
rb_define_attr(cWikitextParser, "mailto_class", Qtrue, Qtrue);
|
82
83
|
rb_define_attr(cWikitextParser, "autolink", Qtrue, Qtrue);
|
83
84
|
rb_define_attr(cWikitextParser, "space_to_underscore", Qtrue, Qtrue);
|
data/lib/wikitext/version.rb
CHANGED
data/spec/external_link_spec.rb
CHANGED
@@ -204,6 +204,47 @@ describe Wikitext::Parser, 'external links' do
|
|
204
204
|
@parser.parse('> ]').should == "<blockquote>\n <p>]</p>\n</blockquote>\n" # in BLOCKQUOTE scope
|
205
205
|
end
|
206
206
|
|
207
|
+
describe '#external_link_rel attribute' do
|
208
|
+
it 'defaults to nil (external links do not have a rel attribute)' do
|
209
|
+
@parser.parse('http://google.com/').should == \
|
210
|
+
%Q{<p><a href="http://google.com/" class="external">http://google.com/</a></p>\n}
|
211
|
+
end
|
212
|
+
|
213
|
+
context 'set at parse time' do
|
214
|
+
it 'uses the rel attribute in external links' do
|
215
|
+
@parser.parse('http://google.com/', :external_link_rel => 'nofollow').should == \
|
216
|
+
%Q{<p><a href="http://google.com/" class="external" rel="nofollow">http://google.com/</a></p>\n}
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
context 'set at initialization time' do
|
221
|
+
let (:parser) { Wikitext::Parser.new :external_link_rel => 'nofollow' }
|
222
|
+
|
223
|
+
it 'uses the rel attribute in external links' do
|
224
|
+
parser.parse('http://google.com/').should == \
|
225
|
+
%Q{<p><a href="http://google.com/" class="external" rel="nofollow">http://google.com/</a></p>\n}
|
226
|
+
end
|
227
|
+
|
228
|
+
it 'is overrideable' do
|
229
|
+
parser.parse('http://google.com/', :external_link_rel => nil).should == \
|
230
|
+
%Q{<p><a href="http://google.com/" class="external">http://google.com/</a></p>\n}
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
context 'set via an accessor' do
|
235
|
+
let (:parser) do
|
236
|
+
parser = Wikitext::Parser.new
|
237
|
+
parser.external_link_rel = 'nofollow'
|
238
|
+
parser
|
239
|
+
end
|
240
|
+
|
241
|
+
it 'uses the rel attribute in external links' do
|
242
|
+
parser.parse('http://google.com/').should == \
|
243
|
+
%Q{<p><a href="http://google.com/" class="external" rel="nofollow">http://google.com/</a></p>\n}
|
244
|
+
end
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
207
248
|
describe 'questionable links' do
|
208
249
|
it 'should handle links which contain an embedded [ character' do
|
209
250
|
# note that [ is allowed in the link text, although the result may be unexpected to the user
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wikitext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 1
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 2
|
7
|
-
-
|
8
|
-
version: "2.
|
8
|
+
- 1
|
9
|
+
version: "2.1"
|
9
10
|
platform: ruby
|
10
11
|
authors:
|
11
12
|
- Wincent Colaiuta
|
@@ -13,45 +14,69 @@ autorequire:
|
|
13
14
|
bindir: bin
|
14
15
|
cert_chain: []
|
15
16
|
|
16
|
-
date: 2010-
|
17
|
+
date: 2010-10-17 00:00:00 +02:00
|
17
18
|
default_executable:
|
18
19
|
dependencies:
|
19
20
|
- !ruby/object:Gem::Dependency
|
20
21
|
name: rspec
|
21
22
|
prerelease: false
|
22
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
23
25
|
requirements:
|
24
|
-
- -
|
26
|
+
- - ~>
|
25
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 15
|
26
29
|
segments:
|
30
|
+
- 2
|
27
31
|
- 0
|
28
|
-
|
32
|
+
- 0
|
33
|
+
version: 2.0.0
|
29
34
|
type: :development
|
30
35
|
version_requirements: *id001
|
31
36
|
- !ruby/object:Gem::Dependency
|
32
37
|
name: thor
|
33
38
|
prerelease: false
|
34
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
35
41
|
requirements:
|
36
42
|
- - ">="
|
37
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
38
45
|
segments:
|
39
46
|
- 0
|
40
47
|
version: "0"
|
41
48
|
type: :development
|
42
49
|
version_requirements: *id002
|
43
50
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
51
|
+
name: yard
|
45
52
|
prerelease: false
|
46
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
47
55
|
requirements:
|
48
56
|
- - ">="
|
49
57
|
- !ruby/object:Gem::Version
|
58
|
+
hash: 27
|
50
59
|
segments:
|
51
60
|
- 0
|
52
|
-
|
61
|
+
- 5
|
62
|
+
- 8
|
63
|
+
version: 0.5.8
|
53
64
|
type: :development
|
54
65
|
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: wopen3
|
68
|
+
prerelease: false
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 3
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
version: "0"
|
78
|
+
type: :development
|
79
|
+
version_requirements: *id004
|
55
80
|
description: " Wikitext is a fast wikitext-to-HTML translator written in C.\n"
|
56
81
|
email: win@wincent.com
|
57
82
|
executables:
|
@@ -122,7 +147,7 @@ files:
|
|
122
147
|
- spec/version_spec.rb
|
123
148
|
- spec/vim_formatter.rb
|
124
149
|
- spec/wikitext_spec.rb
|
125
|
-
has_rdoc:
|
150
|
+
has_rdoc: false
|
126
151
|
homepage: https://wincent.com/products/wikitext
|
127
152
|
licenses: []
|
128
153
|
|
@@ -133,23 +158,27 @@ require_paths:
|
|
133
158
|
- ext
|
134
159
|
- lib
|
135
160
|
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
136
162
|
requirements:
|
137
163
|
- - ">="
|
138
164
|
- !ruby/object:Gem::Version
|
165
|
+
hash: 3
|
139
166
|
segments:
|
140
167
|
- 0
|
141
168
|
version: "0"
|
142
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
143
171
|
requirements:
|
144
172
|
- - ">="
|
145
173
|
- !ruby/object:Gem::Version
|
174
|
+
hash: 3
|
146
175
|
segments:
|
147
176
|
- 0
|
148
177
|
version: "0"
|
149
178
|
requirements: []
|
150
179
|
|
151
180
|
rubyforge_project: wikitext
|
152
|
-
rubygems_version: 1.3.
|
181
|
+
rubygems_version: 1.3.7
|
153
182
|
signing_key:
|
154
183
|
specification_version: 3
|
155
184
|
summary: Wikitext-to-HTML translator
|