metanorma-standoc 2.10.5 → 3.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b53e3a5bc3494dc39d49d3d0da67e8055f2fb0ef8c4c68553e04d766d6af780
4
- data.tar.gz: 40883de9d883c3df6ab9807cb1d01410946638ecbc592d01bfcf826d98ca4749
3
+ metadata.gz: 35f94b1c019edeb4422907e08dea706e5aa5f1ebfda48b2c6f0d518b66beec9c
4
+ data.tar.gz: eb5f4dc2f20109119d5d562fc08ce9e425fe4c0b0353ed8283a5b8887bc293ef
5
5
  SHA512:
6
- metadata.gz: 343fc359bdf0fb657593c3b1b004c733f873139c222a02a2e983c5cc76e536e995625f2d6df90dec9f9d39c3046394f33f521a442d7ee1c2b282c56a1ca0520b
7
- data.tar.gz: 687d5cd989a9259b1ec011099742bef06a10f5cdfe993ebb07940baeb795be26d00acec6e6a6f2883e32ce4053ef1e2138164b69891b9909b0a1929da121359d
6
+ metadata.gz: 197988a7da6707a851cd24b584436825c3130e74ce2b792ad24cb8a86d0fc92c168f9eb0b494798d4119c94e0a915a5537c91d9a4d2de1880873fecbc64fc102
7
+ data.tar.gz: e7688aaecf8a901914588538d39b52d21bd7b871692c0bf889ab3147f325cd6586fee88210a1aaba50fef05c70d5a37bbb7d5a867013000c7e8eea3a3904b009
@@ -14,18 +14,20 @@ require "mn-requirements"
14
14
  module Metanorma
15
15
  module Standoc
16
16
  module Base
17
- XML_ROOT_TAG = "standard-document".freeze
18
- XML_NAMESPACE = "https://www.metanorma.org/ns/standoc".freeze
17
+ #XML_ROOT_TAG = "standard-document".freeze
18
+ #XML_NAMESPACE = "https://www.metanorma.org/ns/standoc".freeze
19
19
  FONTS_MANIFEST = "fonts-manifest".freeze
20
20
 
21
21
  attr_accessor :log
22
22
 
23
23
  def xml_root_tag
24
- self.class::XML_ROOT_TAG
24
+ #self.class::XML_ROOT_TAG
25
+ "metanorma"
25
26
  end
26
27
 
27
28
  def xml_namespace
28
- self.class::XML_NAMESPACE
29
+ #self.class::XML_NAMESPACE
30
+ "https://www.metanorma.org/ns/standoc"
29
31
  end
30
32
 
31
33
  def document(node)
@@ -87,7 +89,8 @@ module Metanorma
87
89
  def makexml1(node)
88
90
  result = ["<?xml version='1.0' encoding='UTF-8'?>",
89
91
  "<#{xml_root_tag} type='semantic' version='#{version}' " \
90
- "schema-version='#{schema_version}'>"]
92
+ "schema-version='#{schema_version}' " \
93
+ "flavor='#{processor.new.asciidoctor_backend}'>"]
91
94
  result << noko { |ixml| front node, ixml }
92
95
  result << noko { |ixml| middle node, ixml }
93
96
  result << "</#{xml_root_tag}>"
@@ -947,6 +947,8 @@ May be electronic (e.g. Twitter direct message, email) or voice (e.g. a remark m
947
947
  typically cited as "personal communication")</a:documentation>
948
948
  <value>conversation</value>
949
949
  <a:documentation>An exchange of messages between two or more persons. May be electronic (e.g. web chat) or voice (e.g. phone call)</a:documentation>
950
+ <value>collection</value>
951
+ <a:documentation>A compound resource consisting of other resources, which are themselves presupposed to have their type specified..</a:documentation>
950
952
  <value>misc</value>
951
953
  <a:documentation>Bibliographic type not adequately described in the foregoing</a:documentation>
952
954
  </choice>
@@ -132,7 +132,7 @@ module Metanorma
132
132
  bibdata = bibdata.at("./relation[@type = 'derivedFrom']/bibitem")
133
133
  ident = bibdata.at("./docidentifier[@primary = 'true']") ||
134
134
  bibdata.at("./docidentifier")
135
- xmldoc.xpath("//xref[@target = '#{d}'][normalize-space(text()) = '']")
135
+ xmldoc.xpath("//xref[@target = '#{d}'][normalize-space(.//text()) = '']")
136
136
  .each { |x| x << ident.text }
137
137
  end
138
138
  end
@@ -46,7 +46,7 @@ module Metanorma
46
46
  xmldoc.at("//metanorma-extension/semantic-metadata/" \
47
47
  "headless[text() = 'true']") and return nil
48
48
  x = xmldoc.dup
49
- x.root.add_namespace(nil, self.class::XML_NAMESPACE)
49
+ x.root.add_namespace(nil, xml_namespace)
50
50
  xml = Nokogiri::XML(x.to_xml)
51
51
  @isodoc ||= isodoc(@lang, @script, @locale)
52
52
  @isodoc.info(xml, nil)
@@ -56,7 +56,7 @@ module Metanorma
56
56
  elsif depth < entry[:depth]
57
57
  ret += "<li><ul>" * (entry[:depth] - depth)
58
58
  end
59
- ret + "<li><xref target='#{entry[:target]}'>#{entry[:text]}</xref></li>"
59
+ ret + "<li><xref target='#{entry[:target]}'><display-text>#{entry[:text]}</display-text></xref></li>"
60
60
  end
61
61
 
62
62
  def toc_cleanup_clause(xmldoc)
@@ -70,10 +70,10 @@ module Metanorma
70
70
  end
71
71
 
72
72
  def toc_cleanup_clause_entry(xmldoc, list)
73
- list.xpath(".//xref[not(text())]").each do |x|
73
+ list.xpath(".//xref[not(text())][not(display-text)]").each do |x|
74
74
  c1 = xmldoc.at("//*[@id = '#{x['target']}']")
75
75
  t = c1.at("./variant-title[@type = 'toc']") || c1.at("./title")
76
- x << t.dup.children
76
+ x << "<display-text>#{to_xml(t.dup.children)}</display-text>"
77
77
  end
78
78
  end
79
79
 
@@ -35,11 +35,12 @@ module Metanorma
35
35
  def extract_localities(elem)
36
36
  elem.children.empty? and return
37
37
  f = elem.children.first
38
- f.text? or return
38
+ f.text? or return xref_display_text(elem, elem.children.remove)
39
39
  head = f.remove.text
40
40
  tail = elem.children.remove
41
- extract_localities1(elem, head)
42
- tail and elem << tail
41
+ d = extract_localities1(elem, head)
42
+ tail and d << tail
43
+ d.children.empty? and d.remove
43
44
  end
44
45
 
45
46
  LOCALITY_REGEX_STR_TRIPLEDASH = <<~REGEXP.freeze
@@ -69,7 +70,13 @@ module Metanorma
69
70
  b = elem.add_child("<localityStack/>").first if m[:punct] == ";"
70
71
  end
71
72
  fill_in_eref_connectives(elem)
72
- elem.add_child(text) if text
73
+ xref_display_text(elem, text)
74
+ end
75
+
76
+ def xref_display_text(elem, text)
77
+ d = elem.add_child("<display-text></display-text>").first
78
+ d.add_child(text) if text
79
+ d
73
80
  end
74
81
 
75
82
  # clause=3;and!5 => clause=3;and!clause=5
@@ -135,6 +142,9 @@ module Metanorma
135
142
  end
136
143
 
137
144
  def eref_stack(xmldoc)
145
+ xmldoc.xpath("//eref/display-text[eref]").each do |e|
146
+ e.replace(e.children)
147
+ end
138
148
  xmldoc.xpath("//eref[eref]").each do |e|
139
149
  e.name = "erefstack"
140
150
  e.delete("bibitemid")
@@ -196,6 +206,11 @@ module Metanorma
196
206
  xmldoc.xpath("//xref//xref").each do |x|
197
207
  x.name = "location"
198
208
  end
209
+ xmldoc.xpath("//xref[not(./display-text)]").each do |x|
210
+ c = x.xpath("./*[not(self::locality or self::localityStack or self::location)] | ./text()")
211
+ c.empty? and next
212
+ xref_display_text(x, c.remove)
213
+ end
199
214
  end
200
215
 
201
216
  def xref_cleanup1(xmldoc)
@@ -23,10 +23,8 @@ module Metanorma
23
23
  Asciidoctor::Extensions.register do
24
24
  preprocessor Metanorma::Standoc::ResolveIncludePreprocessor
25
25
  preprocessor Metanorma::Plugin::Lutaml::LutamlPreprocessor
26
- preprocessor Metanorma::Plugin::Lutaml::LutamlUmlAttributesTablePreprocessor
27
26
  preprocessor Metanorma::Plugin::Lutaml::LutamlUmlDatamodelDescriptionPreprocessor
28
27
  preprocessor Metanorma::Plugin::Lutaml::LutamlEaXmiPreprocessor
29
- preprocessor Metanorma::Plugin::Lutaml::LutamlUmlClassPreprocessor
30
28
  inline_macro Metanorma::Plugin::Lutaml::LutamlFigureInlineMacro
31
29
  inline_macro Metanorma::Plugin::Lutaml::LutamlTableInlineMacro
32
30
  block_macro Metanorma::Plugin::Lutaml::LutamlDiagramBlockMacro
@@ -1,6 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <grammar ns="https://www.metanorma.org/ns/standoc" xmlns="http://relaxng.org/ns/structure/1.0">
3
- <!-- default namespace isostandard = "https://www.metanorma.com/ns/iso" -->
4
3
  <include href="biblio-standoc.rng"/>
5
4
  <include href="isodoc.rng"/>
6
5
  </grammar>
@@ -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.4.1 -->
20
+ <!-- VERSION v2.0.0 -->
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">
@@ -459,11 +459,14 @@ gives an explicit page orientation</a:documentation>
459
459
  <a:documentation>Description of location in a reference, which can be combined with other locations in a single citation</a:documentation>
460
460
  </ref>
461
461
  </zeroOrMore>
462
- <zeroOrMore>
463
- <ref name="PureTextElement">
462
+ <optional>
463
+ <element name="display-text">
464
464
  <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
465
- </ref>
466
- </zeroOrMore>
465
+ <oneOrMore>
466
+ <ref name="PureTextElement"/>
467
+ </oneOrMore>
468
+ </element>
469
+ </optional>
467
470
  </define>
468
471
  </include>
469
472
  <!-- end overrides -->
@@ -1205,10 +1208,13 @@ numbers</a:documentation>
1205
1208
  <value>presentation</value>
1206
1209
  </choice>
1207
1210
  </attribute>
1211
+ <attribute name="flavor">
1212
+ <a:documentation>Metanorma flavor, indicating SDO whose requiremnts the realisation aligns to</a:documentation>
1213
+ </attribute>
1208
1214
  </define>
1209
1215
  <define name="standard-document">
1210
1216
  <a:documentation>Representation of a standardisation document</a:documentation>
1211
- <element name="standard-document">
1217
+ <element name="metanorma">
1212
1218
  <ref name="Root-Attributes"/>
1213
1219
  <ref name="bibdata">
1214
1220
  <a:documentation>Bibliographic description of the document itself, expressed in the Relaton model</a:documentation>
@@ -19,6 +19,6 @@ module Metanorma
19
19
  end
20
20
 
21
21
  module Standoc
22
- VERSION = "2.10.5".freeze
22
+ VERSION = "3.0.0".freeze
23
23
  end
24
24
  end
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency "asciidoctor", "~> 2.0.0"
33
33
  spec.add_dependency "crass", "~> 1.0.0"
34
34
  spec.add_dependency "iev", "~> 0.3.5"
35
- spec.add_dependency "isodoc", "~> 2.12.4"
35
+ spec.add_dependency "isodoc", "~> 3.0.0"
36
36
  spec.add_dependency "metanorma", ">= 1.6.0"
37
37
  spec.add_dependency "metanorma-plugin-datastruct", "~> 0.3.0"
38
38
  spec.add_dependency "metanorma-plugin-glossarist", "~> 0.2.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-standoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.5
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-20 00:00:00.000000000 Z
11
+ date: 2025-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 2.12.4
75
+ version: 3.0.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.12.4
82
+ version: 3.0.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: metanorma
85
85
  requirement: !ruby/object:Gem::Requirement