Class: ReVIEW::MARKDOWNBuilder
Constant Summary
Constants inherited
from Builder
Builder::CAPTION_TITLES
Instance Method Summary
collapse
-
#blank ⇒ Object
-
#cmd(lines) ⇒ Object
-
#compile_href(url, label) ⇒ Object
-
#dd(lines) ⇒ Object
-
#dl_begin ⇒ Object
-
#dl_end ⇒ Object
-
#dt(line) ⇒ Object
-
#emlist(lines, caption = nil, lang = nil) ⇒ Object
-
#extname ⇒ Object
-
#footnote(id, str) ⇒ Object
-
#headline(level, label, caption) ⇒ Object
-
#hr ⇒ Object
-
#image_dummy(id, caption, lines) ⇒ Object
-
#image_ext ⇒ Object
-
#image_image(id, caption, metric) ⇒ Object
-
#indepimage(id, caption = "", metric = nil) ⇒ Object
-
#inline_b(str) ⇒ Object
-
#inline_br(str) ⇒ Object
-
#inline_code(str) ⇒ Object
-
#inline_em(str) ⇒ Object
-
#inline_fn(id) ⇒ Object
-
#inline_i(str) ⇒ Object
-
#inline_img(id) ⇒ Object
-
#inline_strong(str) ⇒ Object
-
#inline_tt(str) ⇒ Object
-
#list_body(id, lines, lang) ⇒ Object
-
#list_header(id, caption, lang) ⇒ Object
-
#nofunc_text(str) ⇒ Object
-
#ol_begin ⇒ Object
-
#ol_end ⇒ Object
-
#ol_item(lines, num) ⇒ Object
-
#pagebreak ⇒ Object
-
#paragraph(lines) ⇒ Object
-
#puts(str) ⇒ Object
-
#quote(lines) ⇒ Object
-
#table(lines, id = nil, caption = nil) ⇒ Object
-
#table_begin(ncols) ⇒ Object
-
#table_border(ncols) ⇒ Object
-
#table_end ⇒ Object
-
#table_header(id, caption) ⇒ Object
-
#td(str) ⇒ Object
-
#th(str) ⇒ Object
-
#tr(rows) ⇒ Object
-
#ul_begin ⇒ Object
-
#ul_end ⇒ Object
-
#ul_item(lines) ⇒ Object
-
#ul_item_begin(lines) ⇒ Object
-
#ul_item_end ⇒ Object
Methods included from TextUtils
#detab, #split_paragraph
Methods inherited from Builder
#bibpaper, #bind, #captionblock, #compile_inline, #detab, #error, #extract_chapter_id, #get_chap, #graph, #handle_metric, #image, #include, #initialize, #inline_bou, #inline_chap, #inline_chapref, #inline_column, #inline_hd, #inline_href, #inline_imgref, #inline_include, #inline_kw, #inline_list, #inline_raw, #inline_ruby, #inline_table, #inline_title, #list, #listnum, #parse_metric, #post_paragraph, #pre_paragraph, #print, #raw, #result, #result_metric, #source, #target_name, #text, #warn
Instance Method Details
29
30
31
32
|
# File 'lib/review/markdownbuilder.rb', line 29
def blank
@output.puts unless @blank_seen
@blank_seen = true
end
|
#cmd(lines) ⇒ Object
198
199
200
201
202
203
204
|
# File 'lib/review/markdownbuilder.rb', line 198
def cmd(lines)
puts "```shell-session"
lines.each do |line|
puts detab(line)
end
puts "```"
end
|
#compile_href(url, label) ⇒ Object
137
138
139
140
|
# File 'lib/review/markdownbuilder.rb', line 137
def compile_href(url, label)
label = url if label.blank?
"[#{label}](#{url})"
end
|
#dd(lines) ⇒ Object
110
111
112
|
# File 'lib/review/markdownbuilder.rb', line 110
def dd(lines)
puts "<dd>#{lines.join}</dd>"
end
|
102
103
104
|
# File 'lib/review/markdownbuilder.rb', line 102
def dl_begin
puts '<dl>'
end
|
114
115
116
|
# File 'lib/review/markdownbuilder.rb', line 114
def dl_end
puts '</dl>'
end
|
106
107
108
|
# File 'lib/review/markdownbuilder.rb', line 106
def dt(line)
puts "<dt>#{line}</dt>"
end
|
#emlist(lines, caption = nil, lang = nil) ⇒ Object
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# File 'lib/review/markdownbuilder.rb', line 118
def emlist(lines, caption = nil, lang = nil)
blank
if caption
puts caption
print "\n"
end
lang ||= ""
puts "```#{lang}"
lines.each do |line|
puts detab(line)
end
puts "```"
blank
end
|
14
15
16
|
# File 'lib/review/markdownbuilder.rb', line 14
def extname
'.md'
end
|
276
277
278
279
|
# File 'lib/review/markdownbuilder.rb', line 276
def (id, str)
puts "[^#{id}]: #{compile_inline(str)}"
blank
end
|
#headline(level, label, caption) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/review/markdownbuilder.rb', line 34
def headline(level, label, caption)
blank
prefix = "#" * level
puts "#{prefix} #{caption}"
blank
end
|
133
134
135
|
# File 'lib/review/markdownbuilder.rb', line 133
def hr
puts "----"
end
|
#image_dummy(id, caption, lines) ⇒ Object
173
174
175
|
# File 'lib/review/markdownbuilder.rb', line 173
def image_dummy(id, caption, lines)
puts lines.join
end
|
#image_ext ⇒ Object
194
195
196
|
# File 'lib/review/markdownbuilder.rb', line 194
def image_ext
"jpg"
end
|
#image_image(id, caption, metric) ⇒ Object
167
168
169
170
171
|
# File 'lib/review/markdownbuilder.rb', line 167
def image_image(id, caption, metric)
blank
puts ".path.sub(/\A\.\//, "")})"
blank
end
|
#indepimage(id, caption = "", metric = nil) ⇒ Object
184
185
186
187
188
|
# File 'lib/review/markdownbuilder.rb', line 184
def indepimage(id, caption="", metric=nil)
blank
puts ".path.sub(/\A\.\//, "")})"
blank
end
|
#inline_b(str) ⇒ Object
150
151
152
|
# File 'lib/review/markdownbuilder.rb', line 150
def inline_b(str)
"**#{str.gsub(/\*/, '\*')}**"
end
|
#inline_br(str) ⇒ Object
285
286
287
|
# File 'lib/review/markdownbuilder.rb', line 285
def inline_br(str)
"\n"
end
|
#inline_code(str) ⇒ Object
158
159
160
|
# File 'lib/review/markdownbuilder.rb', line 158
def inline_code(str)
"`#{str}`"
end
|
#inline_em(str) ⇒ Object
146
147
148
|
# File 'lib/review/markdownbuilder.rb', line 146
def inline_em(str)
"*#{str.gsub(/\*/, '\*')}*"
end
|
#inline_fn(id) ⇒ Object
281
282
283
|
# File 'lib/review/markdownbuilder.rb', line 281
def inline_fn(id)
"[^#{id}]"
end
|
#inline_i(str) ⇒ Object
142
143
144
|
# File 'lib/review/markdownbuilder.rb', line 142
def inline_i(str)
"*#{str.gsub(/\*/, '\*')}*"
end
|
#inline_img(id) ⇒ Object
177
178
179
180
181
182
|
# File 'lib/review/markdownbuilder.rb', line 177
def inline_img(id)
"#{I18n.t("image")}#{@chapter.image(id).number}"
rescue KeyError
error "unknown image: #{id}"
nofunc_text("[UnknownImage:#{id}]")
end
|
#inline_strong(str) ⇒ Object
154
155
156
|
# File 'lib/review/markdownbuilder.rb', line 154
def inline_strong(str)
"**#{str.gsub(/\*/, '\*')}**"
end
|
#inline_tt(str) ⇒ Object
162
163
164
|
# File 'lib/review/markdownbuilder.rb', line 162
def inline_tt(str)
"`#{str}`"
end
|
#list_body(id, lines, lang) ⇒ Object
62
63
64
65
66
67
|
# File 'lib/review/markdownbuilder.rb', line 62
def list_body(id, lines, lang)
lines.each do |line|
puts detab(line)
end
puts '```'
end
|
52
53
54
55
56
57
58
59
60
|
# File 'lib/review/markdownbuilder.rb', line 52
def (id, caption, lang)
if get_chap.nil?
print %Q[リスト#{@chapter.list(id).number} #{compile_inline(caption)}\n\n]
else
print %Q[リスト#{get_chap}.#{@chapter.list(id).number} #{compile_inline(caption)}\n\n]
end
lang ||= ""
puts "```#{lang}"
end
|
#nofunc_text(str) ⇒ Object
289
290
291
|
# File 'lib/review/markdownbuilder.rb', line 289
def nofunc_text(str)
str
end
|
90
91
92
|
# File 'lib/review/markdownbuilder.rb', line 90
def ol_begin
blank
end
|
98
99
100
|
# File 'lib/review/markdownbuilder.rb', line 98
def ol_end
blank
end
|
#ol_item(lines, num) ⇒ Object
94
95
96
|
# File 'lib/review/markdownbuilder.rb', line 94
def ol_item(lines, num)
puts "#{num}. #{lines.join}"
end
|
#pagebreak ⇒ Object
190
191
192
|
# File 'lib/review/markdownbuilder.rb', line 190
def pagebreak
puts "{pagebreak}"
end
|
#paragraph(lines) ⇒ Object
47
48
49
50
|
# File 'lib/review/markdownbuilder.rb', line 47
def paragraph(lines)
puts lines.join
puts "\n"
end
|
#puts(str) ⇒ Object
24
25
26
27
|
# File 'lib/review/markdownbuilder.rb', line 24
def puts(str)
@blank_seen = false
super
end
|
#quote(lines) ⇒ Object
41
42
43
44
45
|
# File 'lib/review/markdownbuilder.rb', line 41
def quote(lines)
blank
puts split_paragraph(lines).map{|line| "> #{line}"}.join("\n> \n")
blank
end
|
#table(lines, id = nil, caption = nil) ⇒ Object
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
|
# File 'lib/review/markdownbuilder.rb', line 206
def table(lines, id = nil, caption = nil)
rows = []
sepidx = nil
lines.each_with_index do |line, idx|
if /\A[\=\-]{12}/ =~ line
sepidx ||= idx
next
end
rows.push line.strip.split(/\t+/).map {|s| s.sub(/\A\./, '') }
end
rows = adjust_n_cols(rows)
begin
id, caption unless caption.nil?
rescue KeyError
error "no such table: #{id}"
end
table_begin rows.first.size
return if rows.empty?
if sepidx
sepidx.times do
tr rows.shift.map {|s| th(s) }
end
table_border rows.first.size
rows.each do |cols|
tr cols.map {|s| td(s) }
end
else
rows.each do |cols|
h, *cs = *cols
tr [th(h)] + cs.map {|s| td(s) }
end
end
table_end
end
|
#table_begin(ncols) ⇒ Object
253
254
|
# File 'lib/review/markdownbuilder.rb', line 253
def table_begin(ncols)
end
|
#table_border(ncols) ⇒ Object
260
261
262
|
# File 'lib/review/markdownbuilder.rb', line 260
def table_border(ncols)
puts (0..ncols).map{"|"}.join(":--")
end
|
#table_end ⇒ Object
272
273
274
|
# File 'lib/review/markdownbuilder.rb', line 272
def table_end
blank
end
|
244
245
246
247
248
249
250
251
|
# File 'lib/review/markdownbuilder.rb', line 244
def (id, caption)
if get_chap.nil?
puts %Q[#{I18n.t("table")}#{I18n.t("format_number_header_without_chapter", [@chapter.table(id).number])}#{I18n.t("caption_prefix")}#{compile_inline(caption)}]
else
puts %Q[#{I18n.t("table")}#{I18n.t("format_number_header", [get_chap, @chapter.table(id).number])}#{I18n.t("caption_prefix")}#{compile_inline(caption)}]
end
blank
end
|
268
269
270
|
# File 'lib/review/markdownbuilder.rb', line 268
def td(str)
"#{str}"
end
|
264
265
266
|
# File 'lib/review/markdownbuilder.rb', line 264
def th(str)
"#{str}"
end
|
256
257
258
|
# File 'lib/review/markdownbuilder.rb', line 256
def tr(rows)
puts "|#{rows.join("|")}|"
end
|
69
70
71
72
|
# File 'lib/review/markdownbuilder.rb', line 69
def ul_begin
blank if @ul_indent == 0
@ul_indent += 1
end
|
85
86
87
88
|
# File 'lib/review/markdownbuilder.rb', line 85
def ul_end
@ul_indent -= 1
blank if @ul_indent == 0
end
|
#ul_item(lines) ⇒ Object
74
75
76
|
# File 'lib/review/markdownbuilder.rb', line 74
def ul_item(lines)
puts " " * (@ul_indent - 1) + "* " + "#{lines.join}"
end
|
#ul_item_begin(lines) ⇒ Object
78
79
80
|
# File 'lib/review/markdownbuilder.rb', line 78
def ul_item_begin(lines)
puts " " * (@ul_indent - 1) + "* " + "#{lines.join}"
end
|
#ul_item_end ⇒ Object
82
83
|
# File 'lib/review/markdownbuilder.rb', line 82
def ul_item_end
end
|