polytexnic 1.6.6 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e758ae9c4c23afe6aa06e9a916d9c41d207b8ded3da0c6e405e3e4b979c1864
4
- data.tar.gz: 2e44dbade1df1aa4e573c87c10e5adf34c2939e8cfe3690234fa5404c9ebc679
3
+ metadata.gz: d40834bb8a0205105739c3c347480faf14ddb63f64afeab9197e165d8b92bf5d
4
+ data.tar.gz: c8571137c2be72affefe7ff6f4b40770e1e4fc52a4c67b6b7e1ea1e0cddf45a5
5
5
  SHA512:
6
- metadata.gz: 3908f4a3795694c34c7c9443f475ca62662e9b6e3d8b0593641e8c42a5b99237fcc45e293704400eac7b243a813e814a898a560d4c9b6d51d08b0885afd77cc4
7
- data.tar.gz: 7517c3f0636b7472568dbb0252c1ac1090c8554907868977a943b96b0ee5d689d81febbbefa4e6dba79536ce8c985bc406d47ddf5360f82b409e2dd80b20f33a
6
+ metadata.gz: 8d2d76d36ba1dcbb41f5db7bde576cccc23c8db83886ce9146885a0abee32be8827e172fe3f5670d160d2ca29d2e0d39ecca22464cb49c7c05ad666dd72f50e9
7
+ data.tar.gz: 28688818b0a7ba361ad24c6e6cd7b807671e294cc0e8253e15b75c75bde1bfcf08e7401c258a3e1f80ccfbacf0e0dd7f338b17520bbe1f75bd00e8ee7c764379
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.0)
5
5
  json (~> 2.3.0)
6
6
  kramdown (>= 2.0, < 3.0)
7
7
  msgpack (~> 1.2.0)
@@ -23,10 +23,10 @@ GEM
23
23
  debugger2 (1.0.0.beta2)
24
24
  columnize (>= 0.3.1)
25
25
  debugger-linecache (~> 1.2.0)
26
- diff-lcs (1.4.4)
26
+ diff-lcs (1.5.0)
27
27
  docile (1.1.5)
28
- ffi (1.15.3)
29
- formatador (0.3.0)
28
+ ffi (1.15.5)
29
+ formatador (1.1.0)
30
30
  growl (1.0.3)
31
31
  guard (2.18.0)
32
32
  formatador (>= 0.2.4)
@@ -45,18 +45,18 @@ GEM
45
45
  json (2.3.1)
46
46
  kramdown (2.3.1)
47
47
  rexml
48
- listen (3.7.0)
48
+ listen (3.7.1)
49
49
  rb-fsevent (~> 0.10, >= 0.10.3)
50
50
  rb-inotify (~> 0.9, >= 0.9.10)
51
51
  lumberjack (1.2.8)
52
52
  method_source (1.0.0)
53
- mime-types (3.3.1)
53
+ mime-types (3.4.1)
54
54
  mime-types-data (~> 3.2015)
55
- mime-types-data (3.2021.0704)
55
+ mime-types-data (3.2022.0105)
56
56
  msgpack (1.2.10)
57
57
  multi_json (1.15.0)
58
58
  nenv (0.3.0)
59
- nokogiri (1.12.4-x86_64-darwin)
59
+ nokogiri (1.13.2-x86_64-darwin)
60
60
  racc (~> 1.4)
61
61
  notiffany (0.1.3)
62
62
  nenv (~> 0.1)
@@ -64,10 +64,10 @@ GEM
64
64
  pry (0.14.1)
65
65
  coderay (~> 1.1)
66
66
  method_source (~> 1.0)
67
- pygments.rb (2.2.0)
68
- racc (1.5.2)
67
+ pygments.rb (2.3.0)
68
+ racc (1.6.0)
69
69
  rake (13.0.6)
70
- rb-fsevent (0.11.0)
70
+ rb-fsevent (0.11.1)
71
71
  rb-inotify (0.10.1)
72
72
  ffi (~> 1.0)
73
73
  rest-client (1.6.7)
@@ -93,6 +93,7 @@ GEM
93
93
  tins (0.13.2)
94
94
 
95
95
  PLATFORMS
96
+ x86_64-darwin-19
96
97
  x86_64-darwin-20
97
98
 
98
99
  DEPENDENCIES
@@ -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,13 +279,23 @@ 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((?:\\caption|\\label)\S*?$)/m) do
283
+ "\\begin{table}\n#{$2}\n\\begin{tabular}#{$1}"
284
+ end
285
+ output.gsub!(/\\begin\{longtable\}(\{.*?\})/m) do
286
+ "\\begin{table}\n\\begin{tabular}#{$1}"
287
+ end
288
+ output.gsub!(/((?:\\caption|\\label)\S*?$)\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}}"
287
295
  end
288
296
  output.gsub!('\end{tabularx}', '\end{tabular}')
297
+ # puts output
298
+ # puts '+' * 50
289
299
  end
290
300
 
291
301
  # Marks environments with their types.
@@ -1,3 +1,3 @@
1
1
  module Polytexnic
2
- VERSION = "1.6.6"
2
+ VERSION = "1.7.0"
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,42 @@ describe 'Polytexnic::Pipeline#to_html' do
194
178
 
195
179
  describe "table environments" do
196
180
 
181
+ context "longtable" do
182
+
183
+ let(:polytex) do <<-'EOS'
184
+
185
+ \begin{longtable}{cc}
186
+ \label{table:longtable}
187
+ HTTP request & URL \\
188
+ GET & /users \\
189
+ GET & /users/1
190
+ \end{longtable}
191
+
192
+ Table~\ref{table:longtable}
193
+
194
+ EOS
195
+ end
196
+
197
+ let(:output) do <<-'EOS'
198
+ <div id="table-longtable" data-tralics-id="uid1" data-number="1" class="table">
199
+ <table class="tabular"><tr><td class="align_center">HTTP request</td>
200
+ <td class="align_center">URL</td>
201
+ </tr><tr><td class="align_center">GET</td>
202
+ <td class="align_center">/users</td>
203
+ </tr><tr><td class="align_center">GET</td>
204
+ <td class="align_center">/users/1</td>
205
+ </tr></table>
206
+ <div class="caption">
207
+ <span class="header">Table 1</span>
208
+ </div>
209
+ </div>
210
+ <p><a href="#table-longtable" class="hyperref">Table <span class="ref">1</span></a></p>
211
+ EOS
212
+ end
213
+
214
+ it { should resemble output }
215
+ end
216
+
197
217
  context "with a label and a cross-reference" do
198
218
  let(:polytex) do <<-'EOS'
199
219
  \begin{table}
@@ -352,4 +372,4 @@ describe 'Polytexnic::Pipeline#to_html' do
352
372
 
353
373
  end
354
374
  end
355
- end
375
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
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.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Hartl
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-09-01 00:00:00.000000000 Z
12
+ date: 2022-02-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri