polytexnic 1.6.6 → 1.7.2

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 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: