review 5.5.0 → 5.7.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yml +31 -0
  3. data/.github/workflows/ruby-tex.yml +1 -1
  4. data/.github/workflows/ruby-win.yml +1 -1
  5. data/.github/workflows/ruby.yml +2 -2
  6. data/.rubocop.yml +13 -2
  7. data/NEWS.ja.md +40 -0
  8. data/NEWS.md +39 -0
  9. data/README.md +1 -1
  10. data/doc/format.ja.md +70 -33
  11. data/doc/format.md +69 -34
  12. data/doc/quickstart.ja.md +7 -1
  13. data/doc/quickstart.md +7 -1
  14. data/lib/review/book/base.rb +1 -1
  15. data/lib/review/builder.rb +6 -10
  16. data/lib/review/epubmaker/epubcommon.rb +13 -7
  17. data/lib/review/epubmaker/epubv2.rb +0 -5
  18. data/lib/review/epubmaker/epubv3.rb +9 -1
  19. data/lib/review/epubmaker/producer.rb +2 -3
  20. data/lib/review/epubmaker.rb +2 -4
  21. data/lib/review/htmlbuilder.rb +2 -2
  22. data/lib/review/i18n.yml +24 -2
  23. data/lib/review/idgxmlbuilder.rb +29 -10
  24. data/lib/review/idgxmlmaker.rb +11 -1
  25. data/lib/review/img_math.rb +9 -2
  26. data/lib/review/init.rb +10 -5
  27. data/lib/review/latexbuilder.rb +2 -2
  28. data/lib/review/lineinput.rb +2 -2
  29. data/lib/review/makerhelper.rb +2 -2
  30. data/lib/review/pdfmaker.rb +3 -5
  31. data/lib/review/update.rb +3 -7
  32. data/lib/review/version.rb +1 -1
  33. data/lib/review/yamlloader.rb +0 -3
  34. data/review.gemspec +3 -3
  35. data/samples/syntax-book/Gemfile +1 -1
  36. data/templates/latex/config.erb +6 -1
  37. data/templates/latex/review-jlreq/review-base.sty +11 -8
  38. data/templates/latex/review-jsbook/review-base.sty +15 -11
  39. data/templates/opf/epubv2.opf.erb +2 -0
  40. data/templates/opf/epubv3.opf.erb +2 -0
  41. data/templates/opf/opf_manifest_epubv2.opf.erb +2 -0
  42. data/templates/opf/opf_manifest_epubv3.opf.erb +2 -0
  43. data/templates/opf/opf_tocx_epubv3.opf.erb +2 -0
  44. metadata +24 -139
  45. data/test/assets/black.eps +0 -280
  46. data/test/assets/fit.png +0 -0
  47. data/test/assets/header_listener.html +0 -35
  48. data/test/assets/img_math/img1.png +0 -0
  49. data/test/assets/img_math/img2.png +0 -0
  50. data/test/assets/img_math/img3.png +0 -0
  51. data/test/assets/large.gif +0 -0
  52. data/test/assets/large.jpg +0 -0
  53. data/test/assets/large.png +0 -0
  54. data/test/assets/large.svg +0 -65
  55. data/test/assets/syntax_book_index_detail.txt +0 -60
  56. data/test/assets/test.xml.erb +0 -3
  57. data/test/assets/test_template.tex +0 -179
  58. data/test/assets/test_template_backmatter.tex +0 -190
  59. data/test/book_test_helper.rb +0 -44
  60. data/test/run_test.rb +0 -12
  61. data/test/test_book.rb +0 -588
  62. data/test/test_book_chapter.rb +0 -329
  63. data/test/test_book_part.rb +0 -53
  64. data/test/test_builder.rb +0 -126
  65. data/test/test_catalog.rb +0 -174
  66. data/test/test_catalog_converter_cmd.rb +0 -73
  67. data/test/test_compiler.rb +0 -52
  68. data/test/test_configure.rb +0 -91
  69. data/test/test_converter.rb +0 -21
  70. data/test/test_epub3maker.rb +0 -733
  71. data/test/test_epubmaker.rb +0 -931
  72. data/test/test_epubmaker_cmd.rb +0 -56
  73. data/test/test_extentions_hash.rb +0 -66
  74. data/test/test_helper.rb +0 -62
  75. data/test/test_htmlbuilder.rb +0 -3312
  76. data/test/test_htmltoc.rb +0 -29
  77. data/test/test_htmlutils.rb +0 -43
  78. data/test/test_i18n.rb +0 -300
  79. data/test/test_idgxmlbuilder.rb +0 -1487
  80. data/test/test_idgxmlmaker_cmd.rb +0 -50
  81. data/test/test_image_finder.rb +0 -81
  82. data/test/test_img_math.rb +0 -120
  83. data/test/test_index.rb +0 -287
  84. data/test/test_indexbuilder.rb +0 -52
  85. data/test/test_latexbuilder.rb +0 -2964
  86. data/test/test_latexbuilder_v2.rb +0 -1654
  87. data/test/test_lineinput.rb +0 -104
  88. data/test/test_location.rb +0 -30
  89. data/test/test_logger.rb +0 -33
  90. data/test/test_makerhelper.rb +0 -44
  91. data/test/test_markdownbuilder.rb +0 -371
  92. data/test/test_md2inaobuilder.rb +0 -90
  93. data/test/test_pdfmaker.rb +0 -354
  94. data/test/test_pdfmaker_cmd.rb +0 -130
  95. data/test/test_plaintextbuilder.rb +0 -1211
  96. data/test/test_preprocessor.rb +0 -196
  97. data/test/test_review_ext.rb +0 -30
  98. data/test/test_reviewheaderlistener.rb +0 -49
  99. data/test/test_rstbuilder.rb +0 -616
  100. data/test/test_sec_counter.rb +0 -156
  101. data/test/test_template.rb +0 -33
  102. data/test/test_textmaker_cmd.rb +0 -58
  103. data/test/test_textutils.rb +0 -187
  104. data/test/test_tocprinter.rb +0 -46
  105. data/test/test_topbuilder.rb +0 -1298
  106. data/test/test_update.rb +0 -473
  107. data/test/test_webtocprinter.rb +0 -195
  108. data/test/test_yamlloader.rb +0 -186
  109. data/test/test_zip_exporter.rb +0 -106
@@ -1,186 +0,0 @@
1
- require 'test_helper'
2
- require 'review/yamlloader'
3
- require 'review/extentions'
4
- require 'tmpdir'
5
-
6
- class YAMLLoaderTest < Test::Unit::TestCase
7
- def setup
8
- @loader = ReVIEW::YAMLLoader.new
9
- end
10
-
11
- def teardown
12
- end
13
-
14
- def test_load_file
15
- Dir.mktmpdir do |dir|
16
- yaml_file = File.join(dir, 'test.yml')
17
- File.write(yaml_file, <<EOB
18
- foo:
19
- bar: "test"
20
- EOB
21
- )
22
- yaml = @loader.load_file(yaml_file)
23
- assert_equal yaml, 'foo' => { 'bar' => 'test' }
24
- end
25
- end
26
-
27
- def test_load_file_inherit
28
- Dir.mktmpdir do |dir|
29
- yaml_file = File.join(dir, 'test.yml')
30
- yaml_file2 = File.join(dir, 'test2.yml')
31
- File.write(yaml_file, <<EOB
32
- k0: 2
33
- k1:
34
- name: "test"
35
- array: [{name: "N", val: "V"}]
36
- inherit: ["test2.yml"]
37
- EOB
38
- )
39
- File.write(yaml_file2, <<EOB
40
- k1:
41
- name: "test2"
42
- name2: "value2"
43
- array: [{name: "shoudoverridden_name", val: "shouldoverridden_val"}]
44
- k2: "3"
45
- EOB
46
- )
47
- yaml = @loader.load_file(yaml_file)
48
- assert_equal({ 'k0' => 2,
49
- 'k1' => { 'name' => 'test', 'name2' => 'value2',
50
- 'array' => [{ 'name' => 'N', 'val' => 'V' }] },
51
- 'k2' => '3' },
52
- yaml)
53
- end
54
- end
55
-
56
- def test_load_file_inherit2
57
- Dir.mktmpdir do |dir|
58
- yaml_file = File.join(dir, 'test.yml')
59
- yaml_file2 = File.join(dir, 'test2.yml')
60
- yaml_file3 = File.join(dir, 'test3.yml')
61
- File.write(yaml_file, <<EOB
62
- k0: 2
63
- k1:
64
- name1: "value1-1"
65
- inherit: ["test3.yml", "test2.yml"]
66
- EOB
67
- )
68
- File.write(yaml_file2, <<EOB
69
- k1:
70
- name1: "value1-2"
71
- name2: "value2-2"
72
- k2: "B"
73
- EOB
74
- )
75
- File.write(yaml_file3, <<EOB
76
- k1:
77
- name1: "value1-3"
78
- name2: "value2-3"
79
- name3: "value3-3"
80
- k3: "C"
81
- EOB
82
- )
83
- yaml = @loader.load_file(yaml_file)
84
- assert_equal({
85
- 'k0' => 2,
86
- 'k1' => { 'name1' => 'value1-1', 'name2' => 'value2-2', 'name3' => 'value3-3' },
87
- 'k2' => 'B',
88
- 'k3' => 'C'
89
- },
90
- yaml)
91
- end
92
- end
93
-
94
- def test_load_file_inherit3
95
- Dir.mktmpdir do |dir|
96
- yaml_file1 = File.join(dir, 'test1.yml')
97
- yaml_file2 = File.join(dir, 'test2.yml')
98
- yaml_file3 = File.join(dir, 'test3.yml')
99
- yaml_file4 = File.join(dir, 'test4.yml')
100
- yaml_file5 = File.join(dir, 'test5.yml')
101
- yaml_file6 = File.join(dir, 'test6.yml')
102
- yaml_file7 = File.join(dir, 'test7.yml')
103
- File.write(yaml_file7, <<EOB
104
- k1:
105
- name1: "N7"
106
- inherit: ["test3.yml", "test6.yml"]
107
- EOB
108
- )
109
- File.write(yaml_file6, <<EOB
110
- k1:
111
- name1: "N6"
112
- name2: "N6"
113
- inherit: ["test4.yml", "test5.yml"]
114
- EOB
115
- )
116
- File.write(yaml_file5, <<EOB
117
- k1:
118
- name1: "N5"
119
- name2: "N5"
120
- name3: "N5"
121
- EOB
122
- )
123
- File.write(yaml_file4, <<EOB
124
- k1:
125
- name1: "N4"
126
- name2: "N4"
127
- name3: "N4"
128
- name4: "N4"
129
- EOB
130
- )
131
- File.write(yaml_file3, <<EOB
132
- k1:
133
- name1: "N3"
134
- name2: "N3"
135
- name3: "N3"
136
- name4: "N3"
137
- name5: "N3"
138
- inherit: ["test1.yml", "test2.yml"]
139
- EOB
140
- )
141
- File.write(yaml_file2, <<EOB
142
- k1:
143
- name1: "N2"
144
- name2: "N2"
145
- name3: "N2"
146
- name4: "N2"
147
- name5: "N2"
148
- name6: "N2"
149
- EOB
150
- )
151
- File.write(yaml_file1, <<EOB
152
- k1:
153
- name1: "N1"
154
- name2: "N1"
155
- name3: "N1"
156
- name4: "N1"
157
- name5: "N1"
158
- name6: "N1"
159
- name7: "N1"
160
- EOB
161
- )
162
-
163
- yaml = @loader.load_file(yaml_file7)
164
- assert_equal({ 'k1' => { 'name1' => 'N7',
165
- 'name2' => 'N6',
166
- 'name3' => 'N5',
167
- 'name4' => 'N4',
168
- 'name5' => 'N3',
169
- 'name6' => 'N2',
170
- 'name7' => 'N1' } },
171
- yaml)
172
- end
173
- end
174
-
175
- def test_empty_file
176
- Dir.mktmpdir do |dir|
177
- yaml_file = File.join(dir, 'test.yml')
178
- File.write(yaml_file, <<EOB
179
- #
180
- EOB
181
- )
182
- e = assert_raise(RuntimeError) { @loader.load_file(yaml_file) }
183
- assert_match('test.yml is malformed.', e.message)
184
- end
185
- end
186
- end
@@ -1,106 +0,0 @@
1
- require 'test_helper'
2
- require 'review/epubmaker'
3
- require 'review/epubmaker/zip_exporter'
4
- require 'fileutils'
5
-
6
- class ZipExporterTest < Test::Unit::TestCase
7
- def setup
8
- @tmpdir = Dir.mktmpdir
9
- @epubdir = File.join(@tmpdir, 'epubdir')
10
- FileUtils.mkdir_p(File.join(@epubdir, 'META-INF'))
11
- FileUtils.mkdir_p(File.join(@epubdir, 'OEBPS'))
12
- File.write(File.join(@epubdir, 'mimetype'), 'application/epub+zip')
13
-
14
- container_xml = <<-EOB
15
- <?xml version="1.0" encoding="UTF-8"?>
16
- <container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
17
- <rootfiles>
18
- <rootfile full-path="OEBPS/book.opf" media-type="application/oebps-package+xml" />
19
- </rootfiles>
20
- </container>
21
- EOB
22
-
23
- book_opf = <<-EOB
24
- <?xml version="1.0"?>
25
- <package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookID" version="2.0">
26
- <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
27
- <dc:title>sample epub</dc:title>
28
- <dc:creator opf:role="aut">AUTHOR</dc:creator>
29
- <dc:language>ja</dc:language>
30
- <dc:identifier id="BookID" opf:scheme="URL">http://example.com/epub/sample/sample1.epub</dc:identifier>
31
- </metadata>
32
- <manifest>
33
- <item id="ch1.xhtml" href="OEBPS/ch1.xhtml" media-type="application/xhtml+xml"/>
34
- </manifest>
35
- <spine toc="ncx">
36
- <itemref idref="ch1.xhtml"/>
37
- </spine>
38
- <guide>
39
- <reference type="cover" title="Cover Page" href="OEPBS/ch1.xhtml"/>
40
- </guide>
41
- </package>
42
- EOB
43
-
44
- ch1_xhtml = <<-EOB
45
- <html>
46
- <head>
47
- <title>test</title>
48
- </head>
49
- <body>
50
- <p>hello, world!</p>
51
- </body>
52
- </html>
53
- EOB
54
-
55
- File.write(File.join(@epubdir, 'META-INF/container.xml'), container_xml)
56
- File.write(File.join(@epubdir, 'OEBPS/book.opf'), book_opf)
57
- File.write(File.join(@epubdir, 'OEBPS/ch1.xhtml'), ch1_xhtml)
58
- end
59
-
60
- def test_export_zipcmd
61
- if Gem.win_platform?
62
- ## skip this test
63
- return
64
- end
65
-
66
- config = { 'epubmaker' => {} }
67
- epubfile = File.join(@tmpdir, 'test.epub')
68
- exporter = ReVIEW::EPUBMaker::ZipExporter.new(@epubdir, config)
69
- exporter.export_zip_extcmd(epubfile)
70
- assert_true(File.exist?(epubfile))
71
-
72
- if defined?(Zip)
73
- File.open(epubfile) do |f|
74
- ::Zip::InputStream.open(f) do |fzip|
75
- ## get first entry
76
- entry = fzip.get_next_entry
77
- assert_equal 'mimetype', entry.name
78
- assert_equal 'application/epub+zip', fzip.read
79
- end
80
- end
81
- end
82
- end
83
-
84
- def test_export_rubyzip
85
- return unless defined?(Zip) ## skip test
86
-
87
- config = { 'epubmaker' => {} }
88
- epubfile = File.join(@tmpdir, 'test.epub')
89
- exporter = ReVIEW::EPUBMaker::ZipExporter.new(@epubdir, config)
90
- exporter.export_zip_rubyzip(epubfile)
91
- assert_true(File.exist?(epubfile))
92
-
93
- File.open(epubfile) do |f|
94
- ::Zip::InputStream.open(f) do |fzip|
95
- ## get first entry
96
- entry = fzip.get_next_entry
97
- assert_equal 'mimetype', entry.name
98
- assert_equal 'application/epub+zip', fzip.read
99
- end
100
- end
101
- end
102
-
103
- def teardown
104
- FileUtils.remove_entry_secure(@tmpdir)
105
- end
106
- end