martile 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +3 -1
- data/lib/martile.rb +57 -18
- metadata +36 -12
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1eb1343e216876841f720a759c80c515d3d31caf
|
4
|
+
data.tar.gz: 3089b41e29ff067736133a8e0ef12a550a040e1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6a3f65b3ca6ab982ed94ded7c44e04229a878811501494346fe80ba6d1c174d365be2e4dd4b805ad1f158a175e58c03f1c34d5f3053c8cbb217f758575dd3a4
|
7
|
+
data.tar.gz: 0db9a920deced5a775593883f09ac4174aaacc6f5e9960d9fada11fd3fcab4e3090465ca936ba831d899086e868833e7ec8363ecd255c33d26268cb7f9926803
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
|
1
|
+
m��x�U�2�%��<<)�Ik����>
|
2
|
+
���(#69�Ua|�u[r���N���,����C�5��#ǪC�-��6�O�漙'��F3�{�$�N�^���p�\�<��ݖ��x�D�3L�����>��R�0�X��e;C�T�l�ݟ�B���?ɂ���i��X�rDwM�%~r �pq��
|
3
|
+
��f�w⸜s~kmt{�?� oj�4�������F�&\��x\K�_X�L��M�
|
data/lib/martile.rb
CHANGED
@@ -8,6 +8,8 @@ require 'dynarex'
|
|
8
8
|
require 'rdiscount'
|
9
9
|
|
10
10
|
|
11
|
+
# feature: 24-Sep-2014: A kind of markdown list can now be created inside
|
12
|
+
# of <ol> or <ul> tags
|
11
13
|
# bug fix: 16-Apr-2014: Words containing an underscore should no longer be
|
12
14
|
# transformed to an underline tag
|
13
15
|
# bug fix: 03-Apr-2014: XML or HTML elements should now be filtered out
|
@@ -39,8 +41,7 @@ class Martile
|
|
39
41
|
|
40
42
|
def initialize(s)
|
41
43
|
|
42
|
-
raw_s2 = apply_filter(s) {|x| code_block_to_html x }
|
43
|
-
#puts 'raw_s2: ' + raw_s2.inspect
|
44
|
+
raw_s2 = apply_filter(s.strip) {|x| code_block_to_html x }
|
44
45
|
|
45
46
|
# ensure all angle brackets within <pre><code> is escaped
|
46
47
|
s2 = raw_s2.split(/(?=<pre><code>)/m).map { |y|
|
@@ -61,23 +62,23 @@ class Martile
|
|
61
62
|
end
|
62
63
|
|
63
64
|
#puts 's2 : ' + s2.inspect
|
64
|
-
|
65
|
-
|
66
|
-
#puts 's3 : ' + s3.inspect
|
67
|
-
|
68
|
-
s4 = apply_filter(s3) {|x| unordered_list_to_html x }
|
65
|
+
s3 = apply_filter(s2, %w(ol ul)) {|x| explicit_list_to_html x }
|
66
|
+
s4 = apply_filter(s3) {|x| ordered_list_to_html x }
|
69
67
|
#puts 's4 : ' + s4.inspect
|
70
68
|
|
71
|
-
s5 = apply_filter(s4) {|x|
|
72
|
-
#puts 's5 :' + s5.inspect
|
69
|
+
s5 = apply_filter(s4) {|x| unordered_list_to_html x }
|
70
|
+
#puts 's5 : ' + s5.inspect
|
73
71
|
|
74
|
-
s6 = apply_filter(s5) {|x|
|
75
|
-
#puts 's6 :
|
72
|
+
s6 = apply_filter(s5) {|x| dynarex_to_table x }
|
73
|
+
#puts 's6 :' + s6.inspect
|
76
74
|
|
77
|
-
s7 = apply_filter(s6) {|x|
|
75
|
+
s7 = apply_filter(s6) {|x| table_to_html x }
|
78
76
|
#puts 's7 : ' + s7.inspect
|
79
77
|
|
80
|
-
|
78
|
+
s8 = apply_filter(s7) {|x| underline x }
|
79
|
+
#puts 's8 : ' + s8.inspect
|
80
|
+
|
81
|
+
@to_html = s8
|
81
82
|
end
|
82
83
|
|
83
84
|
private
|
@@ -148,11 +149,49 @@ class Martile
|
|
148
149
|
|
149
150
|
end
|
150
151
|
|
151
|
-
def apply_filter(s, &block)
|
152
|
+
def apply_filter(s, names=[], &block)
|
152
153
|
|
153
|
-
Rexle.new("<root>#{s}</root>").root
|
154
|
-
|
155
|
-
|
154
|
+
Rexle.new("<root>#{s}</root>").root.map do |x|
|
155
|
+
|
156
|
+
if x.is_a?(String) then
|
157
|
+
block.call(x)
|
158
|
+
else
|
159
|
+
|
160
|
+
if names.grep x.name then
|
161
|
+
block.call(x.xml)
|
162
|
+
else
|
163
|
+
x
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
167
|
+
end.join
|
168
|
+
end
|
169
|
+
|
170
|
+
def explicit_list_to_html(s)
|
171
|
+
|
172
|
+
match = s.match(/<([ou]l)>([\*#])/m)
|
173
|
+
|
174
|
+
if match then
|
175
|
+
|
176
|
+
type, symbol = match.captures
|
177
|
+
symbol = ('\\' + symbol) if symbol == '*'
|
178
|
+
|
179
|
+
a3 = s.split(/(?=<#{type}>)/).map do |x|
|
180
|
+
# puts 'x' + x.inspect
|
181
|
+
if x =~ /<ol>/ then
|
182
|
+
"<%s>%s</%s>" % \
|
183
|
+
[type, x[/<#{type}>[#{symbol}]\s*(.*)<\/#{type}>/m,1]\
|
184
|
+
.split(/\n#{symbol}\s*/).map {|y| "<li>%s</li>" % y}.join, type]
|
185
|
+
else
|
186
|
+
x
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
else
|
191
|
+
s
|
192
|
+
end
|
193
|
+
|
194
|
+
end
|
156
195
|
|
157
196
|
def ordered_list_to_html(s)
|
158
197
|
list_to_html s, '#'
|
@@ -193,4 +232,4 @@ class Martile
|
|
193
232
|
|
194
233
|
end
|
195
234
|
|
196
|
-
end
|
235
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: martile
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -31,64 +31,88 @@ cert_chain:
|
|
31
31
|
YF3JmVOebtMx3b9sXkLX1YyX0fsg59FXvg9CVfAoaG6qjG2Y/okBwMSqqMLQiiao
|
32
32
|
aRfEuwOkM9Z+zA==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2014-
|
34
|
+
date: 2014-09-24 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rexle-builder
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0.1'
|
40
43
|
- - ">="
|
41
44
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
45
|
+
version: 0.1.9
|
43
46
|
type: :runtime
|
44
47
|
prerelease: false
|
45
48
|
version_requirements: !ruby/object:Gem::Requirement
|
46
49
|
requirements:
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0.1'
|
47
53
|
- - ">="
|
48
54
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
55
|
+
version: 0.1.9
|
50
56
|
- !ruby/object:Gem::Dependency
|
51
57
|
name: rexle
|
52
58
|
requirement: !ruby/object:Gem::Requirement
|
53
59
|
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.0'
|
54
63
|
- - ">="
|
55
64
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
65
|
+
version: 1.0.11
|
57
66
|
type: :runtime
|
58
67
|
prerelease: false
|
59
68
|
version_requirements: !ruby/object:Gem::Requirement
|
60
69
|
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '1.0'
|
61
73
|
- - ">="
|
62
74
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
75
|
+
version: 1.0.11
|
64
76
|
- !ruby/object:Gem::Dependency
|
65
77
|
name: rdiscount
|
66
78
|
requirement: !ruby/object:Gem::Requirement
|
67
79
|
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.1'
|
68
83
|
- - ">="
|
69
84
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
85
|
+
version: 2.1.7.1
|
71
86
|
type: :runtime
|
72
87
|
prerelease: false
|
73
88
|
version_requirements: !ruby/object:Gem::Requirement
|
74
89
|
requirements:
|
90
|
+
- - "~>"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '2.1'
|
75
93
|
- - ">="
|
76
94
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
95
|
+
version: 2.1.7.1
|
78
96
|
- !ruby/object:Gem::Dependency
|
79
97
|
name: dynarex
|
80
98
|
requirement: !ruby/object:Gem::Requirement
|
81
99
|
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '1.2'
|
82
103
|
- - ">="
|
83
104
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
105
|
+
version: 1.2.90
|
85
106
|
type: :runtime
|
86
107
|
prerelease: false
|
87
108
|
version_requirements: !ruby/object:Gem::Requirement
|
88
109
|
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '1.2'
|
89
113
|
- - ">="
|
90
114
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
115
|
+
version: 1.2.90
|
92
116
|
description:
|
93
117
|
email: james@r0bertson.co.uk
|
94
118
|
executables: []
|
@@ -108,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
132
|
requirements:
|
109
133
|
- - ">="
|
110
134
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
135
|
+
version: 2.1.0
|
112
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
137
|
requirements:
|
114
138
|
- - ">="
|
@@ -116,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
140
|
version: '0'
|
117
141
|
requirements: []
|
118
142
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.2.2
|
120
144
|
signing_key:
|
121
145
|
specification_version: 4
|
122
146
|
summary: Converts a martile string to html
|
metadata.gz.sig
CHANGED
Binary file
|