metanorma-iso 1.3.27 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,24 +15,11 @@ module IsoDoc
15
15
 
16
16
  def pdf_stylesheet(docxml)
17
17
  case doctype = docxml&.at(ns("//bibdata/ext/doctype"))&.text
18
- when "amendment", "technical-corrigendum" then "itu.recommendation-annex.xsl"
18
+ when "amendment", "technical-corrigendum" then "iso.amendment.xsl"
19
19
  else
20
20
  "iso.international-standard.xsl"
21
21
  end
22
22
  end
23
-
24
- def convert(filename, file = nil, debug = false)
25
- file = File.read(filename, encoding: "utf-8") if file.nil?
26
- docxml, outname_html, dir = convert_init(file, filename, debug)
27
- /\.xml$/.match(filename) or
28
- filename = Tempfile.open([outname_html, ".xml"], encoding: "utf-8") do |f|
29
- f.write file
30
- f.path
31
- end
32
- FileUtils.rm_rf dir
33
- ::Metanorma::Output::XslfoPdf.new.convert(
34
- filename, outname_html + ".pdf", File.join(@libdir, pdf_stylesheet(docxml)))
35
- end
36
23
  end
37
24
  end
38
25
  end
@@ -0,0 +1,13 @@
1
+ require_relative "base_convert"
2
+ require "isodoc"
3
+
4
+ module IsoDoc
5
+ module Iso
6
+
7
+ # A {Converter} implementation that generates HTML output, and a document
8
+ # schema encapsulation of the document for validation
9
+ #
10
+ class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
11
+ end
12
+ end
13
+ end
@@ -30,9 +30,9 @@ module IsoDoc
30
30
  end
31
31
 
32
32
  def annex(isoxml, out)
33
- @amd and @suppressheadingnumbers = @oldsuppressheadingnumbers
33
+ amd(isoxml) and @suppressheadingnumbers = @oldsuppressheadingnumbers
34
34
  super
35
- @amd and @suppressheadingnumbers = true
35
+ amd(isoxml) and @suppressheadingnumbers = true
36
36
  end
37
37
 
38
38
  def introduction(isoxml, out)
@@ -10,18 +10,20 @@ module IsoDoc
10
10
  class StsConvert < IsoDoc::XslfoPdfConvert
11
11
  def initialize(options)
12
12
  @libdir = File.dirname(__FILE__)
13
+ @format = :sts
14
+ @suffix = "sts.xml"
13
15
  end
14
16
 
15
- def convert(filename, file = nil, debug = false)
16
- file = File.read(filename, encoding: "utf-8") if file.nil?
17
- docxml, outname_html, dir = convert_init(file, filename, debug)
18
- /\.xml$/.match(filename) or
19
- filename = Tempfile.open([outname_html, ".xml"], encoding: "utf-8") do |f|
17
+ def convert(input_filename, file = nil, debug = false, output_filename = nil)
18
+ file = File.read(input_filename, encoding: "utf-8") if file.nil?
19
+ docxml, filename, dir = convert_init(file, input_filename, debug)
20
+ /\.xml$/.match(input_filename) or
21
+ input_filename = Tempfile.open([filename, ".xml"], encoding: "utf-8") do |f|
20
22
  f.write file
21
23
  f.path
22
24
  end
23
25
  FileUtils.rm_rf dir
24
- Mn2sts.convert(filename, outname_html + ".sts.xml")
26
+ Mn2sts.convert(input_filename, output_filename || "#{filename}.#{@suffix}")
25
27
  end
26
28
  end
27
29
  end
@@ -1,8 +1,8 @@
1
1
  module IsoDoc
2
2
  module Iso
3
- module BaseConvert
4
- def anchor_names(docxml)
5
- if @amd
3
+ class Xref < IsoDoc::Xref
4
+ def parse(docxml)
5
+ if @klass.amd(docxml)
6
6
  back_anchor_names(docxml)
7
7
  note_anchor_names(docxml.xpath(ns("//annex//table | //annex//figure")))
8
8
  note_anchor_names(docxml.xpath(ns("//annex")))
@@ -33,7 +33,7 @@ module IsoDoc
33
33
 
34
34
  def appendix_names(clause, num)
35
35
  clause.xpath(ns("./appendix")).each_with_index do |c, i|
36
- @anchors[c["id"]] = anchor_struct(i + 1, nil, @appendix_lbl, "clause")
36
+ @anchors[c["id"]] = anchor_struct(i + 1, nil, @labels["appendix"], "clause")
37
37
  @anchors[c["id"]][:level] = 2
38
38
  @anchors[c["id"]][:container] = clause["id"]
39
39
  end
@@ -58,12 +58,12 @@ module IsoDoc
58
58
  end
59
59
 
60
60
  def hierarchical_formula_names(clause, num)
61
- c = IsoDoc::Function::XrefGen::Counter.new
61
+ c = IsoDoc::XrefGen::Counter.new
62
62
  clause.xpath(ns(".//formula")).each do |t|
63
63
  next if t["id"].nil? || t["id"].empty?
64
64
  @anchors[t["id"]] =
65
65
  anchor_struct("#{num}#{hiersep}#{c.increment(t).print}", t,
66
- t["inequality"] ? @inequality_lbl : @formula_lbl,
66
+ t["inequality"] ? @labels["inequality"] : @labels["formula"],
67
67
  "formula", t["unnumbered"])
68
68
  end
69
69
  end
@@ -71,13 +71,13 @@ module IsoDoc
71
71
  def figure_anchor(t, sublabel, label)
72
72
  @anchors[t["id"]] = anchor_struct(
73
73
  (sublabel ? "#{label} #{sublabel}" : label),
74
- nil, @figure_lbl, "figure", t["unnumbered"])
74
+ nil, @labels["figure"], "figure", t["unnumbered"])
75
75
  sublabel && t["unnumbered"] != "true" and
76
76
  @anchors[t["id"]][:label] = sublabel
77
77
  end
78
78
 
79
79
  def sequential_figure_names(clause)
80
- c = IsoDoc::Function::XrefGen::Counter.new
80
+ c = IsoDoc::XrefGen::Counter.new
81
81
  j = 0
82
82
  clause.xpath(ns(".//figure | .//sourcecode[not(ancestor::example)]")).
83
83
  each do |t|
@@ -89,7 +89,7 @@ module IsoDoc
89
89
  end
90
90
 
91
91
  def hierarchical_figure_names(clause, num)
92
- c = IsoDoc::Function::XrefGen::Counter.new
92
+ c = IsoDoc::XrefGen::Counter.new
93
93
  j = 0
94
94
  clause.xpath(ns(".//figure | .//sourcecode[not(ancestor::example)]")).
95
95
  each do |t|
@@ -100,6 +100,12 @@ module IsoDoc
100
100
  figure_anchor(t, sublabel, label)
101
101
  end
102
102
  end
103
+
104
+ def reference_names(ref)
105
+ super
106
+ @anchors[ref["id"]] = { xref: @anchors[ref["id"]][:xref].
107
+ sub(/ \(All Parts\)/i, "") }
108
+ end
103
109
  end
104
110
  end
105
111
  end
@@ -5,6 +5,7 @@ require_relative "isodoc/iso/html_convert"
5
5
  require_relative "isodoc/iso/word_convert"
6
6
  require_relative "isodoc/iso/pdf_convert"
7
7
  require_relative "isodoc/iso/sts_convert"
8
+ require_relative "isodoc/iso/presentation_xml_convert"
8
9
  require "asciidoctor/extensions"
9
10
 
10
11
  if defined? Metanorma
@@ -33,22 +33,25 @@ module Metanorma
33
33
  "Metanorma::ISO #{Metanorma::ISO::VERSION}"
34
34
  end
35
35
 
36
- def input_to_isodoc(file, filename)
37
- Metanorma::Input::Asciidoc.new.process(file, filename, @asciidoctor_backend)
36
+ def use_presentation_xml(ext)
37
+ return true if ext == :html_alt
38
+ super
38
39
  end
39
40
 
40
- def output(isodoc_node, outname, format, options={})
41
+ def output(isodoc_node, inname, outname, format, options={})
41
42
  case format
42
43
  when :html
43
- IsoDoc::Iso::HtmlConvert.new(options).convert(outname, isodoc_node)
44
+ IsoDoc::Iso::HtmlConvert.new(options).convert(inname, isodoc_node, nil, outname)
44
45
  when :html_alt
45
- IsoDoc::Iso::HtmlConvert.new(options.merge(alt: true)).convert(outname, isodoc_node)
46
+ IsoDoc::Iso::HtmlConvert.new(options.merge(alt: true)).convert(inname, isodoc_node, nil, outname)
46
47
  when :doc
47
- IsoDoc::Iso::WordConvert.new(options).convert(outname, isodoc_node)
48
+ IsoDoc::Iso::WordConvert.new(options).convert(inname, isodoc_node, nil, outname)
48
49
  when :pdf
49
- IsoDoc::Iso::PdfConvert.new(options).convert(outname, isodoc_node)
50
+ IsoDoc::Iso::PdfConvert.new(options).convert(inname, isodoc_node, nil, outname)
50
51
  when :sts
51
- IsoDoc::Iso::StsConvert.new(options).convert(outname, isodoc_node)
52
+ IsoDoc::Iso::StsConvert.new(options).convert(inname, isodoc_node, nil, outname)
53
+ when :presentation
54
+ IsoDoc::Iso::PresentationXMLConvert.new(options).convert(inname, isodoc_node, nil, outname)
52
55
  else
53
56
  super
54
57
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.3.27".freeze
3
+ VERSION = "1.4.3".freeze
4
4
  end
5
5
  end
@@ -30,17 +30,18 @@ Gem::Specification.new do |spec|
30
30
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
31
31
 
32
32
  spec.add_dependency "ruby-jing"
33
- spec.add_dependency "isodoc", "~> 1.0.0"
33
+ spec.add_dependency "isodoc", "~> 1.1.0"
34
34
  spec.add_dependency "metanorma-standoc", "~> 1.4.0"
35
35
  spec.add_dependency "tokenizer", "~> 0.3.0"
36
36
  spec.add_dependency "twitter_cldr"
37
37
  spec.add_dependency "mn2sts", "~> 1.2.0"
38
38
 
39
39
  spec.add_development_dependency "byebug"
40
+ spec.add_development_dependency "sassc", "2.4.0"
40
41
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
41
42
  spec.add_development_dependency "guard", "~> 2.14"
42
43
  spec.add_development_dependency "guard-rspec", "~> 4.7"
43
- spec.add_development_dependency "rake", "~> 12.0"
44
+ spec.add_development_dependency "rake" #, "~> 12.0"
44
45
  spec.add_development_dependency "rspec", "~> 3.6"
45
46
  spec.add_development_dependency "rubocop", "= 0.54.0"
46
47
  spec.add_development_dependency "simplecov", "~> 0.15"
@@ -547,7 +547,7 @@ RSpec.describe Asciidoctor::ISO do
547
547
  INPUT
548
548
  #{BLANK_HDR}
549
549
  <sections><formula id="_">
550
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi><mtext>or</mtext><mi>μ</mi><mi>l</mi><mi>a</mi></math></stem>
550
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi><mi>or</mi><mi>μ</mi><mi>l</mi><mi>a</mi></math></stem>
551
551
  <dl id="_">
552
552
  <dt>a</dt>
553
553
  <dd>
@@ -150,7 +150,7 @@ RSpec.describe Asciidoctor::ISO do
150
150
  <tr>
151
151
  <th rowspan="2" align="left">Defect</th>
152
152
  <th colspan="4" align="center">Maximum permissible mass fraction of defects in husked rice<br/>
153
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>w</mi><mi>max</mi></msub></math></stem></th>
153
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>w</mi><mo>max</mo></msub></math></stem></th>
154
154
  </tr>
155
155
  <tr>
156
156
  <th align="left">in husked rice</th>
@@ -160,7 +160,7 @@ RSpec.describe IsoDoc do
160
160
  <p id="ISO3696" class="Biblio">[3]&#160; ISO 3696, <i>Water for analytical laboratory use</i></p>
161
161
  <p id="ref10" class="Biblio">[10]&#160; <span style="font-variant:small-caps;">Standard No I.C.C 167</span>. <i>Determination of the protein content in cereal and cereal products for food and animal feeding stuffs according to the Dumas combustion method</i> (see <a href="http://www.icc.or.at">http://www.icc.or.at</a>)</p>
162
162
  <p id="ref11" class="Biblio">[5]&#160; IETF RFC 10, <i>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</i></p>
163
- <p id="ref12" class="Biblio">[6]&#160; Citn, IETF RFC 20, CitationWorks. 2019. <i>How to cite a reference</i>.</p>
163
+ <p id="ref12" class="Biblio">Citn&#160; IETF RFC 20, CitationWorks. 2019. <i>How to cite a reference</i>.</p>
164
164
  </div>
165
165
  <aside id="fn:1" class="footnote">
166
166
  <p>Under preparation. (Stage at the time of publication ISO/DIS 16634)</p>
@@ -15,7 +15,7 @@ RSpec.describe Metanorma::Iso::Processor do
15
15
 
16
16
  it "registers output formats against metanorma" do
17
17
  expect(processor.output_formats.sort.to_s).to be_equivalent_to <<~"OUTPUT"
18
- [[:doc, "doc"], [:html, "html"], [:html_alt, "alt.html"], [:pdf, "pdf"], [:rxl, "rxl"], [:sts, "sts.xml"], [:xml, "xml"]]
18
+ [[:doc, "doc"], [:html, "html"], [:html_alt, "alt.html"], [:pdf, "pdf"], [:presentation, "presentation.xml"], [:rxl, "rxl"], [:sts, "sts.xml"], [:xml, "xml"]]
19
19
  OUTPUT
20
20
  end
21
21
 
@@ -35,7 +35,7 @@ RSpec.describe Metanorma::Iso::Processor do
35
35
 
36
36
  it "generates HTML from IsoDoc XML" do
37
37
  FileUtils.rm_f "test.xml"
38
- processor.output(<<~"INPUT", "test.html", :html)
38
+ processor.output(<<~"INPUT", "test.xml", "test.html", :html)
39
39
  <iso-standard xmlns="http://riboseinc.com/isoxml">
40
40
  <sections>
41
41
  <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iso
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.27
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-19 00:00:00.000000000 Z
11
+ date: 2020-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-jing
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.0
33
+ version: 1.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.0
40
+ version: 1.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: metanorma-standoc
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: sassc
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 2.4.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 2.4.0
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: equivalent-xml
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -154,16 +168,16 @@ dependencies:
154
168
  name: rake
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - "~>"
171
+ - - ">="
158
172
  - !ruby/object:Gem::Version
159
- version: '12.0'
173
+ version: '0'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - "~>"
178
+ - - ">="
165
179
  - !ruby/object:Gem::Version
166
- version: '12.0'
180
+ version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: rspec
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -295,19 +309,25 @@ files:
295
309
  - lib/isodoc/iso/html/header.html
296
310
  - lib/isodoc/iso/html/html_iso_intro.html
297
311
  - lib/isodoc/iso/html/html_iso_titlepage.html
312
+ - lib/isodoc/iso/html/htmlstyle.css
298
313
  - lib/isodoc/iso/html/htmlstyle.scss
314
+ - lib/isodoc/iso/html/isodoc.css
299
315
  - lib/isodoc/iso/html/isodoc.scss
300
316
  - lib/isodoc/iso/html/scripts.html
317
+ - lib/isodoc/iso/html/style-human.css
301
318
  - lib/isodoc/iso/html/style-human.scss
319
+ - lib/isodoc/iso/html/style-iso.css
302
320
  - lib/isodoc/iso/html/style-iso.scss
303
321
  - lib/isodoc/iso/html/word_iso_intro.html
304
322
  - lib/isodoc/iso/html/word_iso_titlepage.html
323
+ - lib/isodoc/iso/html/wordstyle.css
305
324
  - lib/isodoc/iso/html/wordstyle.scss
306
325
  - lib/isodoc/iso/html_convert.rb
307
326
  - lib/isodoc/iso/iso.amendment.xsl
308
327
  - lib/isodoc/iso/iso.international-standard.xsl
309
328
  - lib/isodoc/iso/metadata.rb
310
329
  - lib/isodoc/iso/pdf_convert.rb
330
+ - lib/isodoc/iso/presentation_xml_convert.rb
311
331
  - lib/isodoc/iso/sections.rb
312
332
  - lib/isodoc/iso/sts_convert.rb
313
333
  - lib/isodoc/iso/word_convert.rb
@@ -375,7 +395,7 @@ homepage: https://github.com/metanorma/metanorma-iso
375
395
  licenses:
376
396
  - BSD-2-Clause
377
397
  metadata: {}
378
- post_install_message:
398
+ post_install_message:
379
399
  rdoc_options: []
380
400
  require_paths:
381
401
  - lib
@@ -390,9 +410,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
410
  - !ruby/object:Gem::Version
391
411
  version: '0'
392
412
  requirements: []
393
- rubyforge_project:
394
- rubygems_version: 2.7.6
395
- signing_key:
413
+ rubygems_version: 3.0.3
414
+ signing_key:
396
415
  specification_version: 4
397
416
  summary: metanorma-iso lets you write ISO standards in AsciiDoc.
398
417
  test_files: []