isodoc 1.0.8 → 1.0.9
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 +4 -4
- data/Gemfile.lock +4 -4
- data/lib/isodoc/function/cleanup.rb +1 -1
- data/lib/isodoc/function/lists.rb +5 -1
- data/lib/isodoc/function/xref_anchor.rb +1 -0
- data/lib/isodoc/html_function/html.rb +1 -1
- data/lib/isodoc/version.rb +1 -1
- data/spec/isodoc/cleanup_spec.rb +2 -0
- data/spec/isodoc/postproc_spec.rb +41 -4
- data/spec/isodoc/section_spec.rb +26 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a81fec6b1ecfd841b735e5b0b36fca370a1928f7f7a79ee4a1348fd183eb087c
|
|
4
|
+
data.tar.gz: 82fe58f01f7b8315eb3a1d99863084e7f53c2dc1d30220b1a6940f9cc8a23b02
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 986f56381b796b2107885544234df9d0e5716953a59c6af9f3b706473f16eec46eb5abbf5132324c237a6f7749f75264be71c84c6e576aa302eeed89f10aa56f
|
|
7
|
+
data.tar.gz: b07f326e9ff729e8cc2b964cea990c4fb51524887690797d42cb4e87fa324e77a4c6d1130f365e55d3bc455aaa76d18409241f43b3af89586305d0a0282683d5
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
isodoc (1.0.
|
|
4
|
+
isodoc (1.0.9)
|
|
5
5
|
asciimath
|
|
6
6
|
html2doc (~> 0.9.0)
|
|
7
7
|
htmlentities (~> 4.3.4)
|
|
@@ -26,7 +26,7 @@ GEM
|
|
|
26
26
|
docile (1.3.2)
|
|
27
27
|
equivalent-xml (0.6.0)
|
|
28
28
|
nokogiri (>= 1.4.3)
|
|
29
|
-
ffi (1.11.
|
|
29
|
+
ffi (1.11.3)
|
|
30
30
|
formatador (0.2.5)
|
|
31
31
|
guard (2.16.1)
|
|
32
32
|
formatador (>= 0.2.4)
|
|
@@ -58,7 +58,7 @@ GEM
|
|
|
58
58
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
59
59
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
60
60
|
lumberjack (1.0.13)
|
|
61
|
-
metanorma (0.3.
|
|
61
|
+
metanorma (0.3.18)
|
|
62
62
|
asciidoctor
|
|
63
63
|
htmlentities
|
|
64
64
|
method_source (0.9.2)
|
|
@@ -72,7 +72,7 @@ GEM
|
|
|
72
72
|
notiffany (0.1.3)
|
|
73
73
|
nenv (~> 0.1)
|
|
74
74
|
shellany (~> 0.0)
|
|
75
|
-
parallel (1.19.
|
|
75
|
+
parallel (1.19.1)
|
|
76
76
|
parser (2.6.5.0)
|
|
77
77
|
ast (~> 2.4.0)
|
|
78
78
|
powerpack (0.1.2)
|
|
@@ -177,7 +177,7 @@ module IsoDoc::Function
|
|
|
177
177
|
return docxml unless dl
|
|
178
178
|
dl_out = extract_symbols_list(dl)
|
|
179
179
|
dl_out.sort! { |a, b| a[:key] <=> b[:key] }
|
|
180
|
-
dl.
|
|
180
|
+
dl.children = dl_out.map { |d| d[:dt].to_s + d[:dd].to_s }.join("\n")
|
|
181
181
|
docxml
|
|
182
182
|
end
|
|
183
183
|
end
|
|
@@ -62,8 +62,12 @@ module IsoDoc::Function
|
|
|
62
62
|
%w{dt dd}.include? n.name
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
+
def dl_attr(node)
|
|
66
|
+
attr_code(id: node["id"])
|
|
67
|
+
end
|
|
68
|
+
|
|
65
69
|
def dl_parse(node, out)
|
|
66
|
-
out.dl **
|
|
70
|
+
out.dl **dl_attr(node) do |v|
|
|
67
71
|
node.elements.select { |n| dt_dd? n }.each_slice(2) do |dt, dd|
|
|
68
72
|
v.dt **attr_code(id: dt["id"]) do |term|
|
|
69
73
|
dt_parse(dt, term)
|
|
@@ -269,7 +269,7 @@ module IsoDoc::HtmlFunction
|
|
|
269
269
|
|
|
270
270
|
def datauri(i)
|
|
271
271
|
type = i["src"].split(".")[-1]
|
|
272
|
-
bin = IO.binread(
|
|
272
|
+
bin = IO.binread(image_localfile(i))
|
|
273
273
|
data = Base64.strict_encode64(bin)
|
|
274
274
|
i["src"] = "data:image/#{type};base64,#{data}"
|
|
275
275
|
end
|
data/lib/isodoc/version.rb
CHANGED
data/spec/isodoc/cleanup_spec.rb
CHANGED
|
@@ -731,6 +731,7 @@ INPUT
|
|
|
731
731
|
<?xml version="1.0"?>
|
|
732
732
|
<div id="L" class="Symbols">
|
|
733
733
|
<h1>4.<span style="mso-tab-count:1">  </span>Symbols and Abbreviated Terms</h1>
|
|
734
|
+
<dl>
|
|
734
735
|
<dt>
|
|
735
736
|
<p>
|
|
736
737
|
<span class="stem">(#(x)#)</span>
|
|
@@ -756,6 +757,7 @@ INPUT
|
|
|
756
757
|
<span class="stem">(#(α)#)</span>
|
|
757
758
|
</p>
|
|
758
759
|
</dt><dd>Definition 1</dd>
|
|
760
|
+
</dl>
|
|
759
761
|
</div>
|
|
760
762
|
|
|
761
763
|
OUTPUT
|
|
@@ -300,7 +300,7 @@ ICAgICAgIDogRU5EIERPQyBJRAoKRklMRU5BTUU6IHRlc3QKCg==
|
|
|
300
300
|
IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", wordintropage: "spec/assets/wordintro.html"}).convert("test", <<~"INPUT", false)
|
|
301
301
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
|
302
302
|
<sections>
|
|
303
|
-
<clause inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
|
303
|
+
<clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
|
304
304
|
|
|
305
305
|
<title>Introduction<bookmark id="Q"/> to this<fn reference="1">
|
|
306
306
|
<p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
|
|
@@ -382,7 +382,7 @@ ICAgICAgIDogRU5EIERPQyBJRAoKRklMRU5BTUU6IHRlc3QKCg==
|
|
|
382
382
|
IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", wordintropage: "spec/assets/wordintro.html", doctoclevels: 3}).convert("test", <<~"INPUT", false)
|
|
383
383
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
|
384
384
|
<sections>
|
|
385
|
-
<clause inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
|
385
|
+
<clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
|
386
386
|
|
|
387
387
|
<title>Introduction<bookmark id="Q"/> to this<fn reference="1">
|
|
388
388
|
<p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
|
|
@@ -496,7 +496,7 @@ TOCLEVEL
|
|
|
496
496
|
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", wordintropage: "spec/assets/wordintro.html"}).convert("test", <<~"INPUT", false)
|
|
497
497
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
|
498
498
|
<sections>
|
|
499
|
-
<clause inline-header="false" obligation="normative"><title>Clause 4</title><fn reference="3">
|
|
499
|
+
<clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><fn reference="3">
|
|
500
500
|
<p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">This is a footnote.</p>
|
|
501
501
|
</fn><clause id="N" inline-header="false" obligation="normative">
|
|
502
502
|
|
|
@@ -518,7 +518,7 @@ TOCLEVEL
|
|
|
518
518
|
expect(xmlpp(html)).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
|
519
519
|
<main xmlns:epub="epub" class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
|
520
520
|
<p class="zzSTDTitle1"></p>
|
|
521
|
-
<div>
|
|
521
|
+
<div id="A">
|
|
522
522
|
<h1>1.  Clause 4</h1>
|
|
523
523
|
<a rel="footnote" href="#fn:3" epub:type="footnote" id="fnref:1">
|
|
524
524
|
<sup>1</sup>
|
|
@@ -629,6 +629,7 @@ TOCLEVEL
|
|
|
629
629
|
<preface><foreword>
|
|
630
630
|
<figure id="_">
|
|
631
631
|
<name>Split-it-right sample divider</name>
|
|
632
|
+
<image src="#{File.expand_path(File.join(File.dirname(__FILE__), "..", "assets/rice_image1.png"))}" id="_" mimetype="image/png"/>
|
|
632
633
|
<image src="assets/rice_image1.png" id="_" mimetype="image/png"/>
|
|
633
634
|
<image src="assets/rice_image1.png" id="_" width="20000" height="300000" mimetype="image/png"/>
|
|
634
635
|
<image src="assets/rice_image1.png" id="_" width="99" height="auto" mimetype="image/png"/>
|
|
@@ -646,6 +647,7 @@ TOCLEVEL
|
|
|
646
647
|
<h1 class="ForewordTitle">Foreword</h1>
|
|
647
648
|
<div id="_" class="figure">
|
|
648
649
|
<img src="test_htmlimages/_.png" height="776" width="922" />
|
|
650
|
+
<img src="test_htmlimages/_.png" height="776" width="922" />
|
|
649
651
|
<img src="test_htmlimages/_.png" height="800" width="53" />
|
|
650
652
|
<img src="test_htmlimages/_.png" height="83" width="99" />
|
|
651
653
|
<p class="FigureTitle" style="text-align:center;">Figure 1 — Split-it-right sample divider</p></div>
|
|
@@ -664,6 +666,7 @@ TOCLEVEL
|
|
|
664
666
|
<preface><foreword>
|
|
665
667
|
<figure id="_">
|
|
666
668
|
<name>Split-it-right sample divider</name>
|
|
669
|
+
<image src="#{File.expand_path(File.join(File.dirname(__FILE__), "..", "assets/rice_image1.png"))}" id="_" mimetype="image/png"/>
|
|
667
670
|
<image src="spec/assets/rice_image1.png" id="_" mimetype="image/png"/>
|
|
668
671
|
</figure>
|
|
669
672
|
</foreword></preface>
|
|
@@ -678,6 +681,39 @@ TOCLEVEL
|
|
|
678
681
|
<h1 class="ForewordTitle">Foreword</h1>
|
|
679
682
|
<div id="_" class="figure">
|
|
680
683
|
<img src="data:image/png;base64,_" height="776" width="922" />
|
|
684
|
+
<img src="data:image/png;base64,_" height="776" width="922" />
|
|
685
|
+
<p class="FigureTitle" style="text-align:center;">Figure 1 — Split-it-right sample divider</p></div>
|
|
686
|
+
</div>
|
|
687
|
+
<p class="zzSTDTitle1"></p>
|
|
688
|
+
</main>
|
|
689
|
+
OUTPUT
|
|
690
|
+
|
|
691
|
+
end
|
|
692
|
+
|
|
693
|
+
it "encodes images in HTML as data URIs, using relative file location" do
|
|
694
|
+
FileUtils.rm_f "spec/test.html"
|
|
695
|
+
FileUtils.rm_rf "spec/test_htmlimages"
|
|
696
|
+
IsoDoc::HtmlConvert.new({htmlstylesheet: "spec/assets/html.css", datauriimage: true}).convert("spec/test", <<~"INPUT", false)
|
|
697
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
|
698
|
+
<preface><foreword>
|
|
699
|
+
<figure id="_">
|
|
700
|
+
<name>Split-it-right sample divider</name>
|
|
701
|
+
<image src="#{File.expand_path(File.join(File.dirname(__FILE__), "..", "assets/rice_image1.png"))}" id="_" mimetype="image/png"/>
|
|
702
|
+
<image src="assets/rice_image1.png" id="_" mimetype="image/png"/>
|
|
703
|
+
</figure>
|
|
704
|
+
</foreword></preface>
|
|
705
|
+
</iso-standard>
|
|
706
|
+
INPUT
|
|
707
|
+
html = File.read("spec/test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
|
|
708
|
+
sub(%r{</main>.*$}m, "</main>")
|
|
709
|
+
expect(xmlpp(html.gsub(%r{src="data:image/png;base64,[^"]+"}, %{src="data:image/png;base64,_"}))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
|
710
|
+
<main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
|
711
|
+
<br />
|
|
712
|
+
<div>
|
|
713
|
+
<h1 class="ForewordTitle">Foreword</h1>
|
|
714
|
+
<div id="_" class="figure">
|
|
715
|
+
<img src="data:image/png;base64,_" height="776" width="922" />
|
|
716
|
+
<img src="data:image/png;base64,_" height="776" width="922" />
|
|
681
717
|
<p class="FigureTitle" style="text-align:center;">Figure 1 — Split-it-right sample divider</p></div>
|
|
682
718
|
</div>
|
|
683
719
|
<p class="zzSTDTitle1"></p>
|
|
@@ -686,6 +722,7 @@ TOCLEVEL
|
|
|
686
722
|
|
|
687
723
|
end
|
|
688
724
|
|
|
725
|
+
|
|
689
726
|
it "processes IsoXML terms for HTML" do
|
|
690
727
|
FileUtils.rm_f "test.html"
|
|
691
728
|
FileUtils.rm_f "test.doc"
|
data/spec/isodoc/section_spec.rb
CHANGED
|
@@ -475,6 +475,32 @@ OUTPUT
|
|
|
475
475
|
OUTPUT
|
|
476
476
|
end
|
|
477
477
|
|
|
478
|
+
it "processes section titles without ID" do
|
|
479
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({suppressheadingnumbers: true}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
|
480
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
|
481
|
+
<preface>
|
|
482
|
+
<introduction id="B" obligation="informative"><title>Introduction</title><clause obligation="informative">
|
|
483
|
+
<title>Introduction Subsection</title>
|
|
484
|
+
</clause>
|
|
485
|
+
</introduction>
|
|
486
|
+
</preface>
|
|
487
|
+
</iso-standard>
|
|
488
|
+
INPUT
|
|
489
|
+
#{HTML_HDR}
|
|
490
|
+
<br/>
|
|
491
|
+
<div class='Section3' id='B'>
|
|
492
|
+
<h1 class='IntroTitle'>Introduction</h1>
|
|
493
|
+
<div>
|
|
494
|
+
<h1>Introduction Subsection</h1>
|
|
495
|
+
</div>
|
|
496
|
+
</div>
|
|
497
|
+
<p class='zzSTDTitle1'/>
|
|
498
|
+
</div>
|
|
499
|
+
</body>
|
|
500
|
+
</html>
|
|
501
|
+
OUTPUT
|
|
502
|
+
end
|
|
503
|
+
|
|
478
504
|
it "processes simple terms & definitions" do
|
|
479
505
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
|
480
506
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: isodoc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-11-
|
|
11
|
+
date: 2019-11-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: asciimath
|