polytexnic 1.6.6 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e758ae9c4c23afe6aa06e9a916d9c41d207b8ded3da0c6e405e3e4b979c1864
4
- data.tar.gz: 2e44dbade1df1aa4e573c87c10e5adf34c2939e8cfe3690234fa5404c9ebc679
3
+ metadata.gz: 6f107f6c8ed8c8ab715b2884c258ae3e8e2d723f2ee7ad38187df24d9b3ea760
4
+ data.tar.gz: 1c334bb78f696c00cb01c658b433b011fb5dcde1079a1f3526f9c342d346a31c
5
5
  SHA512:
6
- metadata.gz: 3908f4a3795694c34c7c9443f475ca62662e9b6e3d8b0593641e8c42a5b99237fcc45e293704400eac7b243a813e814a898a560d4c9b6d51d08b0885afd77cc4
7
- data.tar.gz: 7517c3f0636b7472568dbb0252c1ac1090c8554907868977a943b96b0ee5d689d81febbbefa4e6dba79536ce8c985bc406d47ddf5360f82b409e2dd80b20f33a
6
+ metadata.gz: c87e233ea55a9055fa682c9b1868cabf98a85b8c2e823b869aca8fdce5e77035a5d0f7999cafa56276becc48cdeb71c86a38b40160e00bed2cd948b54271fa4c
7
+ data.tar.gz: b0cda74d69d07212f9d0b928e851e1d2492d9838abc3484080539ecacb5a54a4e6772cfb730156edcd7e79ac99a2840a9173b2beb4bc8d2bd57833cad1ac32d6
data/Gemfile CHANGED
@@ -16,7 +16,6 @@ Encoding.default_internal = Encoding::UTF_8
16
16
  gemspec
17
17
 
18
18
  group :test do
19
- gem 'debugger2' unless RUBY_VERSION < "2.0"
20
19
  gem 'coveralls', require: false
21
20
  gem 'growl'
22
21
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- polytexnic (1.6.6)
4
+ polytexnic (1.7.2)
5
5
  json (~> 2.3.0)
6
6
  kramdown (>= 2.0, < 3.0)
7
7
  msgpack (~> 1.2.0)
@@ -12,21 +12,16 @@ GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
14
  coderay (1.1.3)
15
- columnize (0.9.0)
16
15
  coveralls (0.7.2)
17
16
  multi_json (~> 1.3)
18
17
  rest-client (= 1.6.7)
19
18
  simplecov (>= 0.7)
20
19
  term-ansicolor (= 1.2.2)
21
20
  thor (= 0.18.1)
22
- debugger-linecache (1.2.0)
23
- debugger2 (1.0.0.beta2)
24
- columnize (>= 0.3.1)
25
- debugger-linecache (~> 1.2.0)
26
- diff-lcs (1.4.4)
21
+ diff-lcs (1.5.0)
27
22
  docile (1.1.5)
28
- ffi (1.15.3)
29
- formatador (0.3.0)
23
+ ffi (1.15.5)
24
+ formatador (1.1.0)
30
25
  growl (1.0.3)
31
26
  guard (2.18.0)
32
27
  formatador (>= 0.2.4)
@@ -43,20 +38,20 @@ GEM
43
38
  guard-compat (~> 1.1)
44
39
  rspec (>= 2.99.0, < 4.0)
45
40
  json (2.3.1)
46
- kramdown (2.3.1)
41
+ kramdown (2.3.2)
47
42
  rexml
48
- listen (3.7.0)
43
+ listen (3.7.1)
49
44
  rb-fsevent (~> 0.10, >= 0.10.3)
50
45
  rb-inotify (~> 0.9, >= 0.9.10)
51
46
  lumberjack (1.2.8)
52
47
  method_source (1.0.0)
53
- mime-types (3.3.1)
48
+ mime-types (3.4.1)
54
49
  mime-types-data (~> 3.2015)
55
- mime-types-data (3.2021.0704)
50
+ mime-types-data (3.2022.0105)
56
51
  msgpack (1.2.10)
57
52
  multi_json (1.15.0)
58
53
  nenv (0.3.0)
59
- nokogiri (1.12.4-x86_64-darwin)
54
+ nokogiri (1.13.3-x86_64-darwin)
60
55
  racc (~> 1.4)
61
56
  notiffany (0.1.3)
62
57
  nenv (~> 0.1)
@@ -64,10 +59,10 @@ GEM
64
59
  pry (0.14.1)
65
60
  coderay (~> 1.1)
66
61
  method_source (~> 1.0)
67
- pygments.rb (2.2.0)
68
- racc (1.5.2)
62
+ pygments.rb (2.3.0)
63
+ racc (1.6.0)
69
64
  rake (13.0.6)
70
- rb-fsevent (0.11.0)
65
+ rb-fsevent (0.11.1)
71
66
  rb-inotify (0.10.1)
72
67
  ffi (~> 1.0)
73
68
  rest-client (1.6.7)
@@ -93,11 +88,10 @@ GEM
93
88
  tins (0.13.2)
94
89
 
95
90
  PLATFORMS
96
- x86_64-darwin-20
91
+ x86_64-darwin-19
97
92
 
98
93
  DEPENDENCIES
99
94
  coveralls
100
- debugger2
101
95
  growl
102
96
  guard-rspec
103
97
  polytexnic!
@@ -106,4 +100,4 @@ DEPENDENCIES
106
100
  simplecov (~> 0.15.1)
107
101
 
108
102
  BUNDLED WITH
109
- 2.2.17
103
+ 2.3.10
@@ -792,7 +792,9 @@ module Polytexnic
792
792
  doc.xpath('//thinspace').each do |node|
793
793
  node.name = 'span'
794
794
  node['class'] = 'thinspace'
795
- node.inner_html = '&thinsp;'
795
+ # &#8201; replaces &thinsp;, which stopped working for some reason.
796
+ # Weirdly, it still works in the corresponding test.
797
+ node.inner_html = '&#8201;'
796
798
  end
797
799
  doc.xpath('//normalspace').each do |node|
798
800
  node.replace(' ')
@@ -28,11 +28,11 @@ module Polytexnic
28
28
  hyperrefs(output)
29
29
  title_fields(output)
30
30
  maketitle(output)
31
+ convert_longtable(output)
31
32
  label_names(output)
32
33
  image_names(output)
33
34
  restore_eq_labels(output)
34
35
  convert_float_centering(output)
35
- convert_longtable(output)
36
36
  mark_environments(output)
37
37
  make_tabular_alignment_cache(output)
38
38
  cache_unicode(output)
@@ -279,8 +279,16 @@ module Polytexnic
279
279
  # input documents. The latest update includes support for the tabularx
280
280
  # environment
281
281
  def convert_longtable(output)
282
- output.gsub!('\begin{longtable}', '\begin{tabular}')
283
- output.gsub!('\end{longtable}', '\end{tabular}')
282
+ output.gsub!(/\\begin\{longtable\}(\{.*?\})\n\s*((?:\\caption|\\label).*?)\\\\$/) do
283
+ "\\begin{table}\n#{$2}\n\\begin{tabular}#{$1}"
284
+ end
285
+ output.gsub!(/\\begin\{longtable\}(\{.*?\})/) do
286
+ "\\begin{table}\n\\begin{tabular}#{$1}"
287
+ end
288
+ output.gsub!(/((?:\\caption|\\label).*?$)\n\s*\\end\{longtable\}/) do
289
+ "\\end{tabular}#{$1}\n\\end{table}"
290
+ end
291
+ output.gsub!('\end{longtable}', "\\end{tabular}\n\\end{table}")
284
292
  output.gsub!(/\\begin\{tabularx\}\{.*?\}\{(.*)\}/) do
285
293
  alignment = $1.gsub('X', 'l') # X becomes left-justified in HTML
286
294
  "\\begin{tabular}{#{alignment}}"
@@ -1,3 +1,3 @@
1
1
  module Polytexnic
2
- VERSION = "1.6.6"
2
+ VERSION = "1.7.2"
3
3
  end
@@ -33,22 +33,6 @@ describe 'Polytexnic::Pipeline#to_html' do
33
33
  end
34
34
 
35
35
  it { should resemble output }
36
-
37
- context "longtable" do
38
-
39
- let(:polytex) do <<-'EOS'
40
- \begin{longtable}{cc}
41
- \hline
42
- HTTP request & URL \\
43
- \hline
44
- GET & /users \\
45
- GET & /users/1
46
- \end{longtable}
47
- EOS
48
- end
49
-
50
- it { should resemble output }
51
- end
52
36
  end
53
37
 
54
38
  context "tabularx environments" do
@@ -194,6 +178,91 @@ describe 'Polytexnic::Pipeline#to_html' do
194
178
 
195
179
  describe "table environments" do
196
180
 
181
+ context "longtable" do
182
+
183
+ context "with caption on top" do
184
+
185
+ let(:polytex) do <<-'EOS'
186
+
187
+ \begin{longtable}{cc}
188
+ \caption{Test caption.\label{table:longtable}}\\
189
+ HTTP request & URL \\
190
+ GET & /users \\
191
+ GET & /users/1
192
+ \end{longtable}
193
+
194
+ Table~\ref{table:longtable}
195
+
196
+ EOS
197
+ end
198
+
199
+ let(:output) do <<-'EOS'
200
+ <div id="table-longtable" data-tralics-id="uid1" data-number="1" class="table">
201
+ <table class="tabular">
202
+ <tr><td class="align_center">HTTP request</td>
203
+ <td class="align_center">URL</td>
204
+ </tr><tr><td class="align_center">GET</td>
205
+ <td class="align_center">/users</td>
206
+ </tr><tr><td class="align_center">GET</td>
207
+ <td class="align_center">/users/1</td>
208
+ </tr></table>
209
+ <div class="caption">
210
+ <span class="header">Table 1: </span>
211
+ <span class="description">Test caption.
212
+ </span>
213
+ </div>
214
+ </div>
215
+ <p>
216
+ <a href="#table-longtable" class="hyperref">Table <span class="ref">1</span></a>
217
+ </p>
218
+ EOS
219
+ end
220
+
221
+ it { should resemble output }
222
+ end
223
+
224
+ context "with caption on bottom" do
225
+
226
+ let(:polytex) do <<-'EOS'
227
+
228
+ \begin{longtable}{cc}
229
+ HTTP request & URL \\
230
+ GET & /users \\
231
+ GET & /users/1
232
+ \caption{Test caption.\label{table:longtable}}
233
+ \end{longtable}
234
+
235
+ Table~\ref{table:longtable}
236
+
237
+ EOS
238
+ end
239
+
240
+ let(:output) do <<-'EOS'
241
+ <div id="table-longtable" data-tralics-id="uid1" data-number="1" class="table">
242
+ <table class="tabular">
243
+ <tr><td class="align_center">HTTP request</td>
244
+ <td class="align_center">URL</td>
245
+ </tr><tr><td class="align_center">GET</td>
246
+ <td class="align_center">/users</td>
247
+ </tr><tr><td class="align_center">GET</td>
248
+ <td class="align_center">/users/1</td>
249
+ </tr></table>
250
+ <div class="caption">
251
+ <span class="header">Table 1: </span>
252
+ <span class="description">Test caption.
253
+ </span>
254
+ </div>
255
+ </div>
256
+ <p>
257
+ <a href="#table-longtable" class="hyperref">Table <span class="ref">1</span></a>
258
+ </p>
259
+ EOS
260
+ end
261
+
262
+ it { should resemble output }
263
+ end
264
+ end
265
+
197
266
  context "with a label and a cross-reference" do
198
267
  let(:polytex) do <<-'EOS'
199
268
  \begin{table}
@@ -352,4 +421,4 @@ describe 'Polytexnic::Pipeline#to_html' do
352
421
 
353
422
  end
354
423
  end
355
- end
424
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polytexnic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.6
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Hartl
8
8
  - Nick Merwin
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-09-01 00:00:00.000000000 Z
12
+ date: 2022-03-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -293,7 +293,7 @@ homepage: https://github.com/softcover/polytexnic
293
293
  licenses:
294
294
  - MIT
295
295
  metadata: {}
296
- post_install_message:
296
+ post_install_message:
297
297
  rdoc_options: []
298
298
  require_paths:
299
299
  - lib
@@ -308,8 +308,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
308
308
  - !ruby/object:Gem::Version
309
309
  version: '0'
310
310
  requirements: []
311
- rubygems_version: 3.1.6
312
- signing_key:
311
+ rubygems_version: 3.3.7
312
+ signing_key:
313
313
  specification_version: 4
314
314
  summary: Convert from PolyTeX & Markdown to HTML & LaTeX
315
315
  test_files: