review 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -2
- data/ChangeLog +65 -0
- data/Gemfile +5 -0
- data/README.rdoc +6 -1
- data/Rakefile +14 -28
- data/bin/review-check +9 -21
- data/bin/review-compile +45 -12
- data/bin/review-epubmaker +477 -220
- data/bin/review-epubmaker-ng +5 -14
- data/bin/review-index +4 -2
- data/bin/review-init +94 -0
- data/bin/review-pdfmaker +70 -287
- data/bin/review-preproc +5 -2
- data/bin/review-vol +4 -11
- data/debian/changelog +3 -3
- data/debian/copyright +5 -3
- data/debian/docs +1 -0
- data/doc/format.rdoc +57 -11
- data/doc/quickstart.rdoc +4 -4
- data/doc/sample.yaml +11 -7
- data/lib/epubmaker.rb +1 -1
- data/lib/epubmaker/epubv2.rb +26 -27
- data/lib/epubmaker/epubv3.rb +13 -13
- data/lib/epubmaker/producer.rb +1 -1
- data/lib/review.rb +3 -4
- data/lib/review/book.rb +17 -581
- data/lib/review/book/base.rb +247 -0
- data/lib/review/book/chapter.rb +81 -0
- data/lib/review/book/compilable.rb +163 -0
- data/lib/review/book/index.rb +339 -0
- data/lib/review/book/page_metric.rb +38 -0
- data/lib/review/book/parameters.rb +97 -0
- data/lib/review/book/part.rb +44 -0
- data/lib/review/book/volume.rb +65 -0
- data/lib/review/builder.rb +34 -40
- data/lib/review/compiler.rb +32 -13
- data/lib/review/configure.rb +38 -0
- data/lib/review/ewbbuilder.rb +23 -21
- data/lib/review/extentions.rb +3 -0
- data/lib/review/extentions/object.rb +9 -0
- data/lib/review/{compat.rb → extentions/string.rb} +11 -0
- data/lib/review/htmlbuilder.rb +162 -74
- data/lib/review/htmlutils.rb +28 -1
- data/lib/review/i18n.yaml +11 -0
- data/lib/review/idgxmlbuilder.rb +119 -35
- data/lib/review/inaobuilder.rb +355 -0
- data/lib/review/latexbuilder.rb +133 -59
- data/lib/review/latexutils.rb +15 -6
- data/lib/review/makerhelper.rb +59 -0
- data/lib/review/markdownbuilder.rb +129 -0
- data/lib/review/preprocessor.rb +20 -7
- data/lib/review/review.tex.erb +250 -0
- data/lib/review/textutils.rb +28 -3
- data/lib/review/tocparser.rb +20 -12
- data/lib/review/tocprinter.rb +7 -3
- data/lib/review/topbuilder.rb +44 -27
- data/lib/review/version.rb +3 -0
- data/review.gemspec +20 -117
- data/test/book_test_helper.rb +35 -0
- data/test/sample-book/README.md +5 -0
- data/test/sample-book/src/CHAPS +2 -0
- data/test/sample-book/src/PREDEF +1 -0
- data/test/sample-book/src/Rakefile +26 -0
- data/test/sample-book/src/_cover.html +3 -0
- data/test/sample-book/src/ch01.re +71 -0
- data/test/sample-book/src/ch02.re +3 -0
- data/test/sample-book/src/config.yml +55 -0
- data/test/sample-book/src/images/ch01-imgsample.jpg +0 -0
- data/test/sample-book/src/images/cover.jpg +0 -0
- data/test/sample-book/src/main.css +251 -0
- data/test/sample-book/src/preface.re +15 -0
- data/test/sample-book/src/sty/jumoline.sty +310 -0
- data/test/sample-book/src/sty/samplemacro.sty +21 -0
- data/test/sample-book/src/vendor/jumoline/README +29 -0
- data/test/sample-book/src/vendor/jumoline/jumoline.dtx +2988 -0
- data/test/sample-book/src/vendor/jumoline/jumoline.ins +6 -0
- data/test/test_book.rb +26 -646
- data/test/test_book_chapter.rb +418 -0
- data/test/test_book_parameter.rb +42 -0
- data/test/test_book_part.rb +53 -0
- data/test/test_builder.rb +17 -10
- data/test/test_compiler.rb +46 -0
- data/test/test_epubmaker.rb +1 -1
- data/test/test_epubmaker_cmd.rb +36 -0
- data/test/test_helper.rb +17 -0
- data/test/test_htmlbuilder.rb +156 -24
- data/test/test_htmlutils.rb +4 -0
- data/test/test_i18n.rb +6 -2
- data/test/test_idgxmlbuilder.rb +33 -11
- data/test/test_inaobuilder.rb +247 -0
- data/test/test_index.rb +31 -0
- data/test/test_latexbuilder.rb +115 -35
- data/test/test_makerhelper.rb +50 -0
- data/test/test_pdfmaker_cmd.rb +36 -0
- data/test/test_preprocessor.rb +7 -7
- data/test/test_topbuilder.rb +6 -7
- data/test/test_uuid.rb +1 -0
- metadata +117 -12
- data/lib/review/index.rb +0 -323
- data/lib/review/volume.rb +0 -66
@@ -0,0 +1,44 @@
|
|
1
|
+
#
|
2
|
+
# $Id: book.rb 4315 2009-09-02 04:15:24Z kmuto $
|
3
|
+
#
|
4
|
+
# Copyright (c) 2002-2008 Minero Aoki
|
5
|
+
# 2009 Minero Aoki, Kenshi Muto
|
6
|
+
#
|
7
|
+
# This program is free software.
|
8
|
+
# You can distribute or modify this program under the terms of
|
9
|
+
# the GNU LGPL, Lesser General Public License version 2.1.
|
10
|
+
# For details of the GNU LGPL, see the file "COPYING".
|
11
|
+
#
|
12
|
+
require 'review/book/compilable'
|
13
|
+
module ReVIEW
|
14
|
+
module Book
|
15
|
+
class Part
|
16
|
+
include Compilable
|
17
|
+
|
18
|
+
def initialize(book, number, chapters, name="")
|
19
|
+
@book = book
|
20
|
+
@number = number
|
21
|
+
@chapters = chapters
|
22
|
+
@path = name
|
23
|
+
@name = name ? File.basename(name, '.*') : nil
|
24
|
+
end
|
25
|
+
|
26
|
+
attr_reader :number
|
27
|
+
attr_reader :chapters
|
28
|
+
attr_reader :name
|
29
|
+
|
30
|
+
def each_chapter(&block)
|
31
|
+
@chapters.each(&block)
|
32
|
+
end
|
33
|
+
|
34
|
+
def volume
|
35
|
+
Volume.sum(@chapters.map {|chap| chap.volume })
|
36
|
+
end
|
37
|
+
|
38
|
+
def file?
|
39
|
+
(name.present? and path =~ /\.re\z/) ? true : false
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#
|
2
|
+
# $Id: volume.rb 3883 2008-02-10 11:48:23Z aamine $
|
3
|
+
#
|
4
|
+
# Copyright (c) 2002-2007 Minero Aoki
|
5
|
+
#
|
6
|
+
# This program is free software.
|
7
|
+
# You can distribute or modify this program under the terms of
|
8
|
+
# the GNU LGPL, Lesser General Public License version 2.1.
|
9
|
+
# For details of the GNU LGPL, see the file "COPYING".
|
10
|
+
#
|
11
|
+
module ReVIEW
|
12
|
+
module Book
|
13
|
+
class Volume
|
14
|
+
|
15
|
+
def Volume.count_file(path)
|
16
|
+
b = c = l = 0
|
17
|
+
File.foreach(path) do |line|
|
18
|
+
next if %r<\A\#@> =~ line
|
19
|
+
text = line.gsub(/\s+/, '')
|
20
|
+
b += text.bytesize
|
21
|
+
c += text.charsize
|
22
|
+
l += 1
|
23
|
+
end
|
24
|
+
new(b, c, l)
|
25
|
+
end
|
26
|
+
|
27
|
+
def Volume.sum(vols)
|
28
|
+
vols.inject(new()) {|sum, i| sum + i }
|
29
|
+
end
|
30
|
+
|
31
|
+
def Volume.dummy
|
32
|
+
new(-1, -1, -1)
|
33
|
+
end
|
34
|
+
|
35
|
+
def initialize(bytes = 0, chars = 0, lines = 0)
|
36
|
+
@bytes = bytes
|
37
|
+
@chars = chars
|
38
|
+
@lines = lines
|
39
|
+
end
|
40
|
+
|
41
|
+
attr_reader :bytes
|
42
|
+
attr_reader :chars
|
43
|
+
attr_accessor :lines
|
44
|
+
|
45
|
+
def kbytes
|
46
|
+
(@bytes.to_f / 1024).ceil
|
47
|
+
end
|
48
|
+
|
49
|
+
def page
|
50
|
+
(kbytes.to_f/ReVIEW.book.page_metric.page_per_kbyte).ceil
|
51
|
+
end
|
52
|
+
|
53
|
+
def to_s
|
54
|
+
"#{kbytes()}KB #{@chars}C #{@lines}L #{page()}P"
|
55
|
+
end
|
56
|
+
|
57
|
+
def +(other)
|
58
|
+
Volume.new(@bytes + other.bytes,
|
59
|
+
@chars + other.chars,
|
60
|
+
@lines + other.lines)
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/review/builder.rb
CHANGED
@@ -7,15 +7,17 @@
|
|
7
7
|
# the GNU LGPL, Lesser General Public License version 2.1.
|
8
8
|
#
|
9
9
|
|
10
|
-
require 'review/index'
|
10
|
+
require 'review/book/index'
|
11
11
|
require 'review/exception'
|
12
|
+
require 'review/textutils'
|
12
13
|
require 'stringio'
|
13
|
-
require 'nkf'
|
14
14
|
require 'cgi'
|
15
15
|
|
16
16
|
module ReVIEW
|
17
17
|
|
18
18
|
class Builder
|
19
|
+
include TextUtils
|
20
|
+
|
19
21
|
CAPTION_TITLES = %w(note memo tip info planning best important security caution term link notice point shoot reference practice expert)
|
20
22
|
|
21
23
|
def pre_paragraph
|
@@ -27,6 +29,10 @@ module ReVIEW
|
|
27
29
|
|
28
30
|
def initialize(strict = false, *args)
|
29
31
|
@strict = strict
|
32
|
+
@tabwidth = nil
|
33
|
+
if ReVIEW.book.param && ReVIEW.book.param["tabwidth"]
|
34
|
+
@tabwidth = ReVIEW.book.param["tabwidth"]
|
35
|
+
end
|
30
36
|
builder_init(*args)
|
31
37
|
end
|
32
38
|
|
@@ -53,28 +59,16 @@ module ReVIEW
|
|
53
59
|
|
54
60
|
alias :raw_result result
|
55
61
|
|
56
|
-
def convert_outencoding(*s)
|
57
|
-
if ReVIEW.book.param["outencoding"] =~ /^EUC$/i
|
58
|
-
NKF.nkf("-W, -e", *s)
|
59
|
-
elsif ReVIEW.book.param["outencoding"] =~ /^SJIS$/i
|
60
|
-
NKF.nkf("-W, -s", *s)
|
61
|
-
elsif ReVIEW.book.param["outencoding"] =~ /^JIS$/i
|
62
|
-
NKF.nkf("-W, -j", *s)
|
63
|
-
else
|
64
|
-
## for 1.9 compatibility
|
65
|
-
if s.size == 1
|
66
|
-
return s[0]
|
67
|
-
end
|
68
|
-
return *s
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
62
|
def print(*s)
|
73
|
-
@output.print
|
63
|
+
@output.print *s.map{|i|
|
64
|
+
convert_outencoding(i, ReVIEW.book.param["outencoding"])
|
65
|
+
}
|
74
66
|
end
|
75
67
|
|
76
68
|
def puts(*s)
|
77
|
-
@output.puts
|
69
|
+
@output.puts *s.map{|i|
|
70
|
+
convert_outencoding(i, ReVIEW.book.param["outencoding"])
|
71
|
+
}
|
78
72
|
end
|
79
73
|
|
80
74
|
def list(lines, id, caption)
|
@@ -83,7 +77,7 @@ module ReVIEW
|
|
83
77
|
rescue KeyError
|
84
78
|
error "no such list: #{id}"
|
85
79
|
end
|
86
|
-
list_body lines
|
80
|
+
list_body id, lines
|
87
81
|
end
|
88
82
|
|
89
83
|
def listnum(lines, id, caption)
|
@@ -230,7 +224,9 @@ module ReVIEW
|
|
230
224
|
end
|
231
225
|
|
232
226
|
def inline_ruby(arg)
|
233
|
-
base, ruby = *arg.
|
227
|
+
base, *ruby = *arg.scan(/(?:(?:(?:\\\\)*\\,)|[^,\\]+)+/)
|
228
|
+
base = base.gsub(/\\,/, ",") if base
|
229
|
+
ruby = ruby.join(",").gsub(/\\,/, ",") if ruby
|
234
230
|
compile_ruby(base, ruby)
|
235
231
|
end
|
236
232
|
|
@@ -276,7 +272,6 @@ module ReVIEW
|
|
276
272
|
""
|
277
273
|
end
|
278
274
|
else
|
279
|
-
warn "It is recommended to set builder(s)."
|
280
275
|
print str.gsub("\\n", "\n")
|
281
276
|
end
|
282
277
|
end
|
@@ -327,7 +322,7 @@ module ReVIEW
|
|
327
322
|
end
|
328
323
|
|
329
324
|
def parse_metric(type, metric)
|
330
|
-
return "" if metric.
|
325
|
+
return "" if metric.blank?
|
331
326
|
params = metric.split(/,\s*/)
|
332
327
|
results = []
|
333
328
|
params.each do |p|
|
@@ -352,7 +347,7 @@ module ReVIEW
|
|
352
347
|
end
|
353
348
|
|
354
349
|
def extract_chapter_id(chap_ref)
|
355
|
-
m = /\A(\w+)\|(.+)/.match(chap_ref)
|
350
|
+
m = /\A([\w+-]+)\|(.+)/.match(chap_ref)
|
356
351
|
if m
|
357
352
|
return [@book.chapters.detect{|chap| chap.id == m[1]}, m[2]]
|
358
353
|
else
|
@@ -405,27 +400,16 @@ module ReVIEW
|
|
405
400
|
end
|
406
401
|
|
407
402
|
def inline_include(file_name)
|
408
|
-
|
409
|
-
|
403
|
+
compile_inline convert_inencoding(File.open(file_name).read,
|
404
|
+
ReVIEW.book.param["inencoding"])
|
410
405
|
end
|
411
406
|
|
412
407
|
def include(file_name)
|
413
|
-
enc = inencoding()
|
414
408
|
File.foreach(file_name) do |line|
|
415
|
-
paragraph([
|
409
|
+
paragraph([convert_inencoding(line, ReVIEW.book.param["inencoding"])])
|
416
410
|
end
|
417
411
|
end
|
418
412
|
|
419
|
-
def inencoding
|
420
|
-
if ReVIEW.book.param["inencoding"].nil?
|
421
|
-
enc = "utf8"
|
422
|
-
else
|
423
|
-
# UTF-8, SJIS, EUC => utf8, sjis, euc
|
424
|
-
enc = ReVIEW.book.param["inencoding"].gsub(/-/, '').downcase
|
425
|
-
end
|
426
|
-
end
|
427
|
-
private :inencoding
|
428
|
-
|
429
413
|
def ul_item_begin(lines)
|
430
414
|
ul_item(lines)
|
431
415
|
end
|
@@ -443,10 +427,20 @@ module ReVIEW
|
|
443
427
|
""
|
444
428
|
end
|
445
429
|
else
|
446
|
-
warn "It is recommended to set builder(s)."
|
447
430
|
args.gsub("\\n", "\n")
|
448
431
|
end
|
449
432
|
end
|
433
|
+
|
434
|
+
## override TextUtils::detab
|
435
|
+
def detab(str, num = nil)
|
436
|
+
if num
|
437
|
+
super(str, num)
|
438
|
+
elsif @tabwidth
|
439
|
+
super(str, @tabwidth)
|
440
|
+
else
|
441
|
+
super(str)
|
442
|
+
end
|
443
|
+
end
|
450
444
|
end
|
451
445
|
|
452
446
|
end # module ReVIEW
|
data/lib/review/compiler.rb
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
# the GNU LGPL, Lesser General Public License version 2.1.
|
9
9
|
#
|
10
10
|
|
11
|
-
require 'review/
|
11
|
+
require 'review/extentions'
|
12
12
|
require 'review/preprocessor'
|
13
13
|
require 'review/exception'
|
14
14
|
require 'lineinput'
|
@@ -136,7 +136,7 @@ module ReVIEW
|
|
136
136
|
defblock :table, 0..2
|
137
137
|
defblock :quote, 0
|
138
138
|
defblock :image, 2..3, true
|
139
|
-
defblock :source, 1
|
139
|
+
defblock :source, 0..1
|
140
140
|
defblock :listnum, 2
|
141
141
|
defblock :emlistnum, 0..1
|
142
142
|
defblock :bibpaper, 2..3, true
|
@@ -149,11 +149,12 @@ module ReVIEW
|
|
149
149
|
defblock :blockquote, 0
|
150
150
|
defblock :bpo, 0
|
151
151
|
defblock :flushright, 0
|
152
|
+
defblock :centering, 0
|
152
153
|
defblock :note, 0..1
|
153
154
|
defblock :box, 0..1
|
155
|
+
defblock :comment, 0..1, true
|
154
156
|
|
155
157
|
defsingle :footnote, 2
|
156
|
-
defsingle :comment, 1
|
157
158
|
defsingle :noindent, 0
|
158
159
|
defsingle :linebreak, 0
|
159
160
|
defsingle :pagebreak, 0
|
@@ -165,6 +166,7 @@ module ReVIEW
|
|
165
166
|
defsingle :raw, 1
|
166
167
|
defsingle :tsize, 1
|
167
168
|
defsingle :include, 1
|
169
|
+
defsingle :olnum, 1
|
168
170
|
|
169
171
|
definline :chapref
|
170
172
|
definline :chap
|
@@ -224,6 +226,8 @@ module ReVIEW
|
|
224
226
|
tagged_section_init
|
225
227
|
while f.next?
|
226
228
|
case f.peek
|
229
|
+
when /\A\#@/
|
230
|
+
f.gets # Nothing to do
|
227
231
|
when /\A=+[\[\s\{]/
|
228
232
|
compile_headline f.gets
|
229
233
|
when %r<\A\s+\*>
|
@@ -280,7 +284,6 @@ module ReVIEW
|
|
280
284
|
unless prev_tag_info.first == open_tag
|
281
285
|
raise CompileError, "#{open_tag} is not opened."
|
282
286
|
end
|
283
|
-
@strategy.warn("It is not recommended to use \"#{line.chomp}\"")
|
284
287
|
close_tagged_section(*prev_tag_info)
|
285
288
|
end
|
286
289
|
else
|
@@ -340,7 +343,8 @@ module ReVIEW
|
|
340
343
|
|
341
344
|
def compile_ulist(f)
|
342
345
|
level = 0
|
343
|
-
f.while_match(/\A\s
|
346
|
+
f.while_match(/\A\s+\*|\A\#@/) do |line|
|
347
|
+
next if line =~ /\A\#@/
|
344
348
|
|
345
349
|
buf = [text(line.sub(/\*+/, '').strip)]
|
346
350
|
f.while_match(/\A\s+(?!\*)\S/) do |cont|
|
@@ -368,8 +372,8 @@ module ReVIEW
|
|
368
372
|
(1..level_diff).to_a.reverse.each do |i|
|
369
373
|
@strategy.ul_item_end
|
370
374
|
@strategy.ul_end {level + i}
|
371
|
-
@strategy.ul_item_end
|
372
375
|
end
|
376
|
+
@strategy.ul_item_end
|
373
377
|
# body
|
374
378
|
@strategy.ul_item_begin buf
|
375
379
|
end
|
@@ -383,7 +387,9 @@ module ReVIEW
|
|
383
387
|
|
384
388
|
def compile_olist(f)
|
385
389
|
@strategy.ol_begin
|
386
|
-
f.while_match(/\A\s+\d
|
390
|
+
f.while_match(/\A\s+\d+\.|\A\#@/) do |line|
|
391
|
+
next if line =~ /\A\#@/
|
392
|
+
|
387
393
|
num = line.match(/(\d+)\./)[1]
|
388
394
|
buf = [text(line.sub(/\d+\./, '').strip)]
|
389
395
|
f.while_match(/\A\s+(?!\d+\.)\S/) do |cont|
|
@@ -406,7 +412,7 @@ module ReVIEW
|
|
406
412
|
|
407
413
|
def compile_paragraph(f)
|
408
414
|
buf = []
|
409
|
-
f.until_match(%r<\A
|
415
|
+
f.until_match(%r<\A//|\A\#@|\A===+>) do |line|
|
410
416
|
break if line.strip.empty?
|
411
417
|
buf.push text(line.sub(/^(\t+)\s*/) {|m| "<!ESCAPETAB!>" * m.size}.strip.gsub(/<!ESCAPETAB!>/, "\t"))
|
412
418
|
end
|
@@ -429,7 +435,9 @@ module ReVIEW
|
|
429
435
|
head = f.lineno
|
430
436
|
buf = []
|
431
437
|
f.until_match(%r<\A//\}>) do |line|
|
432
|
-
|
438
|
+
unless line =~ /\A\#@/
|
439
|
+
buf.push text(line.rstrip)
|
440
|
+
end
|
433
441
|
end
|
434
442
|
unless %r<\A//\}> =~ f.peek
|
435
443
|
error "unexpected EOF (block begins at: #{head})"
|
@@ -441,11 +449,20 @@ module ReVIEW
|
|
441
449
|
|
442
450
|
def parse_args(str, name=nil)
|
443
451
|
return [] if str.empty?
|
444
|
-
|
445
|
-
|
452
|
+
scanner = StringScanner.new(str)
|
453
|
+
words = []
|
454
|
+
while word = scanner.scan(/(\[\]|\[.*?[^\\]\])/)
|
455
|
+
w2 = word[1..-2].gsub(/\\(.)/){
|
456
|
+
ch = $1
|
457
|
+
(ch == "]" or ch == "\\") ? ch : "\\" + ch
|
458
|
+
}
|
459
|
+
words << w2
|
460
|
+
end
|
461
|
+
if !scanner.eos?
|
462
|
+
error "argument syntax error: #{scanner.rest} in #{str.inspect}"
|
446
463
|
return []
|
447
464
|
end
|
448
|
-
|
465
|
+
return words
|
449
466
|
end
|
450
467
|
|
451
468
|
def compile_command(syntax, args, lines)
|
@@ -458,7 +475,7 @@ module ReVIEW
|
|
458
475
|
syntax.check_args args
|
459
476
|
rescue CompileError => err
|
460
477
|
error err.message
|
461
|
-
args = ['(NoArgument)'] *
|
478
|
+
args = ['(NoArgument)'] * syntax.min_argc
|
462
479
|
end
|
463
480
|
if syntax.block_allowed?
|
464
481
|
compile_block syntax, args, lines
|
@@ -501,6 +518,8 @@ module ReVIEW
|
|
501
518
|
result << @strategy.nofunc_text(words.shift)
|
502
519
|
end
|
503
520
|
result
|
521
|
+
rescue => err
|
522
|
+
error err.message
|
504
523
|
end
|
505
524
|
public :text # called from strategy
|
506
525
|
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module ReVIEW
|
3
|
+
class Configure
|
4
|
+
def self.values
|
5
|
+
{ # These parameters can be overridden by YAML file.
|
6
|
+
"bookname"=> "example", # it defines epub file name also
|
7
|
+
"booktitle" => "ReVIEW EPUBサンプル",
|
8
|
+
"title" => "example",
|
9
|
+
"aut" => nil, # author
|
10
|
+
"prt" => nil, # printer(publisher)
|
11
|
+
"asn" => nil, # associated name
|
12
|
+
"ant" => nil, # bibliographic antecedent
|
13
|
+
"clb" => nil, # Collaborator
|
14
|
+
"edt" => nil, # Editor
|
15
|
+
"dsr" => nil, # Designer
|
16
|
+
"ill" => nil, # Illustrator
|
17
|
+
"pht" => nil, # Photographer
|
18
|
+
"trl" => nil, # Translator
|
19
|
+
"date" => nil, # publishing date
|
20
|
+
"rights" => nil, # Copyright messages
|
21
|
+
"description" => nil, # Description
|
22
|
+
"urnid" => nil, # Identifier (nil makes random uuid)
|
23
|
+
"stylesheet" => "stylesheet.css", # stylesheet file
|
24
|
+
"coverfile" => nil, # content file of body of cover page
|
25
|
+
"mytoc" => nil, # whether make own table of contents or not
|
26
|
+
"params" => "", # specify review2html parameters
|
27
|
+
"toclevel" => 3, # level of toc
|
28
|
+
"secnolevel" => 2, # level of section #
|
29
|
+
"posthook" => nil, # command path of post hook
|
30
|
+
"epubversion" => 2,
|
31
|
+
"titlepage" => true, # Use title page
|
32
|
+
"toc" => true, # Use table of contents
|
33
|
+
"colophon" => false, # Use colophon
|
34
|
+
"debug" => nil, # debug flag
|
35
|
+
}
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|