metanorma-bipm 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/macos.yml +38 -0
- data/.github/workflows/ubuntu.yml +56 -0
- data/.github/workflows/windows.yml +40 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +11 -0
- data/LICENSE +25 -0
- data/README.adoc +154 -0
- data/Rakefile +8 -0
- data/bin/console +14 -0
- data/bin/rspec +18 -0
- data/bin/setup +8 -0
- data/lib/asciidoctor/bipm.rb +8 -0
- data/lib/asciidoctor/bipm/basicdoc.rng +1082 -0
- data/lib/asciidoctor/bipm/biblio.rng +1237 -0
- data/lib/asciidoctor/bipm/bipm.rng +152 -0
- data/lib/asciidoctor/bipm/boilerplate-en.xml +21 -0
- data/lib/asciidoctor/bipm/boilerplate-fr.xml +21 -0
- data/lib/asciidoctor/bipm/converter.rb +85 -0
- data/lib/asciidoctor/bipm/isodoc.rng +1620 -0
- data/lib/asciidoctor/bipm/reqt.rng +194 -0
- data/lib/isodoc/bipm.rb +9 -0
- data/lib/isodoc/bipm/base_convert.rb +11 -0
- data/lib/isodoc/bipm/bipm.brochure.xsl +5447 -0
- data/lib/isodoc/bipm/html/html_bipm_intro.html +8 -0
- data/lib/isodoc/bipm/html/html_bipm_titlepage.html +71 -0
- data/lib/isodoc/bipm/html/htmlstyle.css +986 -0
- data/lib/isodoc/bipm/html/htmlstyle.scss +743 -0
- data/lib/isodoc/bipm/html/logo.png +0 -0
- data/lib/isodoc/bipm/html/scripts.html +71 -0
- data/lib/isodoc/bipm/html_convert.rb +15 -0
- data/lib/isodoc/bipm/i18n-en.yaml +1 -0
- data/lib/isodoc/bipm/i18n-fr.yaml +18 -0
- data/lib/isodoc/bipm/i18n.rb +9 -0
- data/lib/isodoc/bipm/init.rb +24 -0
- data/lib/isodoc/bipm/metadata.rb +41 -0
- data/lib/isodoc/bipm/pdf_convert.rb +19 -0
- data/lib/isodoc/bipm/presentation_xml_convert.rb +27 -0
- data/lib/isodoc/bipm/xref.rb +16 -0
- data/lib/metanorma-bipm.rb +11 -0
- data/lib/metanorma/bipm.rb +32 -0
- data/lib/metanorma/bipm/processor.rb +35 -0
- data/lib/metanorma/bipm/version.rb +5 -0
- data/metanorma-bipm.gemspec +42 -0
- data/metanorma.yml +74 -0
- metadata +258 -0
Binary file
|
@@ -0,0 +1,71 @@
|
|
1
|
+
<script>
|
2
|
+
$("#toc").on('click', 'li', function(e) {
|
3
|
+
$(this).parent().find('li.toc-active').removeClass('toc-active');
|
4
|
+
$(this).addClass('toc-active');
|
5
|
+
});
|
6
|
+
</script>
|
7
|
+
|
8
|
+
<script>
|
9
|
+
//TOC toggle animation
|
10
|
+
$('#toggle').on('click', function(){
|
11
|
+
if( $('nav').is(':visible') ) {
|
12
|
+
$('nav').animate({ 'left': '-353px' }, 'slow', function(){
|
13
|
+
$('nav').hide();
|
14
|
+
});
|
15
|
+
$('.container').animate({ 'padding-left': '31px' }, 'slow');
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
$('nav').show();
|
19
|
+
$('nav').animate({ 'left': '0px' }, 'slow');
|
20
|
+
$('.container').animate({ 'padding-left': '360px' }, 'slow');
|
21
|
+
}
|
22
|
+
});
|
23
|
+
</script>
|
24
|
+
|
25
|
+
<script>
|
26
|
+
// Scroll to top button
|
27
|
+
window.onscroll = function() {scrollFunction()};
|
28
|
+
|
29
|
+
function scrollFunction() {
|
30
|
+
if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {
|
31
|
+
document.getElementById("myBtn").style.display = "block";
|
32
|
+
} else {
|
33
|
+
document.getElementById("myBtn").style.display = "none";
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
// When the user clicks on the button, scroll to the top of the document
|
38
|
+
function topFunction() {
|
39
|
+
document.body.scrollTop = 0;
|
40
|
+
document.documentElement.scrollTop = 0;
|
41
|
+
}
|
42
|
+
</script>
|
43
|
+
|
44
|
+
<script>
|
45
|
+
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
|
46
|
+
//
|
47
|
+
// AnchorJS - v4.2.2 - 2020-04-20
|
48
|
+
// https://www.bryanbraun.com/anchorjs/
|
49
|
+
// Copyright (c) 2020 Bryan Braun; Licensed MIT
|
50
|
+
//
|
51
|
+
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
|
52
|
+
!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),0===(e=p(A=A||"h2, h3, h4, h5, h6")).length)return this;for(!function(){if(null!==document.head.querySelector("style.anchorjs"))return;var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(e):document.head.insertBefore(e,A);e.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",e.sheet.cssRules.length),e.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",e.sheet.cssRules.length),e.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",e.sheet.cssRules.length),e.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',e.sheet.cssRules.length)}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o<e.length;o++)if(this.hasAnchorJSLink(e[o]))d.push(o);else{if(e[o].hasAttribute("id"))n=e[o].getAttribute("id");else if(e[o].hasAttribute("data-anchor-id"))n=e[o].getAttribute("data-anchor-id");else{for(c=r=this.urlify(e[o].textContent),a=0;void 0!==s&&(c=r+"-"+a),a+=1,-1!==(s=i.indexOf(c)););s=void 0,i.push(c),e[o].setAttribute("id",c),n=c}(h=document.createElement("a")).className="anchorjs-link "+this.options.class,h.setAttribute("aria-label",this.options.ariaLabel),h.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(h.title=this.options.titleText),u=document.querySelector("base")?window.location.pathname+window.location.search:"",u=this.options.base||u,h.href=u+"#"+n,"always"===l&&(h.style.opacity="1"),""===this.options.icon&&(h.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(h.style.lineHeight="inherit")),"left"===this.options.placement?(h.style.position="absolute",h.style.marginLeft="-1em",h.style.paddingRight="0.5em",e[o].insertBefore(h,e[o].firstChild)):(h.style.paddingLeft="0.375em",e[o].appendChild(h))}for(o=0;o<d.length;o++)e.splice(d[o]-o,1);return this.elements=this.elements.concat(e),this},this.remove=function(A){for(var e,t,i=p(A),n=0;n<i.length;n++)(t=i[n].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[n]))&&this.elements.splice(e,1),i[n].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){return this.options.truncate||f(this.options),A.trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
|
53
|
+
// @license-end
|
54
|
+
</script>
|
55
|
+
<script>
|
56
|
+
/*
|
57
|
+
$(document).ready(function() {
|
58
|
+
$('[id^=toc]').each(function ()
|
59
|
+
{
|
60
|
+
var currentToc = $(this);
|
61
|
+
var url = window.location.href;
|
62
|
+
currentToc.wrap("<a href='" + url + "#" + currentToc.attr("id") + "' </a>");
|
63
|
+
});
|
64
|
+
});
|
65
|
+
*/
|
66
|
+
anchors.options = {
|
67
|
+
placement: 'left'
|
68
|
+
};
|
69
|
+
anchors.add('h1, h2, h3, h4');
|
70
|
+
</script>
|
71
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
require "isodoc/generic/html_convert"
|
3
|
+
require_relative "init"
|
4
|
+
require_relative "base_convert"
|
5
|
+
|
6
|
+
module IsoDoc
|
7
|
+
module BIPM
|
8
|
+
class HtmlConvert < IsoDoc::Generic::HtmlConvert
|
9
|
+
|
10
|
+
include BaseConvert
|
11
|
+
include Init
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
annex: Appendix
|
@@ -0,0 +1,18 @@
|
|
1
|
+
annex: Annexe
|
2
|
+
doctype_dict:
|
3
|
+
brochure: brochure
|
4
|
+
mise-en-pratique: mise-en-pratique
|
5
|
+
rapport: rapport
|
6
|
+
monographie: monographie
|
7
|
+
guide: guide
|
8
|
+
meeting-report: procès-verbal
|
9
|
+
technical-report: rapport-technique
|
10
|
+
working-party-note: note-du-groupe-de-travail
|
11
|
+
strategy: stratégie
|
12
|
+
cipm-mra: cipm-mra
|
13
|
+
resolution: résolution
|
14
|
+
stage_dict:
|
15
|
+
draft-proposal: projet-de-proposition
|
16
|
+
draft-development: projet-de-développement
|
17
|
+
in-force: en-vigeur
|
18
|
+
retired: retiré
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
require_relative "metadata"
|
3
|
+
require_relative "xref"
|
4
|
+
require_relative "i18n"
|
5
|
+
|
6
|
+
module IsoDoc
|
7
|
+
module BIPM
|
8
|
+
module Init
|
9
|
+
def metadata_init(lang, script, labels)
|
10
|
+
@meta = Metadata.new(lang, script, labels)
|
11
|
+
end
|
12
|
+
|
13
|
+
def xref_init(lang, script, klass, labels, options)
|
14
|
+
html = HtmlConvert.new(language: lang, script: script)
|
15
|
+
@xrefs = Xref.new(lang, script, html, labels, options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def i18n_init(lang, script, i18nyaml = nil)
|
19
|
+
@i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
|
3
|
+
module IsoDoc
|
4
|
+
module BIPM
|
5
|
+
class Metadata < IsoDoc::Generic::Metadata
|
6
|
+
def configuration
|
7
|
+
Metanorma::BIPM.configuration
|
8
|
+
end
|
9
|
+
|
10
|
+
def title(isoxml, _out)
|
11
|
+
lang1 = @lang == "fr" ? "fr" : "en"
|
12
|
+
lang2 = @lang == "fr" ? "en" : "fr"
|
13
|
+
set(:doctitle, @c.encode(isoxml&.at(
|
14
|
+
ns("//bibdata/title[@type='main'][@language='#{lang1}']"))&.text || ""))
|
15
|
+
set(:docsubtitle, @c.encode(isoxml&.at(
|
16
|
+
ns("//bibdata/title[@type='main'][@language='#{lang2}']"))&.text || ""))
|
17
|
+
set(:appendixtitle, @c.encode(isoxml&.at(
|
18
|
+
ns("//bibdata/title[@type='appendix'][@language='#{lang1}']"))&.text || ""))
|
19
|
+
set(:appendixsubtitle, @c.encode(isoxml&.at(
|
20
|
+
ns("//bibdata/title[@type='appendix'][@language='#{lang2}']"))&.text || ""))
|
21
|
+
end
|
22
|
+
|
23
|
+
def status_print(status)
|
24
|
+
return "Procès-Verbal" if status == "procès-verbal"
|
25
|
+
return "CIPM-MRA" if status == "cipm-mra"
|
26
|
+
status.split(/[- ]/).map.with_index do |s, i|
|
27
|
+
(%w(en de).include?(s) && i > 0) ? s : s.capitalize
|
28
|
+
end.join(' ')
|
29
|
+
end
|
30
|
+
|
31
|
+
def docid(isoxml, _out)
|
32
|
+
super
|
33
|
+
label1 = @lang == "fr" ? "Annexe" : "Appendix"
|
34
|
+
label2 = @lang == "fr" ? "Appendix" : "Annexe"
|
35
|
+
dn = isoxml.at(ns("//bibdata/ext/structuredidentifier/appendix"))
|
36
|
+
dn and set(:appendixid, @i18n.l10n("#{label1} #{dn&.text}"))
|
37
|
+
dn and set(:appendixid_alt, @i18n.l10n("#{label2} #{dn&.text}"))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
|
3
|
+
module IsoDoc
|
4
|
+
module BIPM
|
5
|
+
# A {Converter} implementation that generates PDF HTML output, and a
|
6
|
+
# document schema encapsulation of the document for validation
|
7
|
+
class PdfConvert < IsoDoc::XslfoPdfConvert
|
8
|
+
def initialize(options)
|
9
|
+
@libdir = File.dirname(__FILE__)
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def pdf_stylesheet(docxml)
|
14
|
+
"bipm.brochure.xsl"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
require "metanorma-generic"
|
3
|
+
require_relative "init"
|
4
|
+
|
5
|
+
module IsoDoc
|
6
|
+
module BIPM
|
7
|
+
class PresentationXMLConvert < IsoDoc::Generic::PresentationXMLConvert
|
8
|
+
def table1(f)
|
9
|
+
return if labelled_ancestor(f)
|
10
|
+
return if f["unnumbered"] && !f.at(ns("./name"))
|
11
|
+
n = @xrefs.anchor(f['id'], :label, false)
|
12
|
+
prefix_name(f, ".<tab/>", l10n("#{@i18n.table} #{n}"), "name")
|
13
|
+
end
|
14
|
+
|
15
|
+
def annex1(f)
|
16
|
+
lbl = @xrefs.anchor(f['id'], :label)
|
17
|
+
if t = f.at(ns("./title"))
|
18
|
+
t.children = "<strong>#{t.children.to_xml}</strong>"
|
19
|
+
end
|
20
|
+
prefix_name(f, ".<tab/>", lbl, "title")
|
21
|
+
end
|
22
|
+
|
23
|
+
include Init
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module IsoDoc
|
2
|
+
module BIPM
|
3
|
+
class Xref < IsoDoc::Xref
|
4
|
+
def back_anchor_names(docxml)
|
5
|
+
super
|
6
|
+
docxml.xpath(ns("//annex")).each_with_index do |c, i|
|
7
|
+
annex_names(c, (i+1).to_s)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def annex_name_lbl(clause, num)
|
12
|
+
l10n("<strong>#{@labels["annex"]} #{num}</strong>")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'metanorma'
|
2
|
+
require 'metanorma/bipm'
|
3
|
+
require "isodoc/bipm"
|
4
|
+
|
5
|
+
require 'asciidoctor' unless defined? Asciidoctor::Converter
|
6
|
+
require 'asciidoctor/bipm'
|
7
|
+
|
8
|
+
if defined? Metanorma
|
9
|
+
require_relative "metanorma/bipm"
|
10
|
+
Metanorma::Registry.instance.register(Metanorma::BIPM::Processor)
|
11
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "metanorma"
|
2
|
+
require "metanorma-generic"
|
3
|
+
require "metanorma/bipm/processor"
|
4
|
+
|
5
|
+
module Metanorma
|
6
|
+
module BIPM
|
7
|
+
class Configuration < Metanorma::Generic::Configuration
|
8
|
+
def initialize(*args)
|
9
|
+
super
|
10
|
+
html_configs ||= File.join(File.expand_path('config', __dir__), 'bipm_html.yml')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
extend Forwardable
|
16
|
+
|
17
|
+
attr_accessor :configuration
|
18
|
+
|
19
|
+
Configuration::CONFIG_ATTRS.each do |attr_name|
|
20
|
+
def_delegator :@configuration, attr_name
|
21
|
+
end
|
22
|
+
|
23
|
+
def configure
|
24
|
+
self.configuration ||= Configuration.new
|
25
|
+
yield(configuration)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
configure {}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
Metanorma::Registry.instance.register(Metanorma::BIPM::Processor)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "metanorma/processor"
|
2
|
+
|
3
|
+
module Metanorma
|
4
|
+
module BIPM
|
5
|
+
class Processor < Metanorma::Generic::Processor
|
6
|
+
def configuration
|
7
|
+
Metanorma::BIPM.configuration
|
8
|
+
end
|
9
|
+
|
10
|
+
def output_formats
|
11
|
+
super.merge(
|
12
|
+
html: "html",
|
13
|
+
pdf: "pdf"
|
14
|
+
).tap { |hs| hs.delete(:doc) }
|
15
|
+
end
|
16
|
+
|
17
|
+
def version
|
18
|
+
"Metanorma::BIPM #{Metanorma::BIPM::VERSION}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def output(isodoc_node, inname, outname, format, options={})
|
22
|
+
case format
|
23
|
+
when :html
|
24
|
+
IsoDoc::BIPM::HtmlConvert.new(options).convert(inname, isodoc_node, nil, outname)
|
25
|
+
when :presentation
|
26
|
+
IsoDoc::BIPM::PresentationXMLConvert.new(options).convert(inname, isodoc_node, nil, outname)
|
27
|
+
when :pdf
|
28
|
+
IsoDoc::BIPM::PdfConvert.new(options).convert(inname, isodoc_node, nil, outname)
|
29
|
+
else
|
30
|
+
super
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
lib = File.expand_path("../lib", __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require "metanorma/bipm/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "metanorma-bipm"
|
7
|
+
spec.version = Metanorma::BIPM::VERSION
|
8
|
+
spec.authors = ["Ribose Inc."]
|
9
|
+
spec.email = ["open.source@ribose.com"]
|
10
|
+
|
11
|
+
spec.summary = "metanorma-bipm lets you write BIPM standards in Metanorma."
|
12
|
+
spec.description = <<~DESCRIPTION
|
13
|
+
metanorma-vg lets you write Bureau International de Poids et Mesures (BIPM) standards in Metanorma syntax.
|
14
|
+
|
15
|
+
This gem is in active development.
|
16
|
+
DESCRIPTION
|
17
|
+
|
18
|
+
spec.homepage = "https://github.com/metanorma/metanorma-bipm"
|
19
|
+
spec.license = "BSD-2-Clause"
|
20
|
+
|
21
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
22
|
+
f.match(%r{^(test|spec|features)/})
|
23
|
+
end
|
24
|
+
spec.bindir = "exe"
|
25
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
|
+
spec.require_paths = ["lib"]
|
27
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
28
|
+
|
29
|
+
spec.add_dependency "metanorma-generic", "~> 1.7.0"
|
30
|
+
spec.add_dependency "isodoc", "~> 1.2.0"
|
31
|
+
|
32
|
+
spec.add_development_dependency "byebug", "~> 9.1"
|
33
|
+
spec.add_development_dependency "sassc", "2.4.0"
|
34
|
+
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
35
|
+
spec.add_development_dependency "guard", "~> 2.14"
|
36
|
+
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
37
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
38
|
+
spec.add_development_dependency "rspec", "~> 3.6"
|
39
|
+
spec.add_development_dependency "rubocop", "~> 0.50"
|
40
|
+
spec.add_development_dependency "simplecov", "~> 0.15"
|
41
|
+
spec.add_development_dependency "timecop", "~> 0.9"
|
42
|
+
end
|
data/metanorma.yml
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
metanorma_name: bipm
|
2
|
+
organization_name_short: BIPM
|
3
|
+
organization_name_long: Bureau International des poids et mesures
|
4
|
+
document_namespace: https://www.metanorma.org/ns/bipm
|
5
|
+
xml_root_tag: 'bipm-standard'
|
6
|
+
logo_path: lib/isodoc/bipm/html/logo.png
|
7
|
+
i18nyaml:
|
8
|
+
en: lib/isodoc/bipm/i18n-en.yaml
|
9
|
+
fr: lib/isodoc/bipm/i18n-fr.yaml
|
10
|
+
validate_rng_file: lib/asciidoctor/bipm/bipm.rng
|
11
|
+
htmlcoverpage: lib/isodoc/bipm/html/html_bipm_titlepage.html
|
12
|
+
htmlintropage: lib/isodoc/bipm/html/html_bipm_intro.html
|
13
|
+
htmlstylesheet: lib/isodoc/bipm/html/htmlstyle.scss
|
14
|
+
scripts: lib/isodoc/bipm/html/scripts.html
|
15
|
+
boilerplate:
|
16
|
+
en: lib/asciidoctor/bipm/boilerplate-en.xml
|
17
|
+
fr: lib/asciidoctor/bipm/boilerplate-fr.xml
|
18
|
+
published_stages:
|
19
|
+
- in-force
|
20
|
+
- retired
|
21
|
+
default_stage: in-force
|
22
|
+
stage_abbreviations:
|
23
|
+
draft-proposal:
|
24
|
+
draft-development:
|
25
|
+
in-force:
|
26
|
+
retired:
|
27
|
+
doctypes:
|
28
|
+
- brochure
|
29
|
+
- mise-en-pratique
|
30
|
+
- rapport
|
31
|
+
- monographie
|
32
|
+
- guide
|
33
|
+
- meeting-report
|
34
|
+
- technical-report
|
35
|
+
- working-part-note
|
36
|
+
- strategy
|
37
|
+
- cipm-mra
|
38
|
+
- resolution
|
39
|
+
default_doctype: brochure
|
40
|
+
committees:
|
41
|
+
- CGPM
|
42
|
+
- CIPM
|
43
|
+
- BIPM
|
44
|
+
- CCAUV
|
45
|
+
- CCEM
|
46
|
+
- CCL
|
47
|
+
- CCM
|
48
|
+
- CCPR
|
49
|
+
- CCQM
|
50
|
+
- CCRI
|
51
|
+
- CCT
|
52
|
+
- CCTF
|
53
|
+
- CCU
|
54
|
+
- CCL-CCT
|
55
|
+
- JCGM
|
56
|
+
- JCRB
|
57
|
+
- JCTLM
|
58
|
+
- INetQI
|
59
|
+
metadata_extensions:
|
60
|
+
comment-period:
|
61
|
+
comment-period-from:
|
62
|
+
_output: from
|
63
|
+
comment-period-to:
|
64
|
+
_output: to
|
65
|
+
si-aspect:
|
66
|
+
structuredidentifier:
|
67
|
+
docnumber:
|
68
|
+
partnumber:
|
69
|
+
_output: part
|
70
|
+
appendix-id:
|
71
|
+
_output: appendix
|
72
|
+
relations:
|
73
|
+
- supersedes
|
74
|
+
- superseded-by
|