metanorma-bipm 0.0.3 → 1.0.2

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.
@@ -24,16 +24,17 @@ module IsoDoc
24
24
  TITLE = "//bibdata/title".freeze
25
25
 
26
26
  def title(isoxml, _out)
27
- lang1 = @lang == "fr" ? "fr" : "en"
28
- lang2 = @lang == "fr" ? "en" : "fr"
27
+ lang1, lang2 = @lang == "fr" ? %w(fr en) : %w(en fr)
29
28
  set(:doctitle, @c.encode(isoxml&.at(
30
29
  ns("#{TITLE}[@type='main'][@language='#{lang1}']"))&.text || ""))
31
30
  set(:docsubtitle, @c.encode(isoxml&.at(
32
31
  ns("#{TITLE}[@type='main'][@language='#{lang2}']"))&.text || ""))
33
- set(:appendixtitle, @c.encode(isoxml&.at(
34
- ns("#{TITLE}[@type='appendix'][@language='#{lang1}']"))&.text || ""))
35
- set(:appendixsubtitle, @c.encode(isoxml&.at(
36
- ns("#{TITLE}[@type='appendix'][@language='#{lang2}']"))&.text || ""))
32
+ %w(appendix annex part subtitle).each do |e|
33
+ set("#{e}title".to_sym, @c.encode(isoxml&.at(
34
+ ns("#{TITLE}[@type='#{e}'][@language='#{lang1}']"))&.text || ""))
35
+ set("#{e}subtitle".to_sym, @c.encode(isoxml&.at(
36
+ ns("#{TITLE}[@type='#{e}'][@language='#{lang2}']"))&.text || ""))
37
+ end
37
38
  end
38
39
 
39
40
  def status_print(status)
@@ -46,11 +47,22 @@ module IsoDoc
46
47
 
47
48
  def docid(isoxml, _out)
48
49
  super
49
- label1 = @lang == "fr" ? "Annexe" : "Appendix"
50
- label2 = @lang == "fr" ? "Appendix" : "Annexe"
50
+ label1, label2 = @lang == "fr" ? %w(Annexe Appendix) : %w(Appendix Annexe)
51
51
  dn = isoxml.at(ns("//bibdata/ext/structuredidentifier/appendix"))
52
52
  dn and set(:appendixid, @i18n.l10n("#{label1} #{dn&.text}"))
53
53
  dn and set(:appendixid_alt, @i18n.l10n("#{label2} #{dn&.text}"))
54
+ label1, label2 = @lang == "fr" ? %w(Appendice Annex) : %w(Annex Appendice)
55
+ dn = isoxml.at(ns("//bibdata/ext/structuredidentifier/annexid"))
56
+ dn and set(:annexid, @i18n.l10n("#{label1} #{dn&.text}"))
57
+ dn and set(:annexid_alt, @i18n.l10n("#{label2} #{dn&.text}"))
58
+ label1, label2 = @lang == "fr" ? %w(Partie Part) : %w(Part Partie)
59
+ dn = isoxml.at(ns("//bibdata/ext/structuredidentifier/part"))
60
+ dn and set(:partid, @i18n.l10n("#{label1} #{dn&.text}"))
61
+ dn and set(:partid_alt, @i18n.l10n("#{label2} #{dn&.text}"))
62
+ end
63
+
64
+ def extract_person_names_affiliations(authors)
65
+ extract_person_affiliations(authors)
54
66
  end
55
67
  end
56
68
  end
@@ -10,12 +10,23 @@ module IsoDoc
10
10
  super
11
11
  end
12
12
 
13
+ def configuration
14
+ Metanorma::BIPM.configuration
15
+ end
16
+
13
17
  def pdf_stylesheet(docxml)
14
- "bipm.brochure.xsl"
18
+ doctype = docxml&.at(ns("//bibdata/ext/doctype"))&.text
19
+ doctype = "brochure" unless %w(guide mise-en-pratique rapport).
20
+ include? doctype
21
+ "bipm.#{doctype}.xsl"
15
22
  end
16
23
 
17
24
  def pdf_options(docxml)
18
- if docxml.root.name == "metanorma-collection"
25
+ if docxml.root.name == "metanorma-collection" &&
26
+ docxml.at("//m:bipm-standard/m:bibdata/m:language[@current = 'true'][. = 'fr']",
27
+ "m" => configuration.document_namespace) &&
28
+ docxml.at("//m:bipm-standard/m:bibdata/m:language[@current = 'true'][. = 'en']",
29
+ "m" => configuration.document_namespace)
19
30
  "--split-by-language"
20
31
  else
21
32
  super
@@ -1,6 +1,7 @@
1
1
  require "isodoc"
2
2
  require "metanorma-generic"
3
3
  require_relative "init"
4
+ require_relative "index"
4
5
 
5
6
  module IsoDoc
6
7
  module BIPM
@@ -9,7 +10,7 @@ module IsoDoc
9
10
  return if labelled_ancestor(f)
10
11
  return if f["unnumbered"] && !f.at(ns("./name"))
11
12
  n = @xrefs.anchor(f['id'], :label, false)
12
- prefix_name(f, ".<tab/>", l10n("#{@i18n.table} #{n}"), "name")
13
+ prefix_name(f, ".<tab/>", l10n("#{@i18n.table.capitalize} #{n}"), "name")
13
14
  end
14
15
 
15
16
  def annex1(f)
@@ -72,20 +73,25 @@ module IsoDoc
72
73
  end
73
74
 
74
75
  def list_authors(xml)
75
- ret = list_people(xml, "//bibdata/contributor[xmlns:role/@type = 'author']/person")
76
+ ret = list_people(
77
+ xml, "//bibdata/contributor[xmlns:role/@type = 'author']/person")
76
78
  @i18n.multiple_and(ret, @i18n.get["and"])
77
79
  end
78
80
 
81
+ COCHAIR = "xmlns:role[contains(text(),'co-chair')]".freeze
82
+ CHAIR = "[xmlns:role[contains(text(),'chair')]"\
83
+ "[not(contains(text(),'co-chair'))]]".freeze
84
+
79
85
  def list_cochairs(xml)
80
- ret = list_people(xml, "//bibdata/contributor[xmlns:role[contains(text(),'co-chair')]]/person")
81
- role = xml&.at(ns("//bibdata/contributor[xmlns:role[contains(text(),'co-chair')]]/role"))&.text
86
+ ret = list_people(xml, "//bibdata/contributor[#{COCHAIR}]/person")
87
+ role = xml&.at(ns("//bibdata/contributor[#{COCHAIR}]/role"))&.text
82
88
  label = ret.size > 1 && role ? "#{role}s" : role
83
89
  "#{label}: #{@i18n.multiple_and(ret, @i18n.get["and"])}"
84
90
  end
85
91
 
86
92
  def list_chairs(xml)
87
- ret = list_people(xml, "//bibdata/contributor[xmlns:role[contains(text(),'chair')][not(contains(text(),'co-chair'))]]/person")
88
- role = xml&.at(ns("//bibdata/contributor[xmlns:role[contains(text(),'chair')][not(contains(text(),'co-chair'))]]/role"))&.text
93
+ ret = list_people(xml, "//bibdata/contributor#{CHAIR}/person")
94
+ role = xml&.at(ns("//bibdata/contributor#{CHAIR}/role"))&.text
89
95
  label = ret.size > 1 && role ? "#{role}s" : role
90
96
  "#{label}: #{@i18n.multiple_and(ret, @i18n.get["and"])}"
91
97
  end
@@ -103,6 +109,14 @@ module IsoDoc
103
109
  ret
104
110
  end
105
111
 
112
+ def twitter_cldr_localiser_symbols
113
+ { group: "&#x202F;", fraction_group: "&#x202F;", fraction_group_digits: 3 }
114
+ end
115
+
116
+ def mathml1(f, locale)
117
+ localize_maths(f, locale)
118
+ end
119
+
106
120
  include Init
107
121
  end
108
122
  end
@@ -1,13 +1,20 @@
1
1
  module IsoDoc
2
2
  module BIPM
3
+ class Counter < IsoDoc::XrefGen::Counter
4
+ end
5
+
3
6
  class Xref < IsoDoc::Xref
7
+ def initialize(lang, script, klass, i18n, options = {})
8
+ super
9
+ end
10
+
4
11
  def clause_names(docxml, sect_num)
5
- sect_num = 0
12
+ n = Counter.new
6
13
  docxml.xpath(ns("//sections/clause[not(@unnumbered = 'true')] | "\
7
14
  "//sections/terms[not(@unnumbered = 'true')] | "\
8
15
  "//sections/definitions[not(@unnumbered = 'true')]")).
9
- each_with_index do |c, i|
10
- section_names(c, (i + sect_num), 1)
16
+ each do |c|
17
+ section_names(c, n, 1)
11
18
  end
12
19
  docxml.xpath(ns("//sections/clause[@unnumbered = 'true'] | "\
13
20
  "//sections/terms[@unnumbered = 'true'] | "\
@@ -31,12 +38,14 @@ module IsoDoc
31
38
 
32
39
  def section_names(clause, num, lvl)
33
40
  return num if clause.nil?
34
- num = num + 1
41
+ num.increment(clause)
35
42
  @anchors[clause["id"]] =
36
- { label: num.to_s, xref: l10n("#{@labels["clause"]} #{num}"),
43
+ { label: num.print, xref: l10n("#{@labels["clause"]} #{num.print}"),
37
44
  level: lvl, type: "clause" }
38
- clause.xpath(ns(NUMBERED_SUBCLAUSES)).each_with_index do |c, i|
39
- section_names1(c, "#{num}.#{i + 1}", lvl + 1)
45
+ i = Counter.new
46
+ clause.xpath(ns(NUMBERED_SUBCLAUSES)).each do |c|
47
+ i.increment(c)
48
+ section_names1(c, "#{num.print}.#{i.print}", lvl + 1)
40
49
  end
41
50
  clause.xpath(ns(UNNUMBERED_SUBCLAUSES)).each_with_index do |c, i|
42
51
  unnumbered_section_names1(c, lvl + 1)
@@ -56,10 +65,12 @@ module IsoDoc
56
65
 
57
66
  def section_names1(clause, num, level)
58
67
  @anchors[clause["id"]] =
59
- { label: num, level: level, xref: l10n("#{@labels["clause"]} #{num}"),
68
+ { label: num, level: level, xref: l10n("#{@labels["subclause"]} #{num}"),
60
69
  type: "clause" }
61
- clause.xpath(ns(NUMBERED_SUBCLAUSES)).each_with_index do |c, i|
62
- section_names1(c, "#{num}.#{i + 1}", level + 1)
70
+ i = Counter.new
71
+ clause.xpath(ns(NUMBERED_SUBCLAUSES)).each do |c|
72
+ i.increment(c)
73
+ section_names1(c, "#{num}.#{i.print}", level + 1)
63
74
  end
64
75
  clause.xpath(ns(UNNUMBERED_SUBCLAUSES)).each_with_index do |c, i|
65
76
  unnumbered_section_names1(c, lvl + 1)
@@ -77,6 +88,8 @@ module IsoDoc
77
88
 
78
89
  def back_anchor_names(docxml)
79
90
  super
91
+ @annexlbl = docxml.at(ns("//bibdata/ext/structuredidentifier/appendix")) ?
92
+ @labels["appendix"] : @labels["annex"]
80
93
  docxml.xpath(ns("//annex[not(@unnumbered = 'true')]")).
81
94
  each_with_index { |c, i| annex_names(c, (i+1).to_s) }
82
95
  docxml.xpath(ns("//annex[@unnumbered = 'true']")).
@@ -86,12 +99,14 @@ module IsoDoc
86
99
  def annex_names(clause, num)
87
100
  @anchors[clause["id"]] =
88
101
  { label: annex_name_lbl(clause, num), type: "clause", value: num.to_s,
89
- xref: "#{@labels["annex"]} #{num}", level: 1 }
102
+ xref: l10n("#{@annexlbl} #{num}"), level: 1 }
90
103
  if a = single_annex_special_section(clause)
91
104
  annex_names1(a, "#{num}", 1)
92
105
  else
93
- clause.xpath(ns(NUMBERED_SUBCLAUSES)).each_with_index do |c, i|
94
- annex_names1(c, "#{num}.#{i + 1}", 2)
106
+ i = Counter.new
107
+ clause.xpath(ns(NUMBERED_SUBCLAUSES)).each do |c|
108
+ i.increment(c)
109
+ annex_names1(c, "#{num}.#{i.print}", 2)
95
110
  end
96
111
  clause.xpath(ns(UNNUMBERED_SUBCLAUSES)).each do |c|
97
112
  unnumbered_annex_names1(c, 2)
@@ -117,10 +132,12 @@ module IsoDoc
117
132
 
118
133
  def annex_names1(clause, num, level)
119
134
  @anchors[clause["id"]] =
120
- { label: num, xref: "#{@labels["annex"]} #{num}",
135
+ { label: num, xref: l10n("#{@annexlbl} #{num}"),
121
136
  level: level, type: "clause" }
122
- clause.xpath(ns(NUMBERED_SUBCLAUSES)).each_with_index do |c, i|
123
- annex_names1(c, "#{num}.#{i + 1}", level + 1)
137
+ i = Counter.new
138
+ clause.xpath(ns(NUMBERED_SUBCLAUSES)).each do |c|
139
+ i.increment(c)
140
+ annex_names1(c, "#{num}.#{i.print}", level + 1)
124
141
  end
125
142
  clause.xpath(ns(UNNUMBERED_SUBCLAUSES)).each do |c|
126
143
  unnumbered_annex_names1(c, level + 1)
@@ -138,7 +155,7 @@ module IsoDoc
138
155
  end
139
156
 
140
157
  def annex_name_lbl(clause, num)
141
- l10n("<strong>#{@labels["annex"]} #{num}</strong>")
158
+ l10n("<strong>#{@annexlbl} #{num}</strong>")
142
159
  end
143
160
  end
144
161
  end
@@ -4,6 +4,13 @@ require "metanorma/bipm/processor"
4
4
 
5
5
  module Metanorma
6
6
  module BIPM
7
+ def self.fonts_used
8
+ {
9
+ html: ["Times New Roman", "STIX", "Courier New"],
10
+ pdf: ["Arial", "Times New Roman", "Work Sans", "STIX"]
11
+ }
12
+ end
13
+
7
14
  class Configuration < Metanorma::Generic::Configuration
8
15
  def initialize(*args)
9
16
  super
@@ -14,6 +14,17 @@ module Metanorma
14
14
  ).tap { |hs| hs.delete(:doc) }
15
15
  end
16
16
 
17
+ def fonts_manifest
18
+ {
19
+ "Arial" => nil,
20
+ "Times New Roman" => nil,
21
+ "Work Sans" => nil,
22
+ "STIX Two Math" => nil,
23
+ "Source Han Sans" => nil,
24
+ "TeX Gyre Chorus" => nil,
25
+ }
26
+ end
27
+
17
28
  def version
18
29
  "Metanorma::BIPM #{Metanorma::BIPM::VERSION}"
19
30
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module BIPM
3
- VERSION = "0.0.3"
3
+ VERSION = "1.0.2"
4
4
  end
5
5
  end
@@ -26,8 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.require_paths = ["lib"]
27
27
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
28
28
 
29
- spec.add_dependency "metanorma-generic", "~> 1.7.0"
30
- spec.add_dependency "isodoc", "~> 1.2.0"
29
+ spec.add_dependency "metanorma-generic", "~> 1.8.2"
31
30
 
32
31
  spec.add_development_dependency "byebug", "~> 9.1"
33
32
  spec.add_development_dependency "sassc", "2.4.0"
@@ -1,10 +1,14 @@
1
1
  metanorma_name: bipm
2
2
  organization_name_short: BIPM
3
- organization_name_long: Bureau International des poids et mesures
3
+ organization_name_long:
4
+ fr: Bureau international des poids et mesures
5
+ en: Bureau International des Poids et Mesures
4
6
  document_namespace: https://www.metanorma.org/ns/bipm
5
7
  xml_root_tag: 'bipm-standard'
6
8
  html_bodyfont: Times New Roman
7
9
  html_headerfont: Times New Roman
10
+ html_normalfontsize: "15px"
11
+ html_footnotefontsize: "0.9em"
8
12
  logo_path: lib/isodoc/bipm/html/logo.png
9
13
  i18nyaml:
10
14
  en: lib/isodoc/bipm/i18n-en.yaml
@@ -79,8 +83,8 @@ committees:
79
83
  - CCU
80
84
  - Consultative Committee for Units
81
85
  - Comité consultatif des unités
82
- - CCL-CCT
83
- - Frequency Standards Working Group
86
+ - CCL-CCTF-WGFS
87
+ - CCL-CCTF Frequency Standards Working Group
84
88
  - JCGM
85
89
  - Joint Committee for Guides in Metrology
86
90
  - Comité commun pour les guides en métrologie
@@ -106,6 +110,8 @@ metadata_extensions:
106
110
  _output: part
107
111
  appendix-id:
108
112
  _output: appendix
113
+ annex-id:
114
+ _output: annexid
109
115
  relations:
110
116
  - supersedes
111
117
  - superseded-by
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-bipm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-25 00:00:00.000000000 Z
11
+ date: 2021-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-generic
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.7.0
19
+ version: 1.8.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.7.0
27
- - !ruby/object:Gem::Dependency
28
- name: isodoc
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 1.2.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.2.0
26
+ version: 1.8.2
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: byebug
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -209,6 +195,9 @@ files:
209
195
  - lib/isodoc/bipm.rb
210
196
  - lib/isodoc/bipm/base_convert.rb
211
197
  - lib/isodoc/bipm/bipm.brochure.xsl
198
+ - lib/isodoc/bipm/bipm.guide.xsl
199
+ - lib/isodoc/bipm/bipm.mise-en-pratique.xsl
200
+ - lib/isodoc/bipm/bipm.rapport.xsl
212
201
  - lib/isodoc/bipm/html/html_bipm_intro.html
213
202
  - lib/isodoc/bipm/html/html_bipm_titlepage.html
214
203
  - lib/isodoc/bipm/html/htmlstyle.css
@@ -232,6 +221,7 @@ files:
232
221
  - lib/isodoc/bipm/i18n-en.yaml
233
222
  - lib/isodoc/bipm/i18n-fr.yaml
234
223
  - lib/isodoc/bipm/i18n.rb
224
+ - lib/isodoc/bipm/index.rb
235
225
  - lib/isodoc/bipm/init.rb
236
226
  - lib/isodoc/bipm/metadata.rb
237
227
  - lib/isodoc/bipm/pdf_convert.rb