lib/review/rstbuilder.rb in review-2.3.0 vs lib/review/rstbuilder.rb in review-2.4.0
- old
+ new
@@ -1,34 +1,28 @@
-# encoding: utf-8
-
-# Copyright (c) 2002-2006 Minero Aoki
-# 2008-2017 Minero Aoki, Kenshi Muto
+# Copyright (c) 2008-2017 Minero Aoki, Kenshi Muto
+# 2002-2006 Minero Aoki
#
# This program is free software.
# You can distribute or modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
#
require 'review/builder'
require 'review/textutils'
module ReVIEW
-
#
# RSTBuilder is a builder for reStructuredText (http://docutils.sourceforge.net/rst.html).
# reStructuredText is used in Sphinx (http://www.sphinx-doc.org/).
#
# If you want to use `ruby`, `del` and `column`, you sould use sphinxcontrib-textstyle
# package (https://pypi.python.org/pypi/sphinxcontrib-textstyle).
#
class RSTBuilder < Builder
-
include TextUtils
- [:ttbold, :hint, :maru, :keytop, :labelref, :ref, :pageref, :balloon, :strong].each {|e|
- Compiler.definline(e)
- }
+ %i[ttbold hint maru keytop labelref ref balloon strong].each { |e| Compiler.definline(e) }
Compiler.defsingle(:dtp, 1)
Compiler.defblock(:insn, 1)
Compiler.defblock(:planning, 0..1)
Compiler.defblock(:best, 0..1)
@@ -48,11 +42,11 @@
def post_paragraph
''
end
def image_ext
- "png"
+ 'png'
end
def extname
'.rst'
end
@@ -91,54 +85,46 @@
def result
@output.string
end
- def warn(msg)
- $stderr.puts "#{@location.filename}:#{@location.lineno}: warning: #{msg}"
- end
-
- def error(msg)
- $stderr.puts "#{@location.filename}:#{@location.lineno}: error: #{msg}"
- end
-
def headline(level, label, caption)
blank
if label
puts ".. _#{label}:"
blank
end
- p = "="
+ p = '='
case level
when 1 then
unless label
puts ".. _#{@chapter.name}:"
blank
end
- puts "=" * caption.size * 2
+ puts '=' * caption.size * 2
when 2 then
- p = "="
+ p = '='
when 3 then
- p = "-"
+ p = '-'
when 4 then
- p = "`"
+ p = '`'
when 5 then
- p = "~"
+ p = '~'
end
- puts "#{caption}"
+ puts caption
puts p * caption.size * 2
blank
end
def ul_begin
blank
@ul_indent += 1
end
def ul_item(lines)
- puts " " * (@ul_indent - 1) + "* #{lines.join}"
+ puts ' ' * (@ul_indent - 1) + "* #{lines.join}"
end
def ul_end
@ul_indent -= 1
blank
@@ -147,12 +133,12 @@
def ol_begin
blank
@ol_indent += 1
end
- def ol_item(lines, num)
- puts " " * (@ol_indent - 1) + "#. #{lines.join}"
+ def ol_item(lines, _num)
+ puts ' ' * (@ol_indent - 1) + "#. #{lines.join}"
end
def ol_end
@ol_indent -= 1
blank
@@ -160,120 +146,106 @@
def dl_begin
end
def dt(line)
- puts "#{line}"
+ puts line
end
def dd(lines)
- split_paragraph(lines).each do |paragraph|
- puts " #{paragraph.gsub(/\n/, '')}"
- end
+ split_paragraph(lines).each { |paragraph| puts " #{paragraph.gsub(/\n/, '')}" }
end
def dl_end
end
def paragraph(lines)
- pre = ""
- if @in_role == true
- pre = " "
- end
+ pre = ''
+ pre = ' ' if @in_role == true
puts pre + lines.join
puts "\n"
end
def read(lines)
- puts split_paragraph(lines).map{|line| " #{line}"}.join("")
+ puts split_paragraph(lines).map { |line| " #{line}" }.join
blank
end
alias_method :lead, :read
def hr
- puts "----"
+ puts '----'
end
def inline_list(id)
" :numref:`#{id}` "
end
- def list_header(id, caption, lang)
+ def list_header(id, _caption, _lang)
puts ".. _#{id}:"
blank
end
- def list_body(id, lines, lang)
- lines.each do |line|
- puts '-' + detab(line)
- end
+ def list_body(_id, lines, _lang)
+ lines.each { |line| puts '-' + detab(line) }
end
- def base_block(type, lines, caption = nil)
+ def base_block(_type, lines, caption = nil)
blank
- puts "#{compile_inline(caption)}" unless caption.nil?
+ puts compile_inline(caption) unless caption.nil?
puts lines.join("\n")
blank
end
def base_parablock(type, lines, caption = nil)
puts ".. #{type}::"
blank
puts " #{compile_inline(caption)}" unless caption.nil?
- puts " " + split_paragraph(lines).join("\n")
+ puts ' ' + split_paragraph(lines).join("\n")
blank
end
def emlist(lines, caption = nil, lang = nil)
blank
if caption
puts caption
print "\n"
end
- lang ||= "none"
+ lang ||= 'none'
puts ".. code-block:: #{lang}"
blank
- lines.each do |line|
- puts " " + detab(line)
- end
+ lines.each { |line| puts ' ' + detab(line) }
blank
end
def emlistnum(lines, caption = nil, lang = nil)
blank
if caption
puts caption
print "\n"
end
- lang ||= "none"
+ lang ||= 'none'
puts ".. code-block:: #{lang}"
- puts " :linenos:"
+ puts ' :linenos:'
blank
- lines.each do |line|
- puts " " + detab(line)
- end
+ lines.each { |line| puts ' ' + detab(line) }
blank
end
- def listnum_body(lines, lang)
- lines.each_with_index do |line, i|
- puts(i + 1).to_s.rjust(2) + ": #{line}"
- end
+ def listnum_body(lines, _lang)
+ lines.each_with_index { |line, i| puts(i + 1).to_s.rjust(2) + ": #{line}" }
blank
end
- def cmd(lines, caption = nil)
- puts ".. code-block:: bash"
- lines.each do |line|
- puts " " + detab(line)
- end
+ def cmd(lines, _caption = nil)
+ puts '.. code-block:: bash'
+ lines.each { |line| puts ' ' + detab(line) }
end
def quote(lines)
blank
- puts lines.map{|line| " #{line}"}.join("")
+ puts lines.map { |line| " #{line}" }.join
blank
end
def inline_table(id)
"表 :numref:`#{id}` "
@@ -283,13 +255,11 @@
" :numref:`#{id}` "
end
def image_image(id, caption, metric)
chapter, id = extract_chapter_id(id)
- if metric
- scale = metric.split("=")[1].to_f * 100
- end
+ scale = metric.split('=')[1].to_f * 100 if metric
puts ".. _#{id}:"
blank
puts ".. figure:: images/#{chapter.name}/#{id}.#{image_ext}"
puts " :scale:#{scale}%" if scale
@@ -308,40 +278,40 @@
puts " #{lines.join}"
blank
end
def texequation(lines)
- puts ".. math::"
+ puts '.. math::'
blank
- puts lines.map{|line| " #{line}"}.join("")
+ puts lines.map { |line| " #{line}" }.join
blank
end
def table_header(id, caption)
unless id.nil?
blank
puts ".. _#{id}:"
end
blank
puts ".. list-table:: #{compile_inline(caption)}"
- puts " :header-rows: 1"
+ puts ' :header-rows: 1'
blank
end
def table_begin(ncols)
end
def tr(rows)
first = true
- rows.each{|row|
+ rows.each do |row|
if first
puts " * - #{row}"
first = false
else
puts " - #{row}"
end
- }
+ end
end
def th(str)
str
end
@@ -356,21 +326,21 @@
def emtable(lines, caption = nil)
table(lines, nil, caption)
end
- def comment(lines, comment = nil)
- puts lines.map{|line| " .. #{line}"}.join("")
+ def comment(lines, _comment = nil)
+ puts lines.map { |line| " .. #{line}" }.join
end
def footnote(id, str)
- puts ".. [##{id.sub(" ", "_")}] #{compile_inline(str)}"
+ puts ".. [##{id.sub(' ', '_')}] #{compile_inline(str)}"
blank
end
def inline_fn(id)
- " [##{id.sub(" ", "_")}]_ "
+ " [##{id.sub(' ', '_')}]_ "
end
def compile_ruby(base, ruby)
" :ruby:`#{base}`<#{ruby}>`_ "
end
@@ -386,23 +356,23 @@
label = url if label.blank?
" `#{label} <#{url}>`_ "
end
def inline_sup(str)
- " :superscript:`str` "
+ " :superscript:`#{str}` "
end
def inline_sub(str)
- " :subscript:`str` "
+ " :subscript:`#{str}` "
end
def inline_raw(str)
matched = str.match(/\|(.*?)\|(.*)/)
if matched
- matched[2].gsub("\\n", "\n")
+ matched[2].gsub('\\n', "\n")
else
- str.gsub("\\n", "\n")
+ str.gsub('\\n', "\n")
end
end
def inline_hint(str)
# TODO: hint is not default role
@@ -426,15 +396,15 @@
# TODO: ami is not default role
" :ami:`#{str}` "
end
def inline_i(str)
- " *#{str.gsub(/\*/, '\*')}* "
+ " *#{str.gsub('*', '\*')}* "
end
def inline_b(str)
- " **#{str.gsub(/\*/, '\*')}** "
+ " **#{str.gsub('*', '\*')}** "
end
alias_method :inline_strong, :inline_b
def inline_tt(str)
@@ -445,11 +415,11 @@
alias_method :inline_tti, :inline_tt # TODO
alias_method :inline_ttbold, :inline_ttb
def inline_u(str)
- " :subscript:`str` "
+ " :subscript:`#{str}` "
end
def inline_icon(id)
" :ref:`#{id}` "
end
@@ -467,204 +437,204 @@
def inline_balloon(str)
%Q(\t←#{str.gsub(/@maru\[(\d+)\]/, inline_maru('\1'))})
end
def inline_uchar(str)
- [str.to_i(16)].pack("U")
+ [str.to_i(16)].pack('U')
end
def inline_comment(str)
- if @book.config["draft"]
- "#{str}"
+ if @book.config['draft']
+ str
else
- ""
+ ''
end
end
def inline_m(str)
" :math:`#{str}` "
end
- def inline_hd_chap(chap, id)
+ def inline_hd_chap(_chap, id)
" :ref:`#{id}` "
end
def noindent
# TODO
end
- def nonum_begin(level, label, caption)
+ def nonum_begin(_level, _label, caption)
puts ".. rubric: #{compile_inline(caption)}"
blank
end
def nonum_end(level)
end
- def common_column_begin(type, caption)
+ def common_column_begin(_type, caption)
blank
puts ".. column:: #{compile_inline(caption)}"
blank
@in_role = true
end
- def common_column_end(type)
+ def common_column_end(_type)
@in_role = false
blank
end
- def column_begin(level, label, caption)
- common_column_begin("column", caption)
+ def column_begin(_level, _label, caption)
+ common_column_begin('column', caption)
end
- def column_end(level)
- common_column_end("column")
+ def column_end(_level)
+ common_column_end('column')
end
- def xcolumn_begin(level, label, caption)
- common_column_begin("xcolumn", caption)
+ def xcolumn_begin(_level, _label, caption)
+ common_column_begin('xcolumn', caption)
end
- def xcolumn_end(level)
- common_column_end("xcolumn")
+ def xcolumn_end(_level)
+ common_column_end('xcolumn')
end
- def world_begin(level, label, caption)
- common_column_begin("world", caption)
+ def world_begin(_level, _label, caption)
+ common_column_begin('world', caption)
end
- def world_end(level)
- common_column_end("world")
+ def world_end(_level)
+ common_column_end('world')
end
- def hood_begin(level, label, caption)
- common_column_begin("hood", caption)
+ def hood_begin(_level, _label, caption)
+ common_column_begin('hood', caption)
end
- def hood_end(level)
- common_column_end("hood")
+ def hood_end(_level)
+ common_column_end('hood')
end
- def edition_begin(level, label, caption)
- common_column_begin("edition", caption)
+ def edition_begin(_level, _label, caption)
+ common_column_begin('edition', caption)
end
- def edition_end(level)
- common_column_end("edition")
+ def edition_end(_level)
+ common_column_end('edition')
end
- def insideout_begin(level, label, caption)
- common_column_begin("insideout", caption)
+ def insideout_begin(_level, _label, caption)
+ common_column_begin('insideout', caption)
end
- def insideout_end(level)
- common_column_end("insideout")
+ def insideout_end(_level)
+ common_column_end('insideout')
end
- def ref_begin(level, label, caption)
- common_column_begin("ref", caption)
+ def ref_begin(_level, _label, caption)
+ common_column_begin('ref', caption)
end
- def ref_end(level)
- common_column_end("ref")
+ def ref_end(_level)
+ common_column_end('ref')
end
- def sup_begin(level, label, caption)
- common_column_begin("sup", caption)
+ def sup_begin(_level, _label, caption)
+ common_column_begin('sup', caption)
end
- def sup_end(level)
- common_column_end("sup")
+ def sup_end(_level)
+ common_column_end('sup')
end
def flushright(lines)
- base_parablock "flushright", lines, nil
+ base_parablock 'flushright', lines, nil
end
def centering(lines)
- base_parablock "centering", lines, nil
+ base_parablock 'centering', lines, nil
end
def note(lines, caption = nil)
- base_parablock "note", lines, caption
+ base_parablock 'note', lines, caption
end
def memo(lines, caption = nil)
- base_parablock "memo", lines, caption
+ base_parablock 'memo', lines, caption
end
def tip(lines, caption = nil)
- base_parablock "tip", lines, caption
+ base_parablock 'tip', lines, caption
end
def info(lines, caption = nil)
- base_parablock "info", lines, caption
+ base_parablock 'info', lines, caption
end
def planning(lines, caption = nil)
- base_parablock "planning", lines, caption
+ base_parablock 'planning', lines, caption
end
def best(lines, caption = nil)
- base_parablock "best", lines, caption
+ base_parablock 'best', lines, caption
end
def important(lines, caption = nil)
- base_parablock "important", lines, caption
+ base_parablock 'important', lines, caption
end
def security(lines, caption = nil)
- base_parablock "security", lines, caption
+ base_parablock 'security', lines, caption
end
def caution(lines, caption = nil)
- base_parablock "caution", lines, caption
+ base_parablock 'caution', lines, caption
end
def term(lines)
- base_parablock "term", lines, nil
+ base_parablock 'term', lines, nil
end
def link(lines, caption = nil)
- base_parablock "link", lines, caption
+ base_parablock 'link', lines, caption
end
def notice(lines, caption = nil)
- base_parablock "notice", lines, caption
+ base_parablock 'notice', lines, caption
end
def point(lines, caption = nil)
- base_parablock "point", lines, caption
+ base_parablock 'point', lines, caption
end
def shoot(lines, caption = nil)
- base_parablock "shoot", lines, caption
+ base_parablock 'shoot', lines, caption
end
def reference(lines)
- base_parablock "reference", lines, nil
+ base_parablock 'reference', lines, nil
end
def practice(lines)
- base_parablock "practice", lines, nil
+ base_parablock 'practice', lines, nil
end
def expert(lines)
- base_parablock "expert", lines, nil
+ base_parablock 'expert', lines, nil
end
def insn(lines, caption = nil)
- base_block "insn", lines, caption
+ base_block 'insn', lines, caption
end
def warning(lines, caption = nil)
- base_parablock "warning", lines, caption
+ base_parablock 'warning', lines, caption
end
alias_method :box, :insn
- def indepimage(id, caption = "", metric = nil)
+ def indepimage(_lines, id, caption = '', _metric = nil)
chapter, id = extract_chapter_id(id)
puts ".. _#{id}:"
blank
puts ".. figure:: images/#{chapter.name}/#{id}.#{image_ext}"
blank
@@ -682,27 +652,27 @@
def dtp(str)
# FIXME
end
def bpo(lines)
- base_block "bpo", lines, nil
+ base_block 'bpo', lines, nil
end
- def inline_dtp(str)
- ""
+ def inline_dtp(_str)
+ ''
end
def inline_del(str)
- " :del:`str` "
+ " :del:`#{str}` "
end
def inline_code(str)
" :code:`#{str}` "
end
- def inline_br(str)
- %Q(\n)
+ def inline_br(_str)
+ "\n"
end
def text(str)
str
end
@@ -713,12 +683,12 @@
def inline_chapref(id)
" :numref:`#{id}` "
end
- def source(lines, caption = nil, lang = nil)
- base_block "source", lines, caption
+ def source(lines, caption = nil, _lang = nil)
+ base_block 'source', lines, caption
end
def inline_ttibold(str)
# TODO
" **#{str}** "
@@ -731,11 +701,11 @@
def inline_pageref(idref)
" :ref:`#{idref}` "
end
- def circle_begin(level, label, caption)
+ def circle_begin(_level, _label, caption)
puts "・\t#{caption}"
end
def circle_end(level)
end
@@ -751,19 +721,17 @@
def bibpaper_header(id, caption)
end
def bibpaper_bibpaper(id, caption, lines)
- puts ".. [#{id}] #{compile_inline(caption)} #{split_paragraph(lines).join("")}"
+ puts ".. [#{id}] #{compile_inline(caption)} #{split_paragraph(lines).join}"
end
def inline_warn(str)
" :warn:`#{str}` "
end
def inline_bib(id)
" [#{id}]_ "
end
-
end
-
end # module ReVIEW