metanorma-iso 2.5.2 → 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: 66e717f4c41d2cda0aa92bc42985e6f12d420e9bcdb2b0410fe085bca689a549
4
- data.tar.gz: 33d5e0b9f67c9c76afcbd0feff13a81e21919c3cb48dc56524bfa34203725ae1
3
+ metadata.gz: 30229a0ddab3a83837d4f79b713bd7fa693798e810afeeb1fcdd85169aef9921
4
+ data.tar.gz: e09fbd0e70fbbe624ab4a82fb741715842e18f9a01d9e24fea986507a6b1710a
5
5
  SHA512:
6
- metadata.gz: a5249f0f6147e52c1ef81b7c32a3a431a74478a7727e8bde1842e411f20d1e56311fb41755828f93dc626e94ea14b5d661a5e4fbd6a17c41619131fe1a4d60eb
7
- data.tar.gz: a97203b198a7e9baa2e28f5597f53c9cd60ab79cc0de989f5e3dcc7671d5199e9047abdf0eb0b02401d05d48317dbae45781475642275b4c15fa8a6aaf0f446d
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
@@ -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,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "2.5.2".freeze
3
+ VERSION = "2.5.3".freeze
4
4
  end
5
5
  end
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.2
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-09-11 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