class ReVIEW::MARKDOWNBuilder
Public Instance Methods
blank()
click to toggle source
# File lib/review/markdownbuilder.rb, line 31 def blank unless @blank_seen @output.puts end @blank_seen = true end
captionblock(type, lines, caption, _specialstyle = nil)
click to toggle source
# File lib/review/markdownbuilder.rb, line 150 def captionblock(type, lines, caption, _specialstyle = nil) puts %Q(<div class="#{type}">) puts %Q(<p class="caption">#{compile_inline(caption)}</p>) if caption.present? blocked_lines = split_paragraph(lines) puts blocked_lines.join("\n") puts '</div>' end
cmd(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 239 def cmd(lines) puts '```shell-session' lines.each do |line| puts detab(line) end puts '```' end
comment(lines, comment = nil)
click to toggle source
# File lib/review/markdownbuilder.rb, line 354 def comment(lines, comment = nil) return unless @book.config['draft'] lines ||= [] unless comment.blank? lines.unshift comment end str = lines.join('<br />') puts %Q(<div class="red">#{escape(str)}</div>) end
compile_href(url, label)
click to toggle source
# File lib/review/markdownbuilder.rb, line 162 def compile_href(url, label) if label.blank? label = url end "[#{label}](#{url})" end
compile_kw(word, alt)
click to toggle source
# File lib/review/markdownbuilder.rb, line 344 def compile_kw(word, alt) %Q(<b class="kw">) + if alt escape_html(word + " (#{alt.strip})") else escape_html(word) end + "</b><!-- IDX:#{escape_comment(escape_html(word))} -->" end
compile_ruby(base, ruby)
click to toggle source
# File lib/review/markdownbuilder.rb, line 336 def compile_ruby(base, ruby) if @book.htmlversion == 5 %Q(<ruby>#{escape(base)}<rp>#{I18n.t('ruby_prefix')}</rp><rt>#{escape(ruby)}</rt><rp>#{I18n.t('ruby_postfix')}</rp></ruby>) else %Q(<ruby><rb>#{escape(base)}</rb><rp>#{I18n.t('ruby_prefix')}</rp><rt>#{ruby}</rt><rp>#{I18n.t('ruby_postfix')}</rp></ruby>) end end
dd(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 127 def dd(lines) puts "<dd>#{lines.join}</dd>" end
dl_begin()
click to toggle source
# File lib/review/markdownbuilder.rb, line 119 def dl_begin puts '<dl>' end
dl_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 131 def dl_end puts '</dl>' end
dt(line)
click to toggle source
# File lib/review/markdownbuilder.rb, line 123 def dt(line) puts "<dt>#{line}</dt>" end
emlist(lines, caption = nil, lang = nil)
click to toggle source
# File lib/review/markdownbuilder.rb, line 135 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
extname()
click to toggle source
# File lib/review/markdownbuilder.rb, line 14 def extname '.md' end
flushright(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 381 def flushright(lines) puts %Q(<div class="flushright">) puts lines.join puts %Q(</div>) end
footnote(id, str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 319 def footnote(id, str) puts "[^#{id}]: #{compile_inline(str)}" blank end
headline(level, _label, caption)
click to toggle source
# File lib/review/markdownbuilder.rb, line 38 def headline(level, _label, caption) blank prefix = '#' * level puts "#{prefix} #{caption}" blank end
hr()
click to toggle source
# File lib/review/markdownbuilder.rb, line 158 def hr puts '----' end
image_dummy(_id, _caption, lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 211 def image_dummy(_id, _caption, lines) puts lines.join end
image_ext()
click to toggle source
# File lib/review/markdownbuilder.rb, line 235 def image_ext 'jpg' end
image_image(id, caption, _metric)
click to toggle source
# File lib/review/markdownbuilder.rb, line 205 def image_image(id, caption, _metric) blank puts ".path.sub(%r{\A\./}, '')})" blank end
indepimage(_lines, id, caption = '', _metric = nil)
click to toggle source
# File lib/review/markdownbuilder.rb, line 225 def indepimage(_lines, id, caption = '', _metric = nil) blank puts ".path.sub(%r{\A\./}, '')})" blank end
inline_b(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 177 def inline_b(str) "**#{str.gsub(/\*/, '\*')}**" end
inline_br(_str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 328 def inline_br(_str) "\n" end
inline_code(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 185 def inline_code(str) "`#{str}`" end
inline_comment(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 373 def inline_comment(str) if @book.config['draft'] %Q(<span class="red">#{escape(str)}</span>) else '' end end
inline_dtp(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 221 def inline_dtp(str) "<!-- DTP:#{str} -->" end
inline_em(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 173 def inline_em(str) "*#{str.gsub(/\*/, '\*')}*" end
inline_fn(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 324 def inline_fn(id) "[^#{id}]" end
inline_i(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 169 def inline_i(str) "*#{str.gsub(/\*/, '\*')}*" end
inline_icon(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 364 def inline_icon(id) begin ".path.sub(%r{\A\./}, '')})" rescue warn "image not bound: #{id}" %Q(<pre>missing image: #{id}</pre>) end end
inline_img(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 215 def inline_img(id) "#{I18n.t('image')}#{@chapter.image(id).number}" rescue KeyError error "unknown image: #{id}" end
inline_strong(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 181 def inline_strong(str) "**#{str.gsub(/\*/, '\*')}**" end
inline_sub(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 189 def inline_sub(str) "<sub>#{str}</sub>" end
inline_sup(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 193 def inline_sup(str) "<sup>#{str}</sup>" end
inline_tt(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 197 def inline_tt(str) "`#{str}`" end
inline_u(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 201 def inline_u(str) "<u>#{str}</u>" end
list_body(_id, lines, _lang)
click to toggle source
# File lib/review/markdownbuilder.rb, line 76 def list_body(_id, lines, _lang) lines.each do |line| puts detab(line) end puts '```' end
list_header(id, caption, lang)
click to toggle source
# File lib/review/markdownbuilder.rb, line 66 def list_header(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
listnum_body(lines, _lang)
click to toggle source
# File lib/review/markdownbuilder.rb, line 83 def listnum_body(lines, _lang) lines.each_with_index do |line, i| puts((i + 1).to_s.rjust(2) + ": #{detab(line)}") end puts '```' end
nofunc_text(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 332 def nofunc_text(str) str end
noindent()
click to toggle source
# File lib/review/markdownbuilder.rb, line 62 def noindent @noindent = true end
ol_begin()
click to toggle source
# File lib/review/markdownbuilder.rb, line 107 def ol_begin blank end
ol_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 115 def ol_end blank end
ol_item(lines, num)
click to toggle source
# File lib/review/markdownbuilder.rb, line 111 def ol_item(lines, num) puts "#{num}. #{lines.join}" end
pagebreak()
click to toggle source
# File lib/review/markdownbuilder.rb, line 231 def pagebreak puts '{pagebreak}' end
paragraph(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 51 def paragraph(lines) if @noindent puts %Q(<p class="noindent">#{lines.join}</p>) puts "\n" @noindent = nil else puts lines.join puts "\n" end end
puts(str)
click to toggle source
Calls superclass method
ReVIEW::Builder#puts
# File lib/review/markdownbuilder.rb, line 26 def puts(str) @blank_seen = false super end
quote(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 45 def quote(lines) blank puts split_paragraph(lines).map { |line| "> #{line}" }.join("\n> \n") blank end
table(lines, id = nil, caption = nil)
click to toggle source
# File lib/review/markdownbuilder.rb, line 247 def table(lines, id = nil, caption = nil) rows = [] sepidx = nil lines.each_with_index do |line, idx| if /\A[\=\-]{12}/ =~ line # just ignore # error "too many table separator" if sepidx sepidx ||= idx next end rows.push(line.strip.split(/\t+/).map { |s| s.sub(/\A\./, '') }) end rows = adjust_n_cols(rows) error 'no rows in the table' if rows.empty? begin table_header id, caption unless caption.nil? rescue KeyError error "no such table: #{id}" end table_begin rows.first.size 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)
click to toggle source
# File lib/review/markdownbuilder.rb, line 296 def table_begin(ncols) end
table_border(ncols)
click to toggle source
# File lib/review/markdownbuilder.rb, line 303 def table_border(ncols) puts((0..ncols).map { '|' }.join(':--')) end
table_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 315 def table_end blank end
table_header(id, caption)
click to toggle source
# File lib/review/markdownbuilder.rb, line 285 def table_header(id, caption) if id.nil? puts compile_inline(caption) elsif get_chap puts %Q(#{I18n.t('table')}#{I18n.t('format_number_header', [get_chap, @chapter.table(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}) else puts %Q(#{I18n.t('table')}#{I18n.t('format_number_header_without_chapter', [@chapter.table(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}) end blank end
td(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 311 def td(str) str end
th(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 307 def th(str) str end
tr(rows)
click to toggle source
# File lib/review/markdownbuilder.rb, line 299 def tr(rows) puts "|#{rows.join('|')}|" end
ul_begin()
click to toggle source
# File lib/review/markdownbuilder.rb, line 90 def ul_begin blank if @ul_indent == 0 @ul_indent += 1 end
ul_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 102 def ul_end @ul_indent -= 1 blank if @ul_indent == 0 end
ul_item_begin(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 95 def ul_item_begin(lines) puts ' ' * (@ul_indent - 1) + '* ' + lines.join end
ul_item_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 99 def ul_item_end end
Private Instance Methods
builder_init_file()
click to toggle source
# File lib/review/markdownbuilder.rb, line 18 def builder_init_file @noindent = nil @blank_seen = nil @ul_indent = 0 @chapter.book.image_types = %w[.png .jpg .jpeg .gif .svg] end