metanorma-ogc 2.0.8.1 → 2.1.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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/isodoc/ogc/biblio.rb +1 -134
  3. data/lib/isodoc/ogc/html/html_ogc_titlepage.html +2 -0
  4. data/lib/isodoc/ogc/html/word_ogc_titlepage.html +3 -0
  5. data/lib/isodoc/ogc/html/word_ogc_titlepage_wp.html +3 -0
  6. data/lib/isodoc/ogc/init.rb +5 -6
  7. data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +357 -121
  8. data/lib/isodoc/ogc/ogc.best-practice.xsl +357 -121
  9. data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +357 -121
  10. data/lib/isodoc/ogc/ogc.community-practice.xsl +357 -121
  11. data/lib/isodoc/ogc/ogc.community-standard.xsl +357 -121
  12. data/lib/isodoc/ogc/ogc.discussion-paper.xsl +357 -121
  13. data/lib/isodoc/ogc/ogc.engineering-report.xsl +357 -121
  14. data/lib/isodoc/ogc/ogc.other.xsl +357 -121
  15. data/lib/isodoc/ogc/ogc.policy.xsl +357 -121
  16. data/lib/isodoc/ogc/ogc.reference-model.xsl +357 -121
  17. data/lib/isodoc/ogc/ogc.release-notes.xsl +357 -121
  18. data/lib/isodoc/ogc/ogc.standard.xsl +357 -121
  19. data/lib/isodoc/ogc/ogc.test-suite.xsl +357 -121
  20. data/lib/isodoc/ogc/ogc.user-guide.xsl +357 -121
  21. data/lib/isodoc/ogc/ogc.white-paper.xsl +362 -128
  22. data/lib/isodoc/ogc/presentation_xml_convert.rb +13 -9
  23. data/lib/isodoc/ogc/word_convert.rb +2 -3
  24. data/lib/isodoc/ogc/xref.rb +6 -2
  25. data/lib/metanorma/ogc/biblio.rng +37 -8
  26. data/lib/metanorma/ogc/isodoc.rng +56 -0
  27. data/lib/metanorma/ogc/version.rb +1 -1
  28. data/lib/relaton/render/config.yml +10 -0
  29. data/lib/relaton/render/date.rb +9 -0
  30. data/lib/relaton/render/fields.rb +23 -0
  31. data/lib/relaton/render/general.rb +25 -0
  32. data/lib/relaton/render/parse.rb +11 -0
  33. data/metanorma-ogc.gemspec +1 -1
  34. metadata +9 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4976045f5f9e91f8e3063916d3c83b19eeddce73f7e599a00b7f0117a172a329
4
- data.tar.gz: 431db0941bdfeef065773432b51817e74f32fbdc179ab1315f994106445db6fe
3
+ metadata.gz: 114f569b93b16cd055eda79bde9d167827b5af201bcab72cec2341a19f71e679
4
+ data.tar.gz: 75b4b390941bece71edeb25dd481fac0a39631b72abc2dbccbdc4bb54b102210
5
5
  SHA512:
6
- metadata.gz: 3ce12d5dcb3f4c4020a22e8210a31c39d43d02af6b76099588456b50ac46fbe93cfad0dbe714cdef49295e87b94848899086b21a3c8e82144e2275252ff3bb3f
7
- data.tar.gz: 055d3c4851ea3d1745a7742e07922ad961e91ecd3067178b7778ac1b15434cf781f9b2f319dca6309cf5845fd720e7774ede7326c421f48846b9eb62e0a51f7b
6
+ metadata.gz: 70bba60758978f653c396c98be63012440e00ae7d82dbd721256d0bc12db6b0d4ae099469acfa24208e5bd067812ca207fe465e986a9e4f2c2202142c2fa3a25
7
+ data.tar.gz: 00267f9fc1fb975117feeceb9a2cb29c45ecf86cda368115138452369aa3f52ab36bcd851a9c4d9efaf1e37f1467c145551b4961f949f1e6d94369c808b5f837
@@ -4,7 +4,7 @@ module IsoDoc
4
4
  def std_bibitem_entry(list, bib, ordinal, biblio)
5
5
  list.p **attr_code(iso_bibitem_entry_attrs(bib, biblio)) do |ref|
6
6
  prefix_bracketed_ref(ref, "[#{ordinal}]") if biblio
7
- standard_citation(ref, bib)
7
+ reference_format(bib, ref)
8
8
  end
9
9
  end
10
10
 
@@ -19,139 +19,6 @@ module IsoDoc
19
19
  reference_format(bib, r)
20
20
  end
21
21
  end
22
-
23
- def reference_format(bib, ref)
24
- if ftitle = bib.at(ns("./formattedref"))
25
- ftitle&.children&.each { |n| parse(n, ref) }
26
- else
27
- # eventually will be full LNCS reference
28
- standard_citation(ref, bib)
29
- end
30
- end
31
-
32
- def multiplenames(names)
33
- names.join(", ")
34
- end
35
-
36
- def multiplenames_and(names)
37
- return "" if names.empty?
38
- return names[0] if names.length == 1
39
- return "#{names[0]} and #{names[1]}" if names.length == 2
40
-
41
- names[0..-2].join(", ") + " and #{names[-1]}"
42
- end
43
-
44
- def nodes_to_span(node)
45
- noko do |xml|
46
- xml.span do |s|
47
- node&.children&.each { |x| parse(x, s) }
48
- end
49
- end.join
50
- end
51
-
52
- def extract_publisher(bib)
53
- abbrs = []
54
- names = []
55
- bib.xpath(ns("./contributor[role/@type = 'publisher']"\
56
- "[organization]"))&.each do |c1|
57
- n = c1.at(ns("./organization/name")) or next
58
- abbrs << (c1.at(ns("./organization/abbreviation")) || n)
59
- names << nodes_to_span(n)
60
- end
61
- return [nil, nil] if names.empty?
62
-
63
- [multiplenames_and(names), abbrs.map(&:text).join("/")]
64
- end
65
-
66
- def extract_author(bib)
67
- c = bib.xpath(ns("./contributor[role/@type = 'author']"))
68
- c = bib.xpath(ns("./contributor[role/@type = 'editor']")) if c.empty?
69
- return nil if c.empty?
70
-
71
- c.map do |c1|
72
- c1&.at(ns("./organization/name"))&.text || extract_person_name(c1)
73
- end.reject { |e| e.nil? || e.empty? }.join(", ")
74
- end
75
-
76
- def extract_person_name(bib)
77
- p = bib.at(ns("./person/name")) or return
78
- c = p.at(ns("./completename")) and return c.text
79
- s = p&.at(ns("./surname"))&.text or return
80
- i = p.xpath(ns("./initial")) and
81
- front = i.map { |e| e.text.gsub(/[^[:upper:]]/, "") }.join
82
- i.empty? and f = p.xpath(ns("./forename")) and
83
- front = f.map { |e| e.text[0].upcase }.join
84
- front ? "#{s} #{front}" : s
85
- end
86
-
87
- def date_render(date)
88
- return nil if date.nil?
89
-
90
- on = date&.at(ns("./on"))&.text
91
- from = date&.at(ns("./from"))&.text
92
- to = date&.at(ns("./to"))&.text
93
- return on if on && !on.empty?
94
- return "#{from}&ndash;#{to}" if from && !from.empty?
95
-
96
- nil
97
- end
98
-
99
- def extract_year(bib)
100
- d = bib.at(ns("./date[@type = 'published']")) ||
101
- bib.at(ns("./date[@type = 'issued']")) ||
102
- bib.at(ns("./date[@type = 'circulated']")) ||
103
- bib.at(ns("./date"))
104
- date_render(d)
105
- end
106
-
107
- def extract_city(bib)
108
- bib.at(ns("./place"))
109
- end
110
-
111
- def extract_uri(bib)
112
- bib.at(ns("./uri[@type = 'src']")) || bib.at(ns("./uri"))
113
- end
114
-
115
- # {author}: {document identifier}, {title}. {publisher}, {city} ({year})
116
- def standard_citation(out, bib)
117
- if ftitle = bib.at(ns("./formattedref"))
118
- ftitle&.children&.each { |n| parse(n, out) }
119
- else
120
- pub, pub_abbrev = extract_publisher(bib)
121
- author = extract_author(bib)
122
- c = extract_city(bib)
123
- y = extract_year(bib)
124
- u = extract_uri(bib)
125
- out << "#{author || pub_abbrev}: " if author || pub_abbrev
126
- id = render_identifier(inline_bibitem_ref_code(bib))
127
- out << id[:sdo] if id[:sdo]
128
- out << " (Draft)" if ogc_draft_ref?(bib)
129
- out << ", "
130
- out.i do |i|
131
- iso_title(bib)&.children&.each { |n| parse(n, i) }
132
- end
133
- out << ". "
134
- out << pub if pub
135
- out << ", " if pub && c
136
- c&.children&.each { |n| parse(n, out) }
137
- out << " " if (pub || c) && y
138
- out << "(#{y}). " if y
139
- u and out << "<a href='#{u.text}'>#{u.text}</a>"
140
- end
141
- end
142
-
143
- def inline_bibitem_ref_code(bib)
144
- id = bib.at(ns("./docidentifier[not(@type = 'DOI' "\
145
- "or @type = 'metanorma' or @type = 'ISSN' "\
146
- "or @type = 'ISBN' or @type = 'metanorma-ordinal')]"))
147
- id ||= bib.at(ns("./docidentifier[not(@type = 'metanorma' or "\
148
- "@type = 'metanorma-ordinal')]"))
149
- return [nil, id, nil, nil] if id
150
-
151
- id = Nokogiri::XML::Node.new("docidentifier", bib.document)
152
- id << "(NO ID)"
153
- [nil, id, nil, nil]
154
- end
155
22
  end
156
23
  end
157
24
  end
@@ -98,6 +98,8 @@
98
98
  <div class="coverpage-warning">
99
99
  <div id="boilerplate-legal-destination"/>
100
100
  </div>
101
+ <div class="coverpage-warning" id="coverpage-note-destination"/>
102
+
101
103
 
102
104
  <div class="docstage-box">
103
105
  <table>
@@ -50,7 +50,10 @@ style='mso-bidi-font-weight:normal'><span lang="EN-GB" style='font-size:24.0pt'>
50
50
 
51
51
  <div class="warning">
52
52
  <div id="boilerplate-legal-destination"/>
53
+ <div id="boilerplate-license-destination"/>
53
54
  </div>
55
+ <div class="coverpage-warning" id="coverpage-note-destination"/>
56
+
54
57
 
55
58
  <div style='mso-element:frame;mso-element-frame-hspace:7.1pt;mso-element-frame-vspace:
56
59
  7.1pt;mso-element-wrap:auto;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:
@@ -65,8 +65,11 @@ style='mso-no-proof:yes;font-size:10.0pt'>Category: {{ doctype }}</span></p>
65
65
  <div id="boilerplate-copyright-destination"/>
66
66
  <div class="warning">
67
67
  <div id="boilerplate-legal-destination"/>
68
+ <div id="boilerplate-license-destination"/>
68
69
  </div>
69
70
  </div>
71
+ <div class="coverpage-warning" id="coverpage-note-destination"/>
72
+
70
73
 
71
74
  <v:shape id="Picture_x0020_4" o:spid="_x0000_s1026" type="#_x0000_t75"
72
75
  alt="A close up of a sign&#10;&#10;Description automatically generated"
@@ -10,13 +10,13 @@ module IsoDoc
10
10
  @meta = Metadata.new(lang, script, labels)
11
11
  end
12
12
 
13
- def xref_init(lang, script, klass, labels, options)
13
+ def xref_init(lang, script, _klass, labels, options)
14
14
  html = HtmlConvert.new(language: lang, script: script)
15
15
  @xrefs = Xref.new(lang, script, html, labels, options)
16
16
  end
17
17
 
18
18
  def i18n_init(lang, script, i18nyaml = nil)
19
- @i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
19
+ @i18n = I18n.new(lang, script, i18nyaml: i18nyaml || @i18nyaml)
20
20
  end
21
21
 
22
22
  def fileloc(loc)
@@ -28,14 +28,13 @@ module IsoDoc
28
28
  end
29
29
 
30
30
  def ogc_draft_ref?(ref)
31
- return unless ref.at(
32
- ns("./contributor[role/@type = 'publisher']/organization"\
33
- "[name = 'Open Geospatial Consortium']"))
31
+ return unless ref.at(ns("./docidentifier[@type = 'OGC']"))
32
+
34
33
  status = ref.at(ns("./status/stage"))&.text or return
35
34
  return if %w(approved published deprecated retired).include? status
35
+
36
36
  true
37
37
  end
38
38
  end
39
39
  end
40
40
  end
41
-