metanorma-iso 2.5.1 → 2.5.3

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: 1ab1010b198fb64456b71a06834ab3c1207417c16c765f6c5905cd18ff5a0dc8
4
- data.tar.gz: c92bdd8228ce983eed939cb2b38b60b7ec631d37b64ea390e26e870700f7065b
3
+ metadata.gz: 30229a0ddab3a83837d4f79b713bd7fa693798e810afeeb1fcdd85169aef9921
4
+ data.tar.gz: e09fbd0e70fbbe624ab4a82fb741715842e18f9a01d9e24fea986507a6b1710a
5
5
  SHA512:
6
- metadata.gz: de58d8b4fa0e039e153cd5a9d9637adaedf45e674cb59c113e2feb4eaa1444ca7d98badd5ac080687ec66ee19305e8b8677ea855c24b1df91ddae0c12464180a
7
- data.tar.gz: 48d297855239fec0dd80dbb6db404bf4b8c2a79ba49051d275f56f3dff579bda479f30ba71ba1931170088c7e3c0014878b92af7d91177151f625cdf359e7ef9
6
+ metadata.gz: d34635dae39c8970d56bd3fb09c8366875c48ab705a3848ba52f3d61fb7b465788aa357ee5a31efd3a4088936fc1d46cfc3272892a8b1737ee7f0dcbbe0e2f9e
7
+ data.tar.gz: 1c72a98e61841ba18ec4f63f48edf6d1f8554ebd8d88b3d5f1a7d96c907c2c87fe5e576a81ae6b3ea589cbe76ab383abe76b3e5a74052d18ef5307f7bc36693a
@@ -125,8 +125,9 @@ module IsoDoc
125
125
  end
126
126
 
127
127
  def figure_name_parse(_node, div, name)
128
+ name.nil? and return
128
129
  div.p class: "FigureTitle", style: "text-align:center;" do |p|
129
- name&.children&.each { |n| parse(n, p) }
130
+ name.children.each { |n| parse(n, p) }
130
131
  end
131
132
  end
132
133
 
@@ -8,7 +8,7 @@ module IsoDoc
8
8
  def index(xml)
9
9
  if xml.at(ns("//index"))
10
10
  i = xml.at(ns("//indexsect")) ||
11
- xml.root.add_child("<indexsect #{add_id}><title>#{@i18n.index}"\
11
+ xml.root.add_child("<indexsect #{add_id}><title>#{@i18n.index}" \
12
12
  "</title></indexsect>").first
13
13
  index = sort_indexterms(xml.xpath(ns("//index")),
14
14
  xml.xpath(ns("//index-xref[@also = 'false']")),
@@ -147,7 +147,7 @@ module IsoDoc
147
147
  index2bookmark(t)
148
148
  term_hash_init(v, term, term2, term3, :xref)
149
149
  to = t["to"] ? "to='#{t['to']}' " : ""
150
- v[term][term2][term3][:xref] << "<xref target='#{t['id']}' "\
150
+ v[term][term2][term3][:xref] << "<xref target='#{t['id']}' " \
151
151
  "#{to}pagenumber='true'/>"
152
152
  end
153
153
  end
@@ -21,8 +21,7 @@ module IsoDoc
21
21
  end
22
22
 
23
23
  def amd?(docxml)
24
- doctype = docxml.at(ns("//bibdata/ext/doctype"))&.text
25
- %w(amendment technical-corrigendum).include? doctype
24
+ %w(amendment technical-corrigendum).include? @doctype
26
25
  end
27
26
 
28
27
  def clausedelim
@@ -14,7 +14,7 @@ module IsoDoc
14
14
  end
15
15
 
16
16
  def pdf_stylesheet(docxml)
17
- case doctype = docxml&.at(ns("//bibdata/ext/doctype"))&.text
17
+ case @doctype
18
18
  when "amendment", "technical-corrigendum" then "iso.amendment.xsl"
19
19
  else
20
20
  "iso.international-standard.xsl"
@@ -158,8 +158,7 @@ module IsoDoc
158
158
  end
159
159
 
160
160
  def toc_title(docxml)
161
- doctype = docxml.at(ns("//bibdata/ext/doctype"))&.text
162
- %w(amendment technical-corrigendum).include?(doctype) and return
161
+ %w(amendment technical-corrigendum).include?(@doctype) and return
163
162
  super
164
163
  end
165
164
 
@@ -185,8 +185,7 @@ module IsoDoc
185
185
  end
186
186
 
187
187
  def figure_name_parse(node, div, name)
188
- return if name.nil?
189
-
188
+ name.nil? and return
190
189
  div.p **figure_name_attrs(node) do |p|
191
190
  name.children.each { |n| parse(n, p) }
192
191
  end
@@ -205,8 +204,7 @@ module IsoDoc
205
204
  end
206
205
 
207
206
  def annex_name(_annex, name, div)
208
- return if name.nil?
209
-
207
+ name.nil? and return
210
208
  name&.at(ns("./strong"))&.remove # supplied by CSS list numbering
211
209
  div.h1 class: "Annex" do |t|
212
210
  annex_name1(name, t)
@@ -5,6 +5,7 @@ require "pathname"
5
5
  require "open-uri"
6
6
  require "isodoc"
7
7
  require "fileutils"
8
+ require_relative "processor"
8
9
 
9
10
  module Metanorma
10
11
  module ISO
@@ -47,7 +48,9 @@ module Metanorma
47
48
  end
48
49
 
49
50
  def presentation_xml_converter(node)
50
- IsoDoc::Iso::PresentationXMLConvert.new(html_extract_attributes(node))
51
+ IsoDoc::Iso::PresentationXMLConvert
52
+ .new(html_extract_attributes(node)
53
+ .merge(output_formats: ::Metanorma::Iso::Processor.new.output_formats))
51
54
  end
52
55
 
53
56
  def init(node)
@@ -346,6 +346,8 @@
346
346
  <ref name="keyword"/>
347
347
  <ref name="xref"/>
348
348
  <ref name="hyperlink"/>
349
+ <ref name="index"/>
350
+ <ref name="index-xref"/>
349
351
  </choice>
350
352
  </oneOrMore>
351
353
  </element>
@@ -623,6 +625,8 @@
623
625
  <ref name="eref"/>
624
626
  <ref name="xref"/>
625
627
  <ref name="hyperlink"/>
628
+ <ref name="index"/>
629
+ <ref name="index-xref"/>
626
630
  </choice>
627
631
  </zeroOrMore>
628
632
  </element>
@@ -636,6 +640,8 @@
636
640
  <ref name="eref"/>
637
641
  <ref name="xref"/>
638
642
  <ref name="hyperlink"/>
643
+ <ref name="index"/>
644
+ <ref name="index-xref"/>
639
645
  </choice>
640
646
  </zeroOrMore>
641
647
  </element>
@@ -648,6 +654,8 @@
648
654
  <ref name="eref"/>
649
655
  <ref name="xref"/>
650
656
  <ref name="hyperlink"/>
657
+ <ref name="index"/>
658
+ <ref name="index-xref"/>
651
659
  </choice>
652
660
  </zeroOrMore>
653
661
  </element>
@@ -655,7 +663,11 @@
655
663
  <define name="keyword">
656
664
  <element name="keyword">
657
665
  <zeroOrMore>
658
- <ref name="PureTextElement"/>
666
+ <choice>
667
+ <ref name="PureTextElement"/>
668
+ <ref name="index"/>
669
+ <ref name="index-xref"/>
670
+ </choice>
659
671
  </zeroOrMore>
660
672
  </element>
661
673
  </define>
@@ -676,7 +688,11 @@
676
688
  <define name="strike">
677
689
  <element name="strike">
678
690
  <zeroOrMore>
679
- <ref name="PureTextElement"/>
691
+ <choice>
692
+ <ref name="PureTextElement"/>
693
+ <ref name="index"/>
694
+ <ref name="index-xref"/>
695
+ </choice>
680
696
  </zeroOrMore>
681
697
  </element>
682
698
  </define>
@@ -1283,7 +1283,7 @@
1283
1283
  <value>mergedInto</value>
1284
1284
  <value>splits</value>
1285
1285
  <value>splitInto</value>
1286
- <value>instance</value>
1286
+ <value>instanceOf</value>
1287
1287
  <value>hasInstance</value>
1288
1288
  <value>exemplarOf</value>
1289
1289
  <value>hasExemplar</value>
@@ -1,6 +1,3 @@
1
- require "date"
2
- require "htmlentities"
3
-
4
1
  module Metanorma
5
2
  module ISO
6
3
  class Converter < Standoc::Converter
@@ -37,7 +34,6 @@ module Metanorma
37
34
  xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']" \
38
35
  "/organization").each_with_object([]) do |x, prefix|
39
36
  x1 = x.at("abbreviation")&.text || x.at("name")&.text
40
- # (x1 == "ISO" and prefix.unshift("ISO")) or prefix << x1
41
37
  prefix << x1
42
38
  end
43
39
  end
@@ -76,9 +72,7 @@ module Metanorma
76
72
  end
77
73
 
78
74
  def sort_biblio(bib)
79
- bib.sort do |a, b|
80
- sort_biblio_key(a) <=> sort_biblio_key(b)
81
- end
75
+ bib.sort { |a, b| sort_biblio_key(a) <=> sort_biblio_key(b) }
82
76
  end
83
77
 
84
78
  # sort by: doc class (ISO, IEC, other standard (not DOI &c), other
@@ -90,15 +84,15 @@ module Metanorma
90
84
  # then title
91
85
  def sort_biblio_key(bib)
92
86
  pubclass = pub_class(bib)
93
- num = bib&.at("./docnumber")&.text
94
- id = bib&.at("./docidentifier[@primary]") ||
95
- bib&.at("./docidentifier[not(#{skip_docid} or @type = 'metanorma')]")
96
- metaid = bib&.at("./docidentifier[@type = 'metanorma']")&.text
87
+ num = bib.at("./docnumber")&.text
88
+ id = bib.at("./docidentifier[@primary]") ||
89
+ bib.at("./docidentifier[not(#{skip_docid} or @type = 'metanorma')]")
90
+ metaid = bib.at("./docidentifier[@type = 'metanorma']")&.text
97
91
  abbrid = metaid unless /^\[\d+\]$/.match?(metaid)
98
92
  /\d-(?<partid>\d+)/ =~ id&.text
99
93
  type = id["type"] if id
100
- title = bib&.at("./title[@type = 'main']")&.text ||
101
- bib&.at("./title")&.text || bib&.at("./formattedref")&.text
94
+ title = bib.at("./title[@type = 'main']")&.text ||
95
+ bib.at("./title")&.text || bib&.at("./formattedref")&.text
102
96
  "#{pubclass} :: #{type} :: " \
103
97
  "#{num.nil? ? abbrid : sprintf('%09d', num.to_i)} :: " \
104
98
  "#{sprintf('%09d', partid.to_i)} :: #{id&.text} :: #{title}"
@@ -241,6 +235,14 @@ module Metanorma
241
235
  end
242
236
  end
243
237
  end
238
+
239
+ def termdef_boilerplate_insert_location(xmldoc)
240
+ f = xmldoc.at(self.class::TERM_CLAUSE)
241
+ root = xmldoc.at("//sections/terms | //sections/clause[.//terms]")
242
+ !f || !root and return f || root
243
+ f.at("./preceding-sibling::clause") and return root
244
+ f
245
+ end
244
246
  end
245
247
  end
246
248
  end
@@ -84,7 +84,8 @@ module Metanorma
84
84
  end
85
85
 
86
86
  def iso_id_year(node)
87
- node.attr("copyright-year") || node.attr("updated-date")
87
+ (node.attr("copyright-year") || node.attr("updated-date") ||
88
+ node.attr("published-date"))
88
89
  &.sub(/-.*$/, "") || Date.today.year
89
90
  end
90
91
 
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.2.4 -->
20
+ <!-- VERSION v1.2.6 -->
21
21
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
@@ -485,6 +485,8 @@
485
485
  <choice>
486
486
  <text/>
487
487
  <ref name="callout"/>
488
+ <ref name="xref"/>
489
+ <ref name="eref"/>
488
490
  </choice>
489
491
  </oneOrMore>
490
492
  <zeroOrMore>
@@ -865,6 +867,7 @@
865
867
  <ref name="PureTextElement"/>
866
868
  <ref name="stem"/>
867
869
  <ref name="index"/>
870
+ <ref name="index-xref"/>
868
871
  <ref name="eref"/>
869
872
  <ref name="erefstack"/>
870
873
  <ref name="xref"/>
@@ -880,6 +883,7 @@
880
883
  <ref name="PureTextElement"/>
881
884
  <ref name="stem"/>
882
885
  <ref name="index"/>
886
+ <ref name="index-xref"/>
883
887
  <ref name="eref"/>
884
888
  <ref name="erefstack"/>
885
889
  <ref name="xref"/>
@@ -894,6 +898,7 @@
894
898
  <choice>
895
899
  <ref name="PureTextElement"/>
896
900
  <ref name="index"/>
901
+ <ref name="index-xref"/>
897
902
  <ref name="eref"/>
898
903
  <ref name="erefstack"/>
899
904
  <ref name="xref"/>
@@ -908,6 +913,7 @@
908
913
  <choice>
909
914
  <ref name="PureTextElement"/>
910
915
  <ref name="index"/>
916
+ <ref name="index-xref"/>
911
917
  </choice>
912
918
  </zeroOrMore>
913
919
  </element>
@@ -918,6 +924,7 @@
918
924
  <choice>
919
925
  <ref name="PureTextElement"/>
920
926
  <ref name="index"/>
927
+ <ref name="index-xref"/>
921
928
  </choice>
922
929
  </zeroOrMore>
923
930
  </element>
@@ -928,6 +935,7 @@
928
935
  <choice>
929
936
  <ref name="PureTextElement"/>
930
937
  <ref name="index"/>
938
+ <ref name="index-xref"/>
931
939
  </choice>
932
940
  </zeroOrMore>
933
941
  </element>
@@ -938,6 +946,7 @@
938
946
  <choice>
939
947
  <ref name="PureTextElement"/>
940
948
  <ref name="index"/>
949
+ <ref name="index-xref"/>
941
950
  </choice>
942
951
  </zeroOrMore>
943
952
  </element>
@@ -1004,6 +1013,14 @@
1004
1013
  </oneOrMore>
1005
1014
  </element>
1006
1015
  </define>
1016
+ <define name="BasicBlock" combine="choice">
1017
+ <ref name="columnbreak"/>
1018
+ </define>
1019
+ <define name="columnbreak">
1020
+ <element name="columnbreak">
1021
+ <empty/>
1022
+ </element>
1023
+ </define>
1007
1024
  <define name="MultilingualRenderingType">
1008
1025
  <choice>
1009
1026
  <value>common</value>
@@ -1047,6 +1064,8 @@
1047
1064
  <ref name="keyword"/>
1048
1065
  <ref name="xref"/>
1049
1066
  <ref name="hyperlink"/>
1067
+ <ref name="index"/>
1068
+ <ref name="index-xref"/>
1050
1069
  </choice>
1051
1070
  </element>
1052
1071
  </define>
@@ -1060,6 +1079,8 @@
1060
1079
  <ref name="keyword"/>
1061
1080
  <ref name="xref"/>
1062
1081
  <ref name="hyperlink"/>
1082
+ <ref name="index"/>
1083
+ <ref name="index-xref"/>
1063
1084
  </choice>
1064
1085
  </element>
1065
1086
  </define>
@@ -1126,6 +1147,8 @@
1126
1147
  <choice>
1127
1148
  <ref name="PureTextElement"/>
1128
1149
  <ref name="stem"/>
1150
+ <ref name="index"/>
1151
+ <ref name="index-xref"/>
1129
1152
  </choice>
1130
1153
  </zeroOrMore>
1131
1154
  </element>
@@ -1136,6 +1159,8 @@
1136
1159
  <choice>
1137
1160
  <ref name="PureTextElement"/>
1138
1161
  <ref name="stem"/>
1162
+ <ref name="index"/>
1163
+ <ref name="index-xref"/>
1139
1164
  </choice>
1140
1165
  </zeroOrMore>
1141
1166
  </element>
@@ -43,6 +43,7 @@ module Metanorma
43
43
  end
44
44
 
45
45
  def output(isodoc_node, inname, outname, format, options={})
46
+ options_preprocess(options)
46
47
  case format
47
48
  when :html
48
49
  IsoDoc::Iso::HtmlConvert.new(options)
@@ -1,10 +1,10 @@
1
1
  require "metanorma-standoc"
2
- require_relative "./validate_style"
3
- require_relative "./validate_requirements"
4
- require_relative "./validate_section"
5
- require_relative "./validate_title"
6
- require_relative "./validate_image"
7
- require_relative "./validate_list"
2
+ require_relative "validate_style"
3
+ require_relative "validate_requirements"
4
+ require_relative "validate_section"
5
+ require_relative "validate_title"
6
+ require_relative "validate_image"
7
+ require_relative "validate_list"
8
8
  require "nokogiri"
9
9
  require "jing"
10
10
  require "iev"
@@ -116,13 +116,12 @@ module Metanorma
116
116
  end
117
117
  end
118
118
 
119
- def doctype_validate(xmldoc)
120
- doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
119
+ def doctype_validate(_xmldoc)
121
120
  %w(international-standard technical-specification technical-report
122
121
  publicly-available-specification international-workshop-agreement
123
- guide amendment technical-corrigendum).include? doctype or
122
+ guide amendment technical-corrigendum).include? @doctype or
124
123
  @log.add("Document Attributes", nil,
125
- "#{doctype} is not a recognised document type")
124
+ "#{@doctype} is not a recognised document type")
126
125
  end
127
126
 
128
127
  def script_validate(xmldoc)
@@ -173,8 +172,7 @@ module Metanorma
173
172
 
174
173
  def validate(doc)
175
174
  content_validate(doc)
176
- doctype = doc&.at("//bibdata/ext/doctype")&.text
177
- schema = case doctype
175
+ schema = case @doctype
178
176
  when "amendment", "technical-corrigendum" # @amd
179
177
  "isostandard-amd.rng"
180
178
  else
@@ -4,8 +4,7 @@ module Metanorma
4
4
  module ISO
5
5
  class Converter < Standoc::Converter
6
6
  def section_validate(doc)
7
- doctype = doc.at("//bibdata/ext/doctype")&.text
8
- unless %w(amendment technical-corrigendum).include? doctype
7
+ unless %w(amendment technical-corrigendum).include? @doctype
9
8
  foreword_validate(doc.root)
10
9
  normref_validate(doc.root)
11
10
  symbols_validate(doc.root)
@@ -181,7 +180,7 @@ module Metanorma
181
180
  end
182
181
 
183
182
  def tech_report_style(root)
184
- root.at("//bibdata/ext/doctype")&.text == "technical-report" or return
183
+ @doctype == "technical-report" or return
185
184
  root.xpath("//sections/clause[not(@type = 'scope')] | //annex")
186
185
  .each do |s|
187
186
  r = requirement_check(extract_text(s)) and
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "2.5.1".freeze
3
+ VERSION = "2.5.3".freeze
4
4
  end
5
5
  end
@@ -32,9 +32,9 @@ Gem::Specification.new do |spec|
32
32
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
33
33
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
34
34
 
35
- spec.add_dependency "metanorma-standoc", "~> 2.5.1"
35
+ spec.add_dependency "metanorma-standoc", "~> 2.6.0"
36
36
  spec.add_dependency "mnconvert", "~> 1.14"
37
- spec.add_dependency "pubid-iso", "~> 0.5.0"
37
+ spec.add_dependency "pubid-iso", "~> 0.6.0"
38
38
  spec.add_dependency "ruby-jing"
39
39
  spec.add_dependency "tokenizer", "~> 0.3.0"
40
40
  spec.add_dependency "twitter_cldr"
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: 2.5.1
4
+ version: 2.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-28 00:00:00.000000000 Z
11
+ date: 2023-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.5.1
19
+ version: 2.6.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.5.1
26
+ version: 2.6.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mnconvert
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.5.0
47
+ version: 0.6.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.5.0
54
+ version: 0.6.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: ruby-jing
57
57
  requirement: !ruby/object:Gem::Requirement