review 5.2.0 → 5.3.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.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-win.yml +1 -1
- data/.rubocop.yml +3 -0
- data/NEWS.ja.md +53 -0
- data/NEWS.md +53 -0
- data/doc/format.ja.md +29 -3
- data/doc/format.md +32 -3
- data/lib/review/book/book_unit.rb +12 -2
- data/lib/review/book/index.rb +4 -1
- data/lib/review/builder.rb +51 -16
- data/lib/review/catalog.rb +1 -0
- data/lib/review/compiler.rb +4 -1
- data/lib/review/epubmaker/epubcommon.rb +4 -4
- data/lib/review/epubmaker.rb +3 -1
- data/lib/review/htmlbuilder.rb +24 -0
- data/lib/review/i18n.yml +6 -0
- data/lib/review/idgxmlbuilder.rb +21 -1
- data/lib/review/img_math.rb +1 -0
- data/lib/review/index_builder.rb +84 -18
- data/lib/review/latexbuilder.rb +16 -1
- data/lib/review/markdownbuilder.rb +10 -2
- data/lib/review/pdfmaker.rb +18 -3
- data/lib/review/plaintextbuilder.rb +3 -2
- data/lib/review/rstbuilder.rb +11 -2
- data/lib/review/textutils.rb +8 -7
- data/lib/review/tocprinter.rb +11 -6
- data/lib/review/topbuilder.rb +19 -1
- data/lib/review/version.rb +1 -1
- data/lib/review/volumeprinter.rb +9 -9
- data/samples/syntax-book/ch02.re +9 -0
- data/templates/latex/config.erb +3 -0
- data/templates/latex/review-jlreq/review-base.sty +2 -1
- data/templates/latex/review-jlreq/review-jlreq.cls +36 -3
- data/templates/latex/review-jsbook/review-base.sty +7 -1
- data/templates/latex/review-jsbook/review-jsbook.cls +31 -4
- data/test/assets/syntax_book_index_detail.txt +10 -8
- data/test/assets/test_template.tex +4 -1
- data/test/assets/test_template_backmatter.tex +4 -1
- data/test/test_book_chapter.rb +25 -2
- data/test/test_builder.rb +5 -3
- data/test/test_htmlbuilder.rb +42 -3
- data/test/test_idgxmlbuilder.rb +3 -3
- data/test/test_index.rb +30 -4
- data/test/test_latexbuilder.rb +17 -3
- data/test/test_markdownbuilder.rb +13 -0
- data/test/test_pdfmaker.rb +19 -0
- data/test/test_plaintextbuilder.rb +20 -4
- data/test/test_rstbuilder.rb +13 -0
- data/test/test_topbuilder.rb +18 -0
- metadata +2 -2
|
@@ -762,6 +762,18 @@ EOS
|
|
|
762
762
|
assert_equal %Q(\\sin\n1^{2}\n\n), actual
|
|
763
763
|
end
|
|
764
764
|
|
|
765
|
+
def test_endnote
|
|
766
|
+
e = assert_raises(ReVIEW::ApplicationError) { compile_block("//endnote[foo][bar]\n\n@<endnote>{foo}\n") }
|
|
767
|
+
assert_equal ':4: //endnote is found but //printendnotes is not found.', e.message
|
|
768
|
+
|
|
769
|
+
actual = compile_block("@<endnote>{foo}\n//endnote[foo][bar]\n//printendnotes\n")
|
|
770
|
+
expected = <<-'EOS'
|
|
771
|
+
(1)
|
|
772
|
+
(1) bar
|
|
773
|
+
EOS
|
|
774
|
+
assert_equal expected, actual
|
|
775
|
+
end
|
|
776
|
+
|
|
765
777
|
def test_inline_unknown
|
|
766
778
|
assert_raises(ReVIEW::ApplicationError) { compile_block("@<img>{n}\n") }
|
|
767
779
|
assert_match(/unknown image: n/, @log_io.string)
|
|
@@ -770,6 +782,10 @@ EOS
|
|
|
770
782
|
assert_raises(ReVIEW::ApplicationError) { compile_block("@<fn>{n}\n") }
|
|
771
783
|
assert_match(/unknown footnote: n/, @log_io.string)
|
|
772
784
|
|
|
785
|
+
@log_io.string = ''
|
|
786
|
+
assert_raises(ReVIEW::ApplicationError) { compile_block("@<endnote>{n}\n") }
|
|
787
|
+
assert_match(/unknown endnote: n/, @log_io.string)
|
|
788
|
+
|
|
773
789
|
@log_io.string = ''
|
|
774
790
|
assert_raises(ReVIEW::ApplicationError) { compile_block("@<hd>{n}\n") }
|
|
775
791
|
assert_match(/unknown headline: n/, @log_io.string)
|
|
@@ -899,7 +915,7 @@ EOS
|
|
|
899
915
|
//endchild
|
|
900
916
|
EOS
|
|
901
917
|
e = assert_raises(ReVIEW::ApplicationError) { compile_block(src) }
|
|
902
|
-
assert_equal "//endchild is shown, but any opened //beginchild doesn't exist", e.message
|
|
918
|
+
assert_equal ":1: //endchild is shown, but any opened //beginchild doesn't exist", e.message
|
|
903
919
|
end
|
|
904
920
|
|
|
905
921
|
def test_nest_error_close1
|
|
@@ -907,7 +923,7 @@ EOS
|
|
|
907
923
|
//beginchild
|
|
908
924
|
EOS
|
|
909
925
|
e = assert_raises(ReVIEW::ApplicationError) { compile_block(src) }
|
|
910
|
-
assert_equal "//beginchild is shown, but previous element isn't ul, ol, or dl", e.message
|
|
926
|
+
assert_equal ":1: //beginchild is shown, but previous element isn't ul, ol, or dl", e.message
|
|
911
927
|
end
|
|
912
928
|
|
|
913
929
|
def test_nest_error_close2
|
|
@@ -925,7 +941,7 @@ EOS
|
|
|
925
941
|
//beginchild
|
|
926
942
|
EOS
|
|
927
943
|
e = assert_raises(ReVIEW::ApplicationError) { compile_block(src) }
|
|
928
|
-
assert_equal '//beginchild of dl,ol,ul misses //endchild', e.message
|
|
944
|
+
assert_equal ':12: //beginchild of dl,ol,ul misses //endchild', e.message
|
|
929
945
|
end
|
|
930
946
|
|
|
931
947
|
def test_nest_error_close3
|
|
@@ -945,7 +961,7 @@ EOS
|
|
|
945
961
|
//endchild
|
|
946
962
|
EOS
|
|
947
963
|
e = assert_raises(ReVIEW::ApplicationError) { compile_block(src) }
|
|
948
|
-
assert_equal '//beginchild of ol,ul misses //endchild', e.message
|
|
964
|
+
assert_equal ':14: //beginchild of ol,ul misses //endchild', e.message
|
|
949
965
|
end
|
|
950
966
|
|
|
951
967
|
def test_nest_ul
|
data/test/test_rstbuilder.rb
CHANGED
|
@@ -513,6 +513,19 @@ EOS
|
|
|
513
513
|
|
|
514
514
|
\\sin 1^{2}
|
|
515
515
|
|
|
516
|
+
EOS
|
|
517
|
+
assert_equal expected, actual
|
|
518
|
+
end
|
|
519
|
+
|
|
520
|
+
def test_endnote
|
|
521
|
+
e = assert_raises(ReVIEW::ApplicationError) { compile_block("//endnote[foo][bar]\n\n@<endnote>{foo}\n") }
|
|
522
|
+
assert_equal ':4: //endnote is found but //printendnotes is not found.', e.message
|
|
523
|
+
|
|
524
|
+
actual = compile_block("@<endnote>{foo}\n//endnote[foo][bar]\n//printendnotes\n")
|
|
525
|
+
expected = <<-'EOS'
|
|
526
|
+
[(1)]_
|
|
527
|
+
|
|
528
|
+
.. [(1)] bar
|
|
516
529
|
EOS
|
|
517
530
|
assert_equal expected, actual
|
|
518
531
|
end
|
data/test/test_topbuilder.rb
CHANGED
|
@@ -999,6 +999,20 @@ EOB
|
|
|
999
999
|
end
|
|
1000
1000
|
end
|
|
1001
1001
|
|
|
1002
|
+
def test_endnote
|
|
1003
|
+
e = assert_raises(ReVIEW::ApplicationError) { compile_block("//endnote[foo][bar]\n\n@<endnote>{foo}\n") }
|
|
1004
|
+
assert_equal ':4: //endnote is found but //printendnotes is not found.', e.message
|
|
1005
|
+
|
|
1006
|
+
actual = compile_block("@<endnote>{foo}\n//endnote[foo][bar]\n//printendnotes\n")
|
|
1007
|
+
expected = <<-'EOS'
|
|
1008
|
+
【後注1】
|
|
1009
|
+
◆→開始:後注←◆
|
|
1010
|
+
【後注1】bar
|
|
1011
|
+
◆→終了:後注←◆
|
|
1012
|
+
EOS
|
|
1013
|
+
assert_equal expected, actual
|
|
1014
|
+
end
|
|
1015
|
+
|
|
1002
1016
|
def test_inline_unknown
|
|
1003
1017
|
assert_raises(ReVIEW::ApplicationError) { compile_block("@<img>{n}\n") }
|
|
1004
1018
|
assert_match(/unknown image: n/, @log_io.string)
|
|
@@ -1007,6 +1021,10 @@ EOB
|
|
|
1007
1021
|
assert_raises(ReVIEW::ApplicationError) { compile_block("@<fn>{n}\n") }
|
|
1008
1022
|
assert_match(/unknown footnote: n/, @log_io.string)
|
|
1009
1023
|
|
|
1024
|
+
@log_io.string = ''
|
|
1025
|
+
assert_raises(ReVIEW::ApplicationError) { compile_block("@<endnote>{n}\n") }
|
|
1026
|
+
assert_match(/unknown endnote: n/, @log_io.string)
|
|
1027
|
+
|
|
1010
1028
|
@log_io.string = ''
|
|
1011
1029
|
assert_raises(ReVIEW::ApplicationError) { compile_block("@<hd>{n}\n") }
|
|
1012
1030
|
assert_match(/unknown headline: n/, @log_io.string)
|
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.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kmuto
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2021-
|
|
12
|
+
date: 2021-10-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: image_size
|