review 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +90 -66
- data/.travis.yml +1 -1
- data/Gemfile +0 -1
- data/NEWS.ja.md +82 -0
- data/NEWS.md +83 -0
- data/README.md +5 -3
- data/Rakefile +8 -8
- data/bin/review +1 -5
- data/bin/review-catalog-converter +22 -27
- data/bin/review-check +36 -43
- data/bin/review-checkdep +10 -15
- data/bin/review-compile +37 -55
- data/bin/review-epubmaker +4 -5
- data/bin/review-index +21 -29
- data/bin/review-init +26 -37
- data/bin/review-pdfmaker +0 -2
- data/bin/review-preproc +25 -45
- data/bin/review-validate +19 -18
- data/bin/review-vol +15 -27
- data/doc/config.yml.sample +5 -2
- data/doc/format.ja.md +20 -1
- data/doc/format.md +21 -5
- data/doc/images/review-generate.png +0 -0
- data/lib/epubmaker.rb +1 -3
- data/lib/epubmaker/content.rb +24 -27
- data/lib/epubmaker/epubcommon.rb +135 -148
- data/lib/epubmaker/epubv2.rb +39 -46
- data/lib/epubmaker/epubv3.rb +93 -103
- data/lib/epubmaker/producer.rb +138 -151
- data/lib/epubmaker/zip_exporter.rb +21 -26
- data/lib/review/book.rb +3 -6
- data/lib/review/book/base.rb +78 -103
- data/lib/review/book/chapter.rb +36 -40
- data/lib/review/book/compilable.rb +28 -31
- data/lib/review/book/image_finder.rb +6 -13
- data/lib/review/book/index.rb +100 -121
- data/lib/review/book/page_metric.rb +2 -7
- data/lib/review/book/part.rb +18 -20
- data/lib/review/book/volume.rb +9 -13
- data/lib/review/builder.rb +81 -116
- data/lib/review/catalog.rb +15 -19
- data/lib/review/compiler.rb +64 -83
- data/lib/review/configure.rb +87 -97
- data/lib/review/converter.rb +2 -7
- data/lib/review/epubbuilder.rb +1 -3
- data/lib/review/epubmaker.rb +213 -205
- data/lib/review/exception.rb +2 -4
- data/lib/review/extentions.rb +0 -1
- data/lib/review/extentions/hash.rb +2 -2
- data/lib/review/extentions/string.rb +5 -30
- data/lib/review/htmlbuilder.rb +320 -375
- data/lib/review/htmltoc.rb +4 -7
- data/lib/review/htmlutils.rb +29 -32
- data/lib/review/i18n.rb +33 -44
- data/lib/review/i18n.yml +3 -3
- data/lib/review/idgxmlbuilder.rb +309 -345
- data/lib/review/latexbuilder.rb +175 -212
- data/lib/review/latexindex.rb +2 -8
- data/lib/review/latexutils.rb +33 -43
- data/lib/review/lineinput.rb +1 -1
- data/lib/review/logger.rb +21 -0
- data/lib/review/makerhelper.rb +1 -4
- data/lib/review/markdownbuilder.rb +44 -53
- data/lib/review/md2inaobuilder.rb +6 -12
- data/lib/review/pdfmaker.rb +143 -173
- data/lib/review/preprocessor.rb +64 -101
- data/lib/review/rstbuilder.rb +126 -158
- data/lib/review/sec_counter.rb +18 -34
- data/lib/review/template.rb +4 -5
- data/lib/review/textbuilder.rb +2 -3
- data/lib/review/textutils.rb +7 -13
- data/lib/review/tocparser.rb +31 -56
- data/lib/review/tocprinter.rb +26 -52
- data/lib/review/topbuilder.rb +219 -247
- data/lib/review/unfold.rb +15 -24
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +75 -99
- data/lib/review/webtocprinter.rb +15 -20
- data/lib/review/yamlloader.rb +13 -15
- data/review.gemspec +20 -22
- data/templates/latex/layout.tex.erb +2 -2
- data/templates/opf/epubv2.opf.erb +7 -7
- data/templates/opf/epubv3.opf.erb +7 -7
- data/templates/web/html/layout-html5.html.erb +2 -2
- data/test/assets/black.eps +280 -0
- data/test/assets/fit.png +0 -0
- data/test/assets/large.gif +0 -0
- data/test/assets/large.jpg +0 -0
- data/test/assets/large.png +0 -0
- data/test/assets/large.svg +65 -0
- data/test/assets/test_template.tex +1 -1
- data/test/book_test_helper.rb +2 -2
- data/test/run_test.rb +4 -4
- data/test/sample-book/src/Rakefile +21 -22
- data/test/syntax-book/Gemfile +4 -0
- data/test/syntax-book/Rakefile +72 -0
- data/test/syntax-book/appA.re +22 -0
- data/test/syntax-book/bib.re +6 -0
- data/test/syntax-book/catalog.yml +15 -0
- data/test/syntax-book/ch01.re +136 -0
- data/test/syntax-book/ch02.re +351 -0
- data/test/syntax-book/ch03.re +82 -0
- data/test/syntax-book/config.yml +35 -0
- data/test/syntax-book/images/ball.png +0 -0
- data/test/syntax-book/images/cover.jpg +0 -0
- data/test/syntax-book/images/fractal.png +0 -0
- data/test/syntax-book/images/img3-1.png +0 -0
- data/test/syntax-book/images/inlineicon.jpg +0 -0
- data/test/syntax-book/images/logic.png +0 -0
- data/test/syntax-book/images/logic2.png +0 -0
- data/test/syntax-book/images/puzzle.jpg +0 -0
- data/test/syntax-book/images/table.jpg +0 -0
- data/test/syntax-book/part2.re +6 -0
- data/test/syntax-book/pre01.re +26 -0
- data/test/syntax-book/review-ext.rb +14 -0
- data/test/syntax-book/sty/jumoline.sty +310 -0
- data/test/syntax-book/sty/reviewmacro.sty +39 -0
- data/test/syntax-book/style.css +494 -0
- data/test/syntax-book/syntax.dic +2 -0
- data/test/test_book.rb +106 -111
- data/test/test_book_chapter.rb +21 -22
- data/test/test_book_part.rb +3 -5
- data/test/test_builder.rb +11 -22
- data/test/test_catalog.rb +17 -18
- data/test/test_catalog_converter_cmd.rb +5 -5
- data/test/test_compiler.rb +18 -16
- data/test/test_configure.rb +35 -38
- data/test/test_converter.rb +3 -4
- data/test/test_epub3maker.rb +136 -117
- data/test/test_epubmaker.rb +107 -114
- data/test/test_epubmaker_cmd.rb +2 -4
- data/test/test_extentions_hash.rb +32 -33
- data/test/test_helper.rb +9 -11
- data/test/test_htmlbuilder.rb +454 -420
- data/test/test_htmltoc.rb +8 -12
- data/test/test_htmlutils.rb +0 -2
- data/test/test_i18n.rb +159 -150
- data/test/test_idgxmlbuilder.rb +190 -197
- data/test/test_image_finder.rb +21 -22
- data/test/test_index.rb +24 -29
- data/test/test_latexbuilder.rb +274 -264
- data/test/test_lineinput.rb +7 -10
- data/test/test_location.rb +7 -7
- data/test/test_makerhelper.rb +13 -25
- data/test/test_markdownbuilder.rb +23 -26
- data/test/test_md2inaobuilder.rb +8 -11
- data/test/test_pdfmaker.rb +114 -123
- data/test/test_pdfmaker_cmd.rb +1 -3
- data/test/test_review_ext.rb +3 -5
- data/test/test_rstbuilder.rb +92 -97
- data/test/test_template.rb +3 -7
- data/test/test_textutils.rb +27 -27
- data/test/test_tocparser.rb +2 -2
- data/test/test_topbuilder.rb +98 -103
- data/test/test_webtocprinter.rb +5 -6
- data/test/test_yamlloader.rb +42 -42
- data/test/test_zip_exporter.rb +12 -18
- metadata +86 -9
- data/lib/review/ewbbuilder.rb +0 -382
data/lib/review/latexindex.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
# Copyright (c) 2002-2006 Minero Aoki
|
|
1
|
+
# Copyright (c) 2017 Minero Aoki, Kenshi Muto
|
|
2
|
+
# 2002-2006 Minero Aoki
|
|
5
3
|
#
|
|
6
4
|
# This program is free software.
|
|
7
5
|
# You can distribute or modify this program under the terms of
|
|
@@ -10,9 +8,7 @@
|
|
|
10
8
|
#
|
|
11
9
|
|
|
12
10
|
module ReVIEW
|
|
13
|
-
|
|
14
11
|
class LaTeXIndex
|
|
15
|
-
|
|
16
12
|
def load(path)
|
|
17
13
|
table = {}
|
|
18
14
|
File.foreach(path) do |line|
|
|
@@ -29,7 +25,5 @@ module ReVIEW
|
|
|
29
25
|
def [](key)
|
|
30
26
|
@table.fetch(key)
|
|
31
27
|
end
|
|
32
|
-
|
|
33
28
|
end
|
|
34
|
-
|
|
35
29
|
end
|
data/lib/review/latexutils.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
|
|
3
1
|
# Copyright (c) 2002-2006 Minero Aoki
|
|
4
2
|
# Copyright (c) 2006-2017 Minero Aoki, Kenshi Muto and Masayoshi Takahashi
|
|
5
3
|
#
|
|
@@ -12,13 +10,11 @@
|
|
|
12
10
|
require 'nkf'
|
|
13
11
|
|
|
14
12
|
module ReVIEW
|
|
15
|
-
|
|
16
13
|
module LaTeXUtils
|
|
17
|
-
|
|
18
14
|
def initialize_metachars(texcommand)
|
|
19
15
|
@metachars = {
|
|
20
16
|
'#' => '\#',
|
|
21
|
-
|
|
17
|
+
'$' => '\textdollar{}',
|
|
22
18
|
'%' => '\%',
|
|
23
19
|
'&' => '\&',
|
|
24
20
|
'{' => '\{',
|
|
@@ -29,36 +25,36 @@ module ReVIEW
|
|
|
29
25
|
'|' => '\textbar{}',
|
|
30
26
|
'<' => '\textless{}',
|
|
31
27
|
'>' => '\textgreater{}',
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
'\\' => '\reviewbackslash{}',
|
|
29
|
+
'-' => '{-}'
|
|
34
30
|
}
|
|
35
31
|
|
|
36
|
-
if File.basename(texcommand,
|
|
37
|
-
@metachars.merge!(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
kanalist = %w
|
|
32
|
+
if File.basename(texcommand, '.*') == 'platex'
|
|
33
|
+
@metachars.merge!(
|
|
34
|
+
'⓪' => '\UTF{24EA}',
|
|
35
|
+
'①' => '\UTF{2460}',
|
|
36
|
+
'②' => '\UTF{2461}',
|
|
37
|
+
'③' => '\UTF{2462}',
|
|
38
|
+
'④' => '\UTF{2463}',
|
|
39
|
+
'⑤' => '\UTF{2464}',
|
|
40
|
+
'⑥' => '\UTF{2465}',
|
|
41
|
+
'⑦' => '\UTF{2466}',
|
|
42
|
+
'⑧' => '\UTF{2467}',
|
|
43
|
+
'⑨' => '\UTF{2468}',
|
|
44
|
+
'⑩' => '\UTF{2469}',
|
|
45
|
+
'⑪' => '\UTF{246A}',
|
|
46
|
+
'⑫' => '\UTF{246B}',
|
|
47
|
+
'⑬' => '\UTF{246C}',
|
|
48
|
+
'⑭' => '\UTF{246D}',
|
|
49
|
+
'⑮' => '\UTF{246E}',
|
|
50
|
+
'⑯' => '\UTF{246F}'
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
kanalist = %w[。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ
|
|
58
54
|
オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ
|
|
59
|
-
ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚
|
|
55
|
+
ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚]
|
|
60
56
|
kanalist.each do |char|
|
|
61
|
-
char_jisx0208 = NKF.nkf('-WwX',char)
|
|
57
|
+
char_jisx0208 = NKF.nkf('-WwX', char)
|
|
62
58
|
@metachars[char] = "\\aj半角{#{char_jisx0208}}"
|
|
63
59
|
end
|
|
64
60
|
end
|
|
@@ -69,34 +65,28 @@ module ReVIEW
|
|
|
69
65
|
end
|
|
70
66
|
|
|
71
67
|
def escape_latex(str)
|
|
72
|
-
str.gsub(@metachars_re) {|s|
|
|
73
|
-
@metachars[s] or raise "unknown trans char: #{s}"
|
|
74
|
-
}
|
|
68
|
+
str.gsub(@metachars_re) { |s| @metachars[s] or raise "unknown trans char: #{s}" }
|
|
75
69
|
end
|
|
76
70
|
|
|
77
71
|
alias_method :escape, :escape_latex
|
|
78
72
|
|
|
79
73
|
def unescape_latex(str)
|
|
80
|
-
metachars_invert_re = Regexp.new(@metachars_invert.keys.collect{|key| Regexp.escape(key)}.join('|'))
|
|
81
|
-
str.gsub(metachars_invert_re) {|s|
|
|
82
|
-
@metachars_invert[s] or raise "unknown trans char: #{s}"
|
|
83
|
-
}
|
|
74
|
+
metachars_invert_re = Regexp.new(@metachars_invert.keys.collect { |key| Regexp.escape(key) }.join('|'))
|
|
75
|
+
str.gsub(metachars_invert_re) { |s| @metachars_invert[s] or raise "unknown trans char: #{s}" }
|
|
84
76
|
end
|
|
85
77
|
|
|
86
78
|
alias_method :unescape, :unescape_latex
|
|
87
79
|
|
|
88
80
|
def escape_index(str)
|
|
89
|
-
str.gsub(/[@!|"]/) {|s| '"' + s }
|
|
81
|
+
str.gsub(/[@!|"]/) { |s| '"' + s }
|
|
90
82
|
end
|
|
91
83
|
|
|
92
84
|
def escape_url(str)
|
|
93
|
-
str.gsub(/[\#%]/) {|s| '\\'+s }
|
|
85
|
+
str.gsub(/[\#%]/) { |s| '\\' + s }
|
|
94
86
|
end
|
|
95
87
|
|
|
96
88
|
def macro(name, *args)
|
|
97
|
-
"\\#{name}" + args.map {|a| "{#{a}}" }.join
|
|
89
|
+
"\\#{name}" + args.map { |a| "{#{a}}" }.join
|
|
98
90
|
end
|
|
99
|
-
|
|
100
91
|
end
|
|
101
|
-
|
|
102
92
|
end
|
data/lib/review/lineinput.rb
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
|
|
3
|
+
module ReVIEW
|
|
4
|
+
class Logger < ::Logger
|
|
5
|
+
def initialize(*logdev)
|
|
6
|
+
if logdev.empty?
|
|
7
|
+
super(STDERR, formatter: ->(severity, _datetime, _progname, msg) { "#{severity}: #{msg}\n" })
|
|
8
|
+
else
|
|
9
|
+
super
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.logger
|
|
15
|
+
@logger ||= ReVIEW::Logger.new
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.logger=(logger)
|
|
19
|
+
@logger = logger
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/review/makerhelper.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
|
|
3
1
|
# Copyright (c) 2012-2017 Yuto HAYAMIZU, Kenshi Muto
|
|
4
2
|
#
|
|
5
3
|
# This program is free software.
|
|
@@ -53,7 +51,7 @@ module ReVIEW
|
|
|
53
51
|
image_files << "#{from_dir}/#{fname}.#{conv_type}"
|
|
54
52
|
end
|
|
55
53
|
|
|
56
|
-
exts = options[:exts] || %w
|
|
54
|
+
exts = options[:exts] || %w[png gif jpg jpeg svg pdf eps ai tif]
|
|
57
55
|
exts_str = exts.join('|')
|
|
58
56
|
if !is_converted && fname =~ /\.(#{exts_str})$/i
|
|
59
57
|
FileUtils.cp "#{from_dir}/#{fname}", to_dir
|
|
@@ -66,6 +64,5 @@ module ReVIEW
|
|
|
66
64
|
image_files
|
|
67
65
|
end
|
|
68
66
|
module_function :copy_images_to_dir
|
|
69
|
-
|
|
70
67
|
end
|
|
71
68
|
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
1
|
# This program is free software.
|
|
4
2
|
# You can distribute or modify this program under the terms of
|
|
5
3
|
# the GNU LGPL, Lesser General Public License version 2.1.
|
|
@@ -9,7 +7,6 @@ require 'review/textutils'
|
|
|
9
7
|
require 'review/htmlutils'
|
|
10
8
|
|
|
11
9
|
module ReVIEW
|
|
12
|
-
|
|
13
10
|
class MARKDOWNBuilder < Builder
|
|
14
11
|
include TextUtils
|
|
15
12
|
include HTMLUtils
|
|
@@ -21,7 +18,7 @@ module ReVIEW
|
|
|
21
18
|
def builder_init_file
|
|
22
19
|
@blank_seen = nil
|
|
23
20
|
@ul_indent = 0
|
|
24
|
-
@chapter.book.image_types = %w
|
|
21
|
+
@chapter.book.image_types = %w[.png .jpg .jpeg .gif .svg]
|
|
25
22
|
end
|
|
26
23
|
private :builder_init_file
|
|
27
24
|
|
|
@@ -35,16 +32,16 @@ module ReVIEW
|
|
|
35
32
|
@blank_seen = true
|
|
36
33
|
end
|
|
37
34
|
|
|
38
|
-
def headline(level,
|
|
35
|
+
def headline(level, _label, caption)
|
|
39
36
|
blank
|
|
40
|
-
prefix =
|
|
37
|
+
prefix = '#' * level
|
|
41
38
|
puts "#{prefix} #{caption}"
|
|
42
39
|
blank
|
|
43
40
|
end
|
|
44
41
|
|
|
45
42
|
def quote(lines)
|
|
46
43
|
blank
|
|
47
|
-
puts split_paragraph(lines).map{|line| "> #{line}"}.join("\n> \n")
|
|
44
|
+
puts split_paragraph(lines).map { |line| "> #{line}" }.join("\n> \n")
|
|
48
45
|
blank
|
|
49
46
|
end
|
|
50
47
|
|
|
@@ -55,15 +52,15 @@ module ReVIEW
|
|
|
55
52
|
|
|
56
53
|
def list_header(id, caption, lang)
|
|
57
54
|
if get_chap.nil?
|
|
58
|
-
print %Q
|
|
55
|
+
print %Q(リスト#{@chapter.list(id).number} #{compile_inline(caption)}\n\n)
|
|
59
56
|
else
|
|
60
|
-
print %Q
|
|
57
|
+
print %Q(リスト#{get_chap}.#{@chapter.list(id).number} #{compile_inline(caption)}\n\n)
|
|
61
58
|
end
|
|
62
|
-
lang ||=
|
|
59
|
+
lang ||= ''
|
|
63
60
|
puts "```#{lang}"
|
|
64
61
|
end
|
|
65
62
|
|
|
66
|
-
def list_body(
|
|
63
|
+
def list_body(_id, lines, _lang)
|
|
67
64
|
lines.each do |line|
|
|
68
65
|
puts detab(line)
|
|
69
66
|
end
|
|
@@ -76,7 +73,7 @@ module ReVIEW
|
|
|
76
73
|
end
|
|
77
74
|
|
|
78
75
|
def ul_item_begin(lines)
|
|
79
|
-
puts
|
|
76
|
+
puts ' ' * (@ul_indent - 1) + '* ' + lines.join
|
|
80
77
|
end
|
|
81
78
|
|
|
82
79
|
def ul_item_end
|
|
@@ -121,17 +118,17 @@ module ReVIEW
|
|
|
121
118
|
puts caption
|
|
122
119
|
print "\n"
|
|
123
120
|
end
|
|
124
|
-
lang ||=
|
|
121
|
+
lang ||= ''
|
|
125
122
|
puts "```#{lang}"
|
|
126
123
|
lines.each do |line|
|
|
127
124
|
puts detab(line)
|
|
128
125
|
end
|
|
129
|
-
puts
|
|
126
|
+
puts '```'
|
|
130
127
|
blank
|
|
131
128
|
end
|
|
132
129
|
|
|
133
130
|
def hr
|
|
134
|
-
puts
|
|
131
|
+
puts '----'
|
|
135
132
|
end
|
|
136
133
|
|
|
137
134
|
def compile_href(url, label)
|
|
@@ -163,43 +160,41 @@ module ReVIEW
|
|
|
163
160
|
"`#{str}`"
|
|
164
161
|
end
|
|
165
162
|
|
|
166
|
-
def image_image(id, caption,
|
|
163
|
+
def image_image(id, caption, _metric)
|
|
167
164
|
blank
|
|
168
|
-
puts ".path.sub(
|
|
165
|
+
puts ".path.sub(%r{\A\./}, '')})"
|
|
169
166
|
blank
|
|
170
167
|
end
|
|
171
168
|
|
|
172
|
-
def image_dummy(
|
|
169
|
+
def image_dummy(_id, _caption, lines)
|
|
173
170
|
puts lines.join
|
|
174
171
|
end
|
|
175
172
|
|
|
176
173
|
def inline_img(id)
|
|
177
|
-
"#{I18n.t(
|
|
174
|
+
"#{I18n.t('image')}#{@chapter.image(id).number}"
|
|
178
175
|
rescue KeyError
|
|
179
176
|
error "unknown image: #{id}"
|
|
180
177
|
nofunc_text("[UnknownImage:#{id}]")
|
|
181
178
|
end
|
|
182
179
|
|
|
183
|
-
def indepimage(id, caption=
|
|
180
|
+
def indepimage(_lines, id, caption = '', _metric = nil)
|
|
184
181
|
blank
|
|
185
|
-
puts ".path.sub(
|
|
182
|
+
puts ".path.sub(%r{\A\./}, '')})"
|
|
186
183
|
blank
|
|
187
184
|
end
|
|
188
185
|
|
|
189
186
|
def pagebreak
|
|
190
|
-
puts
|
|
187
|
+
puts '{pagebreak}'
|
|
191
188
|
end
|
|
192
189
|
|
|
193
190
|
def image_ext
|
|
194
|
-
|
|
191
|
+
'jpg'
|
|
195
192
|
end
|
|
196
193
|
|
|
197
194
|
def cmd(lines)
|
|
198
|
-
puts
|
|
199
|
-
lines.each
|
|
200
|
-
|
|
201
|
-
end
|
|
202
|
-
puts "```"
|
|
195
|
+
puts '```shell-session'
|
|
196
|
+
lines.each { |line| puts detab(line) }
|
|
197
|
+
puts '```'
|
|
203
198
|
end
|
|
204
199
|
|
|
205
200
|
def table(lines, id = nil, caption = nil)
|
|
@@ -208,11 +203,11 @@ module ReVIEW
|
|
|
208
203
|
lines.each_with_index do |line, idx|
|
|
209
204
|
if /\A[\=\-]{12}/ =~ line
|
|
210
205
|
# just ignore
|
|
211
|
-
#error "too many table separator" if sepidx
|
|
206
|
+
# error "too many table separator" if sepidx
|
|
212
207
|
sepidx ||= idx
|
|
213
208
|
next
|
|
214
209
|
end
|
|
215
|
-
rows.push(line.strip.split(/\t+/).map {|s| s.sub(/\A\./, '') })
|
|
210
|
+
rows.push(line.strip.split(/\t+/).map { |s| s.sub(/\A\./, '') })
|
|
216
211
|
end
|
|
217
212
|
rows = adjust_n_cols(rows)
|
|
218
213
|
|
|
@@ -225,16 +220,16 @@ module ReVIEW
|
|
|
225
220
|
return if rows.empty?
|
|
226
221
|
if sepidx
|
|
227
222
|
sepidx.times do
|
|
228
|
-
tr(rows.shift.map {|s| th(s) })
|
|
223
|
+
tr(rows.shift.map { |s| th(s) })
|
|
229
224
|
end
|
|
230
225
|
table_border rows.first.size
|
|
231
226
|
rows.each do |cols|
|
|
232
|
-
tr(cols.map {|s| td(s) })
|
|
227
|
+
tr(cols.map { |s| td(s) })
|
|
233
228
|
end
|
|
234
229
|
else
|
|
235
230
|
rows.each do |cols|
|
|
236
231
|
h, *cs = *cols
|
|
237
|
-
tr([th(h)] + cs.map {|s| td(s) })
|
|
232
|
+
tr([th(h)] + cs.map { |s| td(s) })
|
|
238
233
|
end
|
|
239
234
|
end
|
|
240
235
|
table_end
|
|
@@ -243,12 +238,10 @@ module ReVIEW
|
|
|
243
238
|
def table_header(id, caption)
|
|
244
239
|
if id.nil?
|
|
245
240
|
puts compile_inline(caption)
|
|
241
|
+
elsif get_chap
|
|
242
|
+
puts %Q(#{I18n.t('table')}#{I18n.t('format_number_header', [get_chap, @chapter.table(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)})
|
|
246
243
|
else
|
|
247
|
-
|
|
248
|
-
puts %Q[#{I18n.t("table")}#{I18n.t("format_number_header_without_chapter", [@chapter.table(id).number])}#{I18n.t("caption_prefix")}#{compile_inline(caption)}]
|
|
249
|
-
else
|
|
250
|
-
puts %Q[#{I18n.t("table")}#{I18n.t("format_number_header", [get_chap, @chapter.table(id).number])}#{I18n.t("caption_prefix")}#{compile_inline(caption)}]
|
|
251
|
-
end
|
|
244
|
+
puts %Q(#{I18n.t('table')}#{I18n.t('format_number_header_without_chapter', [@chapter.table(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)})
|
|
252
245
|
end
|
|
253
246
|
blank
|
|
254
247
|
end
|
|
@@ -257,19 +250,19 @@ module ReVIEW
|
|
|
257
250
|
end
|
|
258
251
|
|
|
259
252
|
def tr(rows)
|
|
260
|
-
puts "|#{rows.join(
|
|
253
|
+
puts "|#{rows.join('|')}|"
|
|
261
254
|
end
|
|
262
255
|
|
|
263
256
|
def table_border(ncols)
|
|
264
|
-
puts
|
|
257
|
+
puts((0..ncols).map { '|' }.join(':--'))
|
|
265
258
|
end
|
|
266
259
|
|
|
267
260
|
def th(str)
|
|
268
|
-
|
|
261
|
+
str
|
|
269
262
|
end
|
|
270
263
|
|
|
271
264
|
def td(str)
|
|
272
|
-
|
|
265
|
+
str
|
|
273
266
|
end
|
|
274
267
|
|
|
275
268
|
def table_end
|
|
@@ -285,7 +278,7 @@ module ReVIEW
|
|
|
285
278
|
"[^#{id}]"
|
|
286
279
|
end
|
|
287
280
|
|
|
288
|
-
def inline_br(
|
|
281
|
+
def inline_br(_str)
|
|
289
282
|
"\n"
|
|
290
283
|
end
|
|
291
284
|
|
|
@@ -295,28 +288,26 @@ module ReVIEW
|
|
|
295
288
|
|
|
296
289
|
def compile_ruby(base, ruby)
|
|
297
290
|
if @book.htmlversion == 5
|
|
298
|
-
%Q
|
|
291
|
+
%Q(<ruby>#{escape_html(base)}<rp>#{I18n.t('ruby_prefix')}</rp><rt>#{escape_html(ruby)}</rt><rp>#{I18n.t('ruby_postfix')}</rp></ruby>)
|
|
299
292
|
else
|
|
300
|
-
%Q
|
|
293
|
+
%Q(<ruby><rb>#{escape_html(base)}</rb><rp>#{I18n.t('ruby_prefix')}</rp><rt>#{ruby}</rt><rp>#{I18n.t('ruby_postfix')}</rp></ruby>)
|
|
301
294
|
end
|
|
302
295
|
end
|
|
303
296
|
|
|
304
297
|
def comment(lines, comment = nil)
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
end
|
|
298
|
+
return unless @book.config['draft']
|
|
299
|
+
lines ||= []
|
|
300
|
+
lines.unshift comment unless comment.blank?
|
|
301
|
+
str = lines.join('<br />')
|
|
302
|
+
puts %Q(<div class="red">#{escape_html(str)}</div>)
|
|
311
303
|
end
|
|
312
304
|
|
|
313
305
|
def inline_comment(str)
|
|
314
|
-
if @book.config[
|
|
306
|
+
if @book.config['draft']
|
|
315
307
|
%Q(<span class="red">#{escape_html(str)}</span>)
|
|
316
308
|
else
|
|
317
309
|
''
|
|
318
310
|
end
|
|
319
311
|
end
|
|
320
312
|
end
|
|
321
|
-
|
|
322
313
|
end # module ReVIEW
|