polytexnic 1.10.0 → 1.10.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: 97df7a0f9860c92ab7a0f07d95c8aa4b1fd6a0416f0c64cdf1179d02884b21b9
4
- data.tar.gz: 2d8f24f8eb0d2be40e1fd37fa81599df119684560e807ad8de6b151fedb36eb0
3
+ metadata.gz: f125f1b4e0dc232a35eb7caa4941fc147d927ed3fa4aa18f691c902da1510545
4
+ data.tar.gz: 0ed473416a4b88a4491af1cbc02d5db68c904998185bc70e92a2821b4ae0e730
5
5
  SHA512:
6
- metadata.gz: b33bea198951ee6f66a4f9e90127e440f406b8cc7f54a5b07ca07142a365f1cdb971a15f6be415c8230dc7959e8a5a3eb4fa260efe88906db1c983581fb97181
7
- data.tar.gz: 7e29667969dcd57f6dfb4bde2ce175d2c0510402658a3238efbccf46fae6bf486c230bab3290926dbfd3d5cefa8e473568d5e022c2c459bdc86472e73e29a31c
6
+ metadata.gz: 1b70edd6d6fee965e904872c1df671f1651773da7160f757aaf3cd428408e396f5d59abf6afa36b3467f4a67cbe6268d596e909865f90889f9719a72b9bad27f
7
+ data.tar.gz: 688a229066793aca1558d87d9f6de14780d927fca133bc8cb645df0ad7e0d20a64968bcbf195ccc44583d8b2b90d5edfd793e7226713a86d7892ab3782817af9
data/.quiet ADDED
File without changes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- polytexnic (1.10.0)
4
+ polytexnic (1.10.2)
5
5
  json (= 2.3.1)
6
6
  kramdown (= 2.4.0)
7
7
  msgpack (= 1.2.10)
@@ -773,11 +773,6 @@ module Polytexnic
773
773
  def build_heading(node, css_class)
774
774
  node.name = 'div'
775
775
  node['class'] = element_class(css_class)
776
- # Extract theorem content (if any). This super-hacky.
777
- # th_regex = /data-tralics-id=".*?"><strong>.*?<\/strong>(.*?)<\/div>/m
778
- # theorem_content = node.to_xhtml.scan(th_regex).flatten.first
779
- # theorem_content.gsub!("\n\n", '') if theorem_content
780
- # raise theorem_content
781
776
  heading = node.at_css('p')
782
777
  heading.attributes.each do |key, value|
783
778
  node.set_attribute(key, value)
@@ -826,11 +821,6 @@ module Polytexnic
826
821
  full_number << theorem_description
827
822
  end
828
823
  full_number << Nokogiri::XML::Text.new('.', heading)
829
- # # We remove all paragraphs and append the previously extracted
830
- # # theorem content. The desired numbered heading is just the
831
- # # first line, so we split on newline and take the first element.
832
- # number_html = full_number.to_xhtml.split("\n").first
833
- # full_number.inner_html = number_html + theorem_content
834
824
  elsif css_class == 'codelisting'
835
825
  description = node.at_css('.description').content
836
826
  unless description.empty?
@@ -839,7 +829,6 @@ module Polytexnic
839
829
  else
840
830
  full_number << Nokogiri::XML::Text.new('.', heading)
841
831
  end
842
- # raise heading.to_xhtml
843
832
  heading
844
833
  end
845
834
 
@@ -902,6 +891,18 @@ module Polytexnic
902
891
  doc.xpath('//proof').each do |node|
903
892
  node.name = 'div'
904
893
  node['class'] = 'proof'
894
+ proofoption = node.css('proofoption')
895
+ if proofoption.empty?
896
+ proof_label = 'Proof.'
897
+ else
898
+ proof_label = proofoption.first.content.strip
899
+ end
900
+ proofoption.remove
901
+ node.remove_attribute('proofoption')
902
+ first_paragraph = node.children.first
903
+ html = first_paragraph.inner_html
904
+ html = %(<em class="proof_label">#{proof_label}</em> ) + html
905
+ first_paragraph.inner_html = html
905
906
  end
906
907
  end
907
908
 
@@ -318,14 +318,22 @@ module Polytexnic
318
318
  end
319
319
 
320
320
  # Wrap proofs in a 'proof' element.
321
+ # Start with proofs that have options.
322
+ string.gsub! /(\\begin{proof})\[(.*?)\]/ do
323
+ "\\begin{xmlelement*}{proof}" +
324
+ "\\begin{xmlelement*}{proofoption}#{$2}" +
325
+ "\\end{xmlelement*}"
326
+ end
327
+ # string.gsub!(/\\begin{proof}\[.*?\]/, '')
328
+ # Now do optionless proofs.
321
329
  string.gsub! /\\begin{proof}/ do |s|
322
- "\\begin{xmlelement*}{proof}\n#{s}"
330
+ "\\begin{xmlelement*}{proof}"
323
331
  end
324
332
  string.gsub! /\\end{proof}/ do |s|
325
333
  "#{s}\n\\end{xmlelement*}"
326
334
  end
327
- string.gsub!(/\\begin{proof}/, '')
328
- string.gsub!(/\\end{proof}/, '')
335
+ # string.gsub!(/\\begin{proof}/, '')
336
+ # string.gsub!(/\\end{proof}/, '')
329
337
 
330
338
  # Wrap asides in an 'aside' element.
331
339
  string.gsub! /\\begin{aside}/ do |s|
@@ -1,3 +1,3 @@
1
1
  module Polytexnic
2
- VERSION = "1.10.0"
2
+ VERSION = "1.10.2"
3
3
  end
@@ -16,7 +16,19 @@ describe 'Polytexnic::Pipeline#to_html' do
16
16
  EOS
17
17
  end
18
18
  it { should include("Lorem ipsum.") }
19
- it { should include('<div class="proof">')}
19
+ it { should include('<div class="proof"><p><em class="proof_label">Proof.</em> Lorem')}
20
+
21
+ context "with optional argument" do
22
+ let(:polytex) do <<-'EOS'
23
+ \chapter{Foo bar}
24
+
25
+ \begin{proof}[Simpler proof.]
26
+ Dolor sit amet.
27
+ \end{proof}
28
+ EOS
29
+ end
30
+ it { should include('<div class="proof"><p><em class="proof_label">Simpler proof.</em> Dolor') }
31
+ end
20
32
  end
21
33
 
22
34
  describe "chapter theorems" do
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.10.0
4
+ version: 1.10.2
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: 2023-09-06 00:00:00.000000000 Z
12
+ date: 2023-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -207,6 +207,7 @@ files:
207
207
  - ".pull_requests/1389652617"
208
208
  - ".pull_requests/1395697424"
209
209
  - ".pull_requests/1403381407"
210
+ - ".quiet"
210
211
  - ".rspec"
211
212
  - Gemfile
212
213
  - Gemfile.lock