review 3.2.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -4
- data/.travis.yml +1 -1
- data/NEWS.ja.md +97 -1
- data/NEWS.md +97 -1
- data/bin/review-catalog-converter +1 -1
- data/bin/review-check +5 -5
- data/bin/review-checkdep +1 -1
- data/bin/review-compile +5 -5
- data/bin/review-idgxmlmaker +16 -0
- data/bin/review-index +7 -7
- data/bin/review-preproc +9 -9
- data/bin/review-validate +2 -2
- data/bin/review-vol +5 -5
- data/doc/config.yml.sample +14 -6
- data/doc/config.yml.sample-simple +1 -1
- data/doc/format.ja.md +15 -5
- data/doc/format.md +30 -18
- data/doc/pdfmaker.ja.md +1 -1
- data/doc/pdfmaker.md +1 -1
- data/lib/review/book.rb +1 -1
- data/lib/review/book/base.rb +23 -63
- data/lib/review/book/chapter.rb +18 -3
- data/lib/review/book/compilable.rb +5 -0
- data/lib/review/book/index.rb +26 -65
- data/lib/review/book/index/item.rb +40 -0
- data/lib/review/book/part.rb +22 -2
- data/lib/review/builder.rb +60 -40
- data/lib/review/catalog.rb +12 -15
- data/lib/review/compiler.rb +68 -36
- data/lib/review/configure.rb +10 -7
- data/lib/review/epubmaker.rb +5 -2
- data/lib/review/htmlbuilder.rb +24 -71
- data/lib/review/htmlutils.rb +2 -3
- data/lib/review/i18n.rb +2 -2
- data/lib/review/idgxmlbuilder.rb +101 -55
- data/lib/review/idgxmlmaker.rb +184 -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 +110 -26
- data/lib/review/latexbuilder.rb +76 -54
- data/lib/review/lineinput.rb +1 -1
- data/lib/review/logger.rb +4 -8
- data/lib/review/makerhelper.rb +6 -4
- data/lib/review/markdownbuilder.rb +25 -38
- data/lib/review/md2inaobuilder.rb +3 -5
- data/lib/review/pdfmaker.rb +15 -15
- data/lib/review/plaintextbuilder.rb +67 -76
- data/lib/review/preprocessor.rb +13 -13
- data/lib/review/rstbuilder.rb +31 -31
- data/lib/review/textmaker.rb +13 -3
- data/lib/review/textutils.rb +77 -2
- data/lib/review/tocparser.rb +17 -17
- data/lib/review/tocprinter.rb +8 -8
- data/lib/review/topbuilder.rb +76 -57
- data/lib/review/update.rb +16 -16
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +2 -2
- data/lib/review/yamlloader.rb +3 -0
- data/review.gemspec +4 -3
- data/samples/sample-book/README.md +7 -2
- data/samples/sample-book/src/.gitignore +153 -0
- data/samples/sample-book/src/config-jlreq.yml +6 -0
- data/samples/sample-book/src/lib/tasks/review.rake +20 -9
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
- data/samples/syntax-book/ch03.re +3 -6
- data/samples/syntax-book/config-jlreq.yml +5 -0
- data/samples/syntax-book/lib/tasks/review.rake +7 -7
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
- data/templates/latex/config.erb +6 -0
- data/templates/latex/layout.tex.erb +1 -0
- data/templates/latex/review-jlreq/review-base.sty +93 -31
- data/templates/latex/review-jlreq/review-jlreq.cls +6 -0
- data/templates/latex/review-jlreq/review-style.sty +3 -0
- data/templates/latex/review-jsbook/README.md +39 -0
- data/templates/latex/review-jsbook/review-base.sty +65 -10
- data/templates/latex/review-jsbook/review-jsbook.cls +4 -0
- data/templates/latex/review-jsbook/review-style.sty +4 -1
- data/test/assets/test_template.tex +11 -3
- data/test/assets/test_template_backmatter.tex +11 -3
- data/test/test_book.rb +65 -19
- data/test/test_catalog.rb +18 -42
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_epubmaker_cmd.rb +2 -2
- data/test/test_helper.rb +1 -1
- data/test/test_htmlbuilder.rb +144 -55
- data/test/test_i18n.rb +25 -25
- data/test/test_idgxmlbuilder.rb +60 -18
- data/test/test_image_finder.rb +6 -6
- data/test/test_latexbuilder.rb +128 -24
- data/test/test_latexbuilder_v2.rb +23 -23
- data/test/test_logger.rb +14 -1
- data/test/test_makerhelper.rb +3 -3
- data/test/test_markdownbuilder.rb +45 -4
- data/test/test_md2inaobuilder.rb +12 -2
- data/test/test_pdfmaker.rb +1 -1
- data/test/test_pdfmaker_cmd.rb +1 -1
- data/test/test_plaintextbuilder.rb +31 -6
- data/test/test_rstbuilder.rb +33 -4
- data/test/test_textutils.rb +109 -2
- data/test/test_topbuilder.rb +35 -7
- data/test/test_update.rb +17 -8
- data/test/test_yamlloader.rb +13 -0
- metadata +26 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89a4cecb9a961ec87c1238e52ceadaf474caeeef156ff3d22f2d856ed0959511
|
4
|
+
data.tar.gz: 869b3b59d13a0fa2fc8b5812f0c52ae63f3e1faaad59c3ce0d0230d7baacefc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45a497fd65af6dce68031d1ebf4fd04e961462e667c37b1e81082dae503c7d562aa165664c67794731a6997c439066161be3344b58811b6e04ec482b7a07c0ec
|
7
|
+
data.tar.gz: 8944e5336301dc89c65de91656b7084a322b50fdf699ca3e82748206a0c0a5b49a0199e095e25be8258145ec3bde1564de5e7273e31e4272cfc12641f1d0b163
|
data/.rubocop.yml
CHANGED
@@ -193,6 +193,31 @@ Style/LineEndConcatenation:
|
|
193
193
|
Style/MethodCallWithoutArgsParentheses:
|
194
194
|
Enabled: true
|
195
195
|
|
196
|
+
Style/MethodCallWithArgsParentheses:
|
197
|
+
IgnoredMethods:
|
198
|
+
- 'require'
|
199
|
+
- 'include'
|
200
|
+
- 'file'
|
201
|
+
- 'task'
|
202
|
+
- 'desc'
|
203
|
+
- 'info'
|
204
|
+
- 'gem'
|
205
|
+
- 'exit'
|
206
|
+
- 'print'
|
207
|
+
- 'puts'
|
208
|
+
- 'write'
|
209
|
+
- 'warn'
|
210
|
+
- 'error'
|
211
|
+
- 'raise'
|
212
|
+
- 'yield'
|
213
|
+
- 'source'
|
214
|
+
- 'assert'
|
215
|
+
- 'assert_equal'
|
216
|
+
- 'sh'
|
217
|
+
- 'mv'
|
218
|
+
- 'rm_rf'
|
219
|
+
Enabled: true
|
220
|
+
|
196
221
|
Style/MixinUsage:
|
197
222
|
Enabled: false
|
198
223
|
|
@@ -480,8 +505,5 @@ Naming/VariableNumber:
|
|
480
505
|
|
481
506
|
#### Security
|
482
507
|
|
483
|
-
# we use Date object in config.yml so should use YAML.load :-/
|
484
508
|
Security/YAMLLoad:
|
485
|
-
|
486
|
-
- 'lib/review/catalog.rb'
|
487
|
-
- 'test/test_helper.rb'
|
509
|
+
Enabled: true
|
data/.travis.yml
CHANGED
data/NEWS.ja.md
CHANGED
@@ -1,6 +1,102 @@
|
|
1
|
+
# Version 4.0.0
|
2
|
+
## 新機能
|
3
|
+
* IDGXML ファイルをまとめて生成する、review-idgxmlmaker を導入しました ([#1337])
|
4
|
+
* review-textmaker は、imgmath パラメータが有効になっている場合に、数式を画像化するようになりました ([#1338])
|
5
|
+
* review-init に `-w` オプションを指定することで、Web ブラウザ上で TeX のレイアウトができるウィザードモードを用意しました。なお、この機能は実験的であり、将来別のものに置き換える可能性もあります ([#1403])
|
6
|
+
* 実験的実装として、複数行から段落を結合する際に、前後の文字の種類に基づいて空白文字の挿入を行う機能を追加しました。この機能を利用するには、unicode-eaw gem をインストールした上で、config.yml に `join_lines_by_lang: true` を追加してください [#1362]
|
7
|
+
|
8
|
+
## 非互換の変更
|
9
|
+
* 通常の利用では使われることがないので、review-init の実行時に空の layouts フォルダを作成するのをやめました ([#1340])
|
10
|
+
* PDFMaker: `@<code>`、`@<tt>`、`@<tti>`、`@<ttb>` で空白文字が消えてしまう問題を修正しました。および利便性のために、文字列が版面からあふれるときに途中で改行するようにもしました ([#1348])
|
11
|
+
* `//texequation`、`//embed`、`//graph` はもともとインライン命令を許容しないので、内容のエスケープもしないようにしました。また、末尾に余計な空行が加わるのも防ぐようにしました ([#1371], [#1374])
|
12
|
+
* PDFMaker: コラム内での使用を考えて、表の配置のデフォルトを htp (指定位置→ページ上→独立ページの順に試行) から H (絶対に指定位置) にしました (review-style.sty の `\floatplacement{table}` の値) [#1385]
|
13
|
+
* PDFMaker: コードリスト内では和文欧文間の空きを 1/4 文字ではなく 0 にするようにしました ([#1401])
|
14
|
+
* config.yml の目次を制御する toc パラメータの値は、これまで null (false、目次は作らない) でしたが、一般的な利用方法を鑑みて、デフォルトを true (目次を作る) に切り替えました ([#1405])
|
15
|
+
|
16
|
+
## バグ修正
|
17
|
+
* review-jlreq がタイプミスのために一部の jlreq.cls バージョンで正しく動作しないのを修正しました ([#1350])
|
18
|
+
* re ファイルが改行コード CR で記述されたときに不正な結果になるのを修正しました ([#1341])
|
19
|
+
* PDFMaker: review-jlreq において `//cmd` のブロックがページをまたいだときに文字色が黒になって見えなくなってしまうのを修正しました ([#1363])
|
20
|
+
* PDFMaker: `@<column>` で「コラム」ラベルが重複して出力されるのを修正しました ([#1367])
|
21
|
+
* PDFMaker: gentombow.sty と jsbook.cls は review-jsbook の場合のみコピーするようにしました ([#1381])
|
22
|
+
* PDFMaker: LuaLaTeX で review-jlreq を使ったときに壊れた PDFDocumentInformation ができる問題を修正しました ([#1392])
|
23
|
+
* PDFMaker: review-jlreq で偶数ページに隠しノンブルが入らなかったのを修正しました ([#1395])
|
24
|
+
|
25
|
+
## 機能強化
|
26
|
+
* IDGXML ビルダで `@<em>` および `@<strong>` をサポートしました ([#1353])
|
27
|
+
* PDFMaker: コードブロックの各行の処理を `code_line`, `code_line_num` のメソッドに切り出しました ([#1368])
|
28
|
+
* PDFMaker: デフォルトのコンパイルオプションに `-halt-on-error` を追加しました。TeX のコンパイルエラーが発生したときに即終了することで問題が把握しやすくなります ([#1378])
|
29
|
+
* PDFMaker: コラム内に脚注 (`@<fn>`) があるときの挙動がコラムの実装手段によって異なり、番号がずれるなどの問題を起こすことがあるため、脚注の文章 (`//footnote`) はコラムの後に置くことを推奨します。コラム内に脚注文章が存在する場合は警告するようにしました ([#1379])
|
30
|
+
* YAML ファイルのエラーチェックを強化しました ([#1386])
|
31
|
+
* Logger での表示時に標準の progname を使うようにしました ([#1388])
|
32
|
+
* PDFMaker: 電子版の作成時に、表紙のページ番号を偶数とし、名前を「cover」にするようにしました ([#1402])
|
33
|
+
* PDFMaker: `generate_pdf` メソッドのリファクタリングを行いました ([#1404])
|
34
|
+
* プロジェクトの新規作成時に登録除外ファイル一覧の .gitignore ファイルを置くようにしました ([#1407])
|
35
|
+
|
36
|
+
## ドキュメント
|
37
|
+
* sample-book の README.md を更新しました ([#1354])
|
38
|
+
* review-jsbook の README.md に jsbook.cls のオプションの説明を追加しました ([#1365])
|
39
|
+
|
40
|
+
## その他
|
41
|
+
* メソッド引数のコーディングルールを統一しました ([#1360])
|
42
|
+
* `Catalog#{chaps,parts,predef,postdef,appendix}` は String ではなく Array を返すようにしました ([#1372])
|
43
|
+
* YAML ファイルの読み込みに `safe_load` を使うようにしました ([#1375])
|
44
|
+
* `table` メソッドをリファクタリングし、ビルダ個々の処理を簡略化しました ([#1356])
|
45
|
+
* `XXX_header` と `XXX_body` まわりをリファクタリングしました ([#1359])
|
46
|
+
* `Builder#highlight?` メソッドを HTMLBuilder 以外でも利用できるようにしました ([#1373])
|
47
|
+
* mkchap* と mkpart* まわりをリファクタリングしました ([#1383])
|
48
|
+
* Travis CI で rubygems を更新しないようにしました ([#1389])
|
49
|
+
* Index まわりをリファクタリングしました ([#1390])
|
50
|
+
* samples フォルダのサンプルドキュメントに review-jlreq のための設定を追加しました ([#1391])
|
51
|
+
* 用語リストは `:` の前にスペースを入れることを強く推奨するようにしました。スペースがない場合、警告されます ([#1398])
|
52
|
+
|
53
|
+
## コントリビューターのみなさん
|
54
|
+
* [@m-shibata](https://github.com/m-shibata)
|
55
|
+
* [@masarakki](https://github.com/masarakki)
|
56
|
+
|
57
|
+
[#1337]: https://github.com/kmuto/review/issues/1337
|
58
|
+
[#1338]: https://github.com/kmuto/review/issues/1338
|
59
|
+
[#1340]: https://github.com/kmuto/review/issues/1340
|
60
|
+
[#1341]: https://github.com/kmuto/review/issues/1341
|
61
|
+
[#1348]: https://github.com/kmuto/review/issues/1348
|
62
|
+
[#1350]: https://github.com/kmuto/review/issues/1350
|
63
|
+
[#1353]: https://github.com/kmuto/review/pull/1353
|
64
|
+
[#1354]: https://github.com/kmuto/review/pull/1354
|
65
|
+
[#1356]: https://github.com/kmuto/review/pull/1356
|
66
|
+
[#1359]: https://github.com/kmuto/review/pull/1359
|
67
|
+
[#1360]: https://github.com/kmuto/review/pull/1360
|
68
|
+
[#1362]: https://github.com/kmuto/review/pull/1362
|
69
|
+
[#1363]: https://github.com/kmuto/review/issues/1363
|
70
|
+
[#1365]: https://github.com/kmuto/review/pull/1365
|
71
|
+
[#1367]: https://github.com/kmuto/review/issues/1367
|
72
|
+
[#1368]: https://github.com/kmuto/review/issues/1368
|
73
|
+
[#1371]: https://github.com/kmuto/review/pull/1371
|
74
|
+
[#1372]: https://github.com/kmuto/review/pull/1372
|
75
|
+
[#1373]: https://github.com/kmuto/review/pull/1373
|
76
|
+
[#1374]: https://github.com/kmuto/review/pull/1374
|
77
|
+
[#1375]: https://github.com/kmuto/review/pull/1375
|
78
|
+
[#1378]: https://github.com/kmuto/review/pull/1378
|
79
|
+
[#1379]: https://github.com/kmuto/review/issues/1379
|
80
|
+
[#1381]: https://github.com/kmuto/review/issues/1381
|
81
|
+
[#1383]: https://github.com/kmuto/review/issues/1383
|
82
|
+
[#1385]: https://github.com/kmuto/review/issues/1385
|
83
|
+
[#1386]: https://github.com/kmuto/review/pull/1386
|
84
|
+
[#1388]: https://github.com/kmuto/review/pull/1388
|
85
|
+
[#1389]: https://github.com/kmuto/review/pull/1389
|
86
|
+
[#1390]: https://github.com/kmuto/review/pull/1390
|
87
|
+
[#1391]: https://github.com/kmuto/review/pull/1391
|
88
|
+
[#1392]: https://github.com/kmuto/review/issues/1392
|
89
|
+
[#1395]: https://github.com/kmuto/review/issues/1395
|
90
|
+
[#1398]: https://github.com/kmuto/review/issues/1398
|
91
|
+
[#1401]: https://github.com/kmuto/review/pull/1401
|
92
|
+
[#1402]: https://github.com/kmuto/review/pull/1402
|
93
|
+
[#1403]: https://github.com/kmuto/review/pull/1403
|
94
|
+
[#1404]: https://github.com/kmuto/review/pull/1404
|
95
|
+
[#1405]: https://github.com/kmuto/review/pull/1405
|
96
|
+
[#1407]: https://github.com/kmuto/review/pull/1407
|
97
|
+
|
1
98
|
# Version 3.2.0
|
2
99
|
|
3
|
-
## 新機能
|
4
100
|
## 非互換の変更
|
5
101
|
* PDFMaker: `//image` 命令などで画像を配置するときに `\includegraphics` ではなく、それを抽象化した `\reviewincludegraphics` を使うようにしました ([#1318])
|
6
102
|
|
data/NEWS.md
CHANGED
@@ -1,6 +1,102 @@
|
|
1
|
+
# Version 4.0.0
|
2
|
+
## New Features
|
3
|
+
* introduce review-idgxmlmaker which generates IDGXML files at once ([#1337])
|
4
|
+
* review-textmaker converts the math in the document to image files when `imgmath` parameter has `true` ([#1338])
|
5
|
+
* introduce wizard mode to layout of LaTeX on Web browser. Add `-w` option to review-init. This feature is experimental and may be replaced in the future ([#1403])
|
6
|
+
* experimental feature: introduce the feature to insert whitespace based on character when combining lines into a paragraph. To enable this, install unicode-eaw gem and add `join_lines_by_lang: true` into config.yml [#1362]
|
7
|
+
|
8
|
+
## Breaking Changes
|
9
|
+
* review-init no longer creates empty `layouts` folder ([#1340])
|
10
|
+
* PDFMaker: fix a problem that white space characters disappeared in `@<code>`, `@<tt>`, `@<tti>`, and `@<ttb>`. Also the string is automatically wrapped ([#1348])
|
11
|
+
* `//texequation`、`//embed` and `//graph` that don't allow inline op no longer escape inline op in strings. And don't put extra line break ([#1371], [#1374])
|
12
|
+
* PDFMaker: change the default table placement from `htp` to `H` for use in columns (`\floatplacement{table}` value in review-style.sty) [#1385]
|
13
|
+
* PDFMaker: the space between Japanese/Western characters in the code lists is changed to 0 from 1/4 character ([#1401])
|
14
|
+
* change the default value of `toc` parameter from null (false, don't create a table of contents) to true (create a table of contents) ([#1405])
|
15
|
+
|
16
|
+
## Bug Fixes
|
17
|
+
* fix a typo in review-jlreq ([#1350])
|
18
|
+
* fix incorrect result when `re` file uses CR for line-feed code ([#1341])
|
19
|
+
* PDFMaker: fix foreground color of `//cmd` with review-jlreq after page breaking ([#1363])
|
20
|
+
* PDFMaker: fix duplicate 'column' label for `@<column>` ([#1367])
|
21
|
+
* PDFMaker: copy gentombow.sty and jsbook.cls only for review-jsbook ([#1381])
|
22
|
+
* PDFMaker: fix invalid PDFDocumentInformation on review-jlreq with LuaLaTeX ([#1392])
|
23
|
+
* PDFMaker: fix missing hiddenfolio information at even pages on review-jlreq ([#1395])
|
24
|
+
|
25
|
+
## Enhancements
|
26
|
+
* support `@<em>` and `@<strong>` in IDGXMLBuilder ([#1353])
|
27
|
+
* PDFMaker: extract `code_line` and `code_line_num` from code blocks for ease handling each line ([#1368])
|
28
|
+
* PDFMaker: add new compile option `-halt-on-error` to make it easier to find the problem when an error occurs ([#1378])
|
29
|
+
* PDFMaker: when there is a footnote text (`//footnote`) in the column block, it may cuse problems such as numbering. So warn it if there is. ([#1379])
|
30
|
+
* Logger: progname should be add in logger, not in message arguments ([#1388])
|
31
|
+
* improve error checking for yaml files ([#1386])
|
32
|
+
* PDFMaker: the cover page becomes even number (p.0) and is named "cover" ([#1402])
|
33
|
+
* PDFMaker: refactor `generate_pdf` method ([#1404])
|
34
|
+
* create `.gitignore` for new project ([#1407])
|
35
|
+
|
36
|
+
## Docs
|
37
|
+
* update sample-book/README.md ([#1354])
|
38
|
+
* add descriptions about options of jsbook.cls to review-jsbook/README.md ([#1365])
|
39
|
+
|
40
|
+
## Others
|
41
|
+
* unify styles of a method with arguments ([#1360])
|
42
|
+
* `Catalog#{chaps,parts,predef,postdef,appendix}` should return Array, not String ([#1372])
|
43
|
+
* use `safe_load` for loading YAML ([#1375])
|
44
|
+
* refactor `table` method to simplify each builder ([#1356])
|
45
|
+
* refactor `XXX_header` and `XXX_body` ([#1359])
|
46
|
+
* enable `Builder#highlight?` method on each builder ([#1373])
|
47
|
+
* refactor mkdchap* and mkpart* ([#1383])
|
48
|
+
* don't update rubygems in Travis CI ([#1389])
|
49
|
+
* refactor around Index ([#1390])
|
50
|
+
* add configration for review-jlreq to sample documents ([#1391])
|
51
|
+
* definition list should start with spaces ([#1398])
|
52
|
+
|
53
|
+
## Contributors
|
54
|
+
* [@m-shibata](https://github.com/m-shibata)
|
55
|
+
* [@masarakki](https://github.com/masarakki)
|
56
|
+
|
57
|
+
[#1337]: https://github.com/kmuto/review/issues/1337
|
58
|
+
[#1338]: https://github.com/kmuto/review/issues/1338
|
59
|
+
[#1340]: https://github.com/kmuto/review/issues/1340
|
60
|
+
[#1341]: https://github.com/kmuto/review/issues/1341
|
61
|
+
[#1348]: https://github.com/kmuto/review/issues/1348
|
62
|
+
[#1350]: https://github.com/kmuto/review/issues/1350
|
63
|
+
[#1353]: https://github.com/kmuto/review/pull/1353
|
64
|
+
[#1354]: https://github.com/kmuto/review/pull/1354
|
65
|
+
[#1356]: https://github.com/kmuto/review/pull/1356
|
66
|
+
[#1359]: https://github.com/kmuto/review/pull/1359
|
67
|
+
[#1360]: https://github.com/kmuto/review/pull/1360
|
68
|
+
[#1362]: https://github.com/kmuto/review/pull/1362
|
69
|
+
[#1363]: https://github.com/kmuto/review/issues/1363
|
70
|
+
[#1365]: https://github.com/kmuto/review/pull/1365
|
71
|
+
[#1367]: https://github.com/kmuto/review/issues/1367
|
72
|
+
[#1368]: https://github.com/kmuto/review/issues/1368
|
73
|
+
[#1371]: https://github.com/kmuto/review/pull/1371
|
74
|
+
[#1372]: https://github.com/kmuto/review/pull/1372
|
75
|
+
[#1373]: https://github.com/kmuto/review/pull/1373
|
76
|
+
[#1374]: https://github.com/kmuto/review/pull/1374
|
77
|
+
[#1375]: https://github.com/kmuto/review/pull/1375
|
78
|
+
[#1378]: https://github.com/kmuto/review/pull/1378
|
79
|
+
[#1379]: https://github.com/kmuto/review/issues/1379
|
80
|
+
[#1381]: https://github.com/kmuto/review/issues/1381
|
81
|
+
[#1383]: https://github.com/kmuto/review/issues/1383
|
82
|
+
[#1385]: https://github.com/kmuto/review/issues/1385
|
83
|
+
[#1386]: https://github.com/kmuto/review/pull/1386
|
84
|
+
[#1388]: https://github.com/kmuto/review/pull/1388
|
85
|
+
[#1389]: https://github.com/kmuto/review/pull/1389
|
86
|
+
[#1390]: https://github.com/kmuto/review/pull/1390
|
87
|
+
[#1391]: https://github.com/kmuto/review/pull/1391
|
88
|
+
[#1392]: https://github.com/kmuto/review/issues/1392
|
89
|
+
[#1395]: https://github.com/kmuto/review/issues/1395
|
90
|
+
[#1398]: https://github.com/kmuto/review/issues/1398
|
91
|
+
[#1401]: https://github.com/kmuto/review/pull/1401
|
92
|
+
[#1402]: https://github.com/kmuto/review/pull/1402
|
93
|
+
[#1403]: https://github.com/kmuto/review/pull/1403
|
94
|
+
[#1404]: https://github.com/kmuto/review/pull/1404
|
95
|
+
[#1405]: https://github.com/kmuto/review/pull/1405
|
96
|
+
[#1407]: https://github.com/kmuto/review/pull/1407
|
97
|
+
|
1
98
|
# Version 3.2.0
|
2
99
|
|
3
|
-
## New Features
|
4
100
|
## Breaking Changes
|
5
101
|
* PDFMaker: changed to use the abstract name `\reviewincludegraphics` instead of `\includegraphics` for image placements (such as `//image`) ([#1318])
|
6
102
|
|
@@ -140,7 +140,7 @@ end
|
|
140
140
|
def replace_old_style_part(dir)
|
141
141
|
catalog = ReVIEW::Catalog.new(File.open("#{dir}/catalog.yml"))
|
142
142
|
Array.new(catalog.parts.split("\n")).each_with_index do |part, part_idx|
|
143
|
-
next if part.end_with?
|
143
|
+
next if part.end_with?('.re')
|
144
144
|
|
145
145
|
allow_overwrite = true
|
146
146
|
part_name = sprintf('part%d.re', part_idx + 1)
|
data/bin/review-check
CHANGED
@@ -50,7 +50,7 @@ def main
|
|
50
50
|
end
|
51
51
|
opts.on('--text', 'Check text.') do
|
52
52
|
modes ||= []
|
53
|
-
modes.push
|
53
|
+
modes.push(:text)
|
54
54
|
end
|
55
55
|
opts.on('--help', 'print this message and quit.') do
|
56
56
|
puts opts.help
|
@@ -72,7 +72,7 @@ def main
|
|
72
72
|
modes.each do |mode|
|
73
73
|
case mode
|
74
74
|
when :text
|
75
|
-
check_text
|
75
|
+
check_text(files)
|
76
76
|
else
|
77
77
|
raise 'must not happen'
|
78
78
|
end
|
@@ -122,9 +122,9 @@ def words_re(rc)
|
|
122
122
|
next if line[0, 1] == '#'
|
123
123
|
if / !/ =~ line
|
124
124
|
line, n = *line.split('!', 2)
|
125
|
-
nega.push
|
125
|
+
nega.push(n.strip)
|
126
126
|
end
|
127
|
-
words.push
|
127
|
+
words.push(line.strip)
|
128
128
|
end
|
129
129
|
return Regexp.compile(words.join('|')),
|
130
130
|
nega.empty? ? nil : Regexp.compile(nega.join('|'))
|
@@ -157,7 +157,7 @@ def each_paragraph(f)
|
|
157
157
|
break if line.strip.empty?
|
158
158
|
break if %r{\A(?:=|//[\w\}])} =~ line
|
159
159
|
next if /\A\#@/ =~ line
|
160
|
-
buf.push
|
160
|
+
buf.push(line.strip)
|
161
161
|
end
|
162
162
|
yield buf, lineno
|
163
163
|
@review_utils_word_ok = nil
|
data/bin/review-checkdep
CHANGED
data/bin/review-compile
CHANGED
@@ -88,7 +88,7 @@ def _main
|
|
88
88
|
compiler = ReVIEW::Compiler.new(load_strategy_class(@target, @check_only))
|
89
89
|
result = compiler.compile(chap)
|
90
90
|
if @output_filename
|
91
|
-
write
|
91
|
+
write(@output_filename, result)
|
92
92
|
else
|
93
93
|
puts result unless @check_only
|
94
94
|
end
|
@@ -99,12 +99,12 @@ def _main
|
|
99
99
|
compiler = ReVIEW::Compiler.new(load_strategy_class(@target, @check_only))
|
100
100
|
book.chapters.each do |chap|
|
101
101
|
str = compiler.compile(chap)
|
102
|
-
write
|
102
|
+
write("#{chap.name}#{compiler.strategy.extname}", str) unless @check_only
|
103
103
|
end
|
104
104
|
# PART
|
105
105
|
book.parts_in_file.each do |part|
|
106
106
|
str = compiler.compile(part)
|
107
|
-
write
|
107
|
+
write("#{part.name}#{compiler.strategy.extname}", str) unless @check_only
|
108
108
|
end
|
109
109
|
else
|
110
110
|
raise "must not happen: #{@mode}"
|
@@ -170,12 +170,12 @@ def parse_opts
|
|
170
170
|
end
|
171
171
|
|
172
172
|
def error(msg)
|
173
|
-
@logger.error
|
173
|
+
@logger.error msg
|
174
174
|
exit 1
|
175
175
|
end
|
176
176
|
|
177
177
|
def warn(msg)
|
178
|
-
@logger.warn
|
178
|
+
@logger.warn msg
|
179
179
|
end
|
180
180
|
|
181
181
|
def load_strategy_class(target, strict)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (c) 2019 Kenshi Muto
|
3
|
+
#
|
4
|
+
# This program is free software.
|
5
|
+
# You can distribute or modify this program under the terms of
|
6
|
+
# the GNU LGPL, Lesser General Public License version 2.1.
|
7
|
+
# For details of the GNU LGPL, see the file "COPYING".
|
8
|
+
#
|
9
|
+
|
10
|
+
require 'pathname'
|
11
|
+
bindir = Pathname.new(__FILE__).realpath.dirname
|
12
|
+
$LOAD_PATH.unshift((bindir + '../lib').realpath)
|
13
|
+
|
14
|
+
require 'review/idgxmlmaker'
|
15
|
+
|
16
|
+
ReVIEW::IDGXMLMaker.execute(*ARGV)
|
data/bin/review-index
CHANGED
@@ -45,13 +45,13 @@ def _main
|
|
45
45
|
opts.on('-a', '--all', 'print all chapters.') { source = book }
|
46
46
|
opts.on('-p', '--part N', 'list only part N.') do |n|
|
47
47
|
source = book.part(Integer(n)) or
|
48
|
-
error_exit
|
48
|
+
error_exit("part #{n} does not exist in this book")
|
49
49
|
end
|
50
50
|
opts.on('-c', '--chapter C', 'list only chapter C.') do |c|
|
51
51
|
begin
|
52
52
|
source = ReVIEW::Book::Part.new(nil, 1, [book.chapter(c)])
|
53
53
|
rescue
|
54
|
-
error_exit
|
54
|
+
error_exit("chapter #{c} does not exist in this book")
|
55
55
|
end
|
56
56
|
end
|
57
57
|
opts.on('-l', '--level N', 'list upto N level (1..4, default=4)') do |n|
|
@@ -79,7 +79,7 @@ def _main
|
|
79
79
|
book.load_config(yamlfile) if yamlfile
|
80
80
|
|
81
81
|
if source
|
82
|
-
error_exit
|
82
|
+
error_exit('-a/-s option and file arguments are exclusive') unless ARGV.empty?
|
83
83
|
else
|
84
84
|
puts opts.help
|
85
85
|
exit 0
|
@@ -88,18 +88,18 @@ def _main
|
|
88
88
|
begin
|
89
89
|
printer = printer_class.new(upper, param)
|
90
90
|
if source.is_a?(ReVIEW::Book::Part)
|
91
|
-
printer.print_part
|
91
|
+
printer.print_part(source)
|
92
92
|
else
|
93
|
-
printer.print_book
|
93
|
+
printer.print_book(source)
|
94
94
|
end
|
95
95
|
rescue ReVIEW::Error, Errno::ENOENT => e
|
96
96
|
raise if $DEBUG
|
97
|
-
error_exit
|
97
|
+
error_exit(e.message)
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
101
|
def error_exit(msg)
|
102
|
-
@logger.error
|
102
|
+
@logger.error msg
|
103
103
|
exit 1
|
104
104
|
end
|
105
105
|
|
data/bin/review-preproc
CHANGED
@@ -39,7 +39,7 @@ def main
|
|
39
39
|
if ENV['REVIEW_SAFE_MODE'].to_i & 2 > 0
|
40
40
|
@logger.warn 'review-preproc-ext.rb is prohibited in safe mode. ignored.'
|
41
41
|
else
|
42
|
-
Kernel.load
|
42
|
+
Kernel.load(File.expand_path('review-preproc-ext.rb'))
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -71,21 +71,21 @@ def main
|
|
71
71
|
current_file = path
|
72
72
|
case mode
|
73
73
|
when :output
|
74
|
-
File.open(path) { |f| pp.process
|
74
|
+
File.open(path) { |f| pp.process(f, $stdout) }
|
75
75
|
when :replace
|
76
|
-
File.write
|
77
|
-
File.rename
|
76
|
+
File.write("#{path}.pptmp", preproc(pp, path))
|
77
|
+
File.rename("#{path}.pptmp", path)
|
78
78
|
when :diff, :check
|
79
79
|
tmp = '/tmp/review.pptmp'
|
80
80
|
begin
|
81
|
-
File.write
|
81
|
+
File.write(tmp, preproc(pp, path))
|
82
82
|
if mode == :check
|
83
|
-
system
|
83
|
+
system("diff -qu #{path} #{tmp} >/dev/null || echo #{path}")
|
84
84
|
else
|
85
|
-
system
|
85
|
+
system("diff -u #{path} #{tmp}")
|
86
86
|
end
|
87
87
|
ensure
|
88
|
-
FileUtils.rm_f
|
88
|
+
FileUtils.rm_f(tmp)
|
89
89
|
end
|
90
90
|
else
|
91
91
|
raise "must not happen: #{mode}"
|
@@ -99,7 +99,7 @@ end
|
|
99
99
|
|
100
100
|
def preproc(pp, path)
|
101
101
|
buf = StringIO.new
|
102
|
-
File.open(path) { |f| pp.process
|
102
|
+
File.open(path) { |f| pp.process(f, buf) }
|
103
103
|
buf.string
|
104
104
|
end
|
105
105
|
|