metanorma-standoc 2.10.5 → 3.0.0

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: 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