class ReVIEW::MARKDOWNBuilder

Public Instance Methods

blank() click to toggle source
# File lib/review/markdownbuilder.rb, line 31
def blank
  @output.puts unless @blank_seen
  @blank_seen = true
end
cmd(lines) click to toggle source
# File lib/review/markdownbuilder.rb, line 200
def cmd(lines)
  puts "```shell-session"
  lines.each do |line|
    puts detab(line)
  end
  puts "```"
end
compile_href(url, label) click to toggle source
# File lib/review/markdownbuilder.rb, line 139
def compile_href(url, label)
  label = url if label.blank?
  "[#{label}](#{url})"
end
compile_ruby(base, ruby) click to toggle source
# File lib/review/markdownbuilder.rb, line 295
def compile_ruby(base, ruby)
  if @book.htmlversion == 5
    %Q[<ruby>#{escape_html(base)}<rp>#{I18n.t("ruby_prefix")}</rp><rt>#{escape_html(ruby)}</rt><rp>#{I18n.t("ruby_postfix")}</rp></ruby>]
  else
    %Q[<ruby><rb>#{escape_html(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 112
def dd(lines)
  puts "<dd>#{lines.join}</dd>"
end
dl_begin() click to toggle source
# File lib/review/markdownbuilder.rb, line 104
def dl_begin
  puts '<dl>'
end
dl_end() click to toggle source
# File lib/review/markdownbuilder.rb, line 116
def dl_end
  puts '</dl>'
end
dt(line) click to toggle source
# File lib/review/markdownbuilder.rb, line 108
def dt(line)
  puts "<dt>#{line}</dt>"
end
emlist(lines, caption = nil, lang = nil) click to toggle source
# File lib/review/markdownbuilder.rb, line 120
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 15
def extname
  '.md'
end
footnote(id, str) click to toggle source
# File lib/review/markdownbuilder.rb, line 278
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 36
def headline(level, label, caption)
  blank
  prefix = "#" * level
  puts "#{prefix} #{caption}"
  blank
end
hr() click to toggle source
# File lib/review/markdownbuilder.rb, line 135
def hr
  puts "----"
end
image_dummy(id, caption, lines) click to toggle source
# File lib/review/markdownbuilder.rb, line 175
def image_dummy(id, caption, lines)
  puts lines.join
end
image_ext() click to toggle source
# File lib/review/markdownbuilder.rb, line 196
def image_ext
  "jpg"
end
image_image(id, caption, metric) click to toggle source
# File lib/review/markdownbuilder.rb, line 169
def image_image(id, caption, metric)
  blank
  puts "![#{compile_inline(caption)}](#{@chapter.image(id).path.sub(/\A\.\//, "")})"
  blank
end
indepimage(id, caption="", metric=nil) click to toggle source
# File lib/review/markdownbuilder.rb, line 186
def indepimage(id, caption="", metric=nil)
  blank
  puts "![#{compile_inline(caption)}](#{@chapter.image(id).path.sub(/\A\.\//, "")})"
  blank
end
inline_b(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 152
def inline_b(str)
  "**#{str.gsub(/\*/, '\*')}**"
end
inline_br(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 287
def inline_br(str)
  "\n"
end
inline_code(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 160
def inline_code(str)
  "`#{str}`"
end
inline_em(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 148
def inline_em(str)
  "*#{str.gsub(/\*/, '\*')}*"
end
inline_fn(id) click to toggle source
# File lib/review/markdownbuilder.rb, line 283
def inline_fn(id)
  "[^#{id}]"
end
inline_i(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 144
def inline_i(str)
  "*#{str.gsub(/\*/, '\*')}*"
end
inline_img(id) click to toggle source
# File lib/review/markdownbuilder.rb, line 179
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) click to toggle source
# File lib/review/markdownbuilder.rb, line 156
def inline_strong(str)
  "**#{str.gsub(/\*/, '\*')}**"
end
inline_tt(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 164
def inline_tt(str)
  "`#{str}`"
end
list_body(id, lines, lang) click to toggle source
# File lib/review/markdownbuilder.rb, line 64
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 54
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
nofunc_text(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 291
def nofunc_text(str)
  str
end
ol_begin() click to toggle source
# File lib/review/markdownbuilder.rb, line 92
def ol_begin
  blank
end
ol_end() click to toggle source
# File lib/review/markdownbuilder.rb, line 100
def ol_end
  blank
end
ol_item(lines, num) click to toggle source
# File lib/review/markdownbuilder.rb, line 96
def ol_item(lines, num)
  puts "#{num}. #{lines.join}"
end
pagebreak() click to toggle source
# File lib/review/markdownbuilder.rb, line 192
def pagebreak
  puts "{pagebreak}"
end
paragraph(lines) click to toggle source
# File lib/review/markdownbuilder.rb, line 49
def paragraph(lines)
  puts lines.join
  puts "\n"
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 43
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 208
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)

  begin
    table_header 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) click to toggle source
# File lib/review/markdownbuilder.rb, line 255
def table_begin(ncols)
end
table_border(ncols) click to toggle source
# File lib/review/markdownbuilder.rb, line 262
def table_border(ncols)
  puts (0..ncols).map{"|"}.join(":--")
end
table_end() click to toggle source
# File lib/review/markdownbuilder.rb, line 274
def table_end
  blank
end
table_header(id, caption) click to toggle source
# File lib/review/markdownbuilder.rb, line 246
def table_header(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
td(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 270
def td(str)
  "#{str}"
end
th(str) click to toggle source
# File lib/review/markdownbuilder.rb, line 266
def th(str)
  "#{str}"
end
tr(rows) click to toggle source
# File lib/review/markdownbuilder.rb, line 258
def tr(rows)
  puts "|#{rows.join("|")}|"
end
ul_begin() click to toggle source
# File lib/review/markdownbuilder.rb, line 71
def ul_begin
  blank if @ul_indent == 0
  @ul_indent += 1
end
ul_end() click to toggle source
# File lib/review/markdownbuilder.rb, line 87
def ul_end
  @ul_indent -= 1
  blank if @ul_indent == 0
end
ul_item(lines) click to toggle source
# File lib/review/markdownbuilder.rb, line 76
def ul_item(lines)
  puts "  " * (@ul_indent - 1) + "* " + "#{lines.join}"
end
ul_item_begin(lines) click to toggle source
# File lib/review/markdownbuilder.rb, line 80
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 84
def ul_item_end
end

Private Instance Methods

builder_init_file() click to toggle source
# File lib/review/markdownbuilder.rb, line 19
def builder_init_file
  @blank_seen = nil
  @ul_indent = 0
  @chapter.book.image_types = %w(.png .jpg .jpeg .gif .svg)
end