class ReVIEW::MARKDOWNBuilder
Public Instance Methods
blank()
click to toggle source
# File lib/review/markdownbuilder.rb, line 34 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 155 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\n") puts '</div>' end
cmd(lines, caption = nil)
click to toggle source
# File lib/review/markdownbuilder.rb, line 292 def cmd(lines, caption = nil) if caption.present? puts caption blank end 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 398 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 185 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 388 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 380 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 132 def dd(lines) puts "<dd>#{join_lines_to_paragraph(lines)}</dd>" end
dl_begin()
click to toggle source
# File lib/review/markdownbuilder.rb, line 124 def dl_begin puts '<dl>' end
dl_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 136 def dl_end puts '</dl>' end
dt(line)
click to toggle source
# File lib/review/markdownbuilder.rb, line 128 def dt(line) puts "<dt>#{line}</dt>" end
emlist(lines, caption = nil, lang = nil)
click to toggle source
# File lib/review/markdownbuilder.rb, line 140 def emlist(lines, caption = nil, lang = nil) blank if caption.present? puts caption blank end lang ||= '' puts "```#{lang}" lines.each do |line| puts detab(line) end puts '```' blank end
endnote_item(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 368 def endnote_item(id) puts "#{I18n.t('html_endnote_textmark', @chapter.endnote(id).number)}#{compile_inline(@chapter.endnote(id).content)}" end
extname()
click to toggle source
# File lib/review/markdownbuilder.rb, line 16 def extname '.md' end
flushright(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 426 def flushright(lines) puts %Q(<div class="flushright">) puts split_paragraph(lines).join("\n") puts %Q(</div>) end
footnote(id, str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 355 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 41 def headline(level, _label, caption) blank prefix = '#' * level puts "#{prefix} #{caption}" blank end
hr()
click to toggle source
# File lib/review/markdownbuilder.rb, line 181 def hr puts '----' end
image_dummy(_id, _caption, lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 242 def image_dummy(_id, _caption, lines) puts lines.join end
image_ext()
click to toggle source
# File lib/review/markdownbuilder.rb, line 288 def image_ext 'jpg' end
image_image(id, caption, _metric)
click to toggle source
# File lib/review/markdownbuilder.rb, line 236 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 278 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 200 def inline_b(str) "**#{str.gsub(/\*/, '\*')}**" end
inline_br(_str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 372 def inline_br(_str) "\n" end
inline_code(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 208 def inline_code(str) "`#{str}`" end
inline_comment(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 418 def inline_comment(str) if @book.config['draft'] %Q(<span class="red">#{escape(str)}</span>) else '' end end
inline_del(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 232 def inline_del(str) "~~#{str}~~" end
inline_dtp(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 252 def inline_dtp(str) "<!-- DTP:#{str} -->" end
inline_em(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 196 def inline_em(str) "*#{str.gsub(/\*/, '\*')}*" end
inline_endnote(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 364 def inline_endnote(id) "<sup>#{I18n.t('html_endnote_refmark', @chapter.endnote(id).number)}</sup>" end
inline_fn(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 360 def inline_fn(id) "[^#{id}]" end
inline_hd_chap(chap, id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 256 def inline_hd_chap(chap, id) n = chap.headline_index.number(id) if n.present? && chap.number && over_secnolevel?(n) str = I18n.t('hd_quote', [n, compile_inline(chap.headline(id).caption)]) else str = I18n.t('hd_quote_without_number', compile_inline(chap.headline(id).caption)) end if @book.config['chapterlink'] if @chapter == chap anchor = 'h' + n.tr('.', '-') %Q(<a href="##{anchor}">#{str}</a>) else warn 'MARKDOWNBuilder does not support links to other chapters', location: location str end else str end rescue KeyError app_error "unknown headline: #{id}" end
inline_i(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 192 def inline_i(str) "*#{str.gsub(/\*/, '\*')}*" end
inline_icon(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 409 def inline_icon(id) begin ".path.sub(%r{\A\./}, '')})" rescue warn "image not bound: #{id}", location: location %Q(<pre>missing image: #{id}</pre>) end end
inline_img(id)
click to toggle source
# File lib/review/markdownbuilder.rb, line 246 def inline_img(id) "#{I18n.t('image')}#{@chapter.image(id).number}" rescue KeyError app_error "unknown image: #{id}" end
inline_ins(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 228 def inline_ins(str) "<ins>#{str}</ins>" end
inline_strong(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 204 def inline_strong(str) "**#{str.gsub(/\*/, '\*')}**" end
inline_sub(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 212 def inline_sub(str) "<sub>#{str}</sub>" end
inline_sup(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 216 def inline_sup(str) "<sup>#{str}</sup>" end
inline_tt(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 220 def inline_tt(str) "`#{str}`" end
inline_u(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 224 def inline_u(str) "<u>#{str}</u>" end
list_body(_id, lines, lang)
click to toggle source
# File lib/review/markdownbuilder.rb, line 77 def list_body(_id, lines, lang) lang ||= '' puts "```#{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 69 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 end
listnum_body(lines, lang)
click to toggle source
# File lib/review/markdownbuilder.rb, line 86 def listnum_body(lines, lang) lang ||= '' puts "```#{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 376 def nofunc_text(str) str end
noindent()
click to toggle source
# File lib/review/markdownbuilder.rb, line 65 def noindent @noindent = true end
ol_begin()
click to toggle source
# File lib/review/markdownbuilder.rb, line 112 def ol_begin blank end
ol_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 120 def ol_end blank end
ol_item(lines, num)
click to toggle source
# File lib/review/markdownbuilder.rb, line 116 def ol_item(lines, num) puts "#{num}. #{join_lines_to_paragraph(lines)}" end
pagebreak()
click to toggle source
# File lib/review/markdownbuilder.rb, line 284 def pagebreak puts '{pagebreak}' end
paragraph(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 54 def paragraph(lines) if @noindent puts %Q(<p class="noindent">#{join_lines_to_paragraph(lines)}</p>) puts "\n" @noindent = nil else puts join_lines_to_paragraph(lines) puts "\n" end end
puts(str)
click to toggle source
Calls superclass method
ReVIEW::Builder#puts
# File lib/review/markdownbuilder.rb, line 29 def puts(str) @blank_seen = false super end
quote(lines)
click to toggle source
# File lib/review/markdownbuilder.rb, line 48 def quote(lines) blank puts split_paragraph(lines).map { |line| "> #{line}" }.join("\n> \n") blank end
table_begin(ncols)
click to toggle source
# File lib/review/markdownbuilder.rb, line 332 def table_begin(ncols) end
table_border(ncols)
click to toggle source
# File lib/review/markdownbuilder.rb, line 339 def table_border(ncols) puts((0..ncols).map { '|' }.join(':--')) end
table_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 351 def table_end blank end
table_header(id, caption)
click to toggle source
# File lib/review/markdownbuilder.rb, line 321 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
table_rows(sepidx, rows)
click to toggle source
# File lib/review/markdownbuilder.rb, line 304 def table_rows(sepidx, rows) 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 end
td(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 347 def td(str) str end
th(str)
click to toggle source
# File lib/review/markdownbuilder.rb, line 343 def th(str) str end
tr(rows)
click to toggle source
# File lib/review/markdownbuilder.rb, line 335 def tr(rows) puts "|#{rows.join('|')}|" end
ul_begin()
click to toggle source
# File lib/review/markdownbuilder.rb, line 95 def ul_begin blank if @ul_indent == 0 @ul_indent += 1 end
ul_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 107 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 100 def ul_item_begin(lines) puts (' ' * (@ul_indent - 1)) + '* ' + join_lines_to_paragraph(lines) end
ul_item_end()
click to toggle source
# File lib/review/markdownbuilder.rb, line 104 def ul_item_end end
Private Instance Methods
builder_init_file()
click to toggle source
Calls superclass method
ReVIEW::Builder#builder_init_file
# File lib/review/markdownbuilder.rb, line 20 def builder_init_file super @noindent = nil @blank_seen = nil @ul_indent = 0 @chapter.book.image_types = %w[.png .jpg .jpeg .gif .svg] end