review 5.8.0 → 5.10.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/rubocop.yml +1 -1
- data/.github/workflows/ruby-tex.yml +13 -4
- data/.github/workflows/ruby-win.yml +1 -1
- data/.github/workflows/ruby.yml +1 -1
- data/.rubocop.yml +4 -1
- data/NEWS.ja.md +41 -0
- data/NEWS.md +41 -0
- data/README.md +1 -1
- data/doc/config.yml.sample +1 -1
- data/lib/review/book/base.rb +4 -0
- data/lib/review/book/cache.rb +54 -0
- data/lib/review/book/image_finder.rb +3 -1
- data/lib/review/builder.rb +8 -8
- data/lib/review/compiler.rb +2 -2
- data/lib/review/epubmaker/epubcommon.rb +11 -11
- data/lib/review/epubmaker.rb +8 -3
- data/lib/review/htmlbuilder.rb +13 -13
- data/lib/review/htmltoc.rb +1 -1
- data/lib/review/idgxmlbuilder.rb +10 -10
- data/lib/review/latexbuilder.rb +6 -6
- data/lib/review/logger.rb +2 -2
- data/lib/review/markdownbuilder.rb +4 -4
- data/lib/review/pdfmaker.rb +11 -1
- data/lib/review/plaintextbuilder.rb +1 -1
- data/lib/review/textutils.rb +2 -2
- data/lib/review/tocprinter.rb +2 -2
- data/lib/review/version.rb +1 -1
- data/lib/review/yamlloader.rb +2 -0
- data/review.gemspec +5 -3
- data/samples/sample-book/src/config-epub2.yml +1 -1
- data/samples/syntax-book/config-jlreq.yml +3 -3
- data/templates/latex/review-jlreq/README.md +4 -1
- data/templates/latex/review-jlreq/review-base.sty +9 -4
- data/templates/latex/review-jsbook/review-base.sty +9 -4
- metadata +38 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2a456720c918f2f50342dfbd711d1d1b5dbc78d73ff311f28ac1614797f358a
|
4
|
+
data.tar.gz: a674bd3277e09fc000f390036824472f2fdf1a51468efe513fe23f21c44246bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0e3c8e8fdc5ea94c7931ddc1292e8a6a59717cbf6bb82e4c56233ef054fb3756dfb961f937252328951e66be184b4f924a8c8ca9bcb820bcb3d3567f98e4672
|
7
|
+
data.tar.gz: 7eff5222bde84c529d9688dd1f64c92c414cea0f20191f45ecf25c972f7a79bc3cb01c6381595063110c0f5abe816b01b9ee3fdffea29d0b671dcdf94959dfb7
|
@@ -13,18 +13,26 @@ jobs:
|
|
13
13
|
strategy:
|
14
14
|
fail-fast: false
|
15
15
|
matrix:
|
16
|
-
ruby: ['
|
17
|
-
os: [ubuntu-
|
16
|
+
ruby: ['3.2']
|
17
|
+
os: [ubuntu-22.04]
|
18
18
|
steps:
|
19
19
|
- uses: actions/checkout@v2
|
20
|
-
- name: Install TeXLive
|
20
|
+
- name: Install TeXLive 2021 in ubuntu
|
21
21
|
if: runner.os == 'Linux'
|
22
22
|
run: |
|
23
|
-
sudo apt-get update -y -qq && sudo apt-get install -y -qq texlive-lang-japanese texlive-fonts-recommended texlive-fonts-extra texlive-luatex texlive-extra-utils texlive-latex-extra dvipng poppler-utils
|
23
|
+
sudo apt-get update -y -qq && sudo apt-get install -y -qq texlive-lang-japanese texlive-fonts-recommended texlive-fonts-extra texlive-luatex texlive-extra-utils texlive-latex-extra dvipng poppler-utils libfuse2
|
24
24
|
- name: Set up Ruby
|
25
25
|
uses: ruby/setup-ruby@v1
|
26
26
|
with:
|
27
27
|
ruby-version: ${{ matrix.ruby }}
|
28
|
+
- name: use vendor's imagemagick
|
29
|
+
run: |
|
30
|
+
export PATH=${GITHUB_WORKSPACE}/vendor/imagemagick:${PATH}
|
31
|
+
chmod 755 ${GITHUB_WORKSPACE}/vendor/imagemagick/magick
|
32
|
+
ln -s ${GITHUB_WORKSPACE}/vendor/imagemagick/magick ${GITHUB_WORKSPACE}/vendor/imagemagick/compare
|
33
|
+
which compare
|
34
|
+
magick -version
|
35
|
+
compare -version
|
28
36
|
- name: fix ImageMagick policy.xml on Linux
|
29
37
|
if: runner.os == 'Linux'
|
30
38
|
run: sudo sed -i 's/none/read|write/g' /etc/ImageMagick-6/policy.xml
|
@@ -34,6 +42,7 @@ jobs:
|
|
34
42
|
node-version: 18
|
35
43
|
- name: Build and test with Rake
|
36
44
|
run: |
|
45
|
+
export PATH=${GITHUB_WORKSPACE}/vendor/imagemagick:${PATH}
|
37
46
|
gem install bundler --no-document
|
38
47
|
bundle install --retry 3
|
39
48
|
bundle exec rake
|
data/.github/workflows/ruby.yml
CHANGED
data/.rubocop.yml
CHANGED
@@ -5,7 +5,7 @@ AllCops:
|
|
5
5
|
- tmp/*
|
6
6
|
DisplayCopNames: true
|
7
7
|
NewCops: enable
|
8
|
-
TargetRubyVersion:
|
8
|
+
TargetRubyVersion: 3.0
|
9
9
|
|
10
10
|
require:
|
11
11
|
- rubocop-performance
|
@@ -41,6 +41,9 @@ Performance/CollectionLiteralInLoop:
|
|
41
41
|
Performance/MapCompact:
|
42
42
|
Enabled: false
|
43
43
|
|
44
|
+
Performance/StringIdentifierArgument:
|
45
|
+
Enabled: false
|
46
|
+
|
44
47
|
#### Style
|
45
48
|
|
46
49
|
Style/AsciiComments:
|
data/NEWS.ja.md
CHANGED
@@ -1,3 +1,44 @@
|
|
1
|
+
# Version 5.10.0
|
2
|
+
## バグ修正
|
3
|
+
* サブディレクトリとカスタムページを両方指定するとエラーが発生するバグを修正しました([#1913],[#1914])
|
4
|
+
* EPUBBuilder: ビルド時間が長い問題を解決しました([#1915],[#1916],[#1919])
|
5
|
+
* ImageMagickのcompareのmetricに`SSIM`を使うように変更し、環境によってテストが失敗する問題を修正しました([#1917],[#1921])
|
6
|
+
* EPUBMaker: `verify_target_images`が有効な場合、coverimageを暗黙に取り込むよう修正しました([#1918],[#1923])
|
7
|
+
|
8
|
+
## 機能強化
|
9
|
+
* Ruby 3.4で`csv` gemと`nkf` gemがdefault gemではなくなる警告に対応しました([#1911])
|
10
|
+
|
11
|
+
## コントリビューターのみなさん
|
12
|
+
* [@fabon-f](https://github.com/fabon-f)
|
13
|
+
|
14
|
+
[#1911]: https://github.com/kmuto/review/pull/1911
|
15
|
+
[#1913]: https://github.com/kmuto/review/issues/1913
|
16
|
+
[#1914]: https://github.com/kmuto/review/pull/1914
|
17
|
+
[#1915]: https://github.com/kmuto/review/issues/1915
|
18
|
+
[#1916]: https://github.com/kmuto/review/issues/1916
|
19
|
+
[#1917]: https://github.com/kmuto/review/issues/1917
|
20
|
+
[#1918]: https://github.com/kmuto/review/issues/1918
|
21
|
+
[#1919]: https://github.com/kmuto/review/pull/1919
|
22
|
+
[#1921]: https://github.com/kmuto/review/pull/1921
|
23
|
+
[#1923]: https://github.com/kmuto/review/pull/1923
|
24
|
+
|
25
|
+
# Version 5.9.0
|
26
|
+
## バグ修正
|
27
|
+
* LATEXBuilder: `@<code>`, `@<tt>`, `@<tti>`, `@<ttb>`での空白幅が適切になるよう修正しました。またPDF栞の扱いを改善しました([#1906],[#1907])。
|
28
|
+
|
29
|
+
## 機能強化
|
30
|
+
* `review-jlreq.cls`のUsers Guideで用紙サイズの指定にJIS B列とISO B列を区別するようにしました([#1904])
|
31
|
+
* `config.yml.sample`での誤記を修正しました([#1909])
|
32
|
+
|
33
|
+
## コントリビューターのみなさん
|
34
|
+
* [@munepi](https://github.com/munepi)
|
35
|
+
* [@koshikawa](https://github.com/koshikawa)
|
36
|
+
|
37
|
+
[#1904]: https://github.com/kmuto/review/pull/1904
|
38
|
+
[#1906]: https://github.com/kmuto/review/issues/1906
|
39
|
+
[#1907]: https://github.com/kmuto/review/pull/1907
|
40
|
+
[#1909]: https://github.com/kmuto/review/pull/1909
|
41
|
+
|
1
42
|
# Version 5.8.0
|
2
43
|
## 新機能
|
3
44
|
* `//graph` 命令でMermaid記法によるグラフ記述ができるようになりました。外部ツールの用意や設定については`doc/format.ja.md`を参照してください ([#1885])
|
data/NEWS.md
CHANGED
@@ -1,3 +1,44 @@
|
|
1
|
+
# Version 5.10.0
|
2
|
+
## Bug Fixes
|
3
|
+
* Fixed an issue where specifying both a subdirectory and a custom page would cause an error ([#1913], [#1914]).
|
4
|
+
* EPUBBuilder: Resolved an issue with long build times. ([#1915], [#1916], [#1919]).
|
5
|
+
* EPUBMaker: When `verify_target_images` is enabled, modified to implicitly include coverimage ([#1918], [#1923]).
|
6
|
+
* Changed the metric option of ImageMagick's compare command to use `SSIM` ([#1917], [#1921]).
|
7
|
+
|
8
|
+
## Enhancements
|
9
|
+
* Resolved warnings about the `csv` and `nkf` gems no longer being default gems in Ruby 3.4 ([#1911]).
|
10
|
+
|
11
|
+
## Contributors
|
12
|
+
* [@fabon-f](https://github.com/fabon-f)
|
13
|
+
|
14
|
+
[#1911]: https://github.com/kmuto/review/pull/1911
|
15
|
+
[#1913]: https://github.com/kmuto/review/issues/1913
|
16
|
+
[#1914]: https://github.com/kmuto/review/pull/1914
|
17
|
+
[#1915]: https://github.com/kmuto/review/issues/1915
|
18
|
+
[#1916]: https://github.com/kmuto/review/issues/1916
|
19
|
+
[#1917]: https://github.com/kmuto/review/issues/1917
|
20
|
+
[#1918]: https://github.com/kmuto/review/issues/1918
|
21
|
+
[#1919]: https://github.com/kmuto/review/pull/1919
|
22
|
+
[#1921]: https://github.com/kmuto/review/pull/1921
|
23
|
+
[#1923]: https://github.com/kmuto/review/pull/1923
|
24
|
+
|
25
|
+
# Version 5.9.0
|
26
|
+
## Bug Fixes
|
27
|
+
* LATEXBuilder: fix the spacing for `@<code>`, `@<tt>`, `@<tti>`, `@<ttb>` to be more appropriate. Also improved handling of PDF bookmarks ([#1906], [#1907]).
|
28
|
+
|
29
|
+
## Enhancements
|
30
|
+
* differentiated between JIS B and ISO B paper sizes in `review-jlreq.cls` Users Guide ([#1904]).
|
31
|
+
* fix typos in `config.yml.sample` ([#1909]).
|
32
|
+
|
33
|
+
## Contributors
|
34
|
+
* [@munepi](https://github.com/munepi)
|
35
|
+
* [@koshikawa](https://github.com/koshikawa)
|
36
|
+
|
37
|
+
[#1904]: https://github.com/kmuto/review/pull/1904
|
38
|
+
[#1906]: https://github.com/kmuto/review/issues/1906
|
39
|
+
[#1907]: https://github.com/kmuto/review/pull/1907
|
40
|
+
[#1909]: https://github.com/kmuto/review/pull/1909
|
41
|
+
|
1
42
|
# Version 5.8.0
|
2
43
|
## New Features
|
3
44
|
* The `//graph` operator allows graphical description in Mermaid notation. See `doc/format.md` for details on prepairing and setting up external tools ([#1885])
|
data/README.md
CHANGED
data/doc/config.yml.sample
CHANGED
@@ -332,7 +332,7 @@ epubmaker:
|
|
332
332
|
# 画像ファイルの縦x横の最大ピクセル数許容値
|
333
333
|
# image_maxpixels: 4000000
|
334
334
|
#
|
335
|
-
# Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,
|
335
|
+
# Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02...、後付にpost01,post02...という名前付けルールにするか
|
336
336
|
# rename_for_legacy: null
|
337
337
|
#
|
338
338
|
# ePUBアーカイブの非圧縮実行
|
data/lib/review/book/base.rb
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
require 'review/configure'
|
11
11
|
require 'review/catalog'
|
12
12
|
require 'review/book/bib'
|
13
|
+
require 'review/book/cache'
|
13
14
|
|
14
15
|
module ReVIEW
|
15
16
|
module Book
|
@@ -19,6 +20,7 @@ module ReVIEW
|
|
19
20
|
attr_accessor :catalog
|
20
21
|
attr_reader :basedir
|
21
22
|
attr_accessor :bibpaper_index
|
23
|
+
attr_reader :cache
|
22
24
|
|
23
25
|
def self.load(basedir = '.', config: nil)
|
24
26
|
new(basedir, config: config)
|
@@ -39,6 +41,8 @@ module ReVIEW
|
|
39
41
|
|
40
42
|
@warn_old_files = {} # XXX for checking CHAPS, PREDEF, POSTDEF
|
41
43
|
@basedir_seen = {}
|
44
|
+
|
45
|
+
@cache = ReVIEW::Book::Cache.new
|
42
46
|
update_rubyenv
|
43
47
|
end
|
44
48
|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2014-2024 Minero Aoki, Kenshi Muto, Masayoshi Takahashi
|
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 LGPL, see the file "COPYING".
|
8
|
+
#
|
9
|
+
module ReVIEW
|
10
|
+
module Book
|
11
|
+
class Cache
|
12
|
+
def initialize
|
13
|
+
@store = {}
|
14
|
+
end
|
15
|
+
|
16
|
+
def reset
|
17
|
+
@store.clear
|
18
|
+
end
|
19
|
+
|
20
|
+
# key should be Symbol, not String
|
21
|
+
def fetch(key, &block)
|
22
|
+
raise ArgumentError, 'Key should be Symbol' unless key.is_a?(Symbol)
|
23
|
+
|
24
|
+
if cached?(key)
|
25
|
+
read(key)
|
26
|
+
else
|
27
|
+
exec_block_and_save(key, &block)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def cached?(key)
|
32
|
+
@store.key?(key)
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def read(key)
|
38
|
+
@store[key]
|
39
|
+
end
|
40
|
+
|
41
|
+
def write(key, value)
|
42
|
+
@store[key] = value
|
43
|
+
end
|
44
|
+
|
45
|
+
def exec_block_and_save(key)
|
46
|
+
result = yield(key)
|
47
|
+
|
48
|
+
write(key, result)
|
49
|
+
|
50
|
+
result
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -26,7 +26,9 @@ module ReVIEW
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def dir_entries
|
29
|
-
|
29
|
+
@book.cache.fetch(:image_finder_dir_entries) do
|
30
|
+
Dir.glob(File.join(@basedir, '**{,/*/**}/*.*')).uniq.sort.map { |entry| entry.sub(%r{^\./}, '') }
|
31
|
+
end
|
30
32
|
end
|
31
33
|
|
32
34
|
def add_entry(path)
|
data/lib/review/builder.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2002-
|
1
|
+
# Copyright (c) 2002-2024 Minero Aoki, Kenshi Muto
|
2
2
|
#
|
3
3
|
# This program is free software.
|
4
4
|
# You can distribute or modify this program under the terms of
|
@@ -133,7 +133,7 @@ module ReVIEW
|
|
133
133
|
end
|
134
134
|
|
135
135
|
def target_name
|
136
|
-
self.class.to_s.gsub(
|
136
|
+
self.class.to_s.gsub('ReVIEW::', '').gsub('Builder', '').downcase
|
137
137
|
end
|
138
138
|
|
139
139
|
def load_words(file)
|
@@ -405,10 +405,10 @@ module ReVIEW
|
|
405
405
|
def inline_ruby(arg)
|
406
406
|
base, *ruby = *arg.scan(/(?:(?:(?:\\\\)*\\,)|[^,\\]+)+/)
|
407
407
|
if base
|
408
|
-
base = base.gsub(
|
408
|
+
base = base.gsub('\,', ',').strip
|
409
409
|
end
|
410
410
|
if ruby
|
411
|
-
ruby = ruby.join(',').gsub(
|
411
|
+
ruby = ruby.join(',').gsub('\,', ',').strip
|
412
412
|
end
|
413
413
|
compile_ruby(base, ruby)
|
414
414
|
end
|
@@ -420,9 +420,9 @@ module ReVIEW
|
|
420
420
|
|
421
421
|
def inline_href(arg)
|
422
422
|
url, label = *arg.scan(/(?:(?:(?:\\\\)*\\,)|[^,\\]+)+/).map(&:lstrip)
|
423
|
-
url = url.gsub(
|
423
|
+
url = url.gsub('\,', ',').strip
|
424
424
|
if label
|
425
|
-
label = label.gsub(
|
425
|
+
label = label.gsub('\,', ',').strip
|
426
426
|
end
|
427
427
|
compile_href(url, label)
|
428
428
|
end
|
@@ -640,7 +640,7 @@ module ReVIEW
|
|
640
640
|
tf.puts content
|
641
641
|
tf.close
|
642
642
|
begin
|
643
|
-
file_path = send("graph_#{command}"
|
643
|
+
file_path = send(:"graph_#{command}", id, file_path, content, tf.path)
|
644
644
|
ensure
|
645
645
|
tf.unlink
|
646
646
|
end
|
@@ -773,7 +773,7 @@ EOTGNUPLOT
|
|
773
773
|
## override TextUtils::detab
|
774
774
|
def detab(str, num = nil)
|
775
775
|
if num
|
776
|
-
super
|
776
|
+
super
|
777
777
|
elsif @tabwidth
|
778
778
|
super(str, @tabwidth)
|
779
779
|
else
|
data/lib/review/compiler.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2009-
|
1
|
+
# Copyright (c) 2009-2024 Minero Aoki, Kenshi Muto
|
2
2
|
# Copyright (c) 2002-2007 Minero Aoki
|
3
3
|
#
|
4
4
|
# This program is free software.
|
@@ -681,7 +681,7 @@ module ReVIEW
|
|
681
681
|
end
|
682
682
|
break if words.empty?
|
683
683
|
|
684
|
-
result << compile_inline(revert_replace_fence(words.shift.gsub(
|
684
|
+
result << compile_inline(revert_replace_fence(words.shift.gsub('\\}', '}').gsub('\\\\', '\\')))
|
685
685
|
end
|
686
686
|
result
|
687
687
|
rescue StandardError => e
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# = epubcommon.rb -- super class for EPUBv2 and EPUBv3
|
2
2
|
#
|
3
|
-
# Copyright (c) 2010-
|
3
|
+
# Copyright (c) 2010-2024 Kenshi Muto and Masayoshi Takahashi
|
4
4
|
#
|
5
5
|
# This program is free software.
|
6
6
|
# You can distribute or modify this program under the terms of
|
@@ -320,19 +320,19 @@ module ReVIEW
|
|
320
320
|
end
|
321
321
|
|
322
322
|
def produce_write_common(basedir, tmpdir)
|
323
|
-
File.write(
|
323
|
+
File.write(File.join(tmpdir, 'mimetype'), mimetype)
|
324
324
|
|
325
|
-
FileUtils.mkdir_p(
|
326
|
-
File.write(
|
325
|
+
FileUtils.mkdir_p(File.join(tmpdir, 'META-INF'))
|
326
|
+
File.write(File.join(tmpdir, 'META-INF', 'container.xml'), container)
|
327
327
|
|
328
|
-
FileUtils.mkdir_p(
|
328
|
+
FileUtils.mkdir_p(File.join(tmpdir, 'OEBPS'))
|
329
329
|
File.write(File.join(tmpdir, opf_path), opf)
|
330
330
|
|
331
331
|
if config['cover']
|
332
|
-
if File.exist?(
|
333
|
-
FileUtils.cp(
|
332
|
+
if File.exist?(File.join(basedir, File.basename(config['cover'])))
|
333
|
+
FileUtils.cp(File.join(basedir, File.basename(config['cover'])), File.join(tmpdir, 'OEBPS'))
|
334
334
|
else
|
335
|
-
File.write(
|
335
|
+
File.write(File.join(tmpdir, 'OEBPS', File.basename(config['cover'])), cover)
|
336
336
|
end
|
337
337
|
end
|
338
338
|
|
@@ -344,13 +344,13 @@ module ReVIEW
|
|
344
344
|
contents.each do |item|
|
345
345
|
next if /#/.match?(item.file) # skip subgroup
|
346
346
|
|
347
|
-
fname =
|
347
|
+
fname = File.join(basedir, item.file)
|
348
348
|
unless File.exist?(fname)
|
349
349
|
raise ApplicationError, "#{fname} is not found."
|
350
350
|
end
|
351
351
|
|
352
|
-
FileUtils.mkdir_p(File.dirname(
|
353
|
-
FileUtils.cp(fname,
|
352
|
+
FileUtils.mkdir_p(File.dirname(File.join(tmpdir, 'OEBPS', item.file)))
|
353
|
+
FileUtils.cp(fname, File.join(tmpdir, 'OEBPS', item.file))
|
354
354
|
end
|
355
355
|
end
|
356
356
|
|
data/lib/review/epubmaker.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2010-
|
1
|
+
# Copyright (c) 2010-2024 Kenshi Muto and Masayoshi Takahashi
|
2
2
|
#
|
3
3
|
# This program is free software.
|
4
4
|
# You can distribute or modify this program under the terms of
|
@@ -214,12 +214,17 @@ module ReVIEW
|
|
214
214
|
File.open(File.join(basetmpdir, content.file)) do |f|
|
215
215
|
f.each_line do |l|
|
216
216
|
l.scan(/url\((.+?)\)/) do |_m|
|
217
|
-
@config['epubmaker']['force_include_images'].push($1.strip)
|
217
|
+
@config['epubmaker']['force_include_images'].push($1.strip.gsub(/\A(['"])(.*)\1\Z/, '\2'))
|
218
218
|
end
|
219
219
|
end
|
220
220
|
end
|
221
221
|
end
|
222
222
|
end
|
223
|
+
|
224
|
+
if @config['coverimage']
|
225
|
+
@config['epubmaker']['force_include_images'].push(File.join(@config['imagedir'], @config['coverimage']))
|
226
|
+
end
|
227
|
+
|
223
228
|
@config['epubmaker']['force_include_images'] = @config['epubmaker']['force_include_images'].compact.sort.uniq
|
224
229
|
end
|
225
230
|
|
@@ -523,7 +528,7 @@ module ReVIEW
|
|
523
528
|
end
|
524
529
|
|
525
530
|
def copy_static_file(configname, destdir, destfilename: nil)
|
526
|
-
destfilename ||= @config[configname]
|
531
|
+
destfilename ||= File.basename(@config[configname])
|
527
532
|
unless File.exist?(@config[configname])
|
528
533
|
error! "#{configname}: #{@config[configname]} is not found."
|
529
534
|
end
|
data/lib/review/htmlbuilder.rb
CHANGED
@@ -455,7 +455,7 @@ module ReVIEW
|
|
455
455
|
|
456
456
|
def list(lines, id, caption, lang = nil)
|
457
457
|
puts %Q(<div id="#{normalize_id(id)}" class="caption-code">)
|
458
|
-
super
|
458
|
+
super
|
459
459
|
puts '</div>'
|
460
460
|
end
|
461
461
|
|
@@ -480,7 +480,7 @@ module ReVIEW
|
|
480
480
|
|
481
481
|
def source(lines, caption = nil, lang = nil)
|
482
482
|
puts %Q(<div class="source-code">)
|
483
|
-
super
|
483
|
+
super
|
484
484
|
puts '</div>'
|
485
485
|
end
|
486
486
|
|
@@ -500,7 +500,7 @@ module ReVIEW
|
|
500
500
|
|
501
501
|
def listnum(lines, id, caption, lang = nil)
|
502
502
|
puts %Q(<div id="#{normalize_id(id)}" class="code">)
|
503
|
-
super
|
503
|
+
super
|
504
504
|
puts '</div>'
|
505
505
|
end
|
506
506
|
|
@@ -737,7 +737,7 @@ module ReVIEW
|
|
737
737
|
else
|
738
738
|
puts %Q(<div class="table">)
|
739
739
|
end
|
740
|
-
super
|
740
|
+
super
|
741
741
|
puts '</div>'
|
742
742
|
end
|
743
743
|
|
@@ -1117,9 +1117,9 @@ EOS
|
|
1117
1117
|
chap, id2 = extract_chapter_id(id)
|
1118
1118
|
n = chap.headline_index.number(id2)
|
1119
1119
|
anchor = 'h' + n.tr('.', '-')
|
1120
|
-
%Q(<a href="#{chap.id}#{extname}##{anchor}">#{super
|
1120
|
+
%Q(<a href="#{chap.id}#{extname}##{anchor}">#{super}</a>)
|
1121
1121
|
else
|
1122
|
-
super
|
1122
|
+
super
|
1123
1123
|
end
|
1124
1124
|
rescue KeyError
|
1125
1125
|
app_error "unknown headline: #{id}"
|
@@ -1129,9 +1129,9 @@ EOS
|
|
1129
1129
|
if @book.config['chapterlink']
|
1130
1130
|
chap, id2 = extract_chapter_id(id)
|
1131
1131
|
anchor = 'h' + chap.headline_index.number(id2).tr('.', '-')
|
1132
|
-
%Q(<a href="#{chap.id}#{extname}##{anchor}">#{super
|
1132
|
+
%Q(<a href="#{chap.id}#{extname}##{anchor}">#{super}</a>)
|
1133
1133
|
else
|
1134
|
-
super
|
1134
|
+
super
|
1135
1135
|
end
|
1136
1136
|
rescue KeyError
|
1137
1137
|
app_error "unknown headline: #{id}"
|
@@ -1154,7 +1154,7 @@ EOS
|
|
1154
1154
|
end
|
1155
1155
|
|
1156
1156
|
def inline_list(id)
|
1157
|
-
str = super
|
1157
|
+
str = super
|
1158
1158
|
chapter, id = extract_chapter_id(id)
|
1159
1159
|
if @book.config['chapterlink']
|
1160
1160
|
%Q(<span class="listref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
@@ -1164,7 +1164,7 @@ EOS
|
|
1164
1164
|
end
|
1165
1165
|
|
1166
1166
|
def inline_table(id)
|
1167
|
-
str = super
|
1167
|
+
str = super
|
1168
1168
|
chapter, id = extract_chapter_id(id)
|
1169
1169
|
if @book.config['chapterlink']
|
1170
1170
|
%Q(<span class="tableref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
@@ -1174,7 +1174,7 @@ EOS
|
|
1174
1174
|
end
|
1175
1175
|
|
1176
1176
|
def inline_img(id)
|
1177
|
-
str = super
|
1177
|
+
str = super
|
1178
1178
|
chapter, id = extract_chapter_id(id)
|
1179
1179
|
if @book.config['chapterlink']
|
1180
1180
|
%Q(<span class="imgref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
@@ -1184,7 +1184,7 @@ EOS
|
|
1184
1184
|
end
|
1185
1185
|
|
1186
1186
|
def inline_eq(id)
|
1187
|
-
str = super
|
1187
|
+
str = super
|
1188
1188
|
chapter, id = extract_chapter_id(id)
|
1189
1189
|
if @book.config['chapterlink']
|
1190
1190
|
%Q(<span class="eqref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
@@ -1308,7 +1308,7 @@ EOS
|
|
1308
1308
|
end
|
1309
1309
|
|
1310
1310
|
def inline_raw(str) # rubocop:disable Lint/UselessMethodDefinition
|
1311
|
-
super
|
1311
|
+
super
|
1312
1312
|
end
|
1313
1313
|
|
1314
1314
|
def nofunc_text(str)
|
data/lib/review/htmltoc.rb
CHANGED
data/lib/review/idgxmlbuilder.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2008-
|
1
|
+
# Copyright (c) 2008-2024 Minero Aoki, Kenshi Muto
|
2
2
|
# 2002-2007 Minero Aoki
|
3
3
|
#
|
4
4
|
# This program is free software.
|
@@ -273,7 +273,7 @@ module ReVIEW
|
|
273
273
|
end
|
274
274
|
|
275
275
|
def inline_list(id)
|
276
|
-
"<span type='list'>#{super
|
276
|
+
"<span type='list'>#{super}</span>"
|
277
277
|
end
|
278
278
|
|
279
279
|
def list_header(id, caption, _lang)
|
@@ -304,7 +304,7 @@ module ReVIEW
|
|
304
304
|
|
305
305
|
def list(lines, id, caption, lang = nil)
|
306
306
|
puts '<codelist>'
|
307
|
-
super
|
307
|
+
super
|
308
308
|
puts '</codelist>'
|
309
309
|
end
|
310
310
|
|
@@ -329,7 +329,7 @@ module ReVIEW
|
|
329
329
|
|
330
330
|
def listnum(lines, id, caption, lang = nil)
|
331
331
|
puts '<codelist>'
|
332
|
-
super
|
332
|
+
super
|
333
333
|
puts '</codelist>'
|
334
334
|
end
|
335
335
|
|
@@ -389,15 +389,15 @@ module ReVIEW
|
|
389
389
|
end
|
390
390
|
|
391
391
|
def inline_table(id)
|
392
|
-
"<span type='table'>#{super
|
392
|
+
"<span type='table'>#{super}</span>"
|
393
393
|
end
|
394
394
|
|
395
395
|
def inline_img(id)
|
396
|
-
"<span type='image'>#{super
|
396
|
+
"<span type='image'>#{super}</span>"
|
397
397
|
end
|
398
398
|
|
399
399
|
def inline_eq(id)
|
400
|
-
"<span type='eq'>#{super
|
400
|
+
"<span type='eq'>#{super}</span>"
|
401
401
|
end
|
402
402
|
|
403
403
|
def inline_imgref(id)
|
@@ -532,9 +532,9 @@ module ReVIEW
|
|
532
532
|
next
|
533
533
|
end
|
534
534
|
if @tablewidth
|
535
|
-
rows.push(line.gsub(
|
535
|
+
rows.push(line.gsub("\t.\t", "\tDUMMYCELLSPLITTER\t").gsub("\t..\t", "\t.\t").gsub(/\t\.\Z/, "\tDUMMYCELLSPLITTER").gsub(/\t\.\.\Z/, "\t.").gsub(/\A\./, ''))
|
536
536
|
else
|
537
|
-
rows.push(line.gsub(
|
537
|
+
rows.push(line.gsub("\t.\t", "\t\t").gsub("\t..\t", "\t.\t").gsub(/\t\.\Z/, "\t").gsub(/\t\.\.\Z/, "\t.").gsub(/\A\./, ''))
|
538
538
|
end
|
539
539
|
col2 = rows[rows.length - 1].split(table_row_separator_regexp).length
|
540
540
|
@col = col2 if col2 > @col
|
@@ -725,7 +725,7 @@ module ReVIEW
|
|
725
725
|
end
|
726
726
|
|
727
727
|
def inline_raw(str)
|
728
|
-
super
|
728
|
+
super.gsub('\\n', "\n")
|
729
729
|
end
|
730
730
|
|
731
731
|
def inline_hint(str)
|
data/lib/review/latexbuilder.rb
CHANGED
@@ -556,7 +556,7 @@ module ReVIEW
|
|
556
556
|
end
|
557
557
|
|
558
558
|
def parse_metric(type, metric)
|
559
|
-
s = super
|
559
|
+
s = super
|
560
560
|
if @book.config['pdfmaker']['use_original_image_size'] && s.empty? && !metric.present?
|
561
561
|
return ' ' # pass empty to \reviewincludegraphics
|
562
562
|
end
|
@@ -1292,11 +1292,11 @@ module ReVIEW
|
|
1292
1292
|
|
1293
1293
|
def inline_sec(id)
|
1294
1294
|
if @book.config['chapterlink']
|
1295
|
-
n = super
|
1295
|
+
n = super
|
1296
1296
|
anchor = n.tr('.', '-')
|
1297
1297
|
macro('reviewsecref', n, sec_label(anchor))
|
1298
1298
|
else
|
1299
|
-
super
|
1299
|
+
super
|
1300
1300
|
end
|
1301
1301
|
rescue KeyError
|
1302
1302
|
app_error "unknown headline: #{id}"
|
@@ -1306,9 +1306,9 @@ module ReVIEW
|
|
1306
1306
|
if @book.config['chapterlink']
|
1307
1307
|
chap, id2 = extract_chapter_id(id)
|
1308
1308
|
anchor = chap.headline_index.number(id2).tr('.', '-')
|
1309
|
-
macro('reviewsecref', super
|
1309
|
+
macro('reviewsecref', super, sec_label(anchor))
|
1310
1310
|
else
|
1311
|
-
super
|
1311
|
+
super
|
1312
1312
|
end
|
1313
1313
|
end
|
1314
1314
|
|
@@ -1321,7 +1321,7 @@ module ReVIEW
|
|
1321
1321
|
end
|
1322
1322
|
|
1323
1323
|
def inline_raw(str) # rubocop:disable Lint/UselessMethodDefinition
|
1324
|
-
super
|
1324
|
+
super
|
1325
1325
|
end
|
1326
1326
|
|
1327
1327
|
def inline_sub(str)
|
data/lib/review/logger.rb
CHANGED
@@ -3,7 +3,7 @@ require 'logger'
|
|
3
3
|
module ReVIEW
|
4
4
|
class Logger < ::Logger
|
5
5
|
def initialize(io = $stderr, progname: '--')
|
6
|
-
super
|
6
|
+
super
|
7
7
|
self.formatter = ->(severity, _datetime, name, msg) { "#{severity} #{name}: #{msg}\n" }
|
8
8
|
end
|
9
9
|
|
@@ -32,7 +32,7 @@ module ReVIEW
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def ttylogger?
|
35
|
-
|
35
|
+
false
|
36
36
|
end
|
37
37
|
|
38
38
|
def success(_log)
|
@@ -190,19 +190,19 @@ module ReVIEW
|
|
190
190
|
end
|
191
191
|
|
192
192
|
def inline_i(str)
|
193
|
-
"*#{str.gsub(
|
193
|
+
"*#{str.gsub('*', '\*')}*"
|
194
194
|
end
|
195
195
|
|
196
196
|
def inline_em(str)
|
197
|
-
"*#{str.gsub(
|
197
|
+
"*#{str.gsub('*', '\*')}*"
|
198
198
|
end
|
199
199
|
|
200
200
|
def inline_b(str)
|
201
|
-
"**#{str.gsub(
|
201
|
+
"**#{str.gsub('*', '\*')}**"
|
202
202
|
end
|
203
203
|
|
204
204
|
def inline_strong(str)
|
205
|
-
"**#{str.gsub(
|
205
|
+
"**#{str.gsub('*', '\*')}**"
|
206
206
|
end
|
207
207
|
|
208
208
|
def inline_code(str)
|
data/lib/review/pdfmaker.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2010-
|
1
|
+
# Copyright (c) 2010-2024 Kenshi Muto and Masayoshi Takahashi
|
2
2
|
#
|
3
3
|
# This program is free software.
|
4
4
|
# You can distribute or modify this program under the terms of
|
@@ -339,6 +339,7 @@ module ReVIEW
|
|
339
339
|
File.read(file_sty)
|
340
340
|
else
|
341
341
|
warn "File #{file_sty} is not found."
|
342
|
+
nil
|
342
343
|
end
|
343
344
|
end
|
344
345
|
|
@@ -505,6 +506,15 @@ module ReVIEW
|
|
505
506
|
template_dir = @basedir
|
506
507
|
template_path = 'layouts/layout.tex.erb'
|
507
508
|
end
|
509
|
+
|
510
|
+
if @config['cover'] && !File.exist?(@config['cover'])
|
511
|
+
error! "File #{@config['cover']} is not found."
|
512
|
+
end
|
513
|
+
|
514
|
+
if @config['titlepage'] && @config['titlefile'] && !File.exist?(@config['titlefile'])
|
515
|
+
error! "File #{@config['titlefile']} is not found."
|
516
|
+
end
|
517
|
+
|
508
518
|
ReVIEW::Template.generate(path: template_path, mode: '-', binding: binding, template_dir: template_dir)
|
509
519
|
rescue StandardError => e
|
510
520
|
if defined?(e.full_message)
|
data/lib/review/textutils.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2008-
|
1
|
+
# Copyright (c) 2008-2023 Minero Aoki, Kenshi Muto, Masayoshi Takahashi,
|
2
2
|
# KADO Masanori
|
3
3
|
# 2002-2007 Minero Aoki
|
4
4
|
#
|
@@ -49,7 +49,7 @@ module ReVIEW
|
|
49
49
|
tail = line1[-1]
|
50
50
|
head = line2[0]
|
51
51
|
if tail.nil? || head.nil?
|
52
|
-
return
|
52
|
+
return false
|
53
53
|
end
|
54
54
|
|
55
55
|
space = true
|
data/lib/review/tocprinter.rb
CHANGED
@@ -21,12 +21,12 @@ module ReVIEW
|
|
21
21
|
print "\x01H#{level}\x01"
|
22
22
|
end
|
23
23
|
# embed header information for tocparser
|
24
|
-
super
|
24
|
+
super
|
25
25
|
end
|
26
26
|
|
27
27
|
def base_block(type, lines, caption = nil)
|
28
28
|
puts "\x01STARTLIST\x01"
|
29
|
-
super
|
29
|
+
super
|
30
30
|
puts "\x01ENDLIST\x01"
|
31
31
|
end
|
32
32
|
|
data/lib/review/version.rb
CHANGED
data/lib/review/yamlloader.rb
CHANGED
data/review.gemspec
CHANGED
@@ -14,21 +14,23 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.required_rubygems_version = Gem::Requirement.new('>= 0') if gem.respond_to?(:required_rubygems_version=)
|
15
15
|
gem.metadata = { 'rubygems_mfa_required' => 'true' }
|
16
16
|
|
17
|
-
gem.files = `git ls-files`.split("\n").reject { |f| f.match(/^test/) }
|
17
|
+
gem.files = `git ls-files`.split("\n").reject { |f| f.match(/^test/) }.reject { |f| f.match(%r{^vendor/imagemagick}) }
|
18
18
|
gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
19
19
|
gem.extra_rdoc_files = []
|
20
20
|
gem.require_paths = ['lib']
|
21
21
|
|
22
|
+
gem.add_dependency('csv')
|
22
23
|
gem.add_dependency('image_size')
|
24
|
+
gem.add_dependency('nkf')
|
23
25
|
gem.add_dependency('rexml')
|
24
26
|
gem.add_dependency('rouge')
|
25
27
|
gem.add_dependency('rubyzip')
|
26
28
|
gem.add_dependency('tty-logger')
|
27
|
-
gem.add_development_dependency('mini_magick')
|
29
|
+
gem.add_development_dependency('mini_magick', '~> 5.0.0')
|
28
30
|
gem.add_development_dependency('playwright-runner')
|
29
31
|
gem.add_development_dependency('pygments.rb')
|
30
32
|
gem.add_development_dependency('rake')
|
31
|
-
gem.add_development_dependency('rubocop', '~> 1.
|
33
|
+
gem.add_development_dependency('rubocop', '~> 1.65.1')
|
32
34
|
gem.add_development_dependency('rubocop-performance')
|
33
35
|
gem.add_development_dependency('rubocop-rake')
|
34
36
|
gem.add_development_dependency('simplecov')
|
@@ -153,7 +153,7 @@ colophon: true
|
|
153
153
|
# verify_target_images: null
|
154
154
|
# verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列
|
155
155
|
# force_include_images: []
|
156
|
-
# Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,
|
156
|
+
# Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02...、後付にpost01,post02...という名前付けルールにするか
|
157
157
|
# rename_for_legacy: null
|
158
158
|
# ePUBアーカイブの非圧縮実行
|
159
159
|
# zip_stage1: "zip -0Xq"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# call me by 'REVIEW_TEMPLATE=review-jlreq REVIEW_CONFIG_FILE=config-jlreq.yml rake pdf'
|
2
2
|
inherit: ["config.yml"]
|
3
|
-
# texdocumentclass: ["review-jlreq", "media=print,paper=
|
4
|
-
texdocumentclass: ["review-jlreq", "media=ebook,paper=
|
5
|
-
# texdocumentclass: ["review-jlreq", "media=print,paper=
|
3
|
+
# texdocumentclass: ["review-jlreq", "media=print,paper=b5j"]
|
4
|
+
texdocumentclass: ["review-jlreq", "media=ebook,paper=b5j"]
|
5
|
+
# texdocumentclass: ["review-jlreq", "media=print,paper=b5j,bleed_margin=3mm,cover=true,Q=14,startpage=3,serial_pagination=true,hiddenfolio=nikko-pc"]
|
@@ -47,7 +47,8 @@ texdocumentclass: ["review-jlreq", "クラスオプションたち(省略可
|
|
47
47
|
利用可能な特定の用紙サイズを指定できます。[デフォルト]は a5 です。
|
48
48
|
|
49
49
|
* `a0` 〜 `a10`:A 列
|
50
|
-
* `
|
50
|
+
* `b0j` 〜 `b10j`:JIS B 列
|
51
|
+
* `b0` 〜 `b10`:ISO B 列
|
51
52
|
* `c0` 〜 `c8`:C 列
|
52
53
|
* `a4var`:210mm x 283mm
|
53
54
|
* `b5var`:182mm x 230mm
|
@@ -57,6 +58,8 @@ texdocumentclass: ["review-jlreq", "クラスオプションたち(省略可
|
|
57
58
|
* `hagaki`:葉書き、100mm x 148mm
|
58
59
|
* `{横幅,縦幅}`:任意の指定サイズ
|
59
60
|
|
61
|
+
日本の B 列サイズにするには `b5j` のように j 付きで指定することに注意してください。
|
62
|
+
|
60
63
|
### トンボ用紙サイズ `tombopaper=<用紙サイズ>` および塗り足し幅 `bleed_margin=<幅>`
|
61
64
|
|
62
65
|
`tombopaper` ではトンボ用紙サイズを指定できます。
|
@@ -202,6 +202,11 @@
|
|
202
202
|
\def\reviewinsert#1{#1}
|
203
203
|
\def\reviewstrike#1{#1}
|
204
204
|
\def\reviewunderline#1{#1}
|
205
|
+
\def\reviewtt#1{#1}
|
206
|
+
\def\reviewcode#1{#1}
|
207
|
+
\def\reviewtti#1{#1}
|
208
|
+
\def\reviewttb#1{#1}
|
209
|
+
\let\reviewicon\@gobble
|
205
210
|
}
|
206
211
|
\newif\ifreview@ba@break
|
207
212
|
\def\review@ba@end{\review@ba@end@}
|
@@ -247,10 +252,10 @@
|
|
247
252
|
\review@ba@breaktrue
|
248
253
|
\review@break@all@a
|
249
254
|
}
|
250
|
-
\DeclareRobustCommand{\reviewtt}[1]{{\ttfamily\reviewbreakall{#1}}}
|
251
|
-
\DeclareRobustCommand{\reviewcode}[1]{{\ttfamily\reviewbreakall{#1}}}
|
252
|
-
\DeclareRobustCommand{\reviewtti}[1]{{\ttfamily\itshape\reviewbreakall{#1}}}
|
253
|
-
\DeclareRobustCommand{\reviewttb}[1]{{\ttfamily\bfseries\reviewbreakall{#1}}}
|
255
|
+
\DeclareRobustCommand{\reviewtt}[1]{{\frenchspacing\ttfamily\reviewbreakall{#1}}}
|
256
|
+
\DeclareRobustCommand{\reviewcode}[1]{{\frenchspacing\ttfamily\reviewbreakall{#1}}}
|
257
|
+
\DeclareRobustCommand{\reviewtti}[1]{{\frenchspacing\ttfamily\itshape\reviewbreakall{#1}}}
|
258
|
+
\DeclareRobustCommand{\reviewttb}[1]{{\frenchspacing\ttfamily\bfseries\reviewbreakall{#1}}}
|
254
259
|
|
255
260
|
\DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
|
256
261
|
|
@@ -277,6 +277,11 @@
|
|
277
277
|
\def\reviewinsert#1{#1}
|
278
278
|
\def\reviewstrike#1{#1}
|
279
279
|
\def\reviewunderline#1{#1}
|
280
|
+
\def\reviewtt#1{#1}
|
281
|
+
\def\reviewcode#1{#1}
|
282
|
+
\def\reviewtti#1{#1}
|
283
|
+
\def\reviewttb#1{#1}
|
284
|
+
\let\reviewicon\@gobble
|
280
285
|
}
|
281
286
|
\newif\ifreview@ba@break
|
282
287
|
\def\review@ba@end{\review@ba@end@}
|
@@ -322,10 +327,10 @@
|
|
322
327
|
\review@ba@breaktrue
|
323
328
|
\review@break@all@a
|
324
329
|
}
|
325
|
-
\DeclareRobustCommand{\reviewtt}[1]{{\ttfamily\reviewbreakall{#1}}}
|
326
|
-
\DeclareRobustCommand{\reviewcode}[1]{{\ttfamily\reviewbreakall{#1}}}
|
327
|
-
\DeclareRobustCommand{\reviewtti}[1]{{\ttfamily\itshape\reviewbreakall{#1}}}
|
328
|
-
\DeclareRobustCommand{\reviewttb}[1]{{\ttfamily\bfseries\reviewbreakall{#1}}}
|
330
|
+
\DeclareRobustCommand{\reviewtt}[1]{{\frenchspacing\ttfamily\reviewbreakall{#1}}}
|
331
|
+
\DeclareRobustCommand{\reviewcode}[1]{{\frenchspacing\ttfamily\reviewbreakall{#1}}}
|
332
|
+
\DeclareRobustCommand{\reviewtti}[1]{{\frenchspacing\ttfamily\itshape\reviewbreakall{#1}}}
|
333
|
+
\DeclareRobustCommand{\reviewttb}[1]{{\frenchspacing\ttfamily\bfseries\reviewbreakall{#1}}}
|
329
334
|
|
330
335
|
\DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
|
331
336
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: review
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kmuto
|
@@ -9,8 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-10-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: csv
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
14
28
|
- !ruby/object:Gem::Dependency
|
15
29
|
name: image_size
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -25,6 +39,20 @@ dependencies:
|
|
25
39
|
- - ">="
|
26
40
|
- !ruby/object:Gem::Version
|
27
41
|
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: nkf
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
28
56
|
- !ruby/object:Gem::Dependency
|
29
57
|
name: rexml
|
30
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,16 +113,16 @@ dependencies:
|
|
85
113
|
name: mini_magick
|
86
114
|
requirement: !ruby/object:Gem::Requirement
|
87
115
|
requirements:
|
88
|
-
- - "
|
116
|
+
- - "~>"
|
89
117
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
118
|
+
version: 5.0.0
|
91
119
|
type: :development
|
92
120
|
prerelease: false
|
93
121
|
version_requirements: !ruby/object:Gem::Requirement
|
94
122
|
requirements:
|
95
|
-
- - "
|
123
|
+
- - "~>"
|
96
124
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
125
|
+
version: 5.0.0
|
98
126
|
- !ruby/object:Gem::Dependency
|
99
127
|
name: playwright-runner
|
100
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,14 +171,14 @@ dependencies:
|
|
143
171
|
requirements:
|
144
172
|
- - "~>"
|
145
173
|
- !ruby/object:Gem::Version
|
146
|
-
version: 1.
|
174
|
+
version: 1.65.1
|
147
175
|
type: :development
|
148
176
|
prerelease: false
|
149
177
|
version_requirements: !ruby/object:Gem::Requirement
|
150
178
|
requirements:
|
151
179
|
- - "~>"
|
152
180
|
- !ruby/object:Gem::Version
|
153
|
-
version: 1.
|
181
|
+
version: 1.65.1
|
154
182
|
- !ruby/object:Gem::Dependency
|
155
183
|
name: rubocop-performance
|
156
184
|
requirement: !ruby/object:Gem::Requirement
|
@@ -333,6 +361,7 @@ files:
|
|
333
361
|
- lib/review/book/base.rb
|
334
362
|
- lib/review/book/bib.rb
|
335
363
|
- lib/review/book/book_unit.rb
|
364
|
+
- lib/review/book/cache.rb
|
336
365
|
- lib/review/book/chapter.rb
|
337
366
|
- lib/review/book/image_finder.rb
|
338
367
|
- lib/review/book/index.rb
|
@@ -620,7 +649,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
620
649
|
- !ruby/object:Gem::Version
|
621
650
|
version: '0'
|
622
651
|
requirements: []
|
623
|
-
rubygems_version: 3.
|
652
|
+
rubygems_version: 3.2.33
|
624
653
|
signing_key:
|
625
654
|
specification_version: 4
|
626
655
|
summary: 'Re:VIEW: a easy-to-use digital publishing system'
|