review 1.0.0 → 1.1.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.
- 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
|