polytexnic 0.5.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 +7 -0
- data/.gitignore +37 -0
- data/.pull_requests/1371777257 +0 -0
- data/.pull_requests/1371927975 +0 -0
- data/.pull_requests/1372804345 +0 -0
- data/.pull_requests/1374784075 +0 -0
- data/.pull_requests/1375304853 +0 -0
- data/.pull_requests/1375408308 +0 -0
- data/.pull_requests/1375409462 +0 -0
- data/.pull_requests/1375410668 +0 -0
- data/.pull_requests/1375472132 +0 -0
- data/.pull_requests/1375485496 +0 -0
- data/.pull_requests/1375487548 +0 -0
- data/.pull_requests/1375492835 +0 -0
- data/.pull_requests/1375497765 +0 -0
- data/.pull_requests/1375559547 +0 -0
- data/.pull_requests/1375589063 +0 -0
- data/.pull_requests/1375841786 +0 -0
- data/.pull_requests/1376352634 +0 -0
- data/.pull_requests/1376353299 +0 -0
- data/.pull_requests/1376449284 +0 -0
- data/.pull_requests/1376452696 +0 -0
- data/.pull_requests/1376454166 +0 -0
- data/.pull_requests/1376532291 +0 -0
- data/.pull_requests/1376625487 +0 -0
- data/.pull_requests/1376690108 +0 -0
- data/.pull_requests/1376699046 +0 -0
- data/.pull_requests/1376707642 +0 -0
- data/.pull_requests/1377230284 +0 -0
- data/.pull_requests/1379118478 +0 -0
- data/.pull_requests/1379123150 +0 -0
- data/.pull_requests/1380221847 +0 -0
- data/.pull_requests/1380589654 +0 -0
- data/.pull_requests/1380673142 +0 -0
- data/.pull_requests/1380850800 +0 -0
- data/.pull_requests/1381001264 +0 -0
- data/.pull_requests/1381005204 +0 -0
- data/.pull_requests/1381103022 +0 -0
- data/.pull_requests/1381252832 +0 -0
- data/.pull_requests/1381276624 +0 -0
- data/.pull_requests/1381344234 +0 -0
- data/.pull_requests/1381385297 +0 -0
- data/.pull_requests/1381427498 +0 -0
- data/.pull_requests/1381429761 +0 -0
- data/.pull_requests/1381873684 +0 -0
- data/.pull_requests/1382045490 +0 -0
- data/.pull_requests/1382056384 +0 -0
- data/.pull_requests/1382405223 +0 -0
- data/.pull_requests/1382478400 +0 -0
- data/.pull_requests/1382479780 +0 -0
- data/.pull_requests/1382485483 +0 -0
- data/.pull_requests/1382569911 +0 -0
- data/.pull_requests/1382646199 +0 -0
- data/.pull_requests/1382649778 +0 -0
- data/.pull_requests/1382660987 +0 -0
- data/.pull_requests/1382743927 +0 -0
- data/.pull_requests/1382840347 +0 -0
- data/.pull_requests/1383077676 +0 -0
- data/.pull_requests/1383086948 +0 -0
- data/.pull_requests/1383161978 +0 -0
- data/.pull_requests/1383263695 +0 -0
- data/.pull_requests/1383274008 +0 -0
- data/.pull_requests/1383327328 +0 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +15 -0
- data/Guardfile +15 -0
- data/LICENSE.txt +22 -0
- data/README.md +21 -0
- data/Rakefile +2 -0
- data/lib/polytexnic/literal.rb +299 -0
- data/lib/polytexnic/postprocessor.rb +28 -0
- data/lib/polytexnic/postprocessors/html.rb +1139 -0
- data/lib/polytexnic/postprocessors/latex.rb +18 -0
- data/lib/polytexnic/postprocessors/polytex.rb +44 -0
- data/lib/polytexnic/preprocessor.rb +23 -0
- data/lib/polytexnic/preprocessors/html.rb +349 -0
- data/lib/polytexnic/preprocessors/latex.rb +43 -0
- data/lib/polytexnic/preprocessors/polytex.rb +127 -0
- data/lib/polytexnic/utils.rb +176 -0
- data/lib/polytexnic/version.rb +3 -0
- data/lib/polytexnic.rb +92 -0
- data/notes/pandoc.md +41 -0
- data/polytexnic.gemspec +28 -0
- data/polytexnic_commands.sty +5 -0
- data/precompiled_binaries/tralics +0 -0
- data/spec/fixtures/code_listing.tex +14 -0
- data/spec/fixtures/figures.tex +8 -0
- data/spec/fixtures/inline_math.html +4 -0
- data/spec/fixtures/inline_math.tex +3 -0
- data/spec/fixtures/math_environments.html +50 -0
- data/spec/fixtures/math_environments.tex +56 -0
- data/spec/fixtures/section_xrefs.tex +9 -0
- data/spec/fixtures/sidebar.tex +10 -0
- data/spec/fixtures/tables.tex +8 -0
- data/spec/fixtures/verbatim_environments.html +11 -0
- data/spec/fixtures/verbatim_environments.tex +13 -0
- data/spec/integration_spec.rb +34 -0
- data/spec/markdown_to_polytex_spec.rb +192 -0
- data/spec/resemble_matcher_spec.rb +69 -0
- data/spec/spec_helper.rb +38 -0
- data/spec/support/resemble_matcher.rb +100 -0
- data/spec/to_html/asides_spec.rb +42 -0
- data/spec/to_html/chapters_and_sections_spec.rb +268 -0
- data/spec/to_html/characters_and_punctuation_spec.rb +138 -0
- data/spec/to_html/codelistings_spec.rb +70 -0
- data/spec/to_html/core_spec.rb +227 -0
- data/spec/to_html/eqref_spec.rb +32 -0
- data/spec/to_html/footnote_spec.rb +164 -0
- data/spec/to_html/graphics_and_figures_spec.rb +358 -0
- data/spec/to_html/lists_spec.rb +103 -0
- data/spec/to_html/literal_environments/code_spec.rb +141 -0
- data/spec/to_html/literal_environments/math_spec.rb +255 -0
- data/spec/to_html/literal_environments/unicode_spec.rb +12 -0
- data/spec/to_html/literal_environments/verbatim_spec.rb +168 -0
- data/spec/to_html/quotations_and_verse_spec.rb +86 -0
- data/spec/to_html/table_of_contents_spec.rb +93 -0
- data/spec/to_html/table_spec.rb +269 -0
- data/spec/to_html/text_formatting_spec.rb +50 -0
- data/spec/to_latex_spec.rb +197 -0
- data/tasks/bin/ruby_tests +41 -0
- data/tasks/run_tests_with_both_rubies.rake +5 -0
- data/tmp/.gitkeep +0 -0
- metadata +286 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# encoding=utf-8
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe Polytexnic::Pipeline do
|
|
5
|
+
subject(:processed_text) { Polytexnic::Pipeline.new(polytex).to_html }
|
|
6
|
+
|
|
7
|
+
describe 'equation \ref' do
|
|
8
|
+
|
|
9
|
+
let(:equation) do <<-'EOS'
|
|
10
|
+
\chapter{Equation test}
|
|
11
|
+
|
|
12
|
+
\[ x^2 \]
|
|
13
|
+
|
|
14
|
+
\begin{equation}
|
|
15
|
+
\label{eq:foobar}
|
|
16
|
+
x
|
|
17
|
+
\end{equation}
|
|
18
|
+
|
|
19
|
+
EOS
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context 'with \ref{eq:foobar}' do
|
|
23
|
+
let(:polytex) { equation + '\ref{eq:foobar}' }
|
|
24
|
+
it { should include '1.1' }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
context 'with \eqref{eq:foobar}' do
|
|
28
|
+
let(:polytex) { equation + '\eqref{eq:foobar}' }
|
|
29
|
+
it { should include '(<span class="ref">1.1</span>)' }
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# encoding=utf-8
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe 'Polytexnic::Pipeline#to_html' do
|
|
5
|
+
|
|
6
|
+
subject(:processed_text) { Polytexnic::Pipeline.new(polytex).to_html }
|
|
7
|
+
|
|
8
|
+
describe "first chapter with footnotes" do
|
|
9
|
+
let(:polytex) do <<-'EOS'
|
|
10
|
+
\chapter{Foo \emph{bar}}
|
|
11
|
+
\label{cha:foo}
|
|
12
|
+
|
|
13
|
+
\section{Foobar}
|
|
14
|
+
\label{sec:foobar}
|
|
15
|
+
|
|
16
|
+
Lorem ipsum.\footnote{Cicero}
|
|
17
|
+
|
|
18
|
+
\chapter{Bar}
|
|
19
|
+
\label{cha:bar}
|
|
20
|
+
|
|
21
|
+
Dolor sit amet.
|
|
22
|
+
EOS
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
let(:output) do <<-'EOS'
|
|
26
|
+
<div id="cha-foo" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
27
|
+
<h1><a href="#cha-foo" class="heading"><span class="number">Chapter 1 </span>Foo <em>bar</em></a></h1>
|
|
28
|
+
</div>
|
|
29
|
+
<div id="sec-foobar" data-tralics-id="cid2" class="section" data-number="1.1">
|
|
30
|
+
<h2><a href="#sec-foobar" class="heading"><span class="number">1.1 </span>Foobar</a></h2>
|
|
31
|
+
<p>Lorem ipsum.<sup id="cha-1_footnote-ref-1" class="footnote"><a href="#cha-1_footnote-1">1</a></sup></p>
|
|
32
|
+
</div>
|
|
33
|
+
<div id="cha-1_footnotes">
|
|
34
|
+
<ol class="footnotes">
|
|
35
|
+
<li id="cha-1_footnote-1">
|
|
36
|
+
Cicero <a class="arrow" href="#cha-1_footnote-ref-1">↑</a>
|
|
37
|
+
</li>
|
|
38
|
+
</ol>
|
|
39
|
+
</div>
|
|
40
|
+
<div id="cha-bar" data-tralics-id="cid3" class="chapter" data-number="2">
|
|
41
|
+
<h1><a href="#cha-bar" class="heading"><span class="number">Chapter 2 </span>Bar</a></h1>
|
|
42
|
+
<p>Dolor sit amet.</p>
|
|
43
|
+
</div>
|
|
44
|
+
EOS
|
|
45
|
+
end
|
|
46
|
+
it { should resemble output }
|
|
47
|
+
it "should display the footnotes only once" do
|
|
48
|
+
expect(processed_text.scan(/id="cha-1_footnotes"/).length).to eq 1
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
describe "multiple chapters with footnotes" do
|
|
53
|
+
let(:polytex) do <<-'EOS'
|
|
54
|
+
\chapter{Foo \emph{bar}}
|
|
55
|
+
\label{cha:foo}
|
|
56
|
+
|
|
57
|
+
\section{Foobar}
|
|
58
|
+
\label{sec:foobar}
|
|
59
|
+
|
|
60
|
+
Lorem ipsum.\footnote{Cicero}
|
|
61
|
+
|
|
62
|
+
\chapter{Bar}
|
|
63
|
+
\label{cha:bar}
|
|
64
|
+
|
|
65
|
+
Dolor sit amet.\footnote{\emph{Still} Cicero}
|
|
66
|
+
|
|
67
|
+
Hey Jude.\footnote{Lennon/McCartney}
|
|
68
|
+
EOS
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
let(:output) do <<-'EOS'
|
|
72
|
+
<div id="cha-foo" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
73
|
+
<h1><a href="#cha-foo" class="heading"><span class="number">Chapter 1 </span>Foo <em>bar</em></a></h1>
|
|
74
|
+
</div>
|
|
75
|
+
<div id="sec-foobar" data-tralics-id="cid2" class="section" data-number="1.1">
|
|
76
|
+
<h2><a href="#sec-foobar" class="heading"><span class="number">1.1 </span>Foobar</a></h2>
|
|
77
|
+
<p>Lorem ipsum.<sup id="cha-1_footnote-ref-1" class="footnote"><a href="#cha-1_footnote-1">1</a></sup></p>
|
|
78
|
+
</div>
|
|
79
|
+
<div id="cha-1_footnotes">
|
|
80
|
+
<ol class="footnotes">
|
|
81
|
+
<li id="cha-1_footnote-1">
|
|
82
|
+
Cicero <a class="arrow" href="#cha-1_footnote-ref-1">↑</a>
|
|
83
|
+
</li>
|
|
84
|
+
</ol>
|
|
85
|
+
</div>
|
|
86
|
+
<div id="cha-bar" data-tralics-id="cid3" class="chapter" data-number="2">
|
|
87
|
+
<h1><a href="#cha-bar" class="heading"><span class="number">Chapter 2 </span>Bar</a></h1>
|
|
88
|
+
<p>Dolor sit amet.<sup id="cha-2_footnote-ref-1" class="footnote"><a href="#cha-2_footnote-1">1</a></sup></p>
|
|
89
|
+
<p>Hey Jude.<sup id="cha-2_footnote-ref-2" class="footnote"><a href="#cha-2_footnote-2">2</a></sup></p>
|
|
90
|
+
</div>
|
|
91
|
+
<div id="cha-2_footnotes">
|
|
92
|
+
<ol class="footnotes">
|
|
93
|
+
<li id="cha-2_footnote-1">
|
|
94
|
+
<em>Still</em> Cicero <a class="arrow" href="#cha-2_footnote-ref-1">↑</a>
|
|
95
|
+
</li>
|
|
96
|
+
<li id="cha-2_footnote-2">
|
|
97
|
+
Lennon/McCartney <a class="arrow" href="#cha-2_footnote-ref-2">↑</a>
|
|
98
|
+
</li>
|
|
99
|
+
</ol>
|
|
100
|
+
</div>
|
|
101
|
+
EOS
|
|
102
|
+
end
|
|
103
|
+
it { should resemble output }
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
describe "symbols in place of numbers" do
|
|
107
|
+
let(:polytex) do <<-'EOS'
|
|
108
|
+
\documentclass{book}
|
|
109
|
+
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
|
|
110
|
+
\begin{document}
|
|
111
|
+
\chapter{Foo \emph{bar}}
|
|
112
|
+
\label{cha:foo}
|
|
113
|
+
|
|
114
|
+
\section{Foobar}
|
|
115
|
+
\label{sec:foobar}
|
|
116
|
+
|
|
117
|
+
Lorem ipsum.\footnote{Cicero}
|
|
118
|
+
|
|
119
|
+
\chapter{Bar}
|
|
120
|
+
\label{cha:bar}
|
|
121
|
+
|
|
122
|
+
Dolor sit amet.\footnote{\emph{Still} Cicero}
|
|
123
|
+
|
|
124
|
+
Hey Jude!\footnote{Lennon/McCartney} Be afraid.
|
|
125
|
+
\end{document}
|
|
126
|
+
EOS
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
let(:output) do <<-'EOS'
|
|
130
|
+
<div id="cha-foo" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
131
|
+
<h1><a href="#cha-foo" class="heading"><span class="number">Chapter 1 </span>Foo <em>bar</em></a></h1>
|
|
132
|
+
</div>
|
|
133
|
+
<div id="sec-foobar" data-tralics-id="cid2" class="section" data-number="1.1">
|
|
134
|
+
<h2><a href="#sec-foobar" class="heading"><span class="number">1.1 </span>Foobar</a></h2>
|
|
135
|
+
<p>Lorem ipsum.<sup id="cha-1_footnote-ref-1" class="footnote"><a href="#cha-1_footnote-1">*</a></sup></p>
|
|
136
|
+
</div>
|
|
137
|
+
<div id="cha-1_footnotes">
|
|
138
|
+
<ul class="footnotes nonumbers">
|
|
139
|
+
<li id="cha-1_footnote-1">
|
|
140
|
+
<sup>*</sup> Cicero <a class="arrow" href="#cha-1_footnote-ref-1">↑</a>
|
|
141
|
+
</li>
|
|
142
|
+
</ul>
|
|
143
|
+
</div>
|
|
144
|
+
<div id="cha-bar" data-tralics-id="cid3" class="chapter" data-number="2">
|
|
145
|
+
<h1><a href="#cha-bar" class="heading"><span class="number">Chapter 2 </span>Bar</a></h1>
|
|
146
|
+
<p>Dolor sit amet.<sup id="cha-2_footnote-ref-1" class="footnote"><a href="#cha-2_footnote-1">*</a></sup></p>
|
|
147
|
+
<p>Hey Jude!<sup id="cha-2_footnote-ref-2" class="footnote intersentence"><a href="#cha-2_footnote-2">†</a></sup><span class="intersentencespace"></span>
|
|
148
|
+
Be afraid.<span class="intersentencespace"></span></p>
|
|
149
|
+
</div>
|
|
150
|
+
<div id="cha-2_footnotes">
|
|
151
|
+
<ul class="footnotes nonumbers">
|
|
152
|
+
<li id="cha-2_footnote-1">
|
|
153
|
+
<sup>*</sup> <em>Still</em> Cicero <a class="arrow" href="#cha-2_footnote-ref-1">↑</a>
|
|
154
|
+
</li>
|
|
155
|
+
<li id="cha-2_footnote-2">
|
|
156
|
+
<sup>†</sup> Lennon/McCartney <a class="arrow" href="#cha-2_footnote-ref-2">↑</a>
|
|
157
|
+
</li>
|
|
158
|
+
</ul>
|
|
159
|
+
</div>
|
|
160
|
+
EOS
|
|
161
|
+
end
|
|
162
|
+
it { should resemble output }
|
|
163
|
+
end
|
|
164
|
+
end
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
# encoding=utf-8
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe 'Polytexnic::Pipeline#to_html' do
|
|
5
|
+
|
|
6
|
+
subject(:processed_text) { Polytexnic::Pipeline.new(polytex).to_html }
|
|
7
|
+
|
|
8
|
+
describe "graphics" do
|
|
9
|
+
let(:polytex) do <<-'EOS'
|
|
10
|
+
\includegraphics{foo.png}
|
|
11
|
+
EOS
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it do
|
|
15
|
+
should resemble <<-'EOS'
|
|
16
|
+
<div class="graphics">
|
|
17
|
+
<img src="foo.png" alt="foo" />
|
|
18
|
+
</div>
|
|
19
|
+
EOS
|
|
20
|
+
end
|
|
21
|
+
it { should_not resemble 'class="figure"' }
|
|
22
|
+
it { should_not resemble 'Figure' }
|
|
23
|
+
|
|
24
|
+
context "with a PDF image" do
|
|
25
|
+
let(:polytex) do <<-'EOS'
|
|
26
|
+
\includegraphics{foo.pdf}
|
|
27
|
+
EOS
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it do
|
|
31
|
+
should resemble <<-'EOS'
|
|
32
|
+
<div class="graphics">
|
|
33
|
+
<img src="foo.png" alt="foo" />
|
|
34
|
+
</div>
|
|
35
|
+
EOS
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe "figures" do
|
|
41
|
+
let(:polytex) do <<-'EOS'
|
|
42
|
+
\begin{figure}
|
|
43
|
+
lorem
|
|
44
|
+
\end{figure}
|
|
45
|
+
EOS
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it do
|
|
49
|
+
should resemble <<-'EOS'
|
|
50
|
+
<div id="uid1" data-tralics-id="uid1" data-number="1" class="figure">
|
|
51
|
+
<p>lorem</p>
|
|
52
|
+
<div class="caption">
|
|
53
|
+
<span class="header">Figure 1</span>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
EOS
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
context "with an explicit center environment" do
|
|
60
|
+
let(:polytex) do <<-'EOS'
|
|
61
|
+
\begin{figure}
|
|
62
|
+
\begin{center}
|
|
63
|
+
lorem
|
|
64
|
+
\end{center}
|
|
65
|
+
\end{figure}
|
|
66
|
+
EOS
|
|
67
|
+
end
|
|
68
|
+
it do
|
|
69
|
+
should resemble <<-'EOS'
|
|
70
|
+
<div class="center figure" id="uid1" data-tralics-id="uid1" data-number="1">
|
|
71
|
+
<p>lorem</p>
|
|
72
|
+
<div class="caption">
|
|
73
|
+
<span class="header">Figure 1</span>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
EOS
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
context "with a label and a cross-reference" do
|
|
81
|
+
let(:polytex) do <<-'EOS'
|
|
82
|
+
\begin{figure}
|
|
83
|
+
lorem
|
|
84
|
+
\label{fig:foo}
|
|
85
|
+
\end{figure}
|
|
86
|
+
|
|
87
|
+
Figure~\ref{fig:foo} or Fig.~\ref{fig:foo}
|
|
88
|
+
EOS
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it do
|
|
92
|
+
should resemble <<-'EOS'
|
|
93
|
+
<div id="fig-foo" data-tralics-id="uid1" data-number="1" class="figure">
|
|
94
|
+
<p>lorem</p>
|
|
95
|
+
<div class="caption">
|
|
96
|
+
<span class="header">Figure 1</span>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<p><a href="#fig-foo" class="hyperref">Figure <span class="ref">1</span></a>
|
|
100
|
+
or
|
|
101
|
+
<a href="#fig-foo" class="hyperref">Fig. <span class="ref">1</span></a>
|
|
102
|
+
</p>
|
|
103
|
+
EOS
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
context "with included graphics" do
|
|
108
|
+
let(:polytex) do <<-'EOS'
|
|
109
|
+
\begin{figure}
|
|
110
|
+
\includegraphics{images/foo.png}
|
|
111
|
+
\label{fig:foo}
|
|
112
|
+
\end{figure}
|
|
113
|
+
EOS
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it do
|
|
117
|
+
should resemble <<-'EOS'
|
|
118
|
+
<div id="fig-foo" data-tralics-id="uid1" data-number="1" class="figure">
|
|
119
|
+
<div class="graphics">
|
|
120
|
+
<img src="images/foo.png" alt="foo" />
|
|
121
|
+
</div>
|
|
122
|
+
<div class="caption">
|
|
123
|
+
<span class="header">Figure 1</span>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
EOS
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
context "with a caption" do
|
|
131
|
+
let(:polytex) do <<-'EOS'
|
|
132
|
+
\chapter{The chapter}
|
|
133
|
+
|
|
134
|
+
\begin{figure}
|
|
135
|
+
\includegraphics{foo.png}
|
|
136
|
+
\caption{This is a \emph{caption} with $x$.}
|
|
137
|
+
\end{figure}
|
|
138
|
+
|
|
139
|
+
\begin{figure}
|
|
140
|
+
\includegraphics{bar.png}
|
|
141
|
+
\caption{This is another caption.}
|
|
142
|
+
\end{figure}
|
|
143
|
+
EOS
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
it do
|
|
147
|
+
should resemble <<-'EOS'
|
|
148
|
+
<div id="cid1" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
149
|
+
<h1>
|
|
150
|
+
<a href="#cid1" class="heading">
|
|
151
|
+
<span class="number">Chapter 1 </span>The chapter</a>
|
|
152
|
+
</h1>
|
|
153
|
+
<div id="uid1" data-tralics-id="uid1" data-number="1.1" class="figure">
|
|
154
|
+
<div class="graphics">
|
|
155
|
+
<img src="foo.png" alt="foo" />
|
|
156
|
+
</div>
|
|
157
|
+
<div class="caption">
|
|
158
|
+
<span class="header">Figure 1.1: </span>
|
|
159
|
+
<span class="description">This is a <em>caption</em> with <span class="inline_math">\( x \)</span>.</span>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
<div id="uid2" data-tralics-id="uid2" data-number="1.2" class="figure">
|
|
163
|
+
<div class="graphics">
|
|
164
|
+
<img src="bar.png" alt="bar" />
|
|
165
|
+
</div>
|
|
166
|
+
<div class="caption">
|
|
167
|
+
<span class="header">Figure 1.2: </span>
|
|
168
|
+
<span class="description">This is another caption.</span>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
EOS
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
context "with labels and cross-reference" do
|
|
177
|
+
let(:polytex) do <<-'EOS'
|
|
178
|
+
\chapter{The chapter}
|
|
179
|
+
\label{cha:lorem_ipsum}
|
|
180
|
+
|
|
181
|
+
\begin{figure}
|
|
182
|
+
\includegraphics{foo.png}
|
|
183
|
+
\caption{This is a caption.\label{fig:foo}}
|
|
184
|
+
\end{figure}
|
|
185
|
+
|
|
186
|
+
\begin{figure}
|
|
187
|
+
\includegraphics{bar.png}
|
|
188
|
+
\caption{This is another caption.\label{fig:bar}}
|
|
189
|
+
\end{figure}
|
|
190
|
+
|
|
191
|
+
Figure~\ref{fig:baz}
|
|
192
|
+
|
|
193
|
+
\chapter{A second chapter}
|
|
194
|
+
\label{cha:two}
|
|
195
|
+
|
|
196
|
+
\begin{figure}
|
|
197
|
+
\includegraphics{baz.png}
|
|
198
|
+
\caption{Yet another.\label{fig:baz}}
|
|
199
|
+
\end{figure}
|
|
200
|
+
|
|
201
|
+
Figure~\ref{fig:foo} and Figure~\ref{fig:bar}
|
|
202
|
+
EOS
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
it do
|
|
206
|
+
should resemble <<-'EOS'
|
|
207
|
+
<div id="cha-lorem_ipsum" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
208
|
+
<h1>
|
|
209
|
+
<a href="#cha-lorem_ipsum" class="heading">
|
|
210
|
+
<span class="number">Chapter 1 </span>The chapter</a>
|
|
211
|
+
</h1>
|
|
212
|
+
<div id="fig-foo" data-tralics-id="uid1" data-number="1.1" class="figure">
|
|
213
|
+
<div class="graphics">
|
|
214
|
+
<img src="foo.png" alt="foo" />
|
|
215
|
+
</div>
|
|
216
|
+
<div class="caption">
|
|
217
|
+
<span class="header">Figure 1.1: </span>
|
|
218
|
+
<span class="description">This is a caption.</span>
|
|
219
|
+
</div>
|
|
220
|
+
</div>
|
|
221
|
+
<div id="fig-bar" data-tralics-id="uid2" data-number="1.2" class="figure">
|
|
222
|
+
<div class="graphics">
|
|
223
|
+
<img src="bar.png" alt="bar" />
|
|
224
|
+
</div>
|
|
225
|
+
<div class="caption">
|
|
226
|
+
<span class="header">Figure 1.2: </span>
|
|
227
|
+
<span class="description">This is another caption.</span>
|
|
228
|
+
</div>
|
|
229
|
+
</div>
|
|
230
|
+
<p>
|
|
231
|
+
<a href="#fig-baz" class="hyperref">Figure <span class="ref">2.1</span></a>
|
|
232
|
+
</p>
|
|
233
|
+
</div>
|
|
234
|
+
<div id="cha-two" data-tralics-id="cid2" class="chapter" data-number="2">
|
|
235
|
+
<h1>
|
|
236
|
+
<a href="#cha-two" class="heading">
|
|
237
|
+
<span class="number">Chapter 2 </span>A second chapter</a>
|
|
238
|
+
</h1>
|
|
239
|
+
<div id="fig-baz" data-tralics-id="uid3" data-number="2.1" class="figure">
|
|
240
|
+
<div class="graphics">
|
|
241
|
+
<img src="baz.png" alt="baz" />
|
|
242
|
+
</div>
|
|
243
|
+
<div class="caption">
|
|
244
|
+
<span class="header">Figure 2.1: </span>
|
|
245
|
+
<span class="description">Yet another.</span>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
<p>
|
|
249
|
+
<a href="#fig-foo" class="hyperref">Figure <span class="ref">1.1</span></a>
|
|
250
|
+
and
|
|
251
|
+
<a href="#fig-bar" class="hyperref">Figure <span class="ref">1.2</span></a>
|
|
252
|
+
</p>
|
|
253
|
+
</div>
|
|
254
|
+
EOS
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
context "with a centered image" do
|
|
258
|
+
let(:polytex) do <<-'EOS'
|
|
259
|
+
\chapter{The chapter}
|
|
260
|
+
\label{cha:lorem_ipsum}
|
|
261
|
+
|
|
262
|
+
\begin{figure}
|
|
263
|
+
\centering
|
|
264
|
+
\includegraphics{foo.png}
|
|
265
|
+
\caption{This is a caption.\label{fig:foo}}
|
|
266
|
+
\end{figure}
|
|
267
|
+
EOS
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
it do
|
|
271
|
+
should resemble <<-'EOS'
|
|
272
|
+
<div id="cha-lorem_ipsum" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
273
|
+
<h1>
|
|
274
|
+
<a href="#cha-lorem_ipsum" class="heading">
|
|
275
|
+
<span class="number">Chapter 1 </span>The chapter</a>
|
|
276
|
+
</h1>
|
|
277
|
+
<div class="center figure" id="fig-foo" data-tralics-id="uid1" data-number="1.1">
|
|
278
|
+
<div class="graphics">
|
|
279
|
+
<img src="foo.png" alt="foo" />
|
|
280
|
+
</div>
|
|
281
|
+
<div class="caption">
|
|
282
|
+
<span class="header">Figure 1.1: </span>
|
|
283
|
+
<span class="description">This is a caption.</span>
|
|
284
|
+
</div>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
EOS
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
context "using the \\image command" do
|
|
291
|
+
let(:polytex) do <<-'EOS'
|
|
292
|
+
\chapter{The chapter}
|
|
293
|
+
\label{cha:lorem_ipsum}
|
|
294
|
+
|
|
295
|
+
\begin{figure}
|
|
296
|
+
\image{foo_bar.png}
|
|
297
|
+
\caption{This is a caption.\label{fig:foo}}
|
|
298
|
+
\end{figure}
|
|
299
|
+
EOS
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
it do
|
|
303
|
+
should resemble <<-'EOS'
|
|
304
|
+
<div id="cha-lorem_ipsum" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
305
|
+
<h1>
|
|
306
|
+
<a href="#cha-lorem_ipsum" class="heading">
|
|
307
|
+
<span class="number">Chapter 1 </span>The chapter</a>
|
|
308
|
+
</h1>
|
|
309
|
+
<div id="fig-foo" data-tralics-id="uid1" data-number="1.1" class="figure">
|
|
310
|
+
<div class="graphics image">
|
|
311
|
+
<img src="foo_bar.png" alt="foo_bar" />
|
|
312
|
+
</div>
|
|
313
|
+
<div class="caption">
|
|
314
|
+
<span class="header">Figure 1.1: </span>
|
|
315
|
+
<span class="description">This is a caption.</span>
|
|
316
|
+
</div>
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
EOS
|
|
320
|
+
end
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
context "using the \\imagebox command" do
|
|
324
|
+
let(:polytex) do <<-'EOS'
|
|
325
|
+
\chapter{The chapter}
|
|
326
|
+
\label{cha:lorem_ipsum}
|
|
327
|
+
|
|
328
|
+
\begin{figure}
|
|
329
|
+
\imagebox{foo_bar.png}
|
|
330
|
+
\caption{This is a caption.\label{fig:foo}}
|
|
331
|
+
\end{figure}
|
|
332
|
+
EOS
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
it do
|
|
336
|
+
should resemble <<-'EOS'
|
|
337
|
+
<div id="cha-lorem_ipsum" data-tralics-id="cid1" class="chapter" data-number="1">
|
|
338
|
+
<h1>
|
|
339
|
+
<a href="#cha-lorem_ipsum" class="heading">
|
|
340
|
+
<span class="number">Chapter 1 </span>The chapter</a>
|
|
341
|
+
</h1>
|
|
342
|
+
<div id="fig-foo" data-tralics-id="uid1" data-number="1.1" class="figure">
|
|
343
|
+
<div class="graphics image box">
|
|
344
|
+
<img src="foo_bar.png" alt="foo_bar" />
|
|
345
|
+
</div>
|
|
346
|
+
<div class="caption">
|
|
347
|
+
<span class="header">Figure 1.1: </span>
|
|
348
|
+
<span class="description">This is a caption.</span>
|
|
349
|
+
</div>
|
|
350
|
+
</div>
|
|
351
|
+
</div>
|
|
352
|
+
EOS
|
|
353
|
+
end
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
end
|
|
358
|
+
end
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# encoding=utf-8
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe 'Polytexnic::Pipeline#to_html' do
|
|
5
|
+
|
|
6
|
+
subject(:processed_text) { Polytexnic::Pipeline.new(polytex).to_html }
|
|
7
|
+
|
|
8
|
+
describe "itemize" do
|
|
9
|
+
let(:polytex) { '\itemize' }
|
|
10
|
+
it { should resemble '<ul></ul>'}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe "enumerate" do
|
|
14
|
+
let(:polytex) { '\enumerate' }
|
|
15
|
+
it { should resemble '<ol></ol>'}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "item" do
|
|
19
|
+
let(:polytex) { '\item foo' }
|
|
20
|
+
it { should resemble "<li>foo\n</li>"}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
describe "itemized list" do
|
|
24
|
+
|
|
25
|
+
context "alone" do
|
|
26
|
+
let(:polytex) do <<-'EOS'
|
|
27
|
+
\begin{itemize}
|
|
28
|
+
\item Foo
|
|
29
|
+
\item Bar
|
|
30
|
+
\end{itemize}
|
|
31
|
+
EOS
|
|
32
|
+
end
|
|
33
|
+
it do
|
|
34
|
+
should resemble <<-'EOS'
|
|
35
|
+
<ul>
|
|
36
|
+
<li>Foo</li>
|
|
37
|
+
<li>Bar</li>
|
|
38
|
+
</ul>
|
|
39
|
+
EOS
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
context "preceded by text" do
|
|
44
|
+
let(:polytex) do <<-'EOS'
|
|
45
|
+
lorem ipsum
|
|
46
|
+
|
|
47
|
+
\begin{itemize}
|
|
48
|
+
\item Foo
|
|
49
|
+
\item Bar
|
|
50
|
+
\end{itemize}
|
|
51
|
+
EOS
|
|
52
|
+
end
|
|
53
|
+
it do
|
|
54
|
+
should resemble <<-'EOS'
|
|
55
|
+
<p>lorem ipsum</p>
|
|
56
|
+
<ul>
|
|
57
|
+
<li>Foo</li>
|
|
58
|
+
<li>Bar</li>
|
|
59
|
+
</ul>
|
|
60
|
+
EOS
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
context "afollowed by text" do
|
|
65
|
+
let(:polytex) do <<-'EOS'
|
|
66
|
+
\begin{itemize}
|
|
67
|
+
\item Foo
|
|
68
|
+
\item Bar
|
|
69
|
+
\end{itemize}
|
|
70
|
+
|
|
71
|
+
lorem ipsum
|
|
72
|
+
EOS
|
|
73
|
+
end
|
|
74
|
+
it do
|
|
75
|
+
should resemble <<-'EOS'
|
|
76
|
+
<ul>
|
|
77
|
+
<li>Foo</li>
|
|
78
|
+
<li>Bar</li>
|
|
79
|
+
</ul><p>lorem ipsum
|
|
80
|
+
</p>
|
|
81
|
+
EOS
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
describe "enumerated list" do
|
|
87
|
+
let(:polytex) do <<-'EOS'
|
|
88
|
+
\begin{enumerate}
|
|
89
|
+
\item Foo
|
|
90
|
+
\item Bar
|
|
91
|
+
\end{enumerate}
|
|
92
|
+
EOS
|
|
93
|
+
end
|
|
94
|
+
it do
|
|
95
|
+
should resemble <<-'EOS'
|
|
96
|
+
<ol>
|
|
97
|
+
<li>Foo</li>
|
|
98
|
+
<li>Bar</li>
|
|
99
|
+
</ol>
|
|
100
|
+
EOS
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|