review 3.0.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-win.yml +39 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.rubocop.yml +50 -12
- data/.travis.yml +17 -8
- data/Dockerfile +21 -5
- data/NEWS.ja.md +358 -0
- data/NEWS.md +358 -1
- data/README.md +11 -8
- data/appveyor.yml +1 -3
- data/bin/review-catalog-converter +4 -4
- data/bin/review-check +8 -8
- data/bin/review-checkdep +1 -1
- data/bin/review-compile +12 -12
- data/bin/review-epubmaker +3 -35
- data/bin/review-idgxmlmaker +16 -0
- data/bin/review-index +2 -89
- data/bin/review-preproc +14 -19
- data/bin/review-validate +3 -3
- data/bin/review-vol +4 -78
- data/doc/LICENSE +1 -1
- data/doc/config.yml.sample +46 -12
- data/doc/config.yml.sample-simple +4 -2
- data/doc/format.ja.md +37 -13
- data/doc/format.md +35 -20
- data/doc/pdfmaker.ja.md +43 -1
- data/doc/pdfmaker.md +42 -1
- data/doc/quickstart.ja.md +46 -26
- data/doc/quickstart.md +38 -17
- data/lib/epubmaker/epubcommon.rb +10 -5
- data/lib/epubmaker/epubv2.rb +1 -1
- data/lib/epubmaker/epubv3.rb +1 -0
- data/lib/epubmaker/producer.rb +4 -2
- data/lib/review/book.rb +1 -1
- data/lib/review/book/base.rb +38 -79
- data/lib/review/book/chapter.rb +18 -3
- data/lib/review/book/compilable.rb +6 -5
- data/lib/review/book/index.rb +69 -101
- data/lib/review/book/index/item.rb +40 -0
- data/lib/review/book/page_metric.rb +7 -7
- data/lib/review/book/part.rb +28 -5
- data/lib/review/book/volume.rb +3 -4
- data/lib/review/builder.rb +105 -44
- data/lib/review/catalog.rb +13 -16
- data/lib/review/compiler.rb +84 -72
- data/lib/review/configure.rb +19 -8
- data/lib/review/epub2html.rb +37 -4
- data/lib/review/epubmaker.rb +62 -7
- data/lib/review/extentions/string.rb +0 -4
- data/lib/review/htmlbuilder.rb +102 -115
- data/lib/review/htmlutils.rb +2 -3
- data/lib/review/i18n.rb +2 -2
- data/lib/review/i18n.yml +9 -0
- data/lib/review/idgxmlbuilder.rb +153 -74
- data/lib/review/idgxmlmaker.rb +191 -0
- data/lib/review/init-web/finish.html +10 -0
- data/lib/review/init-web/index.html +190 -0
- data/lib/review/init-web/review-layout-design.js +691 -0
- data/lib/review/init.rb +125 -34
- data/lib/review/latexbuilder.rb +199 -88
- data/lib/review/lineinput.rb +1 -1
- data/lib/review/location.rb +32 -0
- data/lib/review/logger.rb +4 -8
- data/lib/review/makerhelper.rb +24 -5
- data/lib/review/markdownbuilder.rb +31 -37
- data/lib/review/md2inaobuilder.rb +3 -5
- data/lib/review/pdfmaker.rb +44 -22
- data/lib/review/plaintextbuilder.rb +106 -85
- data/lib/review/preprocessor.rb +32 -41
- data/lib/review/rstbuilder.rb +33 -33
- data/lib/review/textmaker.rb +19 -3
- data/lib/review/textutils.rb +76 -2
- data/lib/review/tocprinter.rb +231 -102
- data/lib/review/topbuilder.rb +114 -61
- data/lib/review/update.rb +19 -19
- data/lib/review/version.rb +1 -1
- data/lib/review/volumeprinter.rb +99 -0
- data/lib/review/webmaker.rb +11 -4
- data/lib/review/webtocprinter.rb +38 -35
- data/lib/review/yamlloader.rb +26 -16
- data/review.gemspec +6 -4
- data/samples/sample-book/README.md +7 -2
- data/samples/sample-book/src/.gitignore +154 -0
- data/samples/sample-book/src/config-ebook.yml +4 -0
- data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
- data/samples/sample-book/src/config-jlreq.yml +6 -0
- data/samples/sample-book/src/config.yml +2 -2
- data/samples/sample-book/src/lib/tasks/review.rake +29 -14
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
- data/samples/syntax-book/ch01.re +4 -2
- data/samples/syntax-book/ch02.re +8 -16
- data/samples/syntax-book/ch03.re +3 -6
- data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
- data/samples/syntax-book/config-jlreq.yml +5 -0
- data/samples/syntax-book/config-print.yml +3 -0
- data/samples/syntax-book/config.yml +1 -1
- data/samples/syntax-book/lib/tasks/review.rake +30 -15
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
- data/templates/latex/config.erb +16 -0
- data/templates/latex/layout.tex.erb +4 -0
- data/templates/latex/review-jlreq/review-base.sty +150 -61
- data/templates/latex/review-jlreq/review-jlreq.cls +74 -8
- data/templates/latex/review-jlreq/review-style.sty +4 -1
- data/templates/latex/review-jsbook/README.md +39 -0
- data/templates/latex/review-jsbook/review-base.sty +101 -23
- data/templates/latex/review-jsbook/review-jsbook.cls +28 -5
- data/templates/latex/review-jsbook/review-style.sty +5 -2
- data/templates/opf/epubv3.opf.erb +1 -0
- data/templates/web/html/layout-html5.html.erb +2 -2
- data/test/assets/test_template.tex +24 -3
- data/test/assets/test_template_backmatter.tex +24 -3
- data/test/test_book.rb +75 -21
- data/test/test_book_chapter.rb +4 -2
- data/test/test_book_part.rb +3 -3
- data/test/test_builder.rb +16 -0
- data/test/test_catalog.rb +24 -42
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_epubmaker_cmd.rb +14 -7
- data/test/test_helper.rb +15 -7
- data/test/test_htmlbuilder.rb +909 -159
- data/test/test_i18n.rb +25 -25
- data/test/test_idgxmlbuilder.rb +395 -38
- data/test/test_idgxmlmaker_cmd.rb +46 -0
- data/test/test_image_finder.rb +52 -70
- data/test/test_index.rb +50 -10
- data/test/test_latexbuilder.rb +1194 -106
- data/test/test_latexbuilder_v2.rb +628 -97
- data/test/test_logger.rb +14 -1
- data/test/test_makerhelper.rb +3 -3
- data/test/test_markdownbuilder.rb +134 -16
- data/test/test_md2inaobuilder.rb +32 -9
- data/test/test_pdfmaker.rb +18 -1
- data/test/test_pdfmaker_cmd.rb +100 -6
- data/test/test_plaintextbuilder.rb +371 -25
- data/test/test_preprocessor.rb +2 -16
- data/test/test_rstbuilder.rb +249 -26
- data/test/test_textmaker_cmd.rb +54 -0
- data/test/test_textutils.rb +109 -2
- data/test/test_topbuilder.rb +546 -31
- data/test/test_update.rb +17 -8
- data/test/test_webtocprinter.rb +66 -34
- data/test/test_yamlloader.rb +13 -0
- data/vendor/jsclasses/LICENSE +1 -1
- data/vendor/jsclasses/jis/jsarticle.cls +53 -14
- data/vendor/jsclasses/jis/jsbook.cls +53 -14
- data/vendor/jsclasses/jis/jsclasses.dtx +84 -25
- data/vendor/jsclasses/jis/jslogo.dtx +4 -4
- data/vendor/jsclasses/jis/jslogo.sty +3 -3
- data/vendor/jsclasses/jis/jspf.cls +52 -13
- data/vendor/jsclasses/jis/jsreport.cls +53 -14
- data/vendor/jsclasses/jis/kiyou.cls +53 -14
- data/vendor/jsclasses/jis/okumacro.dtx +4 -5
- data/vendor/jsclasses/jis/okumacro.sty +3 -4
- data/vendor/jsclasses/jsarticle.cls +53 -14
- data/vendor/jsclasses/jsbook.cls +53 -14
- data/vendor/jsclasses/jsclasses.dtx +84 -25
- data/vendor/jsclasses/jsclasses.pdf +0 -0
- data/vendor/jsclasses/jslogo.dtx +4 -4
- data/vendor/jsclasses/jslogo.pdf +0 -0
- data/vendor/jsclasses/jslogo.sty +3 -3
- data/vendor/jsclasses/jspf.cls +52 -13
- data/vendor/jsclasses/jsreport.cls +53 -14
- data/vendor/jsclasses/kiyou.cls +53 -14
- data/vendor/jsclasses/okumacro.dtx +4 -5
- data/vendor/jsclasses/okumacro.pdf +0 -0
- data/vendor/jsclasses/okumacro.sty +3 -4
- metadata +55 -10
- data/lib/review/tocparser.rb +0 -271
- data/samples/syntax-book/review-ext.rb +0 -14
- data/test/test_tocparser.rb +0 -25
data/lib/review/webmaker.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2016-
|
1
|
+
# Copyright (c) 2016-2020 Masayoshi Takahashi, Masanori Kado, Kenshi Muto
|
2
2
|
#
|
3
3
|
# This program is free software.
|
4
4
|
# You can distribute or modify this program under the terms of
|
@@ -35,12 +35,12 @@ module ReVIEW
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def error(msg)
|
38
|
-
@logger.error
|
38
|
+
@logger.error msg
|
39
39
|
exit 1
|
40
40
|
end
|
41
41
|
|
42
42
|
def warn(msg)
|
43
|
-
@logger.warn
|
43
|
+
@logger.warn msg
|
44
44
|
end
|
45
45
|
|
46
46
|
def self.execute(*args)
|
@@ -50,6 +50,7 @@ module ReVIEW
|
|
50
50
|
def parse_opts(args)
|
51
51
|
cmd_config = {}
|
52
52
|
opts = OptionParser.new
|
53
|
+
@buildonly = nil
|
53
54
|
|
54
55
|
opts.banner = 'Usage: review-webmaker [option] configfile'
|
55
56
|
opts.version = ReVIEW::VERSION
|
@@ -58,6 +59,7 @@ module ReVIEW
|
|
58
59
|
exit 0
|
59
60
|
end
|
60
61
|
opts.on('--ignore-errors', 'Ignore review-compile errors.') { cmd_config['ignore-errors'] = true }
|
62
|
+
opts.on('-y', '--only file1,file2,...', 'Build only specified files.') { |v| @buildonly = v.split(/\s*,\s*/).map { |m| m.strip.sub(/\.re\Z/, '') } }
|
61
63
|
|
62
64
|
opts.parse!(args)
|
63
65
|
if args.size != 1
|
@@ -116,7 +118,7 @@ module ReVIEW
|
|
116
118
|
copy_backmatter(@path)
|
117
119
|
|
118
120
|
math_dir = "./#{@config['imagedir']}/_review_math"
|
119
|
-
if @config['imgmath'] && File.exist?("#{math_dir}/__IMGMATH_BODY__.
|
121
|
+
if @config['imgmath'] && File.exist?("#{math_dir}/__IMGMATH_BODY__.map")
|
120
122
|
make_math_images(math_dir)
|
121
123
|
end
|
122
124
|
|
@@ -186,6 +188,11 @@ module ReVIEW
|
|
186
188
|
end
|
187
189
|
id = File.basename(filename).sub(/\.re\Z/, '')
|
188
190
|
|
191
|
+
if @buildonly && !@buildonly.include?(id)
|
192
|
+
warn "skip #{id}.re"
|
193
|
+
return
|
194
|
+
end
|
195
|
+
|
189
196
|
htmlfile = "#{id}.#{@config['htmlext']}"
|
190
197
|
|
191
198
|
if @config['params'].present?
|
data/lib/review/webtocprinter.rb
CHANGED
@@ -6,49 +6,52 @@ module ReVIEW
|
|
6
6
|
include HTMLUtils
|
7
7
|
|
8
8
|
def self.book_to_string(book)
|
9
|
-
|
10
|
-
ReVIEW::WEBTOCPrinter.new(1, {}, io).print_book(book)
|
11
|
-
io.seek(0)
|
12
|
-
io.read
|
9
|
+
ReVIEW::WEBTOCPrinter.new.print_book(book)
|
13
10
|
end
|
14
11
|
|
15
12
|
def print_book(book)
|
16
|
-
@
|
17
|
-
@
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
@out.puts '</ul>'
|
13
|
+
@book = book
|
14
|
+
@indent = nil
|
15
|
+
@upper = 1 # only part and chapter
|
16
|
+
print_result(build_result_array)
|
22
17
|
end
|
23
18
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
19
|
+
def print_result(result_array)
|
20
|
+
content = <<EOT
|
21
|
+
<ul class="book-toc">
|
22
|
+
<li><a href="index.html">TOP</a></li>
|
23
|
+
EOT
|
24
|
+
|
25
|
+
path = ''
|
26
|
+
result_array.each do |result|
|
27
|
+
unless result[:headline]
|
28
|
+
result[:headline] = '-'
|
29
|
+
end
|
30
|
+
|
31
|
+
if result[:name]
|
32
|
+
path = "#{result[:name]}.#{@book.config['htmlext']}"
|
33
|
+
next
|
34
|
+
end
|
35
|
+
|
36
|
+
if result[:part]
|
37
|
+
if result[:part] == 'end'
|
38
|
+
content << "</ul></li>\n"
|
39
|
+
end
|
40
|
+
next
|
41
|
+
end
|
42
|
+
|
43
|
+
if path.start_with?('.')
|
44
|
+
content << "<li>#{escape(result[:headline])}"
|
30
45
|
else
|
31
|
-
|
46
|
+
content << %Q(<li><a href="#{path}">#{escape(result[:headline])}</a>)
|
47
|
+
end
|
48
|
+
if result[:level] == 0
|
49
|
+
content << "\n<ul>" # part
|
50
|
+
else
|
51
|
+
content << "</li>\n"
|
32
52
|
end
|
33
53
|
end
|
34
|
-
|
35
|
-
print_chapter(chap)
|
36
|
-
end
|
37
|
-
if part.number
|
38
|
-
@out.puts "</ul>\n</li>\n"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def print_chapter(chap)
|
43
|
-
chap_node = TOCParser.chapter_node(chap)
|
44
|
-
ext = chap.book.config['htmlext'] || 'html'
|
45
|
-
path = File.basename(chap.path.sub(/\.re/, '.' + ext))
|
46
|
-
label = if chap_node.number && chap.on_chaps?
|
47
|
-
"#{I18n.t('chapter_short', chap.number)} #{chap.title}"
|
48
|
-
else
|
49
|
-
chap.title
|
50
|
-
end
|
51
|
-
@out.puts %Q(<li><a href="#{path}">#{h(label)}</a></li>\n)
|
54
|
+
content << "</ul>\n"
|
52
55
|
end
|
53
56
|
end
|
54
57
|
end
|
data/lib/review/yamlloader.rb
CHANGED
@@ -15,31 +15,41 @@ module ReVIEW
|
|
15
15
|
loaded_files = {}
|
16
16
|
yaml = {}
|
17
17
|
|
18
|
-
|
19
|
-
# Check exit condition
|
20
|
-
return yaml if file_queue.empty?
|
21
|
-
|
18
|
+
while file_queue.present?
|
22
19
|
current_file = file_queue.shift
|
23
20
|
current_yaml = YAML.load_file(current_file)
|
21
|
+
if current_yaml.class == FalseClass
|
22
|
+
raise "#{File.basename(current_file)} is malformed."
|
23
|
+
end
|
24
24
|
yaml = current_yaml.deep_merge(yaml)
|
25
25
|
|
26
|
-
|
26
|
+
if yaml.key?('inherit')
|
27
|
+
inherit_files = parse_inherit(yaml, yamlfile, loaded_files)
|
28
|
+
file_queue = inherit_files + file_queue
|
29
|
+
end
|
30
|
+
end
|
27
31
|
|
28
|
-
|
29
|
-
|
30
|
-
inherit_file = File.expand_path(item, File.dirname(yamlfile))
|
32
|
+
yaml
|
33
|
+
end
|
31
34
|
|
32
|
-
|
33
|
-
|
34
|
-
raise "Found circular YAML inheritance '#{inherit_file}' in #{yamlfile}."
|
35
|
-
end
|
35
|
+
def parse_inherit(yaml, yamlfile, loaded_files)
|
36
|
+
files = []
|
36
37
|
|
37
|
-
|
38
|
-
|
38
|
+
yaml['inherit'].reverse_each do |item|
|
39
|
+
inherit_file = File.expand_path(item, File.dirname(yamlfile))
|
40
|
+
|
41
|
+
# Check loop
|
42
|
+
if loaded_files[inherit_file]
|
43
|
+
raise "Found circular YAML inheritance '#{inherit_file}' in #{yamlfile}."
|
39
44
|
end
|
40
|
-
|
41
|
-
|
45
|
+
|
46
|
+
loaded_files[inherit_file] = true
|
47
|
+
files << inherit_file
|
42
48
|
end
|
49
|
+
|
50
|
+
yaml.delete('inherit')
|
51
|
+
|
52
|
+
files
|
43
53
|
end
|
44
54
|
end
|
45
55
|
end
|
data/review.gemspec
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
$LOAD_PATH.push
|
1
|
+
$LOAD_PATH.push(File.expand_path('lib', __dir__))
|
2
2
|
require 'review/version'
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
@@ -11,8 +11,8 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.homepage = 'http://github.com/kmuto/review'
|
12
12
|
gem.summary = 'Re:VIEW: a easy-to-use digital publishing system'
|
13
13
|
gem.description = 'Re:VIEW is a digital publishing system for books and ebooks. It supports InDesign, EPUB and LaTeX.'
|
14
|
-
gem.required_rubygems_version = Gem::Requirement.new('>= 0') if gem.respond_to?
|
15
|
-
gem.date = '
|
14
|
+
gem.required_rubygems_version = Gem::Requirement.new('>= 0') if gem.respond_to?(:required_rubygems_version=)
|
15
|
+
gem.date = '2020-06-29'
|
16
16
|
|
17
17
|
gem.files = `git ls-files`.split("\n")
|
18
18
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -25,7 +25,9 @@ Gem::Specification.new do |gem|
|
|
25
25
|
gem.add_dependency('rubyzip')
|
26
26
|
gem.add_development_dependency('pygments.rb')
|
27
27
|
gem.add_development_dependency('rake')
|
28
|
-
gem.add_development_dependency('rubocop', '~> 0.
|
28
|
+
gem.add_development_dependency('rubocop', '~> 0.77.0')
|
29
|
+
gem.add_development_dependency('rubocop-performance')
|
29
30
|
gem.add_development_dependency('simplecov')
|
30
31
|
gem.add_development_dependency('test-unit')
|
32
|
+
gem.add_development_dependency('unicode-eaw')
|
31
33
|
end
|
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
Re:VIEW ( http://github.com/kmuto/review )で書籍データを作るためのサンプルファイルです。
|
4
4
|
|
5
|
-
必要なファイルはsrc
|
5
|
+
必要なファイルはsrcディレクトリ内にあります。srcディレクトリで以下のようにして各形式のファイルを生成できます。
|
6
6
|
|
7
|
-
|
7
|
+
- rake pdf: PDF (upLaTeXとdvipdfmxが必要です)
|
8
|
+
- rake epub: EPUB
|
9
|
+
- rake web: HTML Webページ
|
10
|
+
- rake text: テキストファイル
|
11
|
+
- rake plaintext: テキストファイル (装飾なし)
|
12
|
+
- rake idgxml: InDesign用XMLファイル
|
@@ -0,0 +1,154 @@
|
|
1
|
+
/*.pdf
|
2
|
+
/*.epub
|
3
|
+
/*.html
|
4
|
+
/webroot
|
5
|
+
/*-pdf
|
6
|
+
/*-epub
|
7
|
+
/*-text
|
8
|
+
/*-idgxml
|
9
|
+
|
10
|
+
/vendor
|
11
|
+
/.bundle
|
12
|
+
|
13
|
+
# Created by https://www.gitignore.io/api/vim,linux,macos,emacs,windows
|
14
|
+
# Edit at https://www.gitignore.io/?templates=vim,linux,macos,emacs,windows
|
15
|
+
|
16
|
+
### Emacs ###
|
17
|
+
# -*- mode: gitignore; -*-
|
18
|
+
*~
|
19
|
+
\#*\#
|
20
|
+
/.emacs.desktop
|
21
|
+
/.emacs.desktop.lock
|
22
|
+
*.elc
|
23
|
+
auto-save-list
|
24
|
+
tramp
|
25
|
+
.\#*
|
26
|
+
|
27
|
+
# Org-mode
|
28
|
+
.org-id-locations
|
29
|
+
*_archive
|
30
|
+
|
31
|
+
# flymake-mode
|
32
|
+
*_flymake.*
|
33
|
+
|
34
|
+
# eshell files
|
35
|
+
/eshell/history
|
36
|
+
/eshell/lastdir
|
37
|
+
|
38
|
+
# elpa packages
|
39
|
+
/elpa/
|
40
|
+
|
41
|
+
# reftex files
|
42
|
+
*.rel
|
43
|
+
|
44
|
+
# AUCTeX auto folder
|
45
|
+
/auto/
|
46
|
+
|
47
|
+
# cask packages
|
48
|
+
.cask/
|
49
|
+
dist/
|
50
|
+
|
51
|
+
# Flycheck
|
52
|
+
flycheck_*.el
|
53
|
+
|
54
|
+
# server auth directory
|
55
|
+
/server/
|
56
|
+
|
57
|
+
# projectiles files
|
58
|
+
.projectile
|
59
|
+
|
60
|
+
# directory configuration
|
61
|
+
.dir-locals.el
|
62
|
+
|
63
|
+
# network security
|
64
|
+
/network-security.data
|
65
|
+
|
66
|
+
|
67
|
+
### Linux ###
|
68
|
+
|
69
|
+
# temporary files which can be created if a process still has a handle open of a deleted file
|
70
|
+
.fuse_hidden*
|
71
|
+
|
72
|
+
# KDE directory preferences
|
73
|
+
.directory
|
74
|
+
|
75
|
+
# Linux trash folder which might appear on any partition or disk
|
76
|
+
.Trash-*
|
77
|
+
|
78
|
+
# .nfs files are created when an open file is removed but is still being accessed
|
79
|
+
.nfs*
|
80
|
+
|
81
|
+
### macOS ###
|
82
|
+
# General
|
83
|
+
.DS_Store
|
84
|
+
.AppleDouble
|
85
|
+
.LSOverride
|
86
|
+
|
87
|
+
# Icon must end with two \r
|
88
|
+
Icon
|
89
|
+
|
90
|
+
# Thumbnails
|
91
|
+
._*
|
92
|
+
|
93
|
+
# Files that might appear in the root of a volume
|
94
|
+
.DocumentRevisions-V100
|
95
|
+
.fseventsd
|
96
|
+
.Spotlight-V100
|
97
|
+
.TemporaryItems
|
98
|
+
.Trashes
|
99
|
+
.VolumeIcon.icns
|
100
|
+
.com.apple.timemachine.donotpresent
|
101
|
+
|
102
|
+
# Directories potentially created on remote AFP share
|
103
|
+
.AppleDB
|
104
|
+
.AppleDesktop
|
105
|
+
Network Trash Folder
|
106
|
+
Temporary Items
|
107
|
+
.apdisk
|
108
|
+
|
109
|
+
### Vim ###
|
110
|
+
# Swap
|
111
|
+
[._]*.s[a-v][a-z]
|
112
|
+
[._]*.sw[a-p]
|
113
|
+
[._]s[a-rt-v][a-z]
|
114
|
+
[._]ss[a-gi-z]
|
115
|
+
[._]sw[a-p]
|
116
|
+
|
117
|
+
# Session
|
118
|
+
Session.vim
|
119
|
+
Sessionx.vim
|
120
|
+
|
121
|
+
# Temporary
|
122
|
+
.netrwhist
|
123
|
+
# Auto-generated tag files
|
124
|
+
tags
|
125
|
+
# Persistent undo
|
126
|
+
[._]*.un~
|
127
|
+
|
128
|
+
### Windows ###
|
129
|
+
# Windows thumbnail cache files
|
130
|
+
Thumbs.db
|
131
|
+
Thumbs.db:encryptable
|
132
|
+
ehthumbs.db
|
133
|
+
ehthumbs_vista.db
|
134
|
+
|
135
|
+
# Dump file
|
136
|
+
*.stackdump
|
137
|
+
|
138
|
+
# Folder config file
|
139
|
+
[Dd]esktop.ini
|
140
|
+
|
141
|
+
# Recycle Bin used on file shares
|
142
|
+
$RECYCLE.BIN/
|
143
|
+
|
144
|
+
# Windows Installer files
|
145
|
+
*.cab
|
146
|
+
*.msi
|
147
|
+
*.msix
|
148
|
+
*.msm
|
149
|
+
*.msp
|
150
|
+
|
151
|
+
# Windows shortcuts
|
152
|
+
*.lnk
|
153
|
+
|
154
|
+
# End of https://www.gitignore.io/api/vim,linux,macos,emacs,windows
|
@@ -0,0 +1,6 @@
|
|
1
|
+
# call me by 'REVIEW_TEMPLATE=review-jlreq REVIEW_CONFIG_FILE=config-jlreq.yml rake pdf'
|
2
|
+
inherit: ["config.yml"]
|
3
|
+
pdfmaker:
|
4
|
+
texdocumentclass: ["review-jlreq", "media=print,paper=a5"]
|
5
|
+
# texdocumentclass: ["review-jlreq", "media=ebook,paper=a5"]
|
6
|
+
# texdocumentclass: ["review-jlreq", "media=print,paper=a5,tombopaper=a4,bleed_margin=3mm,cover=true,Q=14,startpage=3,serial_pagination=true,hiddenfolio=nikko-pc"]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
## config.yml for sample book
|
2
|
-
review_version:
|
2
|
+
review_version: 4.0
|
3
3
|
bookname: book
|
4
4
|
language: ja
|
5
5
|
booktitle: Re:VIEWサンプル書籍
|
@@ -35,7 +35,7 @@ colophon: true
|
|
35
35
|
# font_ext: ["ttf", "woff", "otf"]
|
36
36
|
# catalogfile: catalog.yml
|
37
37
|
# page_metric: A5
|
38
|
-
# page_metric: [40,
|
38
|
+
# page_metric: [40,34,29,34]
|
39
39
|
# direction: "ltr"
|
40
40
|
|
41
41
|
epubmaker:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2006-
|
1
|
+
# Copyright (c) 2006-2020 Minero Aoki, Kenshi Muto, Masayoshi Takahashi, Masanori Kado.
|
2
2
|
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -29,15 +29,21 @@ CATALOG_FILE = ENV['REVIEW_CATALOG_FILE'] || 'catalog.yml'
|
|
29
29
|
WEBROOT = ENV['REVIEW_WEBROOT'] || 'webroot'
|
30
30
|
TEXTROOT = BOOK + '-text'
|
31
31
|
TOPROOT = BOOK + '-text'
|
32
|
+
IDGXMLROOT = BOOK + '-idgxml'
|
33
|
+
PDF_OPTIONS = ENV['REVIEW_PDF_OPTIONS'] || ''
|
34
|
+
EPUB_OPTIONS = ENV['REVIEW_EPUB_OPTIONS'] || ''
|
35
|
+
WEB_OPTIONS = ENV['REVIEW_WEB_OPTIONS'] || ''
|
36
|
+
IDGXML_OPTIONS = ENV['REVIEW_IDGXML_OPTIONS'] || ''
|
37
|
+
TEXT_OPTIONS = ENV['REVIEW_TEXT_OPTIONS'] || ''
|
32
38
|
|
33
39
|
def build(mode, chapter)
|
34
|
-
sh
|
40
|
+
sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css #{chapter} > tmp")
|
35
41
|
mode_ext = { 'html' => 'html', 'latex' => 'tex', 'idgxml' => 'xml', 'top' => 'txt', 'plaintext' => 'txt' }
|
36
|
-
FileUtils.mv
|
42
|
+
FileUtils.mv('tmp', chapter.gsub(/re\z/, mode_ext[mode]))
|
37
43
|
end
|
38
44
|
|
39
45
|
def build_all(mode)
|
40
|
-
sh
|
46
|
+
sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css")
|
41
47
|
end
|
42
48
|
|
43
49
|
task default: :html_all
|
@@ -74,12 +80,17 @@ task web: WEBROOT
|
|
74
80
|
|
75
81
|
desc 'generate text file (without decoration)'
|
76
82
|
task plaintext: TEXTROOT do
|
77
|
-
sh "review-textmaker -n #{CONFIG_FILE}"
|
83
|
+
sh "review-textmaker #{TEXT_OPTIONS} -n #{CONFIG_FILE}"
|
78
84
|
end
|
79
85
|
|
80
86
|
desc 'generate (decorated) text file'
|
81
87
|
task text: TOPROOT do
|
82
|
-
sh "review-textmaker #{CONFIG_FILE}"
|
88
|
+
sh "review-textmaker #{TEXT_OPTIONS} #{CONFIG_FILE}"
|
89
|
+
end
|
90
|
+
|
91
|
+
desc 'generate IDGXML file'
|
92
|
+
task idgxml: IDGXMLROOT do
|
93
|
+
sh "review-idgxmlmaker #{IDGXML_OPTIONS} #{CONFIG_FILE}"
|
83
94
|
end
|
84
95
|
|
85
96
|
desc 'generate EPUB file'
|
@@ -92,22 +103,26 @@ SRC_EPUB = FileList['*.css']
|
|
92
103
|
SRC_PDF = FileList['layouts/*.erb', 'sty/**/*.sty']
|
93
104
|
|
94
105
|
file BOOK_PDF => SRC + SRC_PDF do
|
95
|
-
FileUtils.rm_rf
|
96
|
-
sh "review-pdfmaker #{CONFIG_FILE}"
|
106
|
+
FileUtils.rm_rf([BOOK_PDF, BOOK, BOOK + '-pdf'])
|
107
|
+
sh "review-pdfmaker #{PDF_OPTIONS} #{CONFIG_FILE}"
|
97
108
|
end
|
98
109
|
|
99
110
|
file BOOK_EPUB => SRC + SRC_EPUB do
|
100
|
-
FileUtils.rm_rf
|
101
|
-
sh "review-epubmaker #{CONFIG_FILE}"
|
111
|
+
FileUtils.rm_rf([BOOK_EPUB, BOOK, BOOK + '-epub'])
|
112
|
+
sh "review-epubmaker #{EPUB_OPTIONS} #{CONFIG_FILE}"
|
102
113
|
end
|
103
114
|
|
104
115
|
file WEBROOT => SRC do
|
105
|
-
FileUtils.rm_rf
|
106
|
-
sh "review-webmaker #{CONFIG_FILE}"
|
116
|
+
FileUtils.rm_rf([WEBROOT])
|
117
|
+
sh "review-webmaker #{WEB_OPTIONS} #{CONFIG_FILE}"
|
107
118
|
end
|
108
119
|
|
109
120
|
file TEXTROOT => SRC do
|
110
|
-
FileUtils.rm_rf
|
121
|
+
FileUtils.rm_rf([TEXTROOT])
|
122
|
+
end
|
123
|
+
|
124
|
+
file IDGXMLROOT => SRC do
|
125
|
+
FileUtils.rm_rf([IDGXMLROOT])
|
111
126
|
end
|
112
127
|
|
113
|
-
CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', TEXTROOT])
|
128
|
+
CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', 'images/_review_math_text', TEXTROOT, IDGXMLROOT])
|