metanorma-iho 0.5.6 → 0.6.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: 4f59fa1d88c28618f561a66eee85bc5fb48166320fa81fed3020cffbafd1529e
4
- data.tar.gz: 41e732c59a3d41dff8cda5472bf5f964e1d87db77d2de7ac28456507612bc0a5
3
+ metadata.gz: d2cff547b03ecc70aec12998ad10bec0bf6ff613bfc9287d9a85301f13c3e653
4
+ data.tar.gz: b0fa1bd5bf299a0b01a821bdafcc6e89292b726bad76ad171b6f78f8ba25d289
5
5
  SHA512:
6
- metadata.gz: 45ef94d96f96ed9a96ecca833df2d794177df2fe40756bdeeab7d19cc994a7b120c8449293c26f9f193b5926b1add31b8404ea2d6bd161bf05d383ac9ce5029d
7
- data.tar.gz: 2edea68d3449e0177f412e26b3ff99f83ed97b1eb8dcd8a9bc9a14fb71697e09742200724e229292633122bbf99415b3b99a738030d754b6cc8776d4dc2825f0
6
+ metadata.gz: dc68dc888841c38bbece4f4fb3efe17f9bec41b706cf886be668323b218b2b42a513cda400813f4c3b254f3a318fd70e91a247a1e013a1b1000ee13ac9b5797b
7
+ data.tar.gz: 00dbf67eeefb94f12293843e81b516a318a7e8db5f1f7ec8c497c4d9027db2a8cb8ccf866bb572dc0d3af933d536c4d05597bc10eb37883d9737ce8ac0c62335
@@ -18,119 +18,15 @@ module IsoDoc
18
18
  def std_bibitem_entry(list, bib, ordinal, biblio)
19
19
  list.p **attr_code(iso_bibitem_entry_attrs(bib, biblio)) do |ref|
20
20
  prefix_bracketed_ref(ref, "[#{ordinal}]")
21
- standard_citation(ref, bib)
21
+ reference_format(bib, ref)
22
22
  end
23
23
  end
24
24
 
25
- def nodes_to_span(node)
26
- noko do |xml|
27
- xml.span do |s|
28
- node&.children&.each { |x| parse(x, s) }
29
- end
30
- end.join
31
- end
32
-
33
- def multiplenames_and(names)
34
- return "" if names.empty?
35
- return names[0] if names.length == 1
36
- return "#{names[0]} and #{names[1]}" if names.length == 2
37
-
38
- names[0..-2].join(", ") + " and #{names[-1]}"
39
- end
40
-
41
- def extract_publisher(bib)
42
- c = bib
43
- .xpath(ns("./contributor[role/@type = 'publisher'][organization]"))
44
- abbrs = []
45
- names = []
46
- c&.each do |c1|
47
- n = c1.at(ns("./organization/name")) or next
48
- abbrs << (c1.at(ns("./organization/abbreviation")) || n)
49
- names << nodes_to_span(n)
50
- end
51
- return [nil, nil] if names.empty?
52
-
53
- [multiplenames_and(names), abbrs.map(&:text).join("/")]
54
- end
55
-
56
- def inline_bibitem_ref_code(bib)
57
- id = bib.at(ns("./docidentifier[not(@type = 'DOI' or "\
58
- "@type = 'metanorma' or @type = 'ISSN' or "\
59
- "@type = 'ISBN' or @type = 'rfc-anchor' or "\
60
- "@type = 'metanorma-ordinal')]"))
61
- id ||= bib.at(ns("./docidentifier[not(@type = 'metanorma' or "\
62
- "@type = 'metanorma-ordinal')]"))
63
- return [nil, id, nil, nil] if id
64
-
65
- id = Nokogiri::XML::Node.new("docidentifier", bib.document)
66
- id << "(NO ID)"
67
- [nil, id, nil, nil]
68
- end
69
-
70
- def extract_edition(bib)
71
- bib&.at(ns("./edition"))&.text
72
- end
73
-
74
- def extract_uri(bib)
75
- bib.at(ns("./uri[@type = 'src']")) || bib.at(ns("./uri"))
76
- end
77
-
78
25
  def omit_docid_prefix(prefix)
79
26
  return true if prefix == "IHO"
80
27
 
81
28
  super
82
29
  end
83
-
84
- def render_identifier(id)
85
- if !id[1].nil? && (id[1]["type"] == "IHO")
86
- id[1].children = id[1].text.sub(/^IHO /, "")
87
- end
88
- super
89
- end
90
-
91
- def extract_author(bib)
92
- c = bib.xpath(ns("./contributor[role/@type = 'author']"))
93
- c = bib.xpath(ns("./contributor[role/@type = 'editor']")) if c.empty?
94
- return extract_publisher(bib)[0] if c.empty?
95
-
96
- c.map do |c1|
97
- c1&.at(ns("./organization/name"))&.text || extract_person_name(c1)
98
- end.reject { |e| e.nil? || e.empty? }.join(", ")
99
- end
100
-
101
- def extract_person_name(bib)
102
- p = bib.at(ns("./person/name")) or return
103
- c = p.at(ns("./completename")) and return c.text
104
- s = p&.at(ns("./surname"))&.text or return
105
- i = p.xpath(ns("./initial")) and
106
- front = i.map { |e| e.text.gsub(/[^[:upper:]]/, "") }.join
107
- i.empty? and f = p.xpath(ns("./forename")) and
108
- front = f.map { |e| e.text[0].upcase }.join
109
- front ? "#{s} #{front}" : s
110
- end
111
-
112
- def iho?(bib)
113
- extract_publisher(bib)[1] == "IHO"
114
- end
115
-
116
- # [{number}] {docID} edition {edition}: {title}, {author/organization}
117
- def standard_citation(out, bib)
118
- if ftitle = bib.at(ns("./formattedref"))
119
- ftitle&.children&.each { |n| parse(n, out) }
120
- else
121
- id = render_identifier(inline_bibitem_ref_code(bib))
122
- out << id[:sdo] if id[:sdo]
123
- ed = extract_edition(bib) if iho?(bib)
124
- out << " edition #{ed}" if ed
125
- out << ": " if id[:sdo] || ed
126
- iso_title(bib)&.children&.each { |n| parse(n, out) }
127
- out << ", "
128
- author = extract_author(bib)
129
- out << author
130
- u = extract_uri(bib)
131
- out << " (<a href='#{u.text}'>#{u.text}</a>)" if u
132
- end
133
- end
134
30
  end
135
31
  end
136
32
  end
@@ -66,6 +66,8 @@
66
66
  </div>
67
67
  {% endif %}
68
68
 
69
+ <div class="coverpage-warning" id="coverpage-note-destination"/>
70
+
69
71
  <div class="info-section">
70
72
  <div class="copyright">
71
73
  <div class="year">
@@ -885,4 +885,5 @@ AAAPAAAAAAAAAAAAAAAAAAcCAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAMAAwC3AAAA/AIAAAAA
885
885
  </v:shape>
886
886
  <w:wrap type="square" anchorx="margin" anchory="margin"/>
887
887
  </v:group></p>
888
+ <div class="coverpage-warning" id="coverpage-note-destination"/>
888
889