review 4.0.0 → 4.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.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-win.yml +39 -0
  3. data/.github/workflows/ruby.yml +27 -0
  4. data/.rubocop.yml +10 -7
  5. data/Dockerfile +21 -5
  6. data/NEWS.ja.md +101 -1
  7. data/NEWS.md +102 -2
  8. data/README.md +10 -7
  9. data/appveyor.yml +0 -20
  10. data/bin/review-compile +1 -1
  11. data/bin/review-validate +1 -1
  12. data/doc/config.yml.sample +12 -1
  13. data/doc/config.yml.sample-simple +1 -0
  14. data/doc/format.ja.md +16 -4
  15. data/doc/format.md +2 -1
  16. data/doc/quickstart.ja.md +40 -23
  17. data/doc/quickstart.md +33 -15
  18. data/lib/review/book/base.rb +8 -7
  19. data/lib/review/book/index.rb +50 -56
  20. data/lib/review/book/index/item.rb +1 -1
  21. data/lib/review/builder.rb +26 -4
  22. data/lib/review/compiler.rb +6 -3
  23. data/lib/review/configure.rb +5 -3
  24. data/lib/review/epubmaker.rb +15 -2
  25. data/lib/review/extentions/string.rb +0 -4
  26. data/lib/review/htmlbuilder.rb +4 -15
  27. data/lib/review/idgxmlbuilder.rb +10 -19
  28. data/lib/review/idgxmlmaker.rb +10 -3
  29. data/lib/review/init.rb +8 -1
  30. data/lib/review/latexbuilder.rb +13 -6
  31. data/lib/review/pdfmaker.rb +24 -9
  32. data/lib/review/rstbuilder.rb +2 -2
  33. data/lib/review/textmaker.rb +7 -1
  34. data/lib/review/tocparser.rb +6 -2
  35. data/lib/review/version.rb +1 -1
  36. data/lib/review/webmaker.rb +8 -1
  37. data/review.gemspec +2 -2
  38. data/samples/sample-book/src/.gitignore +1 -0
  39. data/samples/sample-book/src/config-ebook.yml +4 -0
  40. data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
  41. data/samples/sample-book/src/config.yml +1 -1
  42. data/samples/sample-book/src/lib/tasks/review.rake +10 -6
  43. data/samples/syntax-book/ch01.re +4 -2
  44. data/samples/syntax-book/ch02.re +8 -16
  45. data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
  46. data/samples/syntax-book/config-print.yml +3 -0
  47. data/samples/syntax-book/config.yml +1 -1
  48. data/samples/syntax-book/lib/tasks/review.rake +23 -8
  49. data/templates/latex/config.erb +6 -6
  50. data/templates/latex/review-jlreq/review-base.sty +14 -4
  51. data/templates/latex/review-jlreq/review-jlreq.cls +10 -1
  52. data/templates/latex/review-jlreq/review-style.sty +1 -1
  53. data/templates/latex/review-jsbook/review-base.sty +10 -0
  54. data/templates/latex/review-jsbook/review-jsbook.cls +1 -1
  55. data/templates/latex/review-jsbook/review-style.sty +1 -1
  56. data/test/assets/test_template.tex +6 -6
  57. data/test/assets/test_template_backmatter.tex +6 -6
  58. data/test/test_book.rb +8 -0
  59. data/test/test_book_chapter.rb +4 -2
  60. data/test/test_catalog.rb +1 -0
  61. data/test/test_epubmaker_cmd.rb +12 -5
  62. data/test/test_helper.rb +11 -6
  63. data/test/test_htmlbuilder.rb +80 -8
  64. data/test/test_idgxmlbuilder.rb +57 -2
  65. data/test/test_idgxmlmaker_cmd.rb +46 -0
  66. data/test/test_image_finder.rb +52 -70
  67. data/test/test_index.rb +12 -12
  68. data/test/test_latexbuilder.rb +171 -8
  69. data/test/test_latexbuilder_v2.rb +9 -7
  70. data/test/test_pdfmaker_cmd.rb +99 -5
  71. data/test/test_textmaker_cmd.rb +54 -0
  72. data/test/test_topbuilder.rb +59 -0
  73. data/vendor/jsclasses/LICENSE +1 -1
  74. data/vendor/jsclasses/jis/jsarticle.cls +53 -14
  75. data/vendor/jsclasses/jis/jsbook.cls +53 -14
  76. data/vendor/jsclasses/jis/jsclasses.dtx +84 -25
  77. data/vendor/jsclasses/jis/jslogo.dtx +4 -4
  78. data/vendor/jsclasses/jis/jslogo.sty +3 -3
  79. data/vendor/jsclasses/jis/jspf.cls +52 -13
  80. data/vendor/jsclasses/jis/jsreport.cls +53 -14
  81. data/vendor/jsclasses/jis/kiyou.cls +53 -14
  82. data/vendor/jsclasses/jis/okumacro.dtx +4 -5
  83. data/vendor/jsclasses/jis/okumacro.sty +3 -4
  84. data/vendor/jsclasses/jsarticle.cls +53 -14
  85. data/vendor/jsclasses/jsbook.cls +53 -14
  86. data/vendor/jsclasses/jsclasses.dtx +84 -25
  87. data/vendor/jsclasses/jsclasses.pdf +0 -0
  88. data/vendor/jsclasses/jslogo.dtx +4 -4
  89. data/vendor/jsclasses/jslogo.pdf +0 -0
  90. data/vendor/jsclasses/jslogo.sty +3 -3
  91. data/vendor/jsclasses/jspf.cls +52 -13
  92. data/vendor/jsclasses/jsreport.cls +53 -14
  93. data/vendor/jsclasses/kiyou.cls +53 -14
  94. data/vendor/jsclasses/okumacro.dtx +4 -5
  95. data/vendor/jsclasses/okumacro.pdf +0 -0
  96. data/vendor/jsclasses/okumacro.sty +3 -4
  97. metadata +15 -6
  98. data/samples/syntax-book/review-ext.rb +0 -14
@@ -6,21 +6,6 @@ install:
6
6
  build_script:
7
7
  - bundle install
8
8
  - bundle exec rake test --trace --verbose
9
- - bundle exec rubocop
10
-
11
- before_test:
12
- - gem install -N epubcheck-ruby
13
-
14
- test_script:
15
- - ruby bin/review-init hello
16
- - cd hello
17
- - ruby ../bin/review-epubmaker config.yml
18
- - epubcheck book.epub
19
- - cd ..
20
- - ruby bin/review-init hello2 --epub-version 2
21
- - cd hello2
22
- - ruby ../bin/review-epubmaker config.yml
23
- - epubcheck book.epub
24
9
 
25
10
  branches:
26
11
  only:
@@ -28,9 +13,4 @@ branches:
28
13
 
29
14
  environment:
30
15
  matrix:
31
- - ruby_version: "24"
32
- - ruby_version: "24-x64"
33
- - ruby_version: "25"
34
- - ruby_version: "25-x64"
35
16
  - ruby_version: "26"
36
- - ruby_version: "26-x64"
@@ -35,7 +35,7 @@ def _main
35
35
  @logger = ReVIEW.logger
36
36
  @mode = :files
37
37
  @basedir = nil
38
- if /\Areview2/ =~ File.basename($PROGRAM_NAME)
38
+ if File.basename($PROGRAM_NAME).start_with?('review2')
39
39
  @target = File.basename($PROGRAM_NAME, '.rb').sub('review2', '')
40
40
  else
41
41
  @target = nil
@@ -30,7 +30,7 @@ ARGF.each do |line|
30
30
  @logger.warn "#{ln}: block #{new_block} started, but previous block #{block} didn't close yet."
31
31
  end
32
32
  block = new_block
33
- elsif line =~ %r{\A//\}}
33
+ elsif line.start_with?('//}')
34
34
  if block.nil?
35
35
  @logger.warn "#{ln}: block ended, but not opened."
36
36
  end
@@ -64,6 +64,8 @@ aut: ["青木峰郎", "武藤健志", "高橋征義", "角征典"]
64
64
  # a-trc, trc: 筆記・タイプ作業者
65
65
  # a-trl, trl: 翻訳者
66
66
 
67
+ # contact: 連絡先
68
+
67
69
  # 刊行日(省略した場合は実行時の日付)
68
70
  # date: 2018-11-11
69
71
  # 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
@@ -137,7 +139,10 @@ toc: true
137
139
  # creditfile: null
138
140
 
139
141
  # 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
142
+ # デフォルトの奥付における各項目の名前(「著 者」など)を変えたいときにはlocale.ymlで文字列を設定する(詳細はdoc/format.ja.mdを参照)
140
143
  # colophon: null
144
+ # デフォルトの奥付における、各項目の記載順序
145
+ # colophon_order: ["aut", "csl", "trl", "dsr", "ill", "cov", "edt", "pbl", "contact", "prt"]
141
146
 
142
147
  # 裏表紙データファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
143
148
  # backcover: null
@@ -173,9 +178,12 @@ toc: true
173
178
  # reファイルを格納するディレクトリ。省略した場合は以下 (. はカレントディレクトリを示す)
174
179
  # contentdir: .
175
180
 
176
- # @<w>命令で使用する単語ファイルのパス
181
+ # @<w>命令で使用する単語ファイルのパス。["common.csv", "mybook.csv"]のように配列指定も可
177
182
  # words_file: words.csv
178
183
 
184
+ # //table命令における列の区切り文字。tabs (1文字以上のタブ文字区切り。デフォルト), singletab (1文字のタブ文字区切り), spaces (1文字以上のスペースまたはタブ文字の区切り), verticalbar ("0個以上の空白 | 0個以上の空白"の区切り)
185
+ # table_row_separator: tabs
186
+
179
187
  # review-vol向けのヒント情報
180
188
  # 1ページの行数文字数と1kbごとのページ数を用紙サイズで指定する(A5 or B5)
181
189
  # page_metric: A5
@@ -373,6 +381,9 @@ pdfmaker:
373
381
  # 画像のscale=X.Xという指定を画像拡大縮小率からページ最大幅の相対倍率に変換する
374
382
  # image_scale2width: true
375
383
  #
384
+ # 画像のデフォルトのサイズを、版面横幅合わせではなく、原寸をそのまま利用する
385
+ # use_original_image_size: null
386
+ #
376
387
  # PDFやIllustratorファイル(.ai)の画像のBoudingBoxの抽出に指定のボックスを採用する
377
388
  # cropbox(デフォルト), mediabox, artbox, trimbox, bleedboxから選択する。
378
389
  # Illustrator CC以降のIllustratorファイルに対してはmediaboxを指定する必要がある
@@ -20,6 +20,7 @@ aut: ["Masayoshi Takahashi"]
20
20
  # edt: null
21
21
  pbl: "Re:VIEW Publishing inc."
22
22
  prt: "Re:VIEW Printing inc."
23
+ contact: "https://reviewml.org/"
23
24
  date: 2018-11-11
24
25
  history: [["2012-01-30"],["2016-04-20","2016-05-03"],["2018-11-11"]]
25
26
  rights: (C) 2016-2019 Re:VIEW Commiters, some rights reserved.
@@ -264,11 +264,23 @@ puts "hello world!"
264
264
 
265
265
  ```review
266
266
  //source[/hello/world.rb]{
267
- puts "hello world!"
267
+ puts "hello world!" # キャプションあり
268
+ //}
269
+
270
+ //source{
271
+ puts "hello world!" # キャプションなし
272
+ //}
273
+
274
+ //source[/hello/world.rb][ruby]{
275
+ puts "hello world!" # キャプションあり、ハイライトあり
276
+ //}
277
+
278
+ //source[][ruby]{
279
+ puts "hello world!" # キャプションなし、ハイライトあり
268
280
  //}
269
281
  ```
270
282
 
271
- ソースコードの引用は、キャプションを付けた `//emlist` とほぼ同じです。HTML の CSS などでは区別した表現ができます。
283
+ ソースコードの引用は、`//emlist` とほぼ同じです。HTML の CSS などでは区別した表現ができます。
272
284
 
273
285
  ## 本文中でのソースコード引用
274
286
 
@@ -312,7 +324,7 @@ V1 --> V6 --|
312
324
  //}
313
325
  ```
314
326
 
315
- 3番目の引数として、画像の倍率・大きさを指定することができます。今のところ「scale=X」で倍率(X 倍)を指定でき、HTML、TeX ともに紙面(画面)幅に対しての倍率となります(0.5 なら半分の幅になります)。
327
+ 3番目の引数として、画像の倍率・大きさを指定することができます。今のところ「scale=X」で倍率(X 倍)を指定でき、HTML、TeX ともに紙面(画面)幅に対しての倍率となります(0.5 なら半分の幅になります)。3番目の引数をたとえば HTML と TeX で分けたい場合は、`html::style="transform: scale(0.5);",latex::scale=0.5` のように `::` でビルダを明示し、`,` でオプションを区切って指定できます。
316
328
 
317
329
  ※TeX において原寸からの倍率にしたいときには、`config.yml` に `image_scale2width: false` を指定してください。
318
330
 
@@ -790,7 +802,7 @@ Web ハイパーリンクを記述するには、リンクに `@<href>`、アン
790
802
  "i18n","""i""nternationalizatio""n"""
791
803
  ```
792
804
 
793
- 単語ファイルのファイルパスは、`config.yml` に `words_file: ファイルパス` で指定します。
805
+ 単語ファイルのファイルパスは、`config.yml` に `words_file: ファイルパス` で指定します。`word_file: ["common.csv", "mybook.csv"]` のように複数のファイルも指定可能です(同一のキーがあるときには後に指定したファイルの値が優先されます)。
794
806
 
795
807
  例:
796
808
 
@@ -355,6 +355,7 @@ V1 --> V6 --|
355
355
  ```
356
356
 
357
357
  The third option is used to define the scale of images. `scale=X` is scaling for page width (`scale=0.5` makes image width to be half of page width).
358
+ If you'd like to use different values for each builders, such as HTML and TeX, you can specify the target builders using `::`. Example: `html::style="transform: scale(0.5);",latex::scale=0.5`
358
359
 
359
360
  When you want to refer images such as "see figure 1.", you can use
360
361
  inline reference markup like `@<img>{unixhistory}`.
@@ -850,7 +851,7 @@ This word file is a CSV file with extension .csv. This first columns is the key,
850
851
  "i18n","""i""nternationalizatio""n"""
851
852
  ```
852
853
 
853
- Specify the word file path in `words_file` parameter of `config.yml`.
854
+ Specify the word file path in `words_file` parameter of `config.yml`. You can specify multiple word files as `word_file: ["common.csv", "mybook.csv"]`.
854
855
 
855
856
  Usage:
856
857
 
@@ -8,11 +8,11 @@ Re:VIEW は GNU Lesser General Public License Version 2.1 に基づいて配布
8
8
 
9
9
  このドキュメントでは、Re:VIEW のセットアップから変換の例までを簡単に説明します。
10
10
 
11
- このドキュメントは、Re:VIEW 3.0 に基づいています。
11
+ このドキュメントは、Re:VIEW 4.0 に基づいています。
12
12
 
13
13
  ## セットアップ
14
14
 
15
- Re:VIEW は Ruby 言語で記述されており、Linux/Unix 互換システムで動作します。macOS および Windows Cygwin でも動作可能です。Ruby gem あるいは Git のいずれかを使ってダウンロード・展開します。
15
+ Re:VIEW は Ruby 言語で記述されており、Linux/Unix 互換システムで動作します。macOS および Windows でも動作可能です。Ruby gem あるいは Git のいずれかを使ってダウンロード・展開します。
16
16
 
17
17
  なお、Re:VIEW フォーマット自体は文字で表現されたタグが付いている以外は単なるテキストファイルなので、エディタ、OS については UTF-8 文字エンコーディングさえ使用できれば制限はありません。
18
18
 
@@ -34,7 +34,7 @@ Ruby gem の bin ディレクトリにパスを通すようにしておいてく
34
34
  $ gem update review
35
35
  ```
36
36
 
37
- Gemfile を使っている場合は、以下の行を Gemfile に追加して、`bundle`コマンドを実行します。
37
+ Gemfile を使っている場合は、以下の行を Gemfile に追加して、`bundle` コマンドを実行します。
38
38
 
39
39
  ```Gemfile
40
40
  gem 'review'
@@ -58,29 +58,37 @@ review というディレクトリに展開されるので、review/bin にパ
58
58
  $ git pull
59
59
  ```
60
60
 
61
- ## Re:VIEW ドキュメントの作成
61
+ ## Re:VIEW プロジェクトの作成
62
62
 
63
63
  ### 雛型の作成
64
- review-init コマンドを使って、雛型となる作業フォルダを作成できます。
64
+ review-init コマンドを使って、雛型となるプロジェクトフォルダを作成できます。
65
65
 
66
66
  ```
67
- $ review-init ドキュメント名
67
+ $ review-init プロジェクト名
68
68
  ```
69
69
 
70
- これで指定のドキュメント名のフォルダが用意され、中に次のようなファイルが置かれます。
70
+ TeX を利用した PDF 作成を目的としているならば、雛型の作成時に、Web ブラウザによるウィザードモードで基本版面設計を行うことができます。これには `-w` オプションを付けます。
71
71
 
72
- * ドキュメント名を冠した「.re」拡張子を持つファイル(Re:VIEW フォーマットテキストファイル)
72
+ ```
73
+ $ review-init -w プロジェクト名
74
+ ```
75
+
76
+ 「http://localhost:18000」に Web ブラウザでアクセスし、文字数×行数および余白を調整できます。
77
+
78
+ これで指定のプロジェクト名のフォルダが用意され、中に次のようなファイルが置かれます。
79
+
80
+ * プロジェクト名を冠した「.re」拡張子を持つファイル(Re:VIEW フォーマットテキストファイル)
73
81
  * config.yml : 設定ファイル
82
+ * config-ebook.yml : 電子ブック用設定ファイル(ウィザードモード使用時)
74
83
  * catalog.yml : カタログファイル(目次構成)
75
84
  * Rakefile : rake コマンドのルールファイル
76
85
  * images : 画像の配置フォルダ
77
- * layouts : レイアウトファイルの配置フォルダ
78
86
  * style.css : サンプルスタイルシート
79
87
  * sty : スタイルファイル配置フォルダ(TeX 用)
80
88
  * doc : 本ドキュメントを含む使い方のドキュメント
81
89
  * lib : 主に rake コマンドの詳細ルールファイル
82
90
 
83
- review-init コマンドによらず、独自に作業フォルダを作成してもかまいません。
91
+ review-init コマンドによらず、独自にプロジェクトフォルダを作成してもかまいません。
84
92
 
85
93
  ### Re:VIEW テキストの作成と変換
86
94
 
@@ -115,28 +123,37 @@ review-init コマンドによらず、独自に作業フォルダを作成し
115
123
 
116
124
  テキストファイルの文字エンコーディングには、UTF-8 を使用してください。
117
125
 
118
- ### PDF 化と EPUB 化、プレインテキスト化
126
+ ### PDF 化と EPUB 化、プレインテキスト化、XML 化
127
+
128
+ review-*maker コマンドで一括して変換作成ができます。
119
129
 
120
- review-pdfmaker コマンドで PDF ブックの作成、review-epubmaker コマンドで EPUB ファイルの作成、review-textmaker コマンドでプレインテキストの作成ができます。
130
+ - review-pdfmaker コマンド:PDF ブックの作成
131
+ - review-epubmaker コマンド:EPUB ファイルの作成
132
+ - review-textmaker コマンド:プレインテキストの作成
133
+ - review-idgxmlmaker コマンド:InDesign XML の作成
121
134
 
122
135
  PDF を作成するには、TeXLive2012 以上の環境が必要です。EPUB を作成するには、rubyzip gem あるいは zip コマンドが必要です(MathML も使いたいときには、 [MathML ライブラリ](http://www.hinet.mydns.jp/?mathml.rb)も必要です)。
123
136
 
124
137
  いずれのコマンドも、必要な設定情報を記した YAML 形式ファイルを引数に指定して実行します。review-init コマンドで作成した環境には、デフォルトで config.yml として用意されているので、これを利用します。
125
138
 
126
139
  ```bash
127
- $ review-pdfmaker config.yml ←PDFの作成
128
- $ review-epubmaker config.yml ←EPUBの作成
129
- $ review-textmaker config.yml ←テキストの作成(装飾情報あり)
130
- $ review-textmaker -n config.yml ←テキストの作成(装飾情報なし)
140
+ $ review-pdfmaker config.yml ←PDFの作成
141
+ $ review-pdfmaker config-ebook.yml ←電子ブック設定でのPDFの作成
142
+ $ review-epubmaker config.yml ←EPUBの作成
143
+ $ review-textmaker config.yml ←テキストの作成(装飾情報あり)
144
+ $ review-textmaker -n config.yml ←テキストの作成(装飾情報なし)
145
+ $ review-idgxmlmaker config.yml ←InDesign XMLの作成
131
146
  ```
132
147
 
133
148
  rake コマンドを利用できるなら、次のように実行することもできます。
134
149
 
135
150
  ```bash
136
151
  $ rake pdf ←PDFの作成
152
+ $ REVIEW_CONFIG_FILE=config-ebook.yml rake pdf ←電子ブック設定でのPDFの作成
137
153
  $ rake epub ←EPUBの作成
138
154
  $ rake text ←テキストの作成(装飾情報あり)
139
155
  $ rake plaintext ←テキストの作成(装飾情報なし)
156
+ $ rake idgxml ←InDesign XMLの作成
140
157
  ```
141
158
 
142
159
  config.yml のサンプルについては以下を参照してください。
@@ -177,7 +194,7 @@ Re:VIEW の使用実例については、https://github.com/reviewml/review-samp
177
194
  $ review-compile --target text sample.re > sample.txt ←テキストにする
178
195
  $ review-compile --target html sample.re > sample.html ←HTMLにする
179
196
  $ review-compile --target latex sample.re > sample.tex ←LaTeXにする
180
- $ review-compile --target idgxml sample.re > sample.xml ←XMLにする
197
+ $ review-compile --target idgxml sample.re > sample.xml ←InDesign XMLにする
181
198
  $ review-compile --target markdown sample.re > sample.md ←Markdownにする
182
199
  ```
183
200
 
@@ -206,14 +223,14 @@ $ review-vol
206
223
  $ review-index --level 掘り下げる見出しレベル数 -a
207
224
  ```
208
225
 
209
- ## ドキュメントフォルダを新しい Re:VIEW バージョンに追従する方法
226
+ ## プロジェクトフォルダを新しい Re:VIEW バージョンに追従する方法
210
227
 
211
- Re:VIEW は定期的に更新されています。おおむね後方互換性を保持していますが、新しいバージョン固有の機能を利用したいときには、ドキュメントフォルダを新しいバージョンに更新する review-update コマンドを利用します。
228
+ Re:VIEW は定期的に更新されています。おおむね後方互換性を保持していますが、新しいバージョン固有の機能を利用したいときには、プロジェクトフォルダを新しいバージョンに更新する review-update コマンドを利用します。
212
229
 
213
230
  ```bash
214
231
  $ review-update
215
- ** review-update はプロジェクトを 3.0.0 に更新します **
216
- config.yml: 'review_version' を '3.0' に更新しますか? [y]/n ←Enterで実行
232
+ ** review-update はプロジェクトを 4.0.0 に更新します **
233
+ config.yml: 'review_version' を '4.0' に更新しますか? [y]/n ←Enterで実行
217
234
  Rakefile は Re:VIEW バージョンのもの (/.../review/samples/sample-book/src/Rakefile) で置き換えられます。本当に進めますか? [y]/n
218
235
  lib/tasks/review.rake は Re:VIEW バージョンのもの (/.../review/samples/sample-book/src/lib/tasks/review.rake) で置き換えられます。本当に進めますか? [y]/n
219
236
  INFO: 新しいファイル /.../sty/plistings.sty が作成されました。
@@ -229,9 +246,9 @@ INFO: 新しいファイル /.../sty/gentombow.sty が作成されました。
229
246
 
230
247
  ## クレジット
231
248
 
232
- Re:VIEW は、青木峰郎によって最初に作成されました。武藤健志がこの開発・保守を引き継ぎ、2019年2月時点では、武藤健志、高橋征義、角征典が開発・保守を継続しています。
249
+ Re:VIEW は、青木峰郎によって最初に作成されました。武藤健志がこの開発・保守を引き継ぎ、2019年12月時点では、武藤健志、高橋征義、角征典が開発・保守を継続しています。
233
250
 
234
- バグ・パッチの報告、開発者用メーリングリストなどについての情報は、
251
+ バグ・パッチの報告、その他の情報は、
235
252
 
236
253
  * http://reviewml.org/
237
254
  * https://github.com/kmuto/review/wiki
@@ -9,7 +9,7 @@ Re:VIEW is free software under the terms of the GNU Lesser General Public Licens
9
9
 
10
10
  This article describes how to setup Re:VIEW and use it.
11
11
 
12
- The supported version of the article is Re:VIEW 3.0.
12
+ The supported version of the article is Re:VIEW 4.0.
13
13
 
14
14
  ## Set up Re:VIEW
15
15
 
@@ -59,7 +59,7 @@ $ git pull
59
59
 
60
60
  ## Writing Re:VIEW Document
61
61
 
62
- ### Generating template fiels
62
+ ### Generating template files
63
63
 
64
64
  After setup, you can use `review-init` command to generate Re:VIEW project directory.
65
65
 
@@ -72,14 +72,23 @@ $ ls hello
72
72
  Rakefile catalog.yml config.yml hello.re images/ layouts/ sty/ style.css
73
73
  ```
74
74
 
75
+ If your purpose is to create a PDF using TeX, it is a good idea to use the wizard mode for basic layouting in a web browser. Add `-w` option to review-init.
76
+
77
+ (notice: currently wizard UI supports only Japanese language)
78
+
79
+ ```bash
80
+ $ review-init -w hello
81
+ (access http://localhost:18000 on Web browser)
82
+ ```
83
+
75
84
  In `hello` directory, many files are generated.
76
85
 
77
86
  * `*.re` : Re:VIEW format file.
78
87
  * config.yml : configuration file
88
+ * config-ebook.yml : configuration file for ebook (when using the wizard mode)
79
89
  * catalog.yml : catalog file (for TOC)
80
90
  * Rakefile : rule file for `rake` command
81
91
  * images : folder for images
82
- * layouts : forlder for layout files
83
92
  * style.css : sample stylesheet
84
93
  * sty : style files for LaTeX
85
94
  * doc : various documents (including this document)
@@ -116,29 +125,38 @@ The web site of Re:VIEW is @<tt>{https://reviewml.org/}.
116
125
 
117
126
  You should use UTF-8 as encodings in text files.
118
127
 
119
- ### generating PDF, EPUB, and plain-text
128
+ ### generating PDF, EPUB, plain-text, and InDesign XML
129
+
130
+ To convert files in the project, use review-*maker command.
120
131
 
121
- You can generate a PDF file with `review-pdfmaker` command. Also you can generate an EPUB file with `review-epubmaker` command, and can generate an plain-text file with 'review-textmaker' command.
132
+ - review-pdfmaker: generate PDF
133
+ - review-epubmaker: generate EPUB
134
+ - review-textmaker: genrate plaintext
135
+ - review-idgxmlmaker: genrate InDesign XML
122
136
 
123
- To generate PDF, you should install TeXLive 2012 or later. To generate EPUB, you should install zip command.
137
+ To generate PDF, you should install TeXLive 2012 or later. To generate EPUB, you should install zip command.
124
138
  When you want to use MathML, you should install [MathML library](http://www.hinet.mydns.jp/?mathml.rb)
125
139
 
126
- Each maker need `config.yml`, configuration YAML files. `review-init` command generates `config.yml` in default.
140
+ Each maker need `config.yml`, configuration YAML files. `review-init` command generates `config.yml` in default.
127
141
 
128
142
  ```bash
129
- $ review-pdfmaker config.yml ## generate PDF
130
- $ review-epubmaker config.yml ## generate EPUB
131
- $ review-textmaker config.yml ## generate text with decoration
132
- $ review-textmaker -n config.yml ## generate text without decoration
143
+ $ review-pdfmaker config.yml ## generate PDF
144
+ $ review-pdfmaker config-ebook.yml ## generate PDF (for ebook)
145
+ $ review-epubmaker config.yml ## generate EPUB
146
+ $ review-textmaker config.yml ## generate text with decoration
147
+ $ review-textmaker -n config.yml ## generate text without decoration
148
+ $ review-idgxmlmaker config.yml ## generate InDesign XML
133
149
  ```
134
150
 
135
151
  You also can generate them with Rake.
136
152
 
137
153
  ```bash
138
154
  $ rake pdf ## generate PDF
155
+ $ REVIEW_CONFIG_FILE=config-ebook.yml rake pdf ## generate PDF (for ebook)
139
156
  $ rake epub ## generate EPUB
140
157
  $ rake text ## generate text with decoration
141
158
  $ rake plaintext ## generate text without decoration
159
+ $ rake idgxml ## generate InDesign XML
142
160
  ```
143
161
 
144
162
  There is a sample YAML file [config.yml.sample](https://github.com/kmuto/review/blob/master/doc/config.yml.sample) in the same directory of this document.
@@ -210,12 +228,12 @@ $ review-index --level <heading level> -a
210
228
 
211
229
  ## how to update the document folder to the new Re:VIEW version
212
230
 
213
- Re:VIEW is updated regularly. We Re:VIEW team watch the backward compatibility carefully, but if you want to use the features in the new version, you can use review-update command to update the document folder.
231
+ Re:VIEW is updated regularly. We Re:VIEW team watch the backward compatibility carefully, but if you want to use the features in the new version, you can use review-update command to update the project folder.
214
232
 
215
233
  ```bash
216
234
  $ review-update
217
- ** review-update updates your project to 3.0.0 **
218
- config.yml: Update 'review_version' to '3.0'? [y]/n
235
+ ** review-update updates your project to 4.0.0 **
236
+ config.yml: Update 'review_version' to '4.0'? [y]/n
219
237
  Rakefile will be overridden with Re:VIEW version (/.../review/samples/sample-book/src/Rakefile). Do you really proceed? [y]/n
220
238
  lib/tasks/review.rake will be overridden with Re:VIEW version (/.../review/samples/sample-book/src/lib/tasks/review.rake). Do you really proceed? [y]/n
221
239
  INFO: new file /.../sty/plistings.sty is created.
@@ -231,7 +249,7 @@ Finished.
231
249
 
232
250
  ## Copyright
233
251
 
234
- The original author of Re:VIEW is Minero Aoki. The current maintainer is Kenshi Muto(@kmuto), and committers are Masayoshi Takahashi and Masanori Kado (February 2019).
252
+ The original author of Re:VIEW is Minero Aoki. The current maintainer is Kenshi Muto(@kmuto), and committers are Masayoshi Takahashi and Masanori Kado (December 2019).
235
253
 
236
254
  If you want to report bugs and patches, or to get more information, see:
237
255
 
@@ -136,19 +136,20 @@ module ReVIEW
136
136
 
137
137
  def chapter_index
138
138
  return @chapter_index if @chapter_index
139
-
140
- contents = chapters
141
- # TODO: contents += parts.find_all { |prt| prt.id.present? }
139
+ @chapter_index = ChapterIndex.new
140
+ each_chapter do |chap|
141
+ @chapter_index.add_item(Index::Item.new(chap.id, chap.number, chap))
142
+ end
142
143
  parts.each do |prt|
143
144
  if prt.id.present?
144
- contents << prt
145
+ @chapter_index.add_item(Index::Item.new(prt.id, prt.number, prt))
145
146
  end
146
147
  end
147
- @chapter_index = ChapterIndex.new(contents)
148
+ @chapter_index
148
149
  end
149
150
 
150
151
  def chapter(id)
151
- chapter_index[id]
152
+ chapter_index[id].content
152
153
  end
153
154
 
154
155
  def next_chapter(chapter)
@@ -356,7 +357,7 @@ module ReVIEW
356
357
  res = ''
357
358
  File.open(filename_join(@basedir, filename), 'rt:BOM|utf-8') do |f|
358
359
  f.each_line do |line|
359
- next if /\A#/ =~ line
360
+ next if line.start_with?('#')
360
361
  line.gsub!(/#.*\Z/, '')
361
362
  res << line
362
363
  end