isodoc 0.7.1 → 0.8
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 +8 -6
- data/README.adoc +3 -3
- data/lib/{isodoc → isodoc-yaml}/i18n-en.yaml +0 -0
- data/lib/{isodoc → isodoc-yaml}/i18n-fr.yaml +0 -0
- data/lib/{isodoc → isodoc-yaml}/i18n-zh-Hans.yaml +0 -0
- data/lib/isodoc.rb +13 -6
- data/lib/isodoc/class_utils.rb +24 -0
- data/lib/isodoc/common.rb +34 -0
- data/lib/isodoc/convert.rb +3 -16
- data/lib/isodoc/function.rb +4 -0
- data/lib/isodoc/{blocks.rb → function/blocks.rb} +2 -2
- data/lib/isodoc/{cleanup.rb → function/cleanup.rb} +4 -9
- data/lib/isodoc/{i18n.rb → function/i18n.rb} +13 -10
- data/lib/isodoc/{inline.rb → function/inline.rb} +2 -4
- data/lib/isodoc/{lists.rb → function/lists.rb} +5 -4
- data/lib/isodoc/{references.rb → function/references.rb} +4 -3
- data/lib/isodoc/{section.rb → function/section.rb} +4 -3
- data/lib/isodoc/{table.rb → function/table.rb} +3 -2
- data/lib/isodoc/{terms.rb → function/terms.rb} +3 -2
- data/lib/isodoc/{iso2wordhtml.rb → function/to_word_html.rb} +2 -3
- data/lib/isodoc/{utils.rb → function/utils.rb} +6 -22
- data/lib/isodoc/{xref_gen.rb → function/xref_gen.rb} +4 -3
- data/lib/isodoc/{xref_sect_gen.rb → function/xref_sect_gen.rb} +4 -3
- data/lib/isodoc/html_convert.rb +12 -0
- data/lib/isodoc/html_function.rb +4 -0
- data/lib/isodoc/{htmlconvert → html_function}/comments.rb +2 -3
- data/lib/isodoc/{htmlconvert → html_function}/footnotes.rb +3 -4
- data/lib/isodoc/{htmlconvert → html_function}/html.rb +5 -5
- data/lib/isodoc/iso/html/html_iso_titlepage.html +2 -2
- data/lib/isodoc/iso/{convert.rb → html_convert.rb} +1 -1
- data/lib/isodoc/iso/{wordconvert.rb → word_convert.rb} +0 -0
- data/lib/isodoc/metadata.rb +27 -12
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/{wordconvert/convert.rb → word_convert.rb} +9 -11
- data/lib/isodoc/word_function.rb +4 -0
- data/lib/isodoc/word_function/body.rb +149 -0
- data/lib/isodoc/{wordconvert → word_function}/comments.rb +2 -2
- data/lib/isodoc/word_function/footnotes.rb +81 -0
- data/lib/isodoc/word_function/postprocess.rb +116 -0
- data/spec/isodoc/blocks_spec.rb +17 -17
- data/spec/isodoc/cleanup_spec.rb +8 -8
- data/spec/isodoc/footnotes_spec.rb +2 -2
- data/spec/isodoc/i18n_spec.rb +4 -4
- data/spec/isodoc/inline_spec.rb +7 -7
- data/spec/isodoc/iso_spec.rb +5 -5
- data/spec/isodoc/lists_spec.rb +4 -4
- data/spec/isodoc/metadata_spec.rb +2 -2
- data/spec/isodoc/postproc_spec.rb +9 -9
- data/spec/isodoc/ref_spec.rb +3 -3
- data/spec/isodoc/section_spec.rb +6 -6
- data/spec/isodoc/table_spec.rb +1 -1
- data/spec/isodoc/terms_spec.rb +1 -1
- data/spec/isodoc/xref_spec.rb +11 -11
- metadata +35 -30
- data/lib/isodoc/htmlconvert/convert.rb +0 -13
- data/lib/isodoc/wordconvert/footnotes.rb +0 -81
- data/lib/isodoc/wordconvert/postprocess.rb +0 -115
- data/lib/isodoc/wordconvert/wordconvertmodule.rb +0 -150
data/spec/isodoc/lists_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
4
|
it "processes unordered lists" do
|
5
|
-
expect(IsoDoc::
|
5
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<preface><foreword>
|
8
8
|
<ul id="_61961034-0fb1-436b-b281-828857a59ddb">
|
@@ -37,7 +37,7 @@ RSpec.describe IsoDoc do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "processes ordered lists" do
|
40
|
-
expect(IsoDoc::
|
40
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
41
41
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
42
42
|
<preface><foreword>
|
43
43
|
<ol id="_ae34a226-aab4-496d-987b-1aa7b6314026" type="alphabet">
|
@@ -86,7 +86,7 @@ RSpec.describe IsoDoc do
|
|
86
86
|
end
|
87
87
|
|
88
88
|
it "processes Roman Upper ordered lists" do
|
89
|
-
expect(IsoDoc::
|
89
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
90
90
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
91
91
|
<preface><foreword>
|
92
92
|
<ol id="_ae34a226-aab4-496d-987b-1aa7b6314026" type="roman_upper">
|
@@ -127,7 +127,7 @@ RSpec.describe IsoDoc do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
it "processes definition lists" do
|
130
|
-
expect(IsoDoc::
|
130
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
131
131
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
132
132
|
<preface><foreword>
|
133
133
|
<dl id="_732d3f57-4f88-40bf-9ae9-633891edc395">
|
@@ -69,7 +69,7 @@ RSpec.describe IsoDoc do
|
|
69
69
|
</version>
|
70
70
|
</iso-standard>
|
71
71
|
INPUT
|
72
|
-
{:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :confirmeddate=>"XXX", :createddate=>"2010–2011", :docnumber=>"PreCD3 17301-1", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1: Riz", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1: Rice", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :revdate=>"2016-05-01", :sc=>"SC 4", :secretariat=>"GB", :stage=>"30", :stageabbr=>"PreCD3", :tc=>"TC 34", :updateddate=>"XXX", :wg=>"WG 3"}
|
72
|
+
{:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :confirmeddate=>"XXX", :createddate=>"2010–2011", :docnumber=>"PreCD3 17301-1", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1: Riz", :docsubtitleintro=>"C\u00E9r\u00E9ales et l\u00E9gumineuses", :docsubtitlemain=>"Sp\u00E9cification et m\u00E9thodes d'essai", :docsubtitlepart=>"Partie 1: Riz", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Part 1: Rice", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :revdate=>"2016-05-01", :sc=>"SC 4", :secretariat=>"GB", :stage=>"30", :stageabbr=>"PreCD3", :tc=>"TC 34", :updateddate=>"XXX", :wg=>"WG 3"}
|
73
73
|
OUTPUT
|
74
74
|
end
|
75
75
|
|
@@ -143,7 +143,7 @@ OUTPUT
|
|
143
143
|
</version>
|
144
144
|
</iso-standard>
|
145
145
|
INPUT
|
146
|
-
{:accesseddate=>"XXX", :agency=>"ISO/IEC", :confirmeddate=>"XXX", :createddate=>"XXX", :docnumber=>"CD 17301-1-3", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1–3: Riz", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1–3: Rice", :doctype=>"International Standard", :docyear=>"2016", :draft=>"12", :draftinfo=>" (draft 12, 2016-05-01)", :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"], :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"XXX", :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :publisheddate=>"XXX", :revdate=>"2016-05-01", :sc=>"DEF 4", :secretariat=>"XXXX", :stage=>"30", :stageabbr=>"CD", :tc=>"ABC 34", :updateddate=>"XXX", :wg=>"GHI 3"}
|
146
|
+
{:accesseddate=>"XXX", :agency=>"ISO/IEC", :confirmeddate=>"XXX", :createddate=>"XXX", :docnumber=>"CD 17301-1-3", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1–3: Riz", :docsubtitleintro=>"C\u00E9r\u00E9ales et l\u00E9gumineuses", :docsubtitlemain=>"Sp\u00E9cification et m\u00E9thodes d'essai", :docsubtitlepart=>"Partie 1–3: Riz", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1–3: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Part 1–3: Rice", :doctype=>"International Standard", :docyear=>"2016", :draft=>"12", :draftinfo=>" (draft 12, 2016-05-01)", :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"], :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"XXX", :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :publisheddate=>"XXX", :revdate=>"2016-05-01", :sc=>"DEF 4", :secretariat=>"XXXX", :stage=>"30", :stageabbr=>"CD", :tc=>"ABC 34", :updateddate=>"XXX", :wg=>"GHI 3"}
|
147
147
|
OUTPUT
|
148
148
|
end
|
149
149
|
|
@@ -4,7 +4,7 @@ RSpec.describe IsoDoc do
|
|
4
4
|
it "generates file based on string input" do
|
5
5
|
system "rm -f test.doc"
|
6
6
|
system "rm -f test.html"
|
7
|
-
IsoDoc::
|
7
|
+
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", filename: "test"}).convert("test", <<~"INPUT", false)
|
8
8
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
9
9
|
<preface><foreword>
|
10
10
|
<note>
|
@@ -24,7 +24,7 @@ RSpec.describe IsoDoc do
|
|
24
24
|
it "generates HTML output docs with null configuration" do
|
25
25
|
system "rm -f test.doc"
|
26
26
|
system "rm -f test.html"
|
27
|
-
IsoDoc::
|
27
|
+
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", <<~"INPUT", false)
|
28
28
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
29
29
|
<preface><foreword>
|
30
30
|
<note>
|
@@ -61,7 +61,7 @@ RSpec.describe IsoDoc do
|
|
61
61
|
it "generates HTML output docs with null configuration from file" do
|
62
62
|
system "rm -f spec/assets/iso.doc"
|
63
63
|
system "rm -f spec/assets/iso.html"
|
64
|
-
IsoDoc::
|
64
|
+
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("spec/assets/iso.xml", nil, false)
|
65
65
|
expect(File.exist?("spec/assets/iso.html")).to be true
|
66
66
|
html = File.read("spec/assets/iso.html")
|
67
67
|
expect(html).to match(/another empty stylesheet/)
|
@@ -80,7 +80,7 @@ RSpec.describe IsoDoc do
|
|
80
80
|
it "generates HTML output docs with complete configuration" do
|
81
81
|
system "rm -f test.doc"
|
82
82
|
system "rm -f test.html"
|
83
|
-
IsoDoc::
|
83
|
+
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", standardstylesheet: "spec/assets/std.css", header: "spec/assets/header.html", htmlcoverpage: "spec/assets/htmlcover.html", htmlintropage: "spec/assets/htmlintro.html", scripts: "spec/assets/scripts.html", wordcoverpage: "spec/assets/wordcover.html", wordintropage: "spec/assets/wordintro.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
|
84
84
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
85
85
|
<preface><foreword>
|
86
86
|
<note>
|
@@ -261,8 +261,8 @@ Content-Location: file:///C:/Doc/test_files/header.html
|
|
261
261
|
Content-Transfer-Encoding: base64
|
262
262
|
Content-Type: text/html charset="utf-8"
|
263
263
|
|
264
|
-
|
265
|
-
|
264
|
+
Ci8qIGFuIGVtcHR5IGhlYWRlciAqLwoKU1RBUlQgRE9DIElEOiAxMDAwLTE6IEVORCBET0MgSUQK
|
265
|
+
CkZJTEVOQU1FOiB0ZXN0Cgo=
|
266
266
|
|
267
267
|
OUTPUT
|
268
268
|
end
|
@@ -348,7 +348,7 @@ RCBET0MgSUQKCkZJTEVOQU1FOiB7eyBmaWxlbmFtZSB9fQoK
|
|
348
348
|
|
349
349
|
it "reorders footnote numbers in HTML" do
|
350
350
|
system "rm -f test.html"
|
351
|
-
IsoDoc::
|
351
|
+
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", wordintropage: "spec/assets/wordintro.html"}).convert("test", <<~"INPUT", false)
|
352
352
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
353
353
|
<sections>
|
354
354
|
<clause inline-header="false" obligation="normative"><title>Clause 4</title><fn reference="3">
|
@@ -403,7 +403,7 @@ RCBET0MgSUQKCkZJTEVOQU1FOiB7eyBmaWxlbmFtZSB9fQoK
|
|
403
403
|
it "moves images in HTML" do
|
404
404
|
system "rm -f test.html"
|
405
405
|
system "rm -rf _images"
|
406
|
-
IsoDoc::
|
406
|
+
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", <<~"INPUT", false)
|
407
407
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
408
408
|
<preface><foreword>
|
409
409
|
<figure id="_">
|
@@ -435,7 +435,7 @@ RCBET0MgSUQKCkZJTEVOQU1FOiB7eyBmaWxlbmFtZSB9fQoK
|
|
435
435
|
it "processes IsoXML terms for HTML" do
|
436
436
|
system "rm -f test.doc"
|
437
437
|
system "rm -f test.html"
|
438
|
-
IsoDoc::
|
438
|
+
IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", <<~"INPUT", false)
|
439
439
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
440
440
|
<sections>
|
441
441
|
<terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
|
data/spec/isodoc/ref_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
4
|
it "processes IsoXML bibliographies" do
|
5
|
-
expect(IsoDoc::
|
5
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<preface><foreword>
|
8
8
|
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">
|
@@ -110,10 +110,10 @@ RSpec.describe IsoDoc do
|
|
110
110
|
</body>
|
111
111
|
</html>
|
112
112
|
OUTPUT
|
113
|
-
end
|
113
|
+
end
|
114
114
|
|
115
115
|
it "processes empty IsoXML Normative references" do
|
116
|
-
expect(IsoDoc::
|
116
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
117
117
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
118
118
|
<bibliography><references id="_normative_references" obligation="informative"><title>Normative References</title>
|
119
119
|
</references>
|
data/spec/isodoc/section_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
4
|
it "processes section names" do
|
5
|
-
expect(IsoDoc::
|
5
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<preface>
|
8
8
|
<foreword obligation="informative">
|
@@ -326,7 +326,7 @@ OUTPUT
|
|
326
326
|
end
|
327
327
|
|
328
328
|
it "processes simple terms & definitions" do
|
329
|
-
expect(IsoDoc::
|
329
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
330
330
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
331
331
|
<sections>
|
332
332
|
<terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
|
@@ -360,7 +360,7 @@ OUTPUT
|
|
360
360
|
end
|
361
361
|
|
362
362
|
it "processes terms & definitions with external source" do
|
363
|
-
expect(IsoDoc::
|
363
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
364
364
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
365
365
|
<termdocsource type="inline" bibitemid="ISO712"/>
|
366
366
|
<sections>
|
@@ -413,7 +413,7 @@ OUTPUT
|
|
413
413
|
end
|
414
414
|
|
415
415
|
it "processes empty terms & definitions with external source" do
|
416
|
-
expect(IsoDoc::
|
416
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
417
417
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
418
418
|
<termdocsource type="inline" bibitemid="ISO712"/>
|
419
419
|
<termdocsource type="inline" bibitemid="ISO712"/>
|
@@ -464,7 +464,7 @@ OUTPUT
|
|
464
464
|
|
465
465
|
|
466
466
|
it "processes empty terms & definitions" do
|
467
|
-
expect(IsoDoc::
|
467
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
468
468
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
469
469
|
<sections>
|
470
470
|
<terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
|
@@ -492,7 +492,7 @@ OUTPUT
|
|
492
492
|
end
|
493
493
|
|
494
494
|
it "processes inline section headers" do
|
495
|
-
expect(IsoDoc::
|
495
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
496
496
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
497
497
|
<sections>
|
498
498
|
<clause id="M" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
data/spec/isodoc/table_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
4
|
it "processes IsoXML tables" do
|
5
|
-
expect(IsoDoc::
|
5
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<preface>
|
8
8
|
<foreword>
|
data/spec/isodoc/terms_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
4
|
it "processes IsoXML terms" do
|
5
|
-
expect(IsoDoc::
|
5
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<sections>
|
8
8
|
<terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
|
data/spec/isodoc/xref_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
4
|
it "cross-references notes" do
|
5
|
-
expect(IsoDoc::
|
5
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)). to be_equivalent_to <<~"OUTPUT"
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<preface>
|
8
8
|
<foreword>
|
@@ -115,7 +115,7 @@ RSpec.describe IsoDoc do
|
|
115
115
|
end
|
116
116
|
|
117
117
|
it "cross-references figures" do
|
118
|
-
expect(IsoDoc::
|
118
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
119
119
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
120
120
|
<preface>
|
121
121
|
<foreword id="fwd">
|
@@ -247,7 +247,7 @@ RSpec.describe IsoDoc do
|
|
247
247
|
end
|
248
248
|
|
249
249
|
it "cross-references subfigures" do
|
250
|
-
expect(IsoDoc::
|
250
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
251
251
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
252
252
|
<preface>
|
253
253
|
<foreword id="fwd">
|
@@ -367,7 +367,7 @@ RSpec.describe IsoDoc do
|
|
367
367
|
end
|
368
368
|
|
369
369
|
it "cross-references examples" do
|
370
|
-
expect(IsoDoc::
|
370
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
371
371
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
372
372
|
<preface>
|
373
373
|
<foreword>
|
@@ -492,7 +492,7 @@ RSpec.describe IsoDoc do
|
|
492
492
|
end
|
493
493
|
|
494
494
|
it "cross-references formulae" do
|
495
|
-
expect(IsoDoc::
|
495
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
496
496
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
497
497
|
<preface>
|
498
498
|
<foreword>
|
@@ -614,7 +614,7 @@ RSpec.describe IsoDoc do
|
|
614
614
|
end
|
615
615
|
|
616
616
|
it "cross-references tables" do
|
617
|
-
expect(IsoDoc::
|
617
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
618
618
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
619
619
|
<preface>
|
620
620
|
<foreword>
|
@@ -775,7 +775,7 @@ RSpec.describe IsoDoc do
|
|
775
775
|
end
|
776
776
|
|
777
777
|
it "cross-references term notes" do
|
778
|
-
expect(IsoDoc::
|
778
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
779
779
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
780
780
|
<preface>
|
781
781
|
<foreword>
|
@@ -841,7 +841,7 @@ RSpec.describe IsoDoc do
|
|
841
841
|
end
|
842
842
|
|
843
843
|
it "cross-references sections" do
|
844
|
-
expect(IsoDoc::
|
844
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
845
845
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
846
846
|
<preface>
|
847
847
|
<foreword obligation="informative">
|
@@ -1027,7 +1027,7 @@ RSpec.describe IsoDoc do
|
|
1027
1027
|
end
|
1028
1028
|
|
1029
1029
|
it "cross-references lists" do
|
1030
|
-
expect(IsoDoc::
|
1030
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
1031
1031
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1032
1032
|
<preface>
|
1033
1033
|
<foreword>
|
@@ -1141,7 +1141,7 @@ RSpec.describe IsoDoc do
|
|
1141
1141
|
end
|
1142
1142
|
|
1143
1143
|
it "cross-references list items" do
|
1144
|
-
expect(IsoDoc::
|
1144
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
1145
1145
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1146
1146
|
<preface>
|
1147
1147
|
<foreword>
|
@@ -1255,7 +1255,7 @@ RSpec.describe IsoDoc do
|
|
1255
1255
|
end
|
1256
1256
|
|
1257
1257
|
it "cross-references nested list items" do
|
1258
|
-
expect(IsoDoc::
|
1258
|
+
expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
|
1259
1259
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1260
1260
|
<preface>
|
1261
1261
|
<foreword>
|
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: 0.
|
4
|
+
version: '0.8'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciimath
|
@@ -342,20 +342,32 @@ files:
|
|
342
342
|
- Rakefile
|
343
343
|
- bin/rspec
|
344
344
|
- isodoc.gemspec
|
345
|
+
- lib/isodoc-yaml/i18n-en.yaml
|
346
|
+
- lib/isodoc-yaml/i18n-fr.yaml
|
347
|
+
- lib/isodoc-yaml/i18n-zh-Hans.yaml
|
345
348
|
- lib/isodoc.rb
|
346
|
-
- lib/isodoc/
|
347
|
-
- lib/isodoc/
|
349
|
+
- lib/isodoc/class_utils.rb
|
350
|
+
- lib/isodoc/common.rb
|
348
351
|
- lib/isodoc/convert.rb
|
349
|
-
- lib/isodoc/
|
350
|
-
- lib/isodoc/
|
351
|
-
- lib/isodoc/
|
352
|
-
- lib/isodoc/
|
353
|
-
- lib/isodoc/
|
354
|
-
- lib/isodoc/
|
355
|
-
- lib/isodoc/
|
356
|
-
- lib/isodoc/
|
357
|
-
- lib/isodoc/
|
358
|
-
- lib/isodoc/
|
352
|
+
- lib/isodoc/function.rb
|
353
|
+
- lib/isodoc/function/blocks.rb
|
354
|
+
- lib/isodoc/function/cleanup.rb
|
355
|
+
- lib/isodoc/function/i18n.rb
|
356
|
+
- lib/isodoc/function/inline.rb
|
357
|
+
- lib/isodoc/function/lists.rb
|
358
|
+
- lib/isodoc/function/references.rb
|
359
|
+
- lib/isodoc/function/section.rb
|
360
|
+
- lib/isodoc/function/table.rb
|
361
|
+
- lib/isodoc/function/terms.rb
|
362
|
+
- lib/isodoc/function/to_word_html.rb
|
363
|
+
- lib/isodoc/function/utils.rb
|
364
|
+
- lib/isodoc/function/xref_gen.rb
|
365
|
+
- lib/isodoc/function/xref_sect_gen.rb
|
366
|
+
- lib/isodoc/html_convert.rb
|
367
|
+
- lib/isodoc/html_function.rb
|
368
|
+
- lib/isodoc/html_function/comments.rb
|
369
|
+
- lib/isodoc/html_function/footnotes.rb
|
370
|
+
- lib/isodoc/html_function/html.rb
|
359
371
|
- lib/isodoc/iso/html/header.html
|
360
372
|
- lib/isodoc/iso/html/html_iso_intro.html
|
361
373
|
- lib/isodoc/iso/html/html_iso_titlepage.html
|
@@ -367,23 +379,16 @@ files:
|
|
367
379
|
- lib/isodoc/iso/html/word_iso_intro.html
|
368
380
|
- lib/isodoc/iso/html/word_iso_titlepage.html
|
369
381
|
- lib/isodoc/iso/html/wordstyle.scss
|
370
|
-
- lib/isodoc/iso/
|
371
|
-
- lib/isodoc/
|
372
|
-
- lib/isodoc/lists.rb
|
382
|
+
- lib/isodoc/iso/html_convert.rb
|
383
|
+
- lib/isodoc/iso/word_convert.rb
|
373
384
|
- lib/isodoc/metadata.rb
|
374
|
-
- lib/isodoc/references.rb
|
375
|
-
- lib/isodoc/section.rb
|
376
|
-
- lib/isodoc/table.rb
|
377
|
-
- lib/isodoc/terms.rb
|
378
|
-
- lib/isodoc/utils.rb
|
379
385
|
- lib/isodoc/version.rb
|
380
|
-
- lib/isodoc/
|
381
|
-
- lib/isodoc/
|
382
|
-
- lib/isodoc/
|
383
|
-
- lib/isodoc/
|
384
|
-
- lib/isodoc/
|
385
|
-
- lib/isodoc/
|
386
|
-
- lib/isodoc/xref_sect_gen.rb
|
386
|
+
- lib/isodoc/word_convert.rb
|
387
|
+
- lib/isodoc/word_function.rb
|
388
|
+
- lib/isodoc/word_function/body.rb
|
389
|
+
- lib/isodoc/word_function/comments.rb
|
390
|
+
- lib/isodoc/word_function/footnotes.rb
|
391
|
+
- lib/isodoc/word_function/postprocess.rb
|
387
392
|
- spec/assets/header.html
|
388
393
|
- spec/assets/html.css
|
389
394
|
- spec/assets/htmlcover.html
|
@@ -431,7 +436,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
431
436
|
version: '0'
|
432
437
|
requirements: []
|
433
438
|
rubyforge_project:
|
434
|
-
rubygems_version: 2.7.
|
439
|
+
rubygems_version: 2.7.7
|
435
440
|
signing_key:
|
436
441
|
specification_version: 4
|
437
442
|
summary: Convert documents in IsoDoc into Word and HTML in AsciiDoc.
|
@@ -1,81 +0,0 @@
|
|
1
|
-
module IsoDoc
|
2
|
-
class WordConvert < Common
|
3
|
-
|
4
|
-
def footnotes(div)
|
5
|
-
return if @footnotes.empty?
|
6
|
-
@footnotes.each { |fn| div.parent << fn }
|
7
|
-
end
|
8
|
-
|
9
|
-
def make_table_footnote_link(out, fnid, fnref)
|
10
|
-
attrs = { href: "##{fnid}", class: "TableFootnoteRef" }
|
11
|
-
out.a **attrs do |a|
|
12
|
-
a << fnref
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def make_table_footnote_target(out, fnid, fnref)
|
17
|
-
attrs = { id: fnid, class: "TableFootnoteRef" }
|
18
|
-
out.a **attrs do |a|
|
19
|
-
a << fnref
|
20
|
-
insert_tab(a, 1)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def make_table_footnote_text(node, fnid, fnref)
|
25
|
-
attrs = { id: "ftn#{fnid}" }
|
26
|
-
noko do |xml|
|
27
|
-
xml.div **attr_code(attrs) do |div|
|
28
|
-
make_table_footnote_target(div, fnid, fnref)
|
29
|
-
node.children.each { |n| parse(n, div) }
|
30
|
-
end
|
31
|
-
end.join("\n")
|
32
|
-
end
|
33
|
-
|
34
|
-
def make_generic_footnote_text(node, fnid)
|
35
|
-
noko do |xml|
|
36
|
-
xml.aside **{ id: "ftn#{fnid}" } do |div|
|
37
|
-
node.children.each { |n| parse(n, div) }
|
38
|
-
end
|
39
|
-
end.join("\n")
|
40
|
-
end
|
41
|
-
|
42
|
-
def get_table_ancestor_id(node)
|
43
|
-
table = node.ancestors("table") || node.ancestors("figure")
|
44
|
-
return UUIDTools::UUID.random_create.to_s if table.empty?
|
45
|
-
table.last["id"]
|
46
|
-
end
|
47
|
-
|
48
|
-
def table_footnote_parse(node, out)
|
49
|
-
fn = node["reference"]
|
50
|
-
tid = get_table_ancestor_id(node)
|
51
|
-
make_table_footnote_link(out, tid + fn, fn)
|
52
|
-
# do not output footnote text if we have already seen it for this table
|
53
|
-
return if @seen_footnote.include?(tid + fn)
|
54
|
-
@in_footnote = true
|
55
|
-
out.aside { |a| a << make_table_footnote_text(node, tid + fn, fn) }
|
56
|
-
@in_footnote = false
|
57
|
-
@seen_footnote << (tid + fn)
|
58
|
-
end
|
59
|
-
|
60
|
-
def footnote_parse(node, out)
|
61
|
-
return table_footnote_parse(node, out) if @in_table || @in_figure
|
62
|
-
fn = node["reference"]
|
63
|
-
out.a **{ "epub:type": "footnote", href: "#ftn#{fn}" } do |a|
|
64
|
-
a.sup { |sup| sup << fn }
|
65
|
-
end
|
66
|
-
return if @seen_footnote.include?(fn)
|
67
|
-
@in_footnote = true
|
68
|
-
@footnotes << make_generic_footnote_text(node, fn)
|
69
|
-
@in_footnote = false
|
70
|
-
@seen_footnote << fn
|
71
|
-
end
|
72
|
-
|
73
|
-
def make_footnote(node, fn)
|
74
|
-
return if @seen_footnote.include?(fn)
|
75
|
-
@in_footnote = true
|
76
|
-
@footnotes << make_generic_footnote_text(node, fn)
|
77
|
-
@in_footnote = false
|
78
|
-
@seen_footnote << fn
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|