metanorma-iso 1.3.27 → 1.4.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.
@@ -20,19 +20,6 @@ module IsoDoc
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
@@ -37,18 +37,25 @@ module Metanorma
37
37
  Metanorma::Input::Asciidoc.new.process(file, filename, @asciidoctor_backend)
38
38
  end
39
39
 
40
- def output(isodoc_node, outname, format, options={})
40
+ def use_presentation_xml(ext)
41
+ return true if ext == :html_alt
42
+ super
43
+ end
44
+
45
+ def output(isodoc_node, inname, outname, format, options={})
41
46
  case format
42
47
  when :html
43
- IsoDoc::Iso::HtmlConvert.new(options).convert(outname, isodoc_node)
48
+ IsoDoc::Iso::HtmlConvert.new(options).convert(inname, isodoc_node, nil, outname)
44
49
  when :html_alt
45
- IsoDoc::Iso::HtmlConvert.new(options.merge(alt: true)).convert(outname, isodoc_node)
50
+ IsoDoc::Iso::HtmlConvert.new(options.merge(alt: true)).convert(inname, isodoc_node, nil, outname)
46
51
  when :doc
47
- IsoDoc::Iso::WordConvert.new(options).convert(outname, isodoc_node)
52
+ IsoDoc::Iso::WordConvert.new(options).convert(inname, isodoc_node, nil, outname)
48
53
  when :pdf
49
- IsoDoc::Iso::PdfConvert.new(options).convert(outname, isodoc_node)
54
+ IsoDoc::Iso::PdfConvert.new(options).convert(inname, isodoc_node, nil, outname)
50
55
  when :sts
51
- IsoDoc::Iso::StsConvert.new(options).convert(outname, isodoc_node)
56
+ IsoDoc::Iso::StsConvert.new(options).convert(inname, isodoc_node, nil, outname)
57
+ when :presentation
58
+ IsoDoc::Iso::PresentationXMLConvert.new(options).convert(inname, isodoc_node, nil, outname)
52
59
  else
53
60
  super
54
61
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.3.27".freeze
3
+ VERSION = "1.4.0".freeze
4
4
  end
5
5
  end
@@ -30,7 +30,7 @@ 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"
@@ -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>
@@ -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.0
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-06-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
@@ -308,6 +308,7 @@ files:
308
308
  - lib/isodoc/iso/iso.international-standard.xsl
309
309
  - lib/isodoc/iso/metadata.rb
310
310
  - lib/isodoc/iso/pdf_convert.rb
311
+ - lib/isodoc/iso/presentation_xml_convert.rb
311
312
  - lib/isodoc/iso/sections.rb
312
313
  - lib/isodoc/iso/sts_convert.rb
313
314
  - lib/isodoc/iso/word_convert.rb
@@ -375,7 +376,7 @@ homepage: https://github.com/metanorma/metanorma-iso
375
376
  licenses:
376
377
  - BSD-2-Clause
377
378
  metadata: {}
378
- post_install_message:
379
+ post_install_message:
379
380
  rdoc_options: []
380
381
  require_paths:
381
382
  - lib
@@ -390,9 +391,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
391
  - !ruby/object:Gem::Version
391
392
  version: '0'
392
393
  requirements: []
393
- rubyforge_project:
394
- rubygems_version: 2.7.6
395
- signing_key:
394
+ rubygems_version: 3.0.3
395
+ signing_key:
396
396
  specification_version: 4
397
397
  summary: metanorma-iso lets you write ISO standards in AsciiDoc.
398
398
  test_files: []