review 1.7.2 → 2.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -43
- data/.travis.yml +0 -9
- data/ChangeLog +0 -16
- data/Gemfile +1 -0
- data/README.rdoc +1 -1
- data/Rakefile +12 -1
- data/bin/review-check +21 -8
- data/bin/review-compile +15 -9
- data/bin/review-epubmaker-legacy +6 -6
- data/bin/review-index +13 -2
- data/bin/review-init +18 -12
- data/bin/review-preproc +14 -1
- data/bin/review-validate +1 -1
- data/bin/review-vol +13 -1
- data/doc/quickstart.ja.md +1 -1
- data/doc/quickstart.md +1 -1
- data/lib/epubmaker/content.rb +3 -3
- data/lib/epubmaker/epubcommon.rb +108 -91
- data/lib/epubmaker/epubv2.rb +67 -14
- data/lib/epubmaker/epubv3.rb +59 -25
- data/lib/epubmaker/producer.rb +1 -13
- data/lib/lineinput.rb +0 -48
- data/lib/review/book/base.rb +4 -12
- data/lib/review/book/compilable.rb +3 -1
- data/lib/review/book/index.rb +4 -4
- data/lib/review/builder.rb +54 -47
- data/lib/review/compiler.rb +4662 -326
- data/lib/review/compiler/literals_1_8.kpeg +19 -0
- data/lib/review/compiler/literals_1_8.rb +432 -0
- data/lib/review/compiler/literals_1_9.kpeg +22 -0
- data/lib/review/compiler/literals_1_9.rb +435 -0
- data/lib/review/configure.rb +8 -20
- data/lib/review/epubbuilder.rb +1 -1
- data/lib/review/epubmaker.rb +122 -52
- data/lib/review/ewbbuilder.rb +4 -4
- data/lib/review/exception.rb +1 -1
- data/lib/review/extentions.rb +1 -0
- data/lib/review/extentions/array.rb +25 -0
- data/lib/review/htmlbuilder.rb +286 -275
- data/lib/review/htmllayout.rb +0 -2
- data/lib/review/htmlutils.rb +4 -4
- data/lib/review/i18n.rb +2 -6
- data/lib/review/i18n.yml +1 -1
- data/lib/review/idgxmlbuilder.rb +239 -204
- data/lib/review/inaobuilder.rb +75 -73
- data/lib/review/latexbuilder.rb +265 -219
- data/lib/review/latexutils.rb +6 -6
- data/lib/review/layout.tex.erb +1 -1
- data/lib/review/location.rb +24 -0
- data/lib/review/markdownbuilder.rb +124 -79
- data/lib/review/node.rb +267 -0
- data/lib/review/pdfmaker.rb +92 -92
- data/lib/review/preprocessor.rb +51 -14
- data/lib/review/review.kpeg +724 -0
- data/lib/review/textbuilder.rb +1 -1
- data/lib/review/textutils.rb +24 -18
- data/lib/review/tocparser.rb +3 -3
- data/lib/review/tocprinter.rb +31 -8
- data/lib/review/topbuilder.rb +119 -111
- data/lib/review/unfold.rb +2 -2
- data/lib/review/version.rb +1 -1
- data/review.gemspec +2 -2
- data/rubocop-todo.yml +456 -0
- data/test/assets/test_template.tex +1 -1
- data/test/sample-book/src/config.yml +0 -1
- data/test/test.re +1 -1
- data/test/test_book.rb +4 -4
- data/test/test_book_chapter.rb +70 -0
- data/test/test_book_part.rb +1 -1
- data/test/test_builder.rb +6 -28
- data/test/test_compiler.rb +59 -14
- data/test/test_helper.rb +47 -4
- data/test/test_htmlbuilder.rb +104 -73
- data/test/test_i18n.rb +5 -3
- data/test/test_idgxmlbuilder.rb +5 -2
- data/test/test_inaobuilder.rb +4 -2
- data/test/test_latexbuilder.rb +18 -37
- data/test/test_lineinput.rb +25 -4
- data/test/test_markdownbuilder.rb +4 -22
- data/test/test_pdfmaker.rb +12 -11
- data/test/test_textutils.rb +0 -36
- data/test/test_topbuilder.rb +2 -0
- metadata +14 -28
- data/.rubocop_todo.yml +0 -605
- data/Dockerfile +0 -22
- data/doc/NEWS.ja.md +0 -362
- data/doc/NEWS.md +0 -366
- data/lib/review/htmltoc.rb +0 -45
- data/lib/review/template.rb +0 -21
- data/templates/html/layout-html5.html.erb +0 -17
- data/templates/html/layout-xhtml1.html.erb +0 -20
- data/templates/ncx/epubv2.ncx.erb +0 -11
- data/templates/opf/epubv2.opf.erb +0 -21
- data/templates/opf/epubv3.opf.erb +0 -18
- data/templates/xml/container.xml.erb +0 -6
- data/test/assets/test.xml.erb +0 -3
- data/test/sample-book/src/config-epub2.yml +0 -186
- data/test/test_configure.rb +0 -50
- data/test/test_htmltoc.rb +0 -32
- data/test/test_template.rb +0 -26
data/lib/review/textbuilder.rb
CHANGED
data/lib/review/textutils.rb
CHANGED
@@ -13,26 +13,32 @@ module ReVIEW
|
|
13
13
|
}
|
14
14
|
end
|
15
15
|
|
16
|
-
def
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
}
|
30
|
-
|
31
|
-
if !pre.nil? and !post.nil?
|
32
|
-
blocked_lines.map!{|i| [pre] + i + [post] }
|
16
|
+
def convert_inencoding(str, enc)
|
17
|
+
case enc
|
18
|
+
when /^EUC$/i
|
19
|
+
NKF.nkf("-E -w -m0x", str)
|
20
|
+
when /^SJIS$/i
|
21
|
+
NKF.nkf("-S -w -m0x", str)
|
22
|
+
when /^JIS$/i
|
23
|
+
NKF.nkf("-J -w -m0x", str)
|
24
|
+
when /^UTF-8$/i
|
25
|
+
NKF.nkf("-W -w -m0x", str)
|
26
|
+
else
|
27
|
+
NKF.nkf("-w -m0 -m0x", str)
|
33
28
|
end
|
29
|
+
end
|
34
30
|
|
35
|
-
|
31
|
+
def convert_outencoding(str, enc)
|
32
|
+
case enc
|
33
|
+
when /^EUC$/i
|
34
|
+
NKF.nkf("-W -e -m0x", str)
|
35
|
+
when /^SJIS$/i
|
36
|
+
NKF.nkf("-W -s -m0x", str)
|
37
|
+
when /^JIS$/i
|
38
|
+
NKF.nkf("-W -j -m0x", str)
|
39
|
+
else
|
40
|
+
str
|
41
|
+
end
|
36
42
|
end
|
37
43
|
end
|
38
44
|
end
|
data/lib/review/tocparser.rb
CHANGED
@@ -323,11 +323,11 @@ module ReVIEW
|
|
323
323
|
end
|
324
324
|
end
|
325
325
|
|
326
|
-
class Book::Base
|
326
|
+
class Book::Base # reopen
|
327
327
|
include TOCRoot
|
328
328
|
end
|
329
329
|
|
330
|
-
class Book::ChapterSet
|
330
|
+
class Book::ChapterSet # reopen
|
331
331
|
include TOCRoot
|
332
332
|
end
|
333
333
|
|
@@ -335,7 +335,7 @@ module ReVIEW
|
|
335
335
|
include TOCRoot
|
336
336
|
end
|
337
337
|
|
338
|
-
class Book::Chapter
|
338
|
+
class Book::Chapter # reopen
|
339
339
|
def toc
|
340
340
|
@toc ||= TOCParser.parse(self)
|
341
341
|
unless @toc.size == 1
|
data/lib/review/tocprinter.rb
CHANGED
@@ -13,13 +13,14 @@
|
|
13
13
|
|
14
14
|
require 'review/htmlutils'
|
15
15
|
require 'review/htmllayout'
|
16
|
+
require 'nkf'
|
16
17
|
|
17
18
|
module ReVIEW
|
18
19
|
|
19
20
|
class TOCPrinter
|
20
21
|
|
21
22
|
def TOCPrinter.default_upper_level
|
22
|
-
99
|
23
|
+
99 # no one use 99 level nest
|
23
24
|
end
|
24
25
|
|
25
26
|
def initialize(print_upper, param)
|
@@ -30,6 +31,28 @@ module ReVIEW
|
|
30
31
|
def print?(level)
|
31
32
|
level <= @print_upper
|
32
33
|
end
|
34
|
+
|
35
|
+
def nkffilter(line)
|
36
|
+
inc = ""
|
37
|
+
outc = "-w"
|
38
|
+
if @config["inencoding"] =~ /^EUC$/
|
39
|
+
inc = "-E"
|
40
|
+
elsif @config["inencoding"] =~ /^SJIS$/
|
41
|
+
inc = "-S"
|
42
|
+
elsif @config["inencoding"] =~ /^JIS$/
|
43
|
+
inc = "-J"
|
44
|
+
end
|
45
|
+
|
46
|
+
if @config["outencoding"] =~ /^EUC$/
|
47
|
+
outc = "-e"
|
48
|
+
elsif @config["outencoding"] =~ /^SJIS$/
|
49
|
+
outc = "-s"
|
50
|
+
elsif @config["outencoding"] =~ /^JIS$/
|
51
|
+
outc = "-j"
|
52
|
+
end
|
53
|
+
|
54
|
+
NKF.nkf("#{inc} #{outc}", line)
|
55
|
+
end
|
33
56
|
end
|
34
57
|
|
35
58
|
|
@@ -56,11 +79,11 @@ module ReVIEW
|
|
56
79
|
printf "%3s %3dKB %6dC %5dL %s (%s)\n",
|
57
80
|
chapnumstr(node.number),
|
58
81
|
vol.kbytes, vol.chars, vol.lines,
|
59
|
-
node.label, node.chapter_id
|
82
|
+
nkffilter(node.label), node.chapter_id
|
60
83
|
else
|
61
84
|
printf "%17s %5dL %s\n",
|
62
85
|
'', node.estimated_lines,
|
63
|
-
" #{' ' * (node.level - 1)}#{number} #{node.label}"
|
86
|
+
nkffilter(" #{' ' * (node.level - 1)}#{number} #{node.label}")
|
64
87
|
end
|
65
88
|
end
|
66
89
|
|
@@ -71,7 +94,7 @@ module ReVIEW
|
|
71
94
|
def volume_columns(level, volstr)
|
72
95
|
cols = ["", "", "", nil]
|
73
96
|
cols[level - 1] = volstr
|
74
|
-
cols[0, 3]
|
97
|
+
cols[0, 3] # does not display volume of level-4 section
|
75
98
|
end
|
76
99
|
|
77
100
|
end
|
@@ -163,7 +186,7 @@ module ReVIEW
|
|
163
186
|
class IDGTOCPrinter < TOCPrinter
|
164
187
|
def print_book(book)
|
165
188
|
puts %Q(<?xml version="1.0" encoding="UTF-8"?>)
|
166
|
-
puts %Q(<doc xmlns:aid='http://ns.adobe.com/AdobeInDesign/4.0/'><title aid:pstyle="h0">1 パート1</title><?dtp level="0" section="第1部 パート1"?>) # FIXME: 部タイトルを取るには? & 部ごとに結果を分けるには?
|
189
|
+
puts nkffilter(%Q(<doc xmlns:aid='http://ns.adobe.com/AdobeInDesign/4.0/'><title aid:pstyle="h0">1 パート1</title><?dtp level="0" section="第1部 パート1"?>)) # FIXME: 部タイトルを取るには? & 部ごとに結果を分けるには?
|
167
190
|
puts %Q(<ul aid:pstyle='ul-partblock'>)
|
168
191
|
print_children book
|
169
192
|
puts %Q(</ul></doc>)
|
@@ -185,15 +208,15 @@ module ReVIEW
|
|
185
208
|
if node.chapter?
|
186
209
|
vol = node.volume
|
187
210
|
printf "<li aid:pstyle='ul-part'>%s</li>\n",
|
188
|
-
"#{chapnumstr(node.number)}#{node.label}"
|
211
|
+
nkffilter("#{chapnumstr(node.number)}#{node.label}")
|
189
212
|
else
|
190
213
|
printf "<li>%-#{LABEL_LEN}s\n",
|
191
|
-
" #{' ' * (node.level - 1)}#{seq} #{node.label}</li>"
|
214
|
+
nkffilter(" #{' ' * (node.level - 1)}#{seq} #{node.label}</li>")
|
192
215
|
end
|
193
216
|
end
|
194
217
|
|
195
218
|
def chapnumstr(n)
|
196
|
-
n ? sprintf('第%d章 ', n) : ''
|
219
|
+
n ? nkffilter(sprintf('第%d章 ', n)) : ''
|
197
220
|
end
|
198
221
|
|
199
222
|
def volume_columns(level, volstr)
|
data/lib/review/topbuilder.rb
CHANGED
@@ -22,7 +22,7 @@ module ReVIEW
|
|
22
22
|
}
|
23
23
|
Compiler.defsingle(:dtp, 1)
|
24
24
|
|
25
|
-
Compiler.
|
25
|
+
Compiler.defcodeblock(:insn, 1)
|
26
26
|
Compiler.defblock(:memo, 0..1)
|
27
27
|
Compiler.defblock(:tip, 0..1)
|
28
28
|
Compiler.defblock(:info, 0..1)
|
@@ -55,7 +55,6 @@ module ReVIEW
|
|
55
55
|
@subsection = 0
|
56
56
|
@subsubsection = 0
|
57
57
|
@subsubsubsection = 0
|
58
|
-
@blank_seen = true
|
59
58
|
|
60
59
|
@titles = {
|
61
60
|
"emlist" => "インラインリスト",
|
@@ -102,28 +101,6 @@ module ReVIEW
|
|
102
101
|
end
|
103
102
|
private :builder_init_file
|
104
103
|
|
105
|
-
def print(s)
|
106
|
-
@blank_seen = false
|
107
|
-
super
|
108
|
-
end
|
109
|
-
private :print
|
110
|
-
|
111
|
-
def puts(s)
|
112
|
-
@blank_seen = false
|
113
|
-
super
|
114
|
-
end
|
115
|
-
private :puts
|
116
|
-
|
117
|
-
def blank
|
118
|
-
@output.puts unless @blank_seen
|
119
|
-
@blank_seen = true
|
120
|
-
end
|
121
|
-
private :blank
|
122
|
-
|
123
|
-
def result
|
124
|
-
@output.string
|
125
|
-
end
|
126
|
-
|
127
104
|
def warn(msg)
|
128
105
|
$stderr.puts "#{@location.filename}:#{@location.lineno}: warning: #{msg}"
|
129
106
|
end
|
@@ -137,8 +114,8 @@ module ReVIEW
|
|
137
114
|
end
|
138
115
|
|
139
116
|
def headline(level, label, caption)
|
117
|
+
buf = ""
|
140
118
|
prefix = ""
|
141
|
-
blank
|
142
119
|
case level
|
143
120
|
when 1
|
144
121
|
if @chapter.number.to_s =~ /\A\d+\Z/
|
@@ -172,62 +149,67 @@ module ReVIEW
|
|
172
149
|
raise "caption level too deep or unsupported: #{level}"
|
173
150
|
end
|
174
151
|
prefix = "" if (level.to_i > @book.config["secnolevel"])
|
175
|
-
|
152
|
+
buf << "■H#{level}■#{prefix}#{caption}\n"
|
153
|
+
buf
|
176
154
|
end
|
177
155
|
|
178
156
|
def ul_begin
|
179
|
-
|
157
|
+
"\n"
|
180
158
|
end
|
181
159
|
|
182
160
|
def ul_item(lines)
|
183
|
-
|
161
|
+
"●\t#{lines.join}\n"
|
184
162
|
end
|
185
163
|
|
186
164
|
def ul_end
|
187
|
-
|
165
|
+
"\n"
|
188
166
|
end
|
189
167
|
|
190
168
|
def ol_begin
|
191
|
-
blank
|
192
169
|
@olitem = 0
|
170
|
+
"\n"
|
193
171
|
end
|
194
172
|
|
195
173
|
def ol_item(lines, num)
|
196
|
-
|
174
|
+
"#{num}\t#{lines.join}\n"
|
197
175
|
end
|
198
176
|
|
199
177
|
def ol_end
|
200
|
-
blank
|
201
178
|
@olitem = nil
|
179
|
+
"\n"
|
202
180
|
end
|
203
181
|
|
204
182
|
def dl_begin
|
205
|
-
|
183
|
+
"\n"
|
206
184
|
end
|
207
185
|
|
208
186
|
def dt(line)
|
209
|
-
|
187
|
+
"★#{line}☆\n"
|
210
188
|
end
|
211
189
|
|
212
190
|
def dd(lines)
|
213
|
-
|
214
|
-
|
191
|
+
buf = ""
|
192
|
+
lines.each do |paragraph|
|
193
|
+
buf << "\t#{paragraph.gsub(/\n/, '')}\n"
|
215
194
|
end
|
195
|
+
buf
|
216
196
|
end
|
217
197
|
|
218
198
|
def dl_end
|
219
|
-
|
199
|
+
"\n"
|
220
200
|
end
|
221
201
|
|
222
202
|
def paragraph(lines)
|
223
|
-
|
203
|
+
lines.join+"\n"
|
224
204
|
end
|
225
205
|
|
226
206
|
def read(lines)
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
207
|
+
buf = ""
|
208
|
+
buf << "◆→開始:#{@titles["lead"]}←◆\n"
|
209
|
+
buf << lines.join("\n") << "\n"
|
210
|
+
buf << "◆→終了:#{@titles["lead"]}←◆\n"
|
211
|
+
buf << "\n"
|
212
|
+
buf
|
231
213
|
end
|
232
214
|
|
233
215
|
alias_method :lead, :read
|
@@ -239,44 +221,50 @@ module ReVIEW
|
|
239
221
|
else
|
240
222
|
%Q[#{I18n.t("list")}#{I18n.t("format_number", [get_chap(chapter), @chapter.list(id).number])}]
|
241
223
|
end
|
242
|
-
|
243
224
|
end
|
244
225
|
|
245
226
|
def list_header(id, caption, lang)
|
246
|
-
|
247
|
-
|
227
|
+
buf = ""
|
228
|
+
#buf << "\n"
|
229
|
+
buf << "◆→開始:#{@titles["list"]}←◆\n"
|
248
230
|
if get_chap.nil?
|
249
|
-
|
231
|
+
buf << %Q[#{I18n.t("list")}#{I18n.t("format_number_without_chapter", [@chapter.list(id).number])}#{I18n.t("caption_prefix_idgxml")}#{caption}] << "\n"
|
250
232
|
else
|
251
|
-
|
233
|
+
buf << %Q[#{I18n.t("list")}#{I18n.t("format_number", [get_chap, @chapter.list(id).number])}#{I18n.t("caption_prefix_idgxml")}#{caption}] << "\n"
|
252
234
|
end
|
253
|
-
|
235
|
+
buf << "\n"
|
236
|
+
buf
|
254
237
|
end
|
255
238
|
|
256
239
|
def list_body(id, lines, lang)
|
240
|
+
buf = ""
|
257
241
|
lines.each do |line|
|
258
|
-
|
242
|
+
buf << detab(line) << "\n"
|
259
243
|
end
|
260
|
-
|
261
|
-
|
244
|
+
buf << "◆→終了:#{@titles["list"]}←◆\n"
|
245
|
+
buf << "\n"
|
246
|
+
buf
|
262
247
|
end
|
263
248
|
|
264
249
|
def base_block(type, lines, caption = nil)
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
250
|
+
buf = ""
|
251
|
+
buf << "\n"
|
252
|
+
buf << "◆→開始:#{@titles[type]}←◆\n"
|
253
|
+
buf << "■#{caption}\n" unless caption.nil?
|
254
|
+
buf << lines.join("")
|
255
|
+
buf << "◆→終了:#{@titles[type]}←◆\n"
|
256
|
+
buf << "\n"
|
257
|
+
buf
|
271
258
|
end
|
272
259
|
|
273
260
|
def base_parablock(type, lines, caption = nil)
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
261
|
+
buf = ""
|
262
|
+
buf << "◆→開始:#{@titles[type]}←◆\n"
|
263
|
+
buf << "■#{caption}\n" unless caption.nil?
|
264
|
+
buf << lines.join("")
|
265
|
+
buf << "◆→終了:#{@titles[type]}←◆\n"
|
266
|
+
buf << "\n"
|
267
|
+
buf
|
280
268
|
end
|
281
269
|
|
282
270
|
def emlist(lines, caption = nil, lang = nil)
|
@@ -284,23 +272,26 @@ module ReVIEW
|
|
284
272
|
end
|
285
273
|
|
286
274
|
def emlistnum(lines, caption = nil, lang = nil)
|
287
|
-
|
288
|
-
|
289
|
-
|
275
|
+
buf = ""
|
276
|
+
buf << "◆→開始:#{@titles["emlist"]}←◆\n"
|
277
|
+
buf << "■#{caption}\n" unless caption.nil?
|
290
278
|
_lines = []
|
291
279
|
lines.each_with_index do |line, i|
|
292
|
-
|
280
|
+
buf << (i + 1).to_s.rjust(2) + ": #{line}\n"
|
293
281
|
end
|
294
|
-
|
295
|
-
|
282
|
+
buf << "◆→終了:#{@titles["emlist"]}←◆\n"
|
283
|
+
buf << "\n"
|
284
|
+
buf
|
296
285
|
end
|
297
286
|
|
298
287
|
def listnum_body(lines, lang)
|
288
|
+
buf = ""
|
299
289
|
lines.each_with_index do |line, i|
|
300
|
-
|
290
|
+
buf << (i + 1).to_s.rjust(2) + ": #{line}\n"
|
301
291
|
end
|
302
|
-
|
303
|
-
|
292
|
+
buf << "◆→終了:#{@titles["list"]}←◆\n"
|
293
|
+
buf << "\n"
|
294
|
+
buf
|
304
295
|
end
|
305
296
|
|
306
297
|
def cmd(lines, caption = nil)
|
@@ -330,48 +321,57 @@ module ReVIEW
|
|
330
321
|
end
|
331
322
|
|
332
323
|
def image(lines, id, caption, metric=nil)
|
333
|
-
|
334
|
-
|
324
|
+
buf = ""
|
325
|
+
#buf << "\n"
|
326
|
+
buf << "◆→開始:#{@titles["image"]}←◆\n"
|
335
327
|
if get_chap.nil?
|
336
|
-
|
328
|
+
buf << "#{I18n.t("image")}#{I18n.t("format_number_without_chapter", [@chapter.image(id).number])}#{I18n.t("caption_prefix_idgxml")}#{caption}\n"
|
337
329
|
else
|
338
|
-
|
330
|
+
buf << "#{I18n.t("image")}#{I18n.t("format_number", [get_chap, @chapter.image(id).number])}#{I18n.t("caption_prefix_idgxml")}#{caption}\n"
|
339
331
|
end
|
340
|
-
|
332
|
+
buf << "\n"
|
341
333
|
if @chapter.image(id).bound?
|
342
|
-
|
334
|
+
buf << "◆→#{@chapter.image(id).path}←◆\n"
|
343
335
|
else
|
344
336
|
lines.each do |line|
|
345
|
-
|
337
|
+
buf << line << "\n"
|
346
338
|
end
|
347
339
|
end
|
348
|
-
|
349
|
-
|
340
|
+
buf << "◆→終了:#{@titles["image"]}←◆\n"
|
341
|
+
buf << "\n"
|
342
|
+
buf
|
350
343
|
end
|
351
344
|
|
352
345
|
def texequation(lines)
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
346
|
+
buf = ""
|
347
|
+
buf << "◆→開始:#{@titles["texequation"]}←◆\n"
|
348
|
+
buf << "#{lines.join("\n")}\n"
|
349
|
+
buf << "◆→終了:#{@titles["texequation"]}←◆\n"
|
350
|
+
buf << "\n"
|
351
|
+
buf
|
357
352
|
end
|
358
353
|
|
359
354
|
def table_header(id, caption)
|
360
|
-
|
361
|
-
|
355
|
+
buf = ""
|
356
|
+
buf << "\n"
|
357
|
+
buf << "◆→開始:#{@titles["table"]}←◆\n"
|
362
358
|
if get_chap.nil?
|
363
|
-
|
359
|
+
buf << "#{I18n.t("table")}#{I18n.t("format_number_without_chapter", [@chapter.table(id).number])}#{I18n.t("caption_prefix_idgxml")}#{caption}\n"
|
364
360
|
else
|
365
|
-
|
361
|
+
buf << "#{I18n.t("table")}#{I18n.t("format_number", [get_chap, @chapter.table(id).number])}#{I18n.t("caption_prefix_idgxml")}#{caption}\n"
|
366
362
|
end
|
367
|
-
|
363
|
+
buf << "\n"
|
364
|
+
buf
|
368
365
|
end
|
369
366
|
|
370
367
|
def table_begin(ncols)
|
368
|
+
""
|
371
369
|
end
|
372
370
|
|
373
371
|
def tr(rows)
|
374
|
-
|
372
|
+
buf = ""
|
373
|
+
buf << rows.join("\t") << "\n"
|
374
|
+
buf
|
375
375
|
end
|
376
376
|
|
377
377
|
def th(str)
|
@@ -383,19 +383,21 @@ module ReVIEW
|
|
383
383
|
end
|
384
384
|
|
385
385
|
def table_end
|
386
|
-
|
387
|
-
|
386
|
+
buf = ""
|
387
|
+
buf << "◆→終了:#{@titles["table"]}←◆\n"
|
388
|
+
buf << "\n"
|
389
|
+
buf
|
388
390
|
end
|
389
391
|
|
390
392
|
def comment(lines, comment = nil)
|
391
393
|
lines ||= []
|
392
394
|
lines.unshift comment unless comment.blank?
|
393
395
|
str = lines.join("")
|
394
|
-
|
396
|
+
"◆→DTP連絡:#{str}←◆\n"
|
395
397
|
end
|
396
398
|
|
397
399
|
def footnote(id, str)
|
398
|
-
|
400
|
+
"【注#{@chapter.footnote(id).number}】#{str}\n"
|
399
401
|
end
|
400
402
|
|
401
403
|
def inline_fn(id)
|
@@ -511,25 +513,28 @@ module ReVIEW
|
|
511
513
|
end
|
512
514
|
|
513
515
|
def noindent
|
514
|
-
|
516
|
+
"◆→DTP連絡:次の1行インデントなし←◆\n"
|
515
517
|
end
|
516
518
|
|
517
519
|
def nonum_begin(level, label, caption)
|
518
|
-
|
520
|
+
"■H#{level}■#{caption}\n"
|
519
521
|
end
|
520
522
|
|
521
523
|
def nonum_end(level)
|
522
524
|
end
|
523
525
|
|
524
526
|
def common_column_begin(type, caption)
|
525
|
-
|
526
|
-
|
527
|
-
|
527
|
+
buf = ""
|
528
|
+
buf << "◆→開始:#{@titles[type]}←◆\n"
|
529
|
+
buf << %Q[■#{caption}\n]
|
530
|
+
buf
|
528
531
|
end
|
529
532
|
|
530
533
|
def common_column_end(type)
|
531
|
-
|
532
|
-
|
534
|
+
buf = ""
|
535
|
+
buf << %Q[◆→終了:#{@titles[type]}←◆\n]
|
536
|
+
buf << "\n"
|
537
|
+
buf
|
533
538
|
end
|
534
539
|
|
535
540
|
def column_begin(level, label, caption)
|
@@ -679,15 +684,17 @@ module ReVIEW
|
|
679
684
|
alias_method :box, :insn
|
680
685
|
|
681
686
|
def indepimage(id, caption=nil, metric=nil)
|
682
|
-
|
687
|
+
buf = ""
|
688
|
+
buf << "\n"
|
683
689
|
begin
|
684
|
-
|
690
|
+
buf << "◆→画像 #{@chapter.image(id).path.sub(/\A\.\//, "")} #{metric.join(" ")}←◆\n"
|
685
691
|
rescue
|
686
692
|
warn "no such image: #{id}"
|
687
|
-
|
693
|
+
buf << "◆→画像 #{id}←◆\n"
|
688
694
|
end
|
689
|
-
|
690
|
-
|
695
|
+
buf << "図 #{caption}\n" if caption.present?
|
696
|
+
buf << "\n"
|
697
|
+
buf
|
691
698
|
end
|
692
699
|
|
693
700
|
alias_method :numberlessimage, :indepimage
|
@@ -741,7 +748,8 @@ module ReVIEW
|
|
741
748
|
def inline_chapref(id)
|
742
749
|
chs = ["", "「", "」"]
|
743
750
|
unless @book.config["chapref"].nil?
|
744
|
-
_chs = @book.config["chapref"]
|
751
|
+
_chs = convert_inencoding(@book.config["chapref"],
|
752
|
+
@book.config["inencoding"]).split(",")
|
745
753
|
if _chs.size != 3
|
746
754
|
error "--chapsplitter must have exactly 3 parameters with comma."
|
747
755
|
else
|
@@ -755,7 +763,7 @@ module ReVIEW
|
|
755
763
|
nofunc_text("[UnknownChapter:#{id}]")
|
756
764
|
end
|
757
765
|
|
758
|
-
def source(lines, caption = nil
|
766
|
+
def source(lines, caption = nil)
|
759
767
|
base_block "source", lines, caption
|
760
768
|
end
|
761
769
|
|
@@ -774,7 +782,7 @@ module ReVIEW
|
|
774
782
|
end
|
775
783
|
|
776
784
|
def circle_begin(level, label, caption)
|
777
|
-
|
785
|
+
"・\t#{caption}\n"
|
778
786
|
end
|
779
787
|
|
780
788
|
def circle_end(level)
|
@@ -786,4 +794,4 @@ module ReVIEW
|
|
786
794
|
|
787
795
|
end
|
788
796
|
|
789
|
-
end
|
797
|
+
end # module ReVIEW
|