review 3.1.0 → 3.2.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/.rubocop.yml +11 -1
- data/.travis.yml +16 -15
- data/NEWS.ja.md +75 -0
- data/NEWS.md +75 -0
- data/appveyor.yml +20 -2
- data/bin/review-catalog-converter +3 -3
- data/bin/review-check +3 -3
- data/bin/review-compile +6 -6
- data/bin/review-epubmaker +3 -35
- data/bin/review-index +5 -5
- data/bin/review-preproc +4 -4
- data/bin/review-vol +5 -5
- data/doc/format.ja.md +6 -4
- data/doc/format.md +3 -1
- data/lib/epubmaker/epubcommon.rb +1 -2
- data/lib/epubmaker/epubv2.rb +1 -1
- data/lib/epubmaker/epubv3.rb +1 -0
- data/lib/epubmaker/producer.rb +2 -1
- data/lib/review/book/base.rb +5 -5
- data/lib/review/book/index.rb +18 -5
- data/lib/review/builder.rb +8 -2
- data/lib/review/compiler.rb +11 -34
- data/lib/review/epub2html.rb +37 -4
- data/lib/review/epubmaker.rb +40 -3
- data/lib/review/htmlbuilder.rb +2 -2
- data/lib/review/idgxmlbuilder.rb +9 -8
- data/lib/review/init.rb +7 -7
- data/lib/review/latexbuilder.rb +36 -14
- data/lib/review/location.rb +32 -0
- data/lib/review/markdownbuilder.rb +8 -1
- data/lib/review/plaintextbuilder.rb +9 -9
- data/lib/review/preprocessor.rb +2 -24
- data/lib/review/topbuilder.rb +4 -4
- data/lib/review/update.rb +3 -3
- data/lib/review/version.rb +1 -1
- data/lib/review/yamlloader.rb +23 -16
- data/review.gemspec +3 -2
- data/templates/latex/config.erb +4 -0
- data/templates/latex/review-jlreq/review-base.sty +45 -22
- data/templates/latex/review-jsbook/review-base.sty +20 -15
- data/templates/latex/review-jsbook/review-jsbook.cls +3 -3
- data/templates/opf/epubv3.opf.erb +1 -0
- data/test/assets/test_template.tex +4 -0
- data/test/assets/test_template_backmatter.tex +4 -0
- data/test/test_book.rb +1 -1
- data/test/test_builder.rb +16 -0
- data/test/test_catalog.rb +5 -0
- data/test/test_htmlbuilder.rb +471 -96
- data/test/test_idgxmlbuilder.rb +132 -17
- data/test/test_index.rb +40 -0
- data/test/test_latexbuilder.rb +668 -72
- data/test/test_latexbuilder_v2.rb +597 -68
- data/test/test_markdownbuilder.rb +90 -13
- data/test/test_md2inaobuilder.rb +20 -7
- data/test/test_plaintextbuilder.rb +241 -19
- data/test/test_preprocessor.rb +2 -16
- data/test/test_rstbuilder.rb +216 -22
- data/test/test_topbuilder.rb +334 -22
- metadata +20 -6
data/lib/review/version.rb
CHANGED
data/lib/review/yamlloader.rb
CHANGED
|
@@ -15,31 +15,38 @@ module ReVIEW
|
|
|
15
15
|
loaded_files = {}
|
|
16
16
|
yaml = {}
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
# Check exit condition
|
|
20
|
-
return yaml if file_queue.empty?
|
|
21
|
-
|
|
18
|
+
while file_queue.present?
|
|
22
19
|
current_file = file_queue.shift
|
|
23
20
|
current_yaml = YAML.load_file(current_file)
|
|
24
21
|
yaml = current_yaml.deep_merge(yaml)
|
|
25
22
|
|
|
26
|
-
|
|
23
|
+
if yaml.key?('inherit')
|
|
24
|
+
inherit_files = parse_inherit(yaml, yamlfile, loaded_files)
|
|
25
|
+
file_queue = inherit_files + file_queue
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
yaml
|
|
30
|
+
end
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
inherit_file = File.expand_path(item, File.dirname(yamlfile))
|
|
32
|
+
def parse_inherit(yaml, yamlfile, loaded_files)
|
|
33
|
+
files = []
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
raise "Found circular YAML inheritance '#{inherit_file}' in #{yamlfile}."
|
|
35
|
-
end
|
|
35
|
+
yaml['inherit'].reverse_each do |item|
|
|
36
|
+
inherit_file = File.expand_path(item, File.dirname(yamlfile))
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
# Check loop
|
|
39
|
+
if loaded_files[inherit_file]
|
|
40
|
+
raise "Found circular YAML inheritance '#{inherit_file}' in #{yamlfile}."
|
|
39
41
|
end
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
|
|
43
|
+
loaded_files[inherit_file] = true
|
|
44
|
+
files << inherit_file
|
|
42
45
|
end
|
|
46
|
+
|
|
47
|
+
yaml.delete('inherit')
|
|
48
|
+
|
|
49
|
+
files
|
|
43
50
|
end
|
|
44
51
|
end
|
|
45
52
|
end
|
data/review.gemspec
CHANGED
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
|
|
|
12
12
|
gem.summary = 'Re:VIEW: a easy-to-use digital publishing system'
|
|
13
13
|
gem.description = 'Re:VIEW is a digital publishing system for books and ebooks. It supports InDesign, EPUB and LaTeX.'
|
|
14
14
|
gem.required_rubygems_version = Gem::Requirement.new('>= 0') if gem.respond_to? :required_rubygems_version=
|
|
15
|
-
gem.date = '2019-
|
|
15
|
+
gem.date = '2019-06-29'
|
|
16
16
|
|
|
17
17
|
gem.files = `git ls-files`.split("\n")
|
|
18
18
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
@@ -25,7 +25,8 @@ Gem::Specification.new do |gem|
|
|
|
25
25
|
gem.add_dependency('rubyzip')
|
|
26
26
|
gem.add_development_dependency('pygments.rb')
|
|
27
27
|
gem.add_development_dependency('rake')
|
|
28
|
-
gem.add_development_dependency('rubocop', '~> 0.
|
|
28
|
+
gem.add_development_dependency('rubocop', '~> 0.72.0')
|
|
29
|
+
gem.add_development_dependency('rubocop-performance')
|
|
29
30
|
gem.add_development_dependency('simplecov')
|
|
30
31
|
gem.add_development_dependency('test-unit')
|
|
31
32
|
end
|
data/templates/latex/config.erb
CHANGED
|
@@ -102,6 +102,10 @@
|
|
|
102
102
|
\@ifundefined{reviewimagecaption}{% for 3.0.0 compatibility
|
|
103
103
|
\newcommand{\reviewimagecaption}[1]{\caption{##1}}
|
|
104
104
|
}
|
|
105
|
+
\@ifundefined{reviewincludegraphics}{% for 3.2.0 compatibility
|
|
106
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
|
107
|
+
\includegraphics[##1]{##2}}
|
|
108
|
+
}
|
|
105
109
|
}
|
|
106
110
|
|
|
107
111
|
\makeatother
|
|
@@ -47,6 +47,9 @@
|
|
|
47
47
|
|
|
48
48
|
\newcommand{\reviewindepimagecaption[2]}{\@makecaption{}{#2}}
|
|
49
49
|
|
|
50
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
|
51
|
+
\includegraphics[#1]{#2}}
|
|
52
|
+
|
|
50
53
|
% 表
|
|
51
54
|
\newenvironment{reviewtablesetup}{%
|
|
52
55
|
}{}
|
|
@@ -69,16 +72,26 @@
|
|
|
69
72
|
|
|
70
73
|
\newcommand{\reviewbackslash}[0]{\textbackslash{}}
|
|
71
74
|
|
|
75
|
+
% 古いjlreq.clsへの互換(当面のad-hoc対応)
|
|
76
|
+
\ifdefined\jlreq@@makecaption@font@setting
|
|
77
|
+
\else
|
|
78
|
+
\let\jlreq@@makecaption@font@setting\jlreq@@makecaption@font
|
|
79
|
+
\fi
|
|
80
|
+
\ifdefined\jlreq@@makecaption@label@@font@setting
|
|
81
|
+
\else
|
|
82
|
+
\let\jlreq@@makecaption@label@font@setting\jlreq@@makecaption@label@font
|
|
83
|
+
\fi
|
|
84
|
+
|
|
72
85
|
\renewcommand{\@makecaption}[2]{{% %本当はl,c,rを[]で指定したい
|
|
73
86
|
\reset@font\small
|
|
74
87
|
\vskip\abovecaptionskip
|
|
75
88
|
\jlreq@ifempty{#1}{%
|
|
76
|
-
\sbox\@tempboxa{{\jlreq@@makecaption@font #2}}}{%
|
|
77
|
-
\sbox\@tempboxa{{\jlreq@@makecaption@label@font #1}\review@intn@captionprefix{\jlreq@@makecaption@font #2}}}
|
|
89
|
+
\sbox\@tempboxa{{\jlreq@@makecaption@font@setting #2}}}{%
|
|
90
|
+
\sbox\@tempboxa{{\jlreq@@makecaption@label@font@setting #1}\review@intn@captionprefix{\jlreq@@makecaption@font@setting #2}}}
|
|
78
91
|
\ifdim \wd\@tempboxa >\hsize
|
|
79
92
|
\jlreq@ifempty{#1}{%
|
|
80
|
-
{\jlreq@@makecaption@font #2}}{%
|
|
81
|
-
{\jlreq@@makecaption@label@font #1}\review@intn@captionprefix{\jlreq@@makecaption@font #2}}\relax\par
|
|
93
|
+
{\jlreq@@makecaption@font@setting #2}}{%
|
|
94
|
+
{\jlreq@@makecaption@label@font@setting #1}\review@intn@captionprefix{\jlreq@@makecaption@font@setting #2}}\relax\par
|
|
82
95
|
\else
|
|
83
96
|
\global\@minipagefalse
|
|
84
97
|
\hbox to\hsize{\box\@tempboxa\hfil}% キャプションLeft
|
|
@@ -92,10 +105,10 @@
|
|
|
92
105
|
\newcommand{\reviewemlistcaption}[1]{\review@commoncaption{}{#1}}
|
|
93
106
|
\newcommand{\reviewsourcecaption}[1]{\review@commoncaption{}{#1}}
|
|
94
107
|
\newcommand{\reviewcmdcaption}[1]{\review@commoncaption{}{#1}}
|
|
95
|
-
\newenvironment{reviewlistblock}{\list{}{\topsep.5\baselineskip \leftmargin\z@ \itemindent\z@}\item\relax}{\endlist}% 上下アキ0.5
|
|
108
|
+
\newenvironment{reviewlistblock}{\list{}{\topsep.5\baselineskip \leftmargin\z@ \itemindent\z@}\item\needspace{4\Cvs}\relax}{\endlist}% 上下アキ0.5
|
|
96
109
|
|
|
97
110
|
\newcommand{\reviewequationcaption}[1]{\review@commoncaption{}{#1}}
|
|
98
|
-
\newenvironment{reviewequationblock}{}{}
|
|
111
|
+
\newenvironment{reviewequationblock}{\needspace{2\Cvs}}{}
|
|
99
112
|
|
|
100
113
|
\newcommand{\reviewimageref}[2]{\review@intn@image #1}
|
|
101
114
|
\newcommand{\reviewtableref}[2]{\review@intn@table #1}
|
|
@@ -146,27 +159,27 @@
|
|
|
146
159
|
{\end{tcolorbox}}
|
|
147
160
|
|
|
148
161
|
% 書体
|
|
149
|
-
\
|
|
150
|
-
\
|
|
151
|
-
\
|
|
152
|
-
\
|
|
153
|
-
\
|
|
154
|
-
\
|
|
155
|
-
\
|
|
156
|
-
\
|
|
157
|
-
\
|
|
158
|
-
\
|
|
159
|
-
\
|
|
160
|
-
\
|
|
162
|
+
\DeclareRobustCommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
|
|
163
|
+
\DeclareRobustCommand{\reviewami}[1]{#1}% FIXME
|
|
164
|
+
\DeclareRobustCommand{\reviewballoon}[1]{←{#1}}
|
|
165
|
+
\DeclareRobustCommand{\reviewem}[1]{\textbf{#1}}
|
|
166
|
+
\DeclareRobustCommand{\reviewstrong}[1]{\textbf{#1}}
|
|
167
|
+
\DeclareRobustCommand{\reviewunderline}[1]{\underline{#1}}% ulemかjumolineで上書き。デフォルトはulemにしている
|
|
168
|
+
\DeclareRobustCommand{\reviewit}[1]{\textit{#1}}
|
|
169
|
+
\DeclareRobustCommand{\reviewbold}[1]{\textbf{#1}}
|
|
170
|
+
\DeclareRobustCommand{\reviewcode}[1]{\texttt{#1}}
|
|
171
|
+
\DeclareRobustCommand{\reviewtt}[1]{\texttt{#1}}
|
|
172
|
+
\DeclareRobustCommand{\reviewtti}[1]{\texttt{\textit{#1}}}
|
|
173
|
+
\DeclareRobustCommand{\reviewttb}[1]{\texttt{\textbf{#1}}}
|
|
174
|
+
\DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
|
|
161
175
|
|
|
162
176
|
%% @<del> is ignored in LaTeX with default style
|
|
163
|
-
\
|
|
164
|
-
|
|
177
|
+
%% \DeclareRobustCommand{\reviewstrike}[1]{#1}
|
|
165
178
|
%%%% for ulem.sty:
|
|
166
|
-
\
|
|
179
|
+
\DeclareRobustCommand{\reviewstrike}[1]{\sout{#1}}
|
|
167
180
|
%%
|
|
168
181
|
%%%% for jumoline.sty:
|
|
169
|
-
%%\
|
|
182
|
+
%%\DeclareRobustCommand{\reviewstrike}[1]{\Middleline{#1}}
|
|
170
183
|
|
|
171
184
|
\newcommand{\reviewtitlefont}[0]{\usefont{T1}{phv}{b}{n}\gtfamily}
|
|
172
185
|
\newcommand{\reviewmainfont}[0]{}
|
|
@@ -203,6 +216,16 @@
|
|
|
203
216
|
\renewcommand{\appendixname}{\reviewappendixname}
|
|
204
217
|
\fi
|
|
205
218
|
|
|
219
|
+
% maxwidth is the original width if it is less than linewidth
|
|
220
|
+
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
|
|
221
|
+
\def\maxwidth{%
|
|
222
|
+
\ifdim\Gin@nat@width>\linewidth
|
|
223
|
+
\linewidth
|
|
224
|
+
\else
|
|
225
|
+
\Gin@nat@width
|
|
226
|
+
\fi
|
|
227
|
+
}
|
|
228
|
+
|
|
206
229
|
% hooks
|
|
207
230
|
\def\reviewbegindocumenthook{}
|
|
208
231
|
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
\RequirePackage[deluxe]{otf}%
|
|
17
17
|
}
|
|
18
18
|
\RequirePackage{caption}
|
|
19
|
+
\RequirePackage{needspace}
|
|
19
20
|
\RequirePackage{suffix}
|
|
20
21
|
\RequirePackage[T1]{fontenc}\RequirePackage{textcomp}%T1/TS1
|
|
21
22
|
\RequirePackage{lmodern}
|
|
@@ -121,11 +122,14 @@
|
|
|
121
122
|
\end{alltt}\end{center}
|
|
122
123
|
\end{figure}}
|
|
123
124
|
|
|
125
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
|
126
|
+
\includegraphics[#1]{#2}}
|
|
127
|
+
|
|
124
128
|
\newcommand{\reviewequationcaption}[1]{%
|
|
125
129
|
\medskip{\small\noindent #1}}
|
|
126
|
-
\newenvironment{reviewequationblock}{}{}
|
|
130
|
+
\newenvironment{reviewequationblock}{\needspace{2\Cvs}}{}
|
|
127
131
|
|
|
128
|
-
\newenvironment{reviewlistblock}{}{}
|
|
132
|
+
\newenvironment{reviewlistblock}{\needspace{2\Cvs}}{}
|
|
129
133
|
|
|
130
134
|
\newenvironment{reviewemlist}{%
|
|
131
135
|
\medskip\small\begin{shaded}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
@@ -252,21 +256,22 @@
|
|
|
252
256
|
\reviewminicolumntitle{#1}
|
|
253
257
|
}{\end{reviewminicolumn}}
|
|
254
258
|
|
|
255
|
-
\
|
|
256
|
-
\
|
|
257
|
-
\
|
|
258
|
-
\
|
|
259
|
-
\
|
|
260
|
-
\
|
|
261
|
-
\
|
|
262
|
-
\
|
|
263
|
-
\
|
|
264
|
-
\
|
|
265
|
-
\
|
|
266
|
-
\
|
|
259
|
+
\DeclareRobustCommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
|
|
260
|
+
\DeclareRobustCommand{\reviewami}[1]{\mask{#1}{A}}
|
|
261
|
+
\DeclareRobustCommand{\reviewem}[1]{\textbf{#1}}
|
|
262
|
+
\DeclareRobustCommand{\reviewstrong}[1]{\textbf{#1}}
|
|
263
|
+
\DeclareRobustCommand{\reviewballoon}[1]{←{#1}}
|
|
264
|
+
\DeclareRobustCommand{\reviewunderline}[1]{\Underline{#1}}
|
|
265
|
+
\DeclareRobustCommand{\reviewit}[1]{\textit{#1}}
|
|
266
|
+
\DeclareRobustCommand{\reviewbold}[1]{\textbf{#1}}
|
|
267
|
+
\DeclareRobustCommand{\reviewcode}[1]{\texttt{#1}}
|
|
268
|
+
\DeclareRobustCommand{\reviewtt}[1]{\texttt{#1}}
|
|
269
|
+
\DeclareRobustCommand{\reviewtti}[1]{\texttt{\textit{#1}}}
|
|
270
|
+
\DeclareRobustCommand{\reviewttb}[1]{\texttt{\textbf{#1}}}
|
|
271
|
+
\DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
|
|
267
272
|
|
|
268
273
|
%% @<del> is ignored in LaTeX with default style
|
|
269
|
-
\
|
|
274
|
+
\DeclareRobustCommand{\reviewstrike}[1]{#1}
|
|
270
275
|
|
|
271
276
|
%%%% for ulem.sty:
|
|
272
277
|
%%\renewcommand{\reviewstrike}[1]{\sout{#1}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
%#!ptex2pdf -l -u -ot '-synctex=1' test-rejsbk
|
|
2
|
-
% Copyright (c) 2018 Munehiro Yamamoto, Kenshi Muto.
|
|
2
|
+
% Copyright (c) 2018-2019 Munehiro Yamamoto, Kenshi Muto.
|
|
3
3
|
%
|
|
4
4
|
% Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
5
|
% of this software and associated documentation files (the "Software"), to deal
|
|
@@ -458,8 +458,8 @@
|
|
|
458
458
|
|
|
459
459
|
%% シンプルな通しノンブル
|
|
460
460
|
\ifrecls@serialpage
|
|
461
|
-
\
|
|
462
|
-
\gdef\thepage{
|
|
461
|
+
\def\pagenumbering#1{%
|
|
462
|
+
\gdef\thepage{\csname @arabic\endcsname\c@page}}
|
|
463
463
|
\fi
|
|
464
464
|
|
|
465
465
|
%% 開始ページを変更
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<package version="3.0" xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId" xml:lang="<%= @producer.config['language'] %>"<%= @package_attrs %>>
|
|
3
3
|
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
|
|
4
4
|
<%= @opf_metainfo %>
|
|
5
|
+
<%= @opf_coverimage %>
|
|
5
6
|
</metadata>
|
|
6
7
|
<%= @opf_manifest %>
|
|
7
8
|
<%= @opf_toc %>
|
|
@@ -48,6 +48,10 @@
|
|
|
48
48
|
\@ifundefined{reviewimagecaption}{% for 3.0.0 compatibility
|
|
49
49
|
\newcommand{\reviewimagecaption}[1]{\caption{##1}}
|
|
50
50
|
}
|
|
51
|
+
\@ifundefined{reviewincludegraphics}{% for 3.2.0 compatibility
|
|
52
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
|
53
|
+
\includegraphics[##1]{##2}}
|
|
54
|
+
}
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
\makeatother
|
|
@@ -59,6 +59,10 @@ some ad content
|
|
|
59
59
|
\@ifundefined{reviewimagecaption}{% for 3.0.0 compatibility
|
|
60
60
|
\newcommand{\reviewimagecaption}[1]{\caption{##1}}
|
|
61
61
|
}
|
|
62
|
+
\@ifundefined{reviewincludegraphics}{% for 3.2.0 compatibility
|
|
63
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
|
64
|
+
\includegraphics[##1]{##2}}
|
|
65
|
+
}
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
\makeatother
|
data/test/test_book.rb
CHANGED
data/test/test_builder.rb
CHANGED
|
@@ -80,6 +80,22 @@ class BuidlerTest < Test::Unit::TestCase
|
|
|
80
80
|
assert_equal [:text, text], @b.compile_inline(text)
|
|
81
81
|
end
|
|
82
82
|
|
|
83
|
+
def test_inline_missing_ref
|
|
84
|
+
b = Builder.new
|
|
85
|
+
chapter = ReVIEW::Book::Chapter.new(ReVIEW::Book::Base.load, 1, 'chap1', nil, StringIO.new)
|
|
86
|
+
b.bind(nil, chapter, nil)
|
|
87
|
+
e = assert_raises(ReVIEW::ApplicationError) { b.inline_list('unknown|list1') }
|
|
88
|
+
assert_equal ': error: unknown list: unknown|list1', e.message
|
|
89
|
+
e = assert_raises(ReVIEW::ApplicationError) { b.inline_table('unknown|table1') }
|
|
90
|
+
assert_equal ': error: unknown table: unknown|table1', e.message
|
|
91
|
+
e = assert_raises(ReVIEW::ApplicationError) { b.inline_img('unknown|img1') }
|
|
92
|
+
assert_equal ': error: unknown image: unknown|img1', e.message
|
|
93
|
+
e = assert_raises(ReVIEW::ApplicationError) { b.inline_column('unknown|column1') }
|
|
94
|
+
assert_equal ': error: unknown column: unknown|column1', e.message
|
|
95
|
+
e = assert_raises(ReVIEW::ApplicationError) { b.inline_fn('unknown|footnote1') }
|
|
96
|
+
assert_equal ': error: unknown footnote: unknown|footnote1', e.message
|
|
97
|
+
end
|
|
98
|
+
|
|
83
99
|
class XBuilder < Builder
|
|
84
100
|
def list_header(id, caption)
|
|
85
101
|
end
|
data/test/test_catalog.rb
CHANGED
data/test/test_htmlbuilder.rb
CHANGED
|
@@ -191,7 +191,15 @@ class HTMLBuidlerTest < Test::Unit::TestCase
|
|
|
191
191
|
|
|
192
192
|
def test_inline_in_table
|
|
193
193
|
actual = compile_block("//table{\n@<b>{1}\t@<i>{2}\n------------\n@<b>{3}\t@<i>{4}<>&\n//}\n")
|
|
194
|
-
|
|
194
|
+
expected = <<-EOS
|
|
195
|
+
<div class="table">
|
|
196
|
+
<table>
|
|
197
|
+
<tr><th><b>1</b></th><th><i>2</i></th></tr>
|
|
198
|
+
<tr><td><b>3</b></td><td><i>4</i><>&</td></tr>
|
|
199
|
+
</table>
|
|
200
|
+
</div>
|
|
201
|
+
EOS
|
|
202
|
+
assert_equal expected, actual
|
|
195
203
|
end
|
|
196
204
|
|
|
197
205
|
def test_inline_br
|
|
@@ -430,32 +438,59 @@ EOS
|
|
|
430
438
|
|
|
431
439
|
def test_quote
|
|
432
440
|
actual = compile_block("//quote{\nfoo\nbar\n\nbuz\n//}\n")
|
|
433
|
-
|
|
441
|
+
expected = <<-EOS
|
|
442
|
+
<blockquote><p>foobar</p>
|
|
443
|
+
<p>buz</p></blockquote>
|
|
444
|
+
EOS
|
|
445
|
+
assert_equal expected, actual
|
|
434
446
|
end
|
|
435
447
|
|
|
436
448
|
def test_memo
|
|
437
449
|
actual = compile_block("//memo[this is @<b>{test}<&>_]{\ntest1\n\ntest@<i>{2}\n//}\n")
|
|
438
|
-
|
|
450
|
+
expected = <<-EOS
|
|
451
|
+
<div class="memo">
|
|
452
|
+
<p class="caption">this is <b>test</b><&>_</p>
|
|
453
|
+
<p>test1</p>
|
|
454
|
+
<p>test<i>2</i></p>
|
|
455
|
+
</div>
|
|
456
|
+
EOS
|
|
457
|
+
assert_equal expected, actual
|
|
439
458
|
end
|
|
440
459
|
|
|
441
460
|
def test_blankline
|
|
442
461
|
actual = compile_block("//blankline\nfoo\n")
|
|
443
|
-
|
|
462
|
+
expected = <<-EOS
|
|
463
|
+
<p><br /></p>
|
|
464
|
+
<p>foo</p>
|
|
465
|
+
EOS
|
|
466
|
+
assert_equal expected, actual
|
|
444
467
|
end
|
|
445
468
|
|
|
446
469
|
def test_noindent
|
|
447
470
|
actual = compile_block("//noindent\nfoo\nbar\n\nfoo2\nbar2\n")
|
|
448
|
-
|
|
471
|
+
expected = <<-EOS
|
|
472
|
+
<p class="noindent">foobar</p>
|
|
473
|
+
<p>foo2bar2</p>
|
|
474
|
+
EOS
|
|
475
|
+
assert_equal expected, actual
|
|
449
476
|
end
|
|
450
477
|
|
|
451
478
|
def test_flushright
|
|
452
479
|
actual = compile_block("//flushright{\nfoo\nbar\n\nbuz\n//}\n")
|
|
453
|
-
|
|
480
|
+
expected = <<-EOS
|
|
481
|
+
<p class="flushright">foobar</p>
|
|
482
|
+
<p class="flushright">buz</p>
|
|
483
|
+
EOS
|
|
484
|
+
assert_equal expected, actual
|
|
454
485
|
end
|
|
455
486
|
|
|
456
487
|
def test_centering
|
|
457
488
|
actual = compile_block("//centering{\nfoo\nbar\n\nbuz\n//}\n")
|
|
458
|
-
|
|
489
|
+
expected = <<-EOS
|
|
490
|
+
<p class="center">foobar</p>
|
|
491
|
+
<p class="center">buz</p>
|
|
492
|
+
EOS
|
|
493
|
+
assert_equal expected, actual
|
|
459
494
|
end
|
|
460
495
|
|
|
461
496
|
def test_image
|
|
@@ -466,7 +501,15 @@ EOS
|
|
|
466
501
|
end
|
|
467
502
|
|
|
468
503
|
actual = compile_block("//image[sampleimg][sample photo]{\n//}\n")
|
|
469
|
-
|
|
504
|
+
expected = <<-EOS
|
|
505
|
+
<div id="sampleimg" class="image">
|
|
506
|
+
<img src="images/chap1-sampleimg.png" alt="sample photo" />
|
|
507
|
+
<p class="caption">
|
|
508
|
+
図1.1: sample photo
|
|
509
|
+
</p>
|
|
510
|
+
</div>
|
|
511
|
+
EOS
|
|
512
|
+
assert_equal expected, actual
|
|
470
513
|
end
|
|
471
514
|
|
|
472
515
|
def test_image_with_metric
|
|
@@ -477,7 +520,15 @@ EOS
|
|
|
477
520
|
end
|
|
478
521
|
|
|
479
522
|
actual = compile_block("//image[sampleimg][sample photo][scale=1.2]{\n//}\n")
|
|
480
|
-
|
|
523
|
+
expected = <<-EOS
|
|
524
|
+
<div id="sampleimg" class="image">
|
|
525
|
+
<img src="images/chap1-sampleimg.png" alt="sample photo" class="width-120per" />
|
|
526
|
+
<p class="caption">
|
|
527
|
+
図1.1: sample photo
|
|
528
|
+
</p>
|
|
529
|
+
</div>
|
|
530
|
+
EOS
|
|
531
|
+
assert_equal expected, actual
|
|
481
532
|
end
|
|
482
533
|
|
|
483
534
|
def test_image_with_metric2
|
|
@@ -488,7 +539,15 @@ EOS
|
|
|
488
539
|
end
|
|
489
540
|
|
|
490
541
|
actual = compile_block("//image[sampleimg][sample photo][scale=1.2,html::class=sample,latex::ignore=params]{\n//}\n")
|
|
491
|
-
|
|
542
|
+
expected = <<-EOS
|
|
543
|
+
<div id="sampleimg" class="image">
|
|
544
|
+
<img src="images/chap1-sampleimg.png" alt="sample photo" class="width-120per sample" />
|
|
545
|
+
<p class="caption">
|
|
546
|
+
図1.1: sample photo
|
|
547
|
+
</p>
|
|
548
|
+
</div>
|
|
549
|
+
EOS
|
|
550
|
+
assert_equal expected, actual
|
|
492
551
|
end
|
|
493
552
|
|
|
494
553
|
def test_image_with_tricky_id
|
|
@@ -499,7 +558,15 @@ EOS
|
|
|
499
558
|
end
|
|
500
559
|
|
|
501
560
|
actual = compile_block("//image[123 あ_;][sample photo]{\n//}\n")
|
|
502
|
-
|
|
561
|
+
expected = <<-EOS
|
|
562
|
+
<div id="id_123-_E3_81_82___3B" class="image">
|
|
563
|
+
<img src="images/chap1-123 あ_;.png" alt="sample photo" />
|
|
564
|
+
<p class="caption">
|
|
565
|
+
図1.1: sample photo
|
|
566
|
+
</p>
|
|
567
|
+
</div>
|
|
568
|
+
EOS
|
|
569
|
+
assert_equal expected, actual
|
|
503
570
|
end
|
|
504
571
|
|
|
505
572
|
def test_indepimage
|
|
@@ -510,7 +577,15 @@ EOS
|
|
|
510
577
|
end
|
|
511
578
|
|
|
512
579
|
actual = compile_block("//indepimage[sampleimg][sample photo]\n")
|
|
513
|
-
|
|
580
|
+
expected = <<-EOS
|
|
581
|
+
<div id="sampleimg" class="image">
|
|
582
|
+
<img src="images/chap1-sampleimg.png" alt="sample photo" />
|
|
583
|
+
<p class="caption">
|
|
584
|
+
図: sample photo
|
|
585
|
+
</p>
|
|
586
|
+
</div>
|
|
587
|
+
EOS
|
|
588
|
+
assert_equal expected, actual
|
|
514
589
|
end
|
|
515
590
|
|
|
516
591
|
def test_indepimage_without_caption
|
|
@@ -521,7 +596,12 @@ EOS
|
|
|
521
596
|
end
|
|
522
597
|
|
|
523
598
|
actual = compile_block("//indepimage[sampleimg]\n")
|
|
524
|
-
|
|
599
|
+
expected = <<-EOS
|
|
600
|
+
<div id="sampleimg" class="image">
|
|
601
|
+
<img src="images/chap1-sampleimg.png" alt="" />
|
|
602
|
+
</div>
|
|
603
|
+
EOS
|
|
604
|
+
assert_equal expected, actual
|
|
525
605
|
end
|
|
526
606
|
|
|
527
607
|
def test_indepimage_with_metric
|
|
@@ -532,7 +612,15 @@ EOS
|
|
|
532
612
|
end
|
|
533
613
|
|
|
534
614
|
actual = compile_block("//indepimage[sampleimg][sample photo][scale=1.2]\n")
|
|
535
|
-
|
|
615
|
+
expected = <<-EOS
|
|
616
|
+
<div id="sampleimg" class="image">
|
|
617
|
+
<img src="images/chap1-sampleimg.png" alt="sample photo" class="width-120per" />
|
|
618
|
+
<p class="caption">
|
|
619
|
+
図: sample photo
|
|
620
|
+
</p>
|
|
621
|
+
</div>
|
|
622
|
+
EOS
|
|
623
|
+
assert_equal expected, actual
|
|
536
624
|
end
|
|
537
625
|
|
|
538
626
|
def test_indepimage_with_metric2
|
|
@@ -543,7 +631,15 @@ EOS
|
|
|
543
631
|
end
|
|
544
632
|
|
|
545
633
|
actual = compile_block(%Q(//indepimage[sampleimg][sample photo][scale=1.2, html::class="sample",latex::ignore=params]\n))
|
|
546
|
-
|
|
634
|
+
expected = <<-EOS
|
|
635
|
+
<div id="sampleimg" class="image">
|
|
636
|
+
<img src="images/chap1-sampleimg.png" alt="sample photo" class="width-120per sample" />
|
|
637
|
+
<p class="caption">
|
|
638
|
+
図: sample photo
|
|
639
|
+
</p>
|
|
640
|
+
</div>
|
|
641
|
+
EOS
|
|
642
|
+
assert_equal expected, actual
|
|
547
643
|
end
|
|
548
644
|
|
|
549
645
|
def test_indepimage_without_caption_but_with_metric
|
|
@@ -554,28 +650,74 @@ EOS
|
|
|
554
650
|
end
|
|
555
651
|
|
|
556
652
|
actual = compile_block("//indepimage[sampleimg][][scale=1.2]\n")
|
|
557
|
-
|
|
653
|
+
expected = <<-EOS
|
|
654
|
+
<div id="sampleimg" class="image">
|
|
655
|
+
<img src="images/chap1-sampleimg.png" alt="" class="width-120per" />
|
|
656
|
+
</div>
|
|
657
|
+
EOS
|
|
658
|
+
assert_equal expected, actual
|
|
558
659
|
end
|
|
559
660
|
|
|
560
661
|
def test_dlist
|
|
561
662
|
actual = compile_block(": foo\n foo.\n bar.\n")
|
|
562
|
-
|
|
663
|
+
expected = <<-EOS
|
|
664
|
+
<dl>
|
|
665
|
+
<dt>foo</dt>
|
|
666
|
+
<dd>foo.bar.</dd>
|
|
667
|
+
</dl>
|
|
668
|
+
EOS
|
|
669
|
+
assert_equal expected, actual
|
|
563
670
|
end
|
|
564
671
|
|
|
565
672
|
def test_dlist_with_bracket
|
|
566
673
|
actual = compile_block(": foo[bar]\n foo.\n bar.\n")
|
|
567
|
-
|
|
674
|
+
expected = <<-EOS
|
|
675
|
+
<dl>
|
|
676
|
+
<dt>foo[bar]</dt>
|
|
677
|
+
<dd>foo.bar.</dd>
|
|
678
|
+
</dl>
|
|
679
|
+
EOS
|
|
680
|
+
assert_equal expected, actual
|
|
568
681
|
end
|
|
569
682
|
|
|
570
683
|
def test_dlist_with_comment
|
|
571
684
|
source = ": title\n body\n\#@ comment\n\#@ comment\n: title2\n body2\n"
|
|
572
685
|
actual = compile_block(source)
|
|
573
|
-
|
|
686
|
+
expected = <<-EOS
|
|
687
|
+
<dl>
|
|
688
|
+
<dt>title</dt>
|
|
689
|
+
<dd>body</dd>
|
|
690
|
+
<dt>title2</dt>
|
|
691
|
+
<dd>body2</dd>
|
|
692
|
+
</dl>
|
|
693
|
+
EOS
|
|
694
|
+
assert_equal expected, actual
|
|
574
695
|
end
|
|
575
696
|
|
|
576
697
|
def test_dlist_beforeulol
|
|
577
698
|
actual = compile_block(" : foo\n foo.\n\npara\n\n : foo\n foo.\n\n 1. bar\n\n : foo\n foo.\n\n * bar\n")
|
|
578
|
-
|
|
699
|
+
expected = <<-EOS
|
|
700
|
+
<dl>
|
|
701
|
+
<dt>foo</dt>
|
|
702
|
+
<dd>foo.</dd>
|
|
703
|
+
</dl>
|
|
704
|
+
<p>para</p>
|
|
705
|
+
<dl>
|
|
706
|
+
<dt>foo</dt>
|
|
707
|
+
<dd>foo.</dd>
|
|
708
|
+
</dl>
|
|
709
|
+
<ol>
|
|
710
|
+
<li>bar</li>
|
|
711
|
+
</ol>
|
|
712
|
+
<dl>
|
|
713
|
+
<dt>foo</dt>
|
|
714
|
+
<dd>foo.</dd>
|
|
715
|
+
</dl>
|
|
716
|
+
<ul>
|
|
717
|
+
<li>bar</li>
|
|
718
|
+
</ul>
|
|
719
|
+
EOS
|
|
720
|
+
assert_equal expected, actual
|
|
579
721
|
end
|
|
580
722
|
|
|
581
723
|
def test_list
|
|
@@ -583,7 +725,17 @@ EOS
|
|
|
583
725
|
Book::ListIndex::Item.new('samplelist', 1)
|
|
584
726
|
end
|
|
585
727
|
actual = compile_block("//list[samplelist][this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
|
|
586
|
-
|
|
728
|
+
expected = <<-EOS
|
|
729
|
+
<div id="samplelist" class="caption-code">
|
|
730
|
+
<p class="caption">リスト1.1: this is <b>test</b><&>_</p>
|
|
731
|
+
<pre class="list">test1
|
|
732
|
+
test1.5
|
|
733
|
+
|
|
734
|
+
test<i>2</i>
|
|
735
|
+
</pre>
|
|
736
|
+
</div>
|
|
737
|
+
EOS
|
|
738
|
+
assert_equal expected, actual
|
|
587
739
|
end
|
|
588
740
|
|
|
589
741
|
def test_inline_list
|
|
@@ -706,7 +858,17 @@ end
|
|
|
706
858
|
@book.config['highlight']['html'] = 'rouge'
|
|
707
859
|
actual = compile_block("//list[samplelist][this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
|
|
708
860
|
|
|
709
|
-
|
|
861
|
+
expected = <<-EOS
|
|
862
|
+
<div id="samplelist" class="caption-code">
|
|
863
|
+
<p class="caption">リスト1.1: this is <b>test</b><&>_</p>
|
|
864
|
+
<pre class="list highlight">test1
|
|
865
|
+
test1.5
|
|
866
|
+
|
|
867
|
+
test<i>2</i>
|
|
868
|
+
</pre>
|
|
869
|
+
</div>
|
|
870
|
+
EOS
|
|
871
|
+
assert_equal expected, actual
|
|
710
872
|
end
|
|
711
873
|
|
|
712
874
|
def test_list_rouge_lang
|
|
@@ -751,7 +913,18 @@ EOS
|
|
|
751
913
|
@book.config['highlight']['html'] = 'rouge'
|
|
752
914
|
actual = compile_block("//list[samplelist][this is @<b>{test}<&>_][]{\ndef foo(a1, a2=:test)\n (1..3).times{|i| a.include?(:foo)}\n return true\nend\n\n//}\n")
|
|
753
915
|
|
|
754
|
-
|
|
916
|
+
expected = <<-EOS
|
|
917
|
+
<div id="samplelist" class="caption-code">
|
|
918
|
+
<p class="caption">リスト1.1: this is <b>test</b><&>_</p>
|
|
919
|
+
<pre class="list highlight">def foo(a1, a2=:test)
|
|
920
|
+
(1..3).times{|i| a.include?(:foo)}
|
|
921
|
+
return true
|
|
922
|
+
end
|
|
923
|
+
|
|
924
|
+
</pre>
|
|
925
|
+
</div>
|
|
926
|
+
EOS
|
|
927
|
+
assert_equal expected, actual
|
|
755
928
|
end
|
|
756
929
|
|
|
757
930
|
def test_listnum
|
|
@@ -964,9 +1137,68 @@ EOB
|
|
|
964
1137
|
assert_equal expected, actual
|
|
965
1138
|
end
|
|
966
1139
|
|
|
1140
|
+
def test_source
|
|
1141
|
+
actual = compile_block("//source[foo/bar/test.rb]{\nfoo\nbar\n\nbuz\n//}\n")
|
|
1142
|
+
expected = <<-EOS
|
|
1143
|
+
<div class="source-code">
|
|
1144
|
+
<p class="caption">foo/bar/test.rb</p>
|
|
1145
|
+
<pre class="source">foo
|
|
1146
|
+
bar
|
|
1147
|
+
|
|
1148
|
+
buz
|
|
1149
|
+
</pre>
|
|
1150
|
+
</div>
|
|
1151
|
+
EOS
|
|
1152
|
+
assert_equal expected, actual
|
|
1153
|
+
end
|
|
1154
|
+
|
|
1155
|
+
def test_source_empty_caption
|
|
1156
|
+
actual = compile_block("//source[]{\nfoo\nbar\n\nbuz\n//}\n")
|
|
1157
|
+
expected = <<-EOS
|
|
1158
|
+
<div class="source-code">
|
|
1159
|
+
<pre class="source">foo
|
|
1160
|
+
bar
|
|
1161
|
+
|
|
1162
|
+
buz
|
|
1163
|
+
</pre>
|
|
1164
|
+
</div>
|
|
1165
|
+
EOS
|
|
1166
|
+
assert_equal expected, actual
|
|
1167
|
+
end
|
|
1168
|
+
|
|
1169
|
+
def test_box
|
|
1170
|
+
actual = compile_block("//box{\nfoo\nbar\n//}\n")
|
|
1171
|
+
expected = <<-EOS
|
|
1172
|
+
<div class="syntax">
|
|
1173
|
+
<pre class="syntax">foo
|
|
1174
|
+
bar
|
|
1175
|
+
</pre>
|
|
1176
|
+
</div>
|
|
1177
|
+
EOS
|
|
1178
|
+
assert_equal expected, actual
|
|
1179
|
+
|
|
1180
|
+
actual = compile_block("//box[FOO]{\nfoo\nbar\n//}\n")
|
|
1181
|
+
expected = <<-EOS
|
|
1182
|
+
<div class="syntax">
|
|
1183
|
+
<p class="caption">FOO</p>
|
|
1184
|
+
<pre class="syntax">foo
|
|
1185
|
+
bar
|
|
1186
|
+
</pre>
|
|
1187
|
+
</div>
|
|
1188
|
+
EOS
|
|
1189
|
+
assert_equal expected, actual
|
|
1190
|
+
end
|
|
1191
|
+
|
|
967
1192
|
def test_emlist
|
|
968
1193
|
actual = compile_block("//emlist{\nlineA\nlineB\n//}\n")
|
|
969
|
-
|
|
1194
|
+
expected = <<-EOS
|
|
1195
|
+
<div class="emlist-code">
|
|
1196
|
+
<pre class="emlist">lineA
|
|
1197
|
+
lineB
|
|
1198
|
+
</pre>
|
|
1199
|
+
</div>
|
|
1200
|
+
EOS
|
|
1201
|
+
assert_equal expected, actual
|
|
970
1202
|
end
|
|
971
1203
|
|
|
972
1204
|
def test_emlist_pygments_lang
|
|
@@ -990,12 +1222,28 @@ EOB
|
|
|
990
1222
|
|
|
991
1223
|
def test_emlist_caption
|
|
992
1224
|
actual = compile_block("//emlist[cap1]{\nlineA\nlineB\n//}\n")
|
|
993
|
-
|
|
1225
|
+
expected = <<-EOS
|
|
1226
|
+
<div class="emlist-code">
|
|
1227
|
+
<p class="caption">cap1</p>
|
|
1228
|
+
<pre class="emlist">lineA
|
|
1229
|
+
lineB
|
|
1230
|
+
</pre>
|
|
1231
|
+
</div>
|
|
1232
|
+
EOS
|
|
1233
|
+
assert_equal expected, actual
|
|
994
1234
|
end
|
|
995
1235
|
|
|
996
1236
|
def test_emlist_with_tab
|
|
997
1237
|
actual = compile_block("//emlist{\n\tlineA\n\t\tlineB\n\tlineC\n//}\n")
|
|
998
|
-
|
|
1238
|
+
expected = <<-EOS
|
|
1239
|
+
<div class="emlist-code">
|
|
1240
|
+
<pre class="emlist"> lineA
|
|
1241
|
+
lineB
|
|
1242
|
+
lineC
|
|
1243
|
+
</pre>
|
|
1244
|
+
</div>
|
|
1245
|
+
EOS
|
|
1246
|
+
assert_equal expected, actual
|
|
999
1247
|
end
|
|
1000
1248
|
|
|
1001
1249
|
def test_emlistnum
|
|
@@ -1042,12 +1290,27 @@ EOS
|
|
|
1042
1290
|
def test_emlist_with_4tab
|
|
1043
1291
|
@config['tabwidth'] = 4
|
|
1044
1292
|
actual = compile_block("//emlist{\n\tlineA\n\t\tlineB\n\tlineC\n//}\n")
|
|
1045
|
-
|
|
1293
|
+
expected = <<-EOS
|
|
1294
|
+
<div class="emlist-code">
|
|
1295
|
+
<pre class="emlist"> lineA
|
|
1296
|
+
lineB
|
|
1297
|
+
lineC
|
|
1298
|
+
</pre>
|
|
1299
|
+
</div>
|
|
1300
|
+
EOS
|
|
1301
|
+
assert_equal expected, actual
|
|
1046
1302
|
end
|
|
1047
1303
|
|
|
1048
1304
|
def test_cmd
|
|
1049
1305
|
actual = compile_block("//cmd{\nlineA\nlineB\n//}\n")
|
|
1050
|
-
|
|
1306
|
+
expected = <<-EOS
|
|
1307
|
+
<div class="cmd-code">
|
|
1308
|
+
<pre class="cmd">lineA
|
|
1309
|
+
lineB
|
|
1310
|
+
</pre>
|
|
1311
|
+
</div>
|
|
1312
|
+
EOS
|
|
1313
|
+
assert_equal expected, actual
|
|
1051
1314
|
end
|
|
1052
1315
|
|
|
1053
1316
|
def test_cmd_pygments
|
|
@@ -1059,12 +1322,27 @@ EOS
|
|
|
1059
1322
|
@book.config['highlight'] = {}
|
|
1060
1323
|
@book.config['highlight']['html'] = 'pygments'
|
|
1061
1324
|
actual = compile_block("//cmd{\nlineA\nlineB\n//}\n")
|
|
1062
|
-
|
|
1325
|
+
expected = <<-EOS
|
|
1326
|
+
<div class="cmd-code">
|
|
1327
|
+
<pre class="cmd"><span style="color: #888888">lineA</span>
|
|
1328
|
+
<span style="color: #888888">lineB</span>
|
|
1329
|
+
</pre>
|
|
1330
|
+
</div>
|
|
1331
|
+
EOS
|
|
1332
|
+
assert_equal expected, actual
|
|
1063
1333
|
end
|
|
1064
1334
|
|
|
1065
1335
|
def test_cmd_caption
|
|
1066
1336
|
actual = compile_block("//cmd[cap1]{\nlineA\nlineB\n//}\n")
|
|
1067
|
-
|
|
1337
|
+
expected = <<-EOS
|
|
1338
|
+
<div class="cmd-code">
|
|
1339
|
+
<p class="caption">cap1</p>
|
|
1340
|
+
<pre class="cmd">lineA
|
|
1341
|
+
lineB
|
|
1342
|
+
</pre>
|
|
1343
|
+
</div>
|
|
1344
|
+
EOS
|
|
1345
|
+
assert_equal expected, actual
|
|
1068
1346
|
end
|
|
1069
1347
|
|
|
1070
1348
|
def test_texequation
|
|
@@ -1153,7 +1431,12 @@ EOS
|
|
|
1153
1431
|
end
|
|
1154
1432
|
|
|
1155
1433
|
actual = compile_block("//bibpaper[samplebib][sample bib @<b>{bold}]{\na\nb\n//}\n")
|
|
1156
|
-
|
|
1434
|
+
expected = <<-EOS
|
|
1435
|
+
<div class="bibpaper">
|
|
1436
|
+
<a id="bib-samplebib">[1]</a> sample bib <b>bold</b>
|
|
1437
|
+
<p>ab</p></div>
|
|
1438
|
+
EOS
|
|
1439
|
+
assert_equal expected, actual
|
|
1157
1440
|
end
|
|
1158
1441
|
|
|
1159
1442
|
def test_bibpaper_normalized
|
|
@@ -1162,7 +1445,12 @@ EOS
|
|
|
1162
1445
|
end
|
|
1163
1446
|
|
|
1164
1447
|
actual = compile_block("//bibpaper[sample=bib][sample bib @<b>{bold}]{\na\nb\n//}\n")
|
|
1165
|
-
|
|
1448
|
+
expected = <<-EOS
|
|
1449
|
+
<div class="bibpaper">
|
|
1450
|
+
<a id="bib-id_sample_3Dbib">[1]</a> sample bib <b>bold</b>
|
|
1451
|
+
<p>ab</p></div>
|
|
1452
|
+
EOS
|
|
1453
|
+
assert_equal expected, actual
|
|
1166
1454
|
end
|
|
1167
1455
|
|
|
1168
1456
|
def test_bibpaper_with_anchor
|
|
@@ -1171,7 +1459,12 @@ EOS
|
|
|
1171
1459
|
end
|
|
1172
1460
|
|
|
1173
1461
|
actual = compile_block("//bibpaper[samplebib][sample bib @<href>{http://example.jp}]{\na\nb\n//}\n")
|
|
1174
|
-
|
|
1462
|
+
expected = <<-EOS
|
|
1463
|
+
<div class="bibpaper">
|
|
1464
|
+
<a id="bib-samplebib">[1]</a> sample bib <a href="http://example.jp" class="link">http://example.jp</a>
|
|
1465
|
+
<p>ab</p></div>
|
|
1466
|
+
EOS
|
|
1467
|
+
assert_equal expected, actual
|
|
1175
1468
|
end
|
|
1176
1469
|
|
|
1177
1470
|
def column_helper(review)
|
|
@@ -1279,7 +1572,12 @@ EOS
|
|
|
1279
1572
|
* AAA
|
|
1280
1573
|
* BBB
|
|
1281
1574
|
EOS
|
|
1282
|
-
expected =
|
|
1575
|
+
expected = <<-EOS
|
|
1576
|
+
<ul>
|
|
1577
|
+
<li>AAA</li>
|
|
1578
|
+
<li>BBB</li>
|
|
1579
|
+
</ul>
|
|
1580
|
+
EOS
|
|
1283
1581
|
actual = compile_block(src)
|
|
1284
1582
|
assert_equal expected, actual
|
|
1285
1583
|
end
|
|
@@ -1291,7 +1589,12 @@ EOS
|
|
|
1291
1589
|
* BBB
|
|
1292
1590
|
-BB
|
|
1293
1591
|
EOS
|
|
1294
|
-
expected =
|
|
1592
|
+
expected = <<-EOS
|
|
1593
|
+
<ul>
|
|
1594
|
+
<li>AAA-AA</li>
|
|
1595
|
+
<li>BBB-BB</li>
|
|
1596
|
+
</ul>
|
|
1597
|
+
EOS
|
|
1295
1598
|
actual = compile_block(src)
|
|
1296
1599
|
assert_equal expected, actual
|
|
1297
1600
|
end
|
|
@@ -1342,25 +1645,10 @@ EOS
|
|
|
1342
1645
|
src = <<-EOS
|
|
1343
1646
|
** AAA
|
|
1344
1647
|
* AA
|
|
1345
|
-
* BBB
|
|
1346
|
-
** BB
|
|
1347
1648
|
EOS
|
|
1348
1649
|
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
<li><ul>
|
|
1352
|
-
<li>AAA</li>
|
|
1353
|
-
</ul>
|
|
1354
|
-
</li>
|
|
1355
|
-
<li>AA</li>
|
|
1356
|
-
<li>BBB<ul>
|
|
1357
|
-
<li>BB</li>
|
|
1358
|
-
</ul>
|
|
1359
|
-
</li>
|
|
1360
|
-
</ul>
|
|
1361
|
-
EOS
|
|
1362
|
-
actual = compile_block(src)
|
|
1363
|
-
assert_equal expected, actual
|
|
1650
|
+
e = assert_raises(ReVIEW::ApplicationError) { compile_block(src) }
|
|
1651
|
+
assert_equal ':1: error: too many *.', e.message
|
|
1364
1652
|
end
|
|
1365
1653
|
|
|
1366
1654
|
def test_ul_nest4
|
|
@@ -1391,37 +1679,6 @@ EOS
|
|
|
1391
1679
|
assert_equal expected, actual
|
|
1392
1680
|
end
|
|
1393
1681
|
|
|
1394
|
-
def test_ul_nest5
|
|
1395
|
-
src = <<-EOS
|
|
1396
|
-
* A
|
|
1397
|
-
** AA
|
|
1398
|
-
**** AAAA
|
|
1399
|
-
* B
|
|
1400
|
-
** BB
|
|
1401
|
-
EOS
|
|
1402
|
-
|
|
1403
|
-
expected = <<-EOS
|
|
1404
|
-
<ul>
|
|
1405
|
-
<li>A<ul>
|
|
1406
|
-
<li>AA<ul>
|
|
1407
|
-
<li><ul>
|
|
1408
|
-
<li>AAAA</li>
|
|
1409
|
-
</ul>
|
|
1410
|
-
</li>
|
|
1411
|
-
</ul>
|
|
1412
|
-
</li>
|
|
1413
|
-
</ul>
|
|
1414
|
-
</li>
|
|
1415
|
-
<li>B<ul>
|
|
1416
|
-
<li>BB</li>
|
|
1417
|
-
</ul>
|
|
1418
|
-
</li>
|
|
1419
|
-
</ul>
|
|
1420
|
-
EOS
|
|
1421
|
-
actual = compile_block(src)
|
|
1422
|
-
assert_equal expected, actual
|
|
1423
|
-
end
|
|
1424
|
-
|
|
1425
1682
|
def test_ol
|
|
1426
1683
|
src = <<-EOS
|
|
1427
1684
|
3. AAA
|
|
@@ -1687,8 +1944,35 @@ EOS
|
|
|
1687
1944
|
|
|
1688
1945
|
def test_table
|
|
1689
1946
|
actual = compile_block("//table{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
|
|
1690
|
-
|
|
1691
|
-
|
|
1947
|
+
expected = <<-EOS
|
|
1948
|
+
<div class="table">
|
|
1949
|
+
<table>
|
|
1950
|
+
<tr><th>aaa</th><th>bbb</th></tr>
|
|
1951
|
+
<tr><td>ccc</td><td>ddd<>&</td></tr>
|
|
1952
|
+
</table>
|
|
1953
|
+
</div>
|
|
1954
|
+
EOS
|
|
1955
|
+
assert_equal expected, actual
|
|
1956
|
+
|
|
1957
|
+
actual = compile_block("//table[foo][FOO]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
|
|
1958
|
+
expected = <<-EOS
|
|
1959
|
+
<div id="foo" class="table">
|
|
1960
|
+
<p class="caption">表1.1: FOO</p>
|
|
1961
|
+
<table>
|
|
1962
|
+
<tr><th>aaa</th><th>bbb</th></tr>
|
|
1963
|
+
<tr><td>ccc</td><td>ddd<>&</td></tr>
|
|
1964
|
+
</table>
|
|
1965
|
+
</div>
|
|
1966
|
+
EOS
|
|
1967
|
+
assert_equal expected, actual
|
|
1968
|
+
end
|
|
1969
|
+
|
|
1970
|
+
def test_empty_table
|
|
1971
|
+
e = assert_raises(ReVIEW::ApplicationError) { compile_block "//table{\n//}\n" }
|
|
1972
|
+
assert_equal ':2: error: no rows in the table', e.message
|
|
1973
|
+
|
|
1974
|
+
e = assert_raises(ReVIEW::ApplicationError) { compile_block "//table{\n------------\n//}\n" }
|
|
1975
|
+
assert_equal ':3: error: no rows in the table', e.message
|
|
1692
1976
|
end
|
|
1693
1977
|
|
|
1694
1978
|
def test_inline_table
|
|
@@ -1701,8 +1985,22 @@ EOS
|
|
|
1701
1985
|
|
|
1702
1986
|
def test_emtable
|
|
1703
1987
|
actual = compile_block("//emtable[foo]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n//emtable{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
|
|
1704
|
-
|
|
1705
|
-
|
|
1988
|
+
expected = <<-EOS
|
|
1989
|
+
<div class="table">
|
|
1990
|
+
<p class="caption">foo</p>
|
|
1991
|
+
<table>
|
|
1992
|
+
<tr><th>aaa</th><th>bbb</th></tr>
|
|
1993
|
+
<tr><td>ccc</td><td>ddd<>&</td></tr>
|
|
1994
|
+
</table>
|
|
1995
|
+
</div>
|
|
1996
|
+
<div class="table">
|
|
1997
|
+
<table>
|
|
1998
|
+
<tr><th>aaa</th><th>bbb</th></tr>
|
|
1999
|
+
<tr><td>ccc</td><td>ddd<>&</td></tr>
|
|
2000
|
+
</table>
|
|
2001
|
+
</div>
|
|
2002
|
+
EOS
|
|
2003
|
+
assert_equal expected, actual
|
|
1706
2004
|
end
|
|
1707
2005
|
|
|
1708
2006
|
def test_imgtable
|
|
@@ -1713,41 +2011,118 @@ EOS
|
|
|
1713
2011
|
end
|
|
1714
2012
|
|
|
1715
2013
|
actual = compile_block("//imgtable[sampleimg][test for imgtable]{\n//}\n")
|
|
1716
|
-
expected =
|
|
2014
|
+
expected = <<-EOS
|
|
2015
|
+
<div id="sampleimg" class="imgtable image">
|
|
2016
|
+
<p class="caption">表1.1: test for imgtable</p>
|
|
2017
|
+
<img src="images/chap1-sampleimg.png" alt="test for imgtable" />
|
|
2018
|
+
</div>
|
|
2019
|
+
EOS
|
|
1717
2020
|
assert_equal expected, actual
|
|
1718
2021
|
end
|
|
1719
2022
|
|
|
1720
2023
|
def test_major_blocks
|
|
1721
2024
|
actual = compile_block("//note{\nA\n\nB\n//}\n//note[caption]{\nA\n//}")
|
|
1722
|
-
expected =
|
|
2025
|
+
expected = <<-EOS
|
|
2026
|
+
<div class="note">
|
|
2027
|
+
<p>A</p>
|
|
2028
|
+
<p>B</p>
|
|
2029
|
+
</div>
|
|
2030
|
+
<div class="note">
|
|
2031
|
+
<p class="caption">caption</p>
|
|
2032
|
+
<p>A</p>
|
|
2033
|
+
</div>
|
|
2034
|
+
EOS
|
|
1723
2035
|
assert_equal expected, actual
|
|
1724
2036
|
|
|
1725
2037
|
actual = compile_block("//memo{\nA\n\nB\n//}\n//memo[caption]{\nA\n//}")
|
|
1726
|
-
expected =
|
|
2038
|
+
expected = <<-EOS
|
|
2039
|
+
<div class="memo">
|
|
2040
|
+
<p>A</p>
|
|
2041
|
+
<p>B</p>
|
|
2042
|
+
</div>
|
|
2043
|
+
<div class="memo">
|
|
2044
|
+
<p class="caption">caption</p>
|
|
2045
|
+
<p>A</p>
|
|
2046
|
+
</div>
|
|
2047
|
+
EOS
|
|
1727
2048
|
assert_equal expected, actual
|
|
1728
2049
|
|
|
1729
2050
|
actual = compile_block("//info{\nA\n\nB\n//}\n//info[caption]{\nA\n//}")
|
|
1730
|
-
expected =
|
|
2051
|
+
expected = <<-EOS
|
|
2052
|
+
<div class="info">
|
|
2053
|
+
<p>A</p>
|
|
2054
|
+
<p>B</p>
|
|
2055
|
+
</div>
|
|
2056
|
+
<div class="info">
|
|
2057
|
+
<p class="caption">caption</p>
|
|
2058
|
+
<p>A</p>
|
|
2059
|
+
</div>
|
|
2060
|
+
EOS
|
|
1731
2061
|
assert_equal expected, actual
|
|
1732
2062
|
|
|
1733
2063
|
actual = compile_block("//important{\nA\n\nB\n//}\n//important[caption]{\nA\n//}")
|
|
1734
|
-
expected =
|
|
2064
|
+
expected = <<-EOS
|
|
2065
|
+
<div class="important">
|
|
2066
|
+
<p>A</p>
|
|
2067
|
+
<p>B</p>
|
|
2068
|
+
</div>
|
|
2069
|
+
<div class="important">
|
|
2070
|
+
<p class="caption">caption</p>
|
|
2071
|
+
<p>A</p>
|
|
2072
|
+
</div>
|
|
2073
|
+
EOS
|
|
1735
2074
|
assert_equal expected, actual
|
|
1736
2075
|
|
|
1737
2076
|
actual = compile_block("//caution{\nA\n\nB\n//}\n//caution[caption]{\nA\n//}")
|
|
1738
|
-
expected =
|
|
2077
|
+
expected = <<-EOS
|
|
2078
|
+
<div class="caution">
|
|
2079
|
+
<p>A</p>
|
|
2080
|
+
<p>B</p>
|
|
2081
|
+
</div>
|
|
2082
|
+
<div class="caution">
|
|
2083
|
+
<p class="caption">caption</p>
|
|
2084
|
+
<p>A</p>
|
|
2085
|
+
</div>
|
|
2086
|
+
EOS
|
|
1739
2087
|
assert_equal expected, actual
|
|
1740
2088
|
|
|
1741
2089
|
actual = compile_block("//notice{\nA\n\nB\n//}\n//notice[caption]{\nA\n//}")
|
|
1742
|
-
expected =
|
|
2090
|
+
expected = <<-EOS
|
|
2091
|
+
<div class="notice">
|
|
2092
|
+
<p>A</p>
|
|
2093
|
+
<p>B</p>
|
|
2094
|
+
</div>
|
|
2095
|
+
<div class="notice">
|
|
2096
|
+
<p class="caption">caption</p>
|
|
2097
|
+
<p>A</p>
|
|
2098
|
+
</div>
|
|
2099
|
+
EOS
|
|
1743
2100
|
assert_equal expected, actual
|
|
1744
2101
|
|
|
1745
2102
|
actual = compile_block("//warning{\nA\n\nB\n//}\n//warning[caption]{\nA\n//}")
|
|
1746
|
-
expected =
|
|
2103
|
+
expected = <<-EOS
|
|
2104
|
+
<div class="warning">
|
|
2105
|
+
<p>A</p>
|
|
2106
|
+
<p>B</p>
|
|
2107
|
+
</div>
|
|
2108
|
+
<div class="warning">
|
|
2109
|
+
<p class="caption">caption</p>
|
|
2110
|
+
<p>A</p>
|
|
2111
|
+
</div>
|
|
2112
|
+
EOS
|
|
1747
2113
|
assert_equal expected, actual
|
|
1748
2114
|
|
|
1749
2115
|
actual = compile_block("//tip{\nA\n\nB\n//}\n//tip[caption]{\nA\n//}")
|
|
1750
|
-
expected =
|
|
2116
|
+
expected = <<-EOS
|
|
2117
|
+
<div class="tip">
|
|
2118
|
+
<p>A</p>
|
|
2119
|
+
<p>B</p>
|
|
2120
|
+
</div>
|
|
2121
|
+
<div class="tip">
|
|
2122
|
+
<p class="caption">caption</p>
|
|
2123
|
+
<p>A</p>
|
|
2124
|
+
</div>
|
|
2125
|
+
EOS
|
|
1751
2126
|
assert_equal expected, actual
|
|
1752
2127
|
end
|
|
1753
2128
|
|