review 4.2.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-win.yml +11 -5
  3. data/.rubocop.yml +113 -24
  4. data/NEWS.ja.md +94 -0
  5. data/NEWS.md +94 -0
  6. data/bin/review-catalog-converter +1 -1
  7. data/bin/review-check +2 -4
  8. data/bin/review-checkdep +1 -1
  9. data/bin/review-compile +8 -14
  10. data/bin/review-validate +1 -1
  11. data/doc/config.yml.sample +4 -1
  12. data/doc/config.yml.sample-simple +1 -1
  13. data/doc/format.ja.md +83 -4
  14. data/doc/format.md +84 -7
  15. data/doc/makeindex.ja.md +2 -2
  16. data/doc/quickstart.ja.md +3 -3
  17. data/doc/quickstart.md +2 -2
  18. data/lib/epubmaker/content.rb +3 -2
  19. data/lib/epubmaker/epubcommon.rb +33 -25
  20. data/lib/epubmaker/epubv2.rb +5 -6
  21. data/lib/epubmaker/epubv3.rb +20 -18
  22. data/lib/review/book.rb +2 -2
  23. data/lib/review/book/base.rb +61 -25
  24. data/lib/review/book/bib.rb +21 -0
  25. data/lib/review/book/book_unit.rb +155 -0
  26. data/lib/review/book/chapter.rb +30 -26
  27. data/lib/review/book/index.rb +23 -185
  28. data/lib/review/book/index/item.rb +7 -1
  29. data/lib/review/book/part.rb +21 -9
  30. data/lib/review/book/volume.rb +1 -1
  31. data/lib/review/builder.rb +68 -13
  32. data/lib/review/catalog.rb +2 -2
  33. data/lib/review/compiler.rb +159 -73
  34. data/lib/review/configure.rb +22 -1
  35. data/lib/review/converter.rb +1 -1
  36. data/lib/review/epub2html.rb +6 -1
  37. data/lib/review/epubmaker.rb +12 -23
  38. data/lib/review/htmlbuilder.rb +36 -7
  39. data/lib/review/htmlutils.rb +7 -10
  40. data/lib/review/i18n.rb +1 -1
  41. data/lib/review/idgxmlbuilder.rb +51 -6
  42. data/lib/review/idgxmlmaker.rb +9 -14
  43. data/lib/review/index_builder.rb +653 -0
  44. data/lib/review/init.rb +5 -13
  45. data/lib/review/latexbuilder.rb +65 -4
  46. data/lib/review/logger.rb +2 -2
  47. data/lib/review/makerhelper.rb +11 -0
  48. data/lib/review/markdownbuilder.rb +19 -1
  49. data/lib/review/pdfmaker.rb +17 -36
  50. data/lib/review/plaintextbuilder.rb +48 -2
  51. data/lib/review/preprocessor.rb +5 -5
  52. data/lib/review/rstbuilder.rb +25 -6
  53. data/lib/review/sec_counter.rb +13 -0
  54. data/lib/review/textmaker.rb +4 -12
  55. data/lib/review/tocprinter.rb +2 -3
  56. data/lib/review/topbuilder.rb +26 -0
  57. data/lib/review/update.rb +7 -7
  58. data/lib/review/version.rb +1 -1
  59. data/lib/review/volumeprinter.rb +2 -3
  60. data/lib/review/webmaker.rb +9 -20
  61. data/review.gemspec +2 -2
  62. data/samples/sample-book/src/config.yml +1 -1
  63. data/samples/syntax-book/Gemfile +1 -1
  64. data/samples/syntax-book/config.yml +1 -1
  65. data/templates/latex/config.erb +27 -23
  66. data/templates/latex/review-jlreq/README.md +3 -1
  67. data/templates/latex/review-jlreq/review-base.sty +31 -15
  68. data/templates/latex/review-jlreq/review-jlreq.cls +8 -24
  69. data/templates/latex/review-jsbook/README.md +7 -5
  70. data/templates/latex/review-jsbook/review-base.sty +34 -16
  71. data/templates/latex/review-jsbook/review-jsbook.cls +4 -2
  72. data/templates/web/html/layout-html5.html.erb +1 -1
  73. data/test/assets/test_template.tex +3 -3
  74. data/test/assets/test_template_backmatter.tex +3 -3
  75. data/test/book_test_helper.rb +11 -5
  76. data/test/test_book.rb +54 -63
  77. data/test/test_book_chapter.rb +93 -52
  78. data/test/test_builder.rb +24 -15
  79. data/test/test_converter.rb +1 -0
  80. data/test/test_epub3maker.rb +2 -2
  81. data/test/test_epubmaker.rb +8 -0
  82. data/test/test_helper.rb +4 -1
  83. data/test/test_htmlbuilder.rb +627 -56
  84. data/test/test_htmlutils.rb +0 -12
  85. data/test/test_i18n.rb +33 -33
  86. data/test/test_idgxmlbuilder.rb +358 -11
  87. data/test/test_idgxmlmaker_cmd.rb +1 -1
  88. data/test/test_index.rb +62 -52
  89. data/test/test_indexbuilder.rb +52 -0
  90. data/test/test_latexbuilder.rb +547 -10
  91. data/test/test_latexbuilder_v2.rb +43 -5
  92. data/test/test_logger.rb +7 -7
  93. data/test/test_makerhelper.rb +0 -12
  94. data/test/test_markdownbuilder.rb +3 -0
  95. data/test/test_pdfmaker.rb +13 -12
  96. data/test/test_pdfmaker_cmd.rb +1 -1
  97. data/test/test_plaintextbuilder.rb +422 -7
  98. data/test/test_review_ext.rb +2 -1
  99. data/test/test_rstbuilder.rb +25 -1
  100. data/test/test_sec_counter.rb +156 -0
  101. data/test/test_textmaker_cmd.rb +1 -1
  102. data/test/test_topbuilder.rb +187 -10
  103. data/test/test_update.rb +10 -10
  104. data/test/test_webtocprinter.rb +12 -12
  105. data/vendor/gentombow/LICENSE +1 -1
  106. data/vendor/gentombow/Makefile +0 -1
  107. data/vendor/gentombow/bounddvi-en.pdf +0 -0
  108. data/vendor/gentombow/bounddvi-en.tex +1 -0
  109. data/vendor/gentombow/bounddvi.pdf +0 -0
  110. data/vendor/gentombow/bounddvi.sty +30 -7
  111. data/vendor/gentombow/bounddvi.tex +1 -0
  112. data/vendor/gentombow/create_archive.sh +1 -0
  113. data/vendor/gentombow/gentombow-ja.pdf +0 -0
  114. data/vendor/gentombow/gentombow-ja.tex +9 -0
  115. data/vendor/gentombow/gentombow.pdf +0 -0
  116. data/vendor/gentombow/gentombow.sty +32 -10
  117. data/vendor/gentombow/gentombow.tex +8 -0
  118. data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
  119. data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
  120. data/vendor/jsclasses/Makefile +3 -2
  121. data/vendor/jsclasses/create_archive.sh +5 -5
  122. data/vendor/jsclasses/jis/Makefile +3 -2
  123. data/vendor/jsclasses/jis/jsarticle.cls +22 -18
  124. data/vendor/jsclasses/jis/jsbook.cls +22 -18
  125. data/vendor/jsclasses/jis/jsclasses.dtx +94 -13
  126. data/vendor/jsclasses/jis/jsclasses.ins +15 -5
  127. data/vendor/jsclasses/jis/jslogo.ins +9 -0
  128. data/vendor/jsclasses/jis/jslogo.sty +1 -13
  129. data/vendor/jsclasses/jis/jspf.cls +22 -18
  130. data/vendor/jsclasses/jis/jsreport.cls +22 -18
  131. data/vendor/jsclasses/jis/jsverb.ins +9 -0
  132. data/vendor/jsclasses/jis/jsverb.sty +1 -13
  133. data/vendor/jsclasses/jis/kiyou.cls +22 -18
  134. data/vendor/jsclasses/jis/minijs.sty +65 -22
  135. data/vendor/jsclasses/jis/okumacro.ins +9 -0
  136. data/vendor/jsclasses/jis/okumacro.sty +1 -13
  137. data/vendor/jsclasses/jis/okuverb.ins +9 -0
  138. data/vendor/jsclasses/jis/okuverb.sty +1 -13
  139. data/vendor/jsclasses/jis/winjis.sty +23 -19
  140. data/vendor/jsclasses/jsarticle.cls +22 -18
  141. data/vendor/jsclasses/jsbook.cls +22 -18
  142. data/vendor/jsclasses/jsclasses.dtx +94 -13
  143. data/vendor/jsclasses/jsclasses.ins +15 -5
  144. data/vendor/jsclasses/jsclasses.pdf +0 -0
  145. data/vendor/jsclasses/jslogo.ins +9 -0
  146. data/vendor/jsclasses/jslogo.pdf +0 -0
  147. data/vendor/jsclasses/jslogo.sty +1 -13
  148. data/vendor/jsclasses/jspf.cls +22 -18
  149. data/vendor/jsclasses/jsreport.cls +22 -18
  150. data/vendor/jsclasses/jsverb.ins +9 -0
  151. data/vendor/jsclasses/jsverb.pdf +0 -0
  152. data/vendor/jsclasses/jsverb.sty +1 -13
  153. data/vendor/jsclasses/kiyou.cls +22 -18
  154. data/vendor/jsclasses/minijs.sty +68 -22
  155. data/vendor/jsclasses/okumacro.ins +9 -0
  156. data/vendor/jsclasses/okumacro.pdf +0 -0
  157. data/vendor/jsclasses/okumacro.sty +1 -13
  158. data/vendor/jsclasses/okuverb.ins +9 -0
  159. data/vendor/jsclasses/okuverb.pdf +0 -0
  160. data/vendor/jsclasses/okuverb.sty +1 -13
  161. data/vendor/jsclasses/tests/relfont.tex +10 -0
  162. data/vendor/jsclasses/winjis.sty +23 -19
  163. metadata +14 -6
  164. data/.rubocop_todo.yml +0 -7
  165. data/lib/review/book/compilable.rb +0 -174
@@ -1,4 +1,13 @@
1
+ \input docstrip
2
+ \preamble
3
+
4
+ Maintained on GitHub: https://github.com/texjporg/jsclasses
5
+
6
+ \endpreamble
7
+
1
8
  \def\batchfile{okumacro.ins}
2
9
  \input docstrip.tex
3
10
  \keepsilent
4
11
  \generateFile{okumacro.sty}{f}{\from{okumacro.dtx}{okumacro}}
12
+
13
+ \endbatchfile
@@ -6,20 +6,8 @@
6
6
  %%
7
7
  %% okumacro.dtx (with options: `okumacro')
8
8
  %%
9
- %% IMPORTANT NOTICE:
9
+ %% Maintained on GitHub: https://github.com/texjporg/jsclasses
10
10
  %%
11
- %% For the copyright see the source file.
12
- %%
13
- %% Any modified versions of this file must be renamed
14
- %% with new filenames distinct from okumacro.sty.
15
- %%
16
- %% For distribution of the original source see the terms
17
- %% for copying and modification in the file okumacro.dtx.
18
- %%
19
- %% This generated file may be distributed as long as the
20
- %% original source files, as listed above, are part of the
21
- %% same distribution. (The sources need not necessarily be
22
- %% in the same archive or directory.)
23
11
  \ifx\epTeXinputencoding\undefined\else
24
12
  \epTeXinputencoding utf8 % ^^A added (2017-10-04)
25
13
  \fi
@@ -1,4 +1,13 @@
1
+ \input docstrip
2
+ \preamble
3
+
4
+ Maintained on GitHub: https://github.com/texjporg/jsclasses
5
+
6
+ \endpreamble
7
+
1
8
  \def\batchfile{okuverb.ins}
2
9
  \input docstrip.tex
3
10
  \keepsilent
4
11
  \generateFile{okuverb.sty}{f}{\from{okuverb.dtx}{okuverb}}
12
+
13
+ \endbatchfile
Binary file
@@ -6,20 +6,8 @@
6
6
  %%
7
7
  %% okuverb.dtx (with options: `okuverb')
8
8
  %%
9
- %% IMPORTANT NOTICE:
9
+ %% Maintained on GitHub: https://github.com/texjporg/jsclasses
10
10
  %%
11
- %% For the copyright see the source file.
12
- %%
13
- %% Any modified versions of this file must be renamed
14
- %% with new filenames distinct from okuverb.sty.
15
- %%
16
- %% For distribution of the original source see the terms
17
- %% for copying and modification in the file okuverb.dtx.
18
- %%
19
- %% This generated file may be distributed as long as the
20
- %% original source files, as listed above, are part of the
21
- %% same distribution. (The sources need not necessarily be
22
- %% in the same archive or directory.)
23
11
  \NeedsTeXFormat{pLaTeX2e}
24
12
  \ProvidesFile{okuverb.sty}[2003/09/03 okumura]
25
13
  \newif\if@yen \@yenfalse
@@ -0,0 +1,10 @@
1
+ \documentclass{jsarticle}
2
+ \begin{document}
3
+
4
+ ad-hocな従属書体のテスト。Serifと明朝
5
+
6
+ \textsf{ad-hocな従属書体のテスト。San-Serifとゴシック}
7
+
8
+ \texttt{ad-hocな従属書体のテスト。Typewriterとゴシック}
9
+
10
+ \end{document}
@@ -8,9 +8,10 @@
8
8
  % both from http://psitau.kitunebi.com/utf.html by psitau
9
9
  %
10
10
  \NeedsTeXFormat{pLaTeX2e}
11
- \ProvidesPackage{winjis}[2018/02/04 okumura, texjporg]
11
+ \ProvidesPackage{winjis}
12
+ [2020/10/04 okumura, texjporg]
12
13
  %
13
- % if upLaTeX detected, abort loading this package
14
+ %% if upLaTeX detected, abort loading this package
14
15
  \ifnum \ifx\ucs\@undefined\z@\else\ucs"3000 \fi ="3000 % upTeX
15
16
  \PackageError{winjis}{This package is not required on upLaTeX}
16
17
  {Package `winjis' is meant for using platform-dependent
@@ -20,8 +21,8 @@
20
21
  \expandafter\endinput
21
22
  \fi
22
23
  %
23
- % if jsclasses (<= 2017) loaded, winjis option is available;
24
- % abort loading this package
24
+ %% if jsclasses (<= 2017) loaded, winjis option is available;
25
+ %% abort loading this package
25
26
  \ifx\winjistrue\@undefined\else
26
27
  \PackageWarning{winjis}{%
27
28
  Your version of jsclasses should have\MessageBreak
@@ -29,10 +30,10 @@
29
30
  \expandafter\endinput
30
31
  \fi
31
32
  %
32
- % "fake" jsarticle
33
+ %% "fake" jsarticle
33
34
  \expandafter\def\csname ver@jsarticle.cls\endcsname{}
34
35
  %
35
- % use winjis; force jsclasses-style scaling
36
+ %% use winjis; force jsclasses-style scaling
36
37
  \@for\@tempa:=5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88\do{%
37
38
  \expandafter\let\csname JY1/mc/m/n/\@tempa\endcsname\relax
38
39
  \expandafter\let\csname JY1/gt/m/n/\@tempa\endcsname\relax
@@ -55,24 +56,15 @@
55
56
  \DeclareFontShape{JT1}{gt}{m}{n}{<-> s * [0.93885] winjisg-v}{}
56
57
  \fi
57
58
  %
58
- % if jsclasses loaded, the rest of this package is already done;
59
- % exit now
59
+ %% if jsclasses loaded, the rest of this package is already done;
60
+ %% exit now
60
61
  \ifx\@jsc@uplatextrue\@undefined\else
61
62
  \normalsize
62
63
  \expandafter\endinput
63
64
  \fi
64
65
  %
65
- % \@setfontsize with \parindent and \(x)kanjiskip settings
66
- \def\@setfontsize#1#2#3{\@nomath#1%
67
- \ifx\protect\@typeset@protect
68
- \let\@currsize#1%
69
- \fi
70
- \fontsize{#2}{#3}\selectfont
71
- \ifdim\parindent>\z@ \parindent=1zw \fi
72
- \kanjiskip=0zw plus .1zw minus .01zw
73
- \xkanjiskip=0.25em plus 0.15em minus 0.06em}
74
- %
75
- % ad-hoc "relation font"
66
+ %% ad-hoc "relation font"
67
+ %% does not support LaTeX2e 2020-02-02 or later!
76
68
  \DeclareRobustCommand\rmfamily
77
69
  {\not@math@alphabet\rmfamily\mathrm
78
70
  \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont}
@@ -82,6 +74,18 @@
82
74
  \DeclareRobustCommand\ttfamily
83
75
  {\not@math@alphabet\ttfamily\mathtt
84
76
  \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
77
+ %
78
+ %% \@setfontsize with \parindent and \(x)kanjiskip settings
79
+ \def\@setfontsize#1#2#3{\@nomath#1%
80
+ \ifx\protect\@typeset@protect
81
+ \let\@currsize#1%
82
+ \fi
83
+ \fontsize{#2}{#3}\selectfont
84
+ \ifdim\parindent>\z@ \parindent=1zw \fi
85
+ \kanjiskip=0zw plus .1zw minus .01zw
86
+ \xkanjiskip=0.25em plus 0.15em minus 0.06em}
87
+ %
88
+ %% initialize
85
89
  \normalsize
86
90
  %
87
91
  \endinput
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: 4.2.0
4
+ version: 5.0.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: 2020-06-29 00:00:00.000000000 Z
12
+ date: 2020-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: image_size
@@ -87,14 +87,14 @@ dependencies:
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: 0.77.0
90
+ version: 0.92.0
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: 0.77.0
97
+ version: 0.92.0
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rubocop-performance
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +179,6 @@ files:
179
179
  - ".github/workflows/ruby.yml"
180
180
  - ".gitignore"
181
181
  - ".rubocop.yml"
182
- - ".rubocop_todo.yml"
183
182
  - ".travis.yml"
184
183
  - COPYING
185
184
  - Dockerfile
@@ -254,8 +253,9 @@ files:
254
253
  - lib/review.rb
255
254
  - lib/review/book.rb
256
255
  - lib/review/book/base.rb
256
+ - lib/review/book/bib.rb
257
+ - lib/review/book/book_unit.rb
257
258
  - lib/review/book/chapter.rb
258
- - lib/review/book/compilable.rb
259
259
  - lib/review/book/image_finder.rb
260
260
  - lib/review/book/index.rb
261
261
  - lib/review/book/index/item.rb
@@ -283,6 +283,7 @@ files:
283
283
  - lib/review/i18n.yml
284
284
  - lib/review/idgxmlbuilder.rb
285
285
  - lib/review/idgxmlmaker.rb
286
+ - lib/review/index_builder.rb
286
287
  - lib/review/init-web/finish.html
287
288
  - lib/review/init-web/index.html
288
289
  - lib/review/init-web/review-layout-design.js
@@ -428,6 +429,7 @@ files:
428
429
  - test/test_idgxmlmaker_cmd.rb
429
430
  - test/test_image_finder.rb
430
431
  - test/test_index.rb
432
+ - test/test_indexbuilder.rb
431
433
  - test/test_latexbuilder.rb
432
434
  - test/test_latexbuilder_v2.rb
433
435
  - test/test_lineinput.rb
@@ -442,6 +444,7 @@ files:
442
444
  - test/test_preprocessor.rb
443
445
  - test/test_review_ext.rb
444
446
  - test/test_rstbuilder.rb
447
+ - test/test_sec_counter.rb
445
448
  - test/test_template.rb
446
449
  - test/test_textmaker_cmd.rb
447
450
  - test/test_textutils.rb
@@ -476,6 +479,8 @@ files:
476
479
  - vendor/gentombow/tests/bounddvi-05a-geodvips.tex
477
480
  - vendor/gentombow/tests/bounddvi-06-geodvipdfmx.tex
478
481
  - vendor/gentombow/tests/bounddvi-06a-geodvipdfmx.tex
482
+ - vendor/gentombow/tests/gentombow-01-pdfx.tex
483
+ - vendor/gentombow/tests/gentombow-02-pdfx.tex
479
484
  - vendor/gentombow/tests/pxgentombow-01-usage.tex
480
485
  - vendor/gentombow/tests/pxgentombow-02-js.tex
481
486
  - vendor/gentombow/tests/pxgentombow-02a-js-error.tex
@@ -534,6 +539,7 @@ files:
534
539
  - vendor/jsclasses/okuverb.ins
535
540
  - vendor/jsclasses/okuverb.pdf
536
541
  - vendor/jsclasses/okuverb.sty
542
+ - vendor/jsclasses/tests/relfont.tex
537
543
  - vendor/jsclasses/winjis.sty
538
544
  - vendor/jumoline/README
539
545
  - vendor/jumoline/jumoline.dtx
@@ -602,6 +608,7 @@ test_files:
602
608
  - test/test_idgxmlmaker_cmd.rb
603
609
  - test/test_image_finder.rb
604
610
  - test/test_index.rb
611
+ - test/test_indexbuilder.rb
605
612
  - test/test_latexbuilder.rb
606
613
  - test/test_latexbuilder_v2.rb
607
614
  - test/test_lineinput.rb
@@ -616,6 +623,7 @@ test_files:
616
623
  - test/test_preprocessor.rb
617
624
  - test/test_review_ext.rb
618
625
  - test/test_rstbuilder.rb
626
+ - test/test_sec_counter.rb
619
627
  - test/test_template.rb
620
628
  - test/test_textmaker_cmd.rb
621
629
  - test/test_textutils.rb
@@ -1,7 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2017-02-18 14:39:22 +0900 using RuboCop version 0.47.1.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
@@ -1,174 +0,0 @@
1
- # Copyright (c) 2009-2017 Minero Aoki, Kenshi Muto
2
- # 2002-2008 Minero Aoki
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
- require 'review/textutils'
10
-
11
- module ReVIEW
12
- module Book
13
- module Compilable
14
- include TextUtils
15
- attr_reader :book
16
- attr_reader :path
17
- attr_accessor :content
18
-
19
- def dirname
20
- return nil unless @path
21
- File.dirname(@path)
22
- end
23
-
24
- def basename
25
- return nil unless @path
26
- File.basename(@path)
27
- end
28
-
29
- def name
30
- return nil unless @name
31
- File.basename(@name, '.*')
32
- end
33
-
34
- alias_method :id, :name
35
-
36
- def title
37
- return @title if @title
38
-
39
- @title = ''
40
- return @title unless content
41
- content.each_line do |line|
42
- if line =~ /\A=+/
43
- @title = line.sub(/\A=+(\[.+?\])?(\{.+?\})?/, '').strip
44
- break
45
- end
46
- end
47
- @title
48
- end
49
-
50
- def size
51
- content.size
52
- end
53
-
54
- def volume
55
- @volume ||= Volume.count_file(path)
56
- end
57
-
58
- def lines
59
- # FIXME: we cannot duplicate Enumerator on ruby 1.9 HEAD
60
- (@lines ||= content.lines.to_a).dup
61
- end
62
-
63
- def list(id)
64
- list_index[id]
65
- end
66
-
67
- def list_index
68
- @list_index ||= ListIndex.parse(lines)
69
- @list_index
70
- end
71
-
72
- def table(id)
73
- table_index[id]
74
- end
75
-
76
- def table_index
77
- @table_index ||= TableIndex.parse(lines)
78
- @table_index
79
- end
80
-
81
- def equation(id)
82
- equation_index[id]
83
- end
84
-
85
- def equation_index
86
- @equation_index ||= EquationIndex.parse(lines)
87
- @equation_index
88
- end
89
-
90
- def footnote(id)
91
- footnote_index[id]
92
- end
93
-
94
- def footnote_index
95
- @footnote_index ||= FootnoteIndex.parse(lines)
96
- @footnote_index
97
- end
98
-
99
- def image(id)
100
- return image_index[id] if image_index.key?(id)
101
- return icon_index[id] if icon_index.key?(id)
102
- return numberless_image_index[id] if numberless_image_index.key?(id)
103
- indepimage_index[id]
104
- end
105
-
106
- def numberless_image_index
107
- @numberless_image_index ||=
108
- NumberlessImageIndex.parse(lines, id,
109
- @book.imagedir,
110
- @book.image_types, @book.config['builder'])
111
- end
112
-
113
- def image_index
114
- @image_index ||= ImageIndex.parse(lines, id,
115
- @book.imagedir,
116
- @book.image_types, @book.config['builder'])
117
- @image_index
118
- end
119
-
120
- def icon_index
121
- @icon_index ||= IconIndex.parse(lines, id,
122
- @book.imagedir,
123
- @book.image_types, @book.config['builder'])
124
- @icon_index
125
- end
126
-
127
- def indepimage_index
128
- @indepimage_index ||=
129
- IndepImageIndex.parse(lines, id,
130
- @book.imagedir,
131
- @book.image_types, @book.config['builder'])
132
- end
133
-
134
- def bibpaper(id)
135
- bibpaper_index[id]
136
- end
137
-
138
- def bibpaper_index
139
- raise FileNotFound, "no such bib file: #{@book.bib_file}" unless @book.bib_exist?
140
- @bibpaper_index ||= BibpaperIndex.parse(@book.read_bib.lines.to_a)
141
- @bibpaper_index
142
- end
143
-
144
- def headline(caption)
145
- headline_index[caption]
146
- end
147
-
148
- def headline_index
149
- @headline_index ||= HeadlineIndex.parse(lines, self)
150
- end
151
-
152
- def column(id)
153
- column_index[id]
154
- end
155
-
156
- def column_index
157
- @column_index ||= ColumnIndex.parse(lines)
158
- end
159
-
160
- def next_chapter
161
- book.next_chapter(self)
162
- end
163
-
164
- def prev_chapter
165
- book.prev_chapter(self)
166
- end
167
-
168
- def image_bound?(item_id)
169
- item = self.image(item_id)
170
- item.path
171
- end
172
- end
173
- end
174
- end