metanorma-acme 1.4.0 → 1.4.1

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: 471e22b64bfe89b616795392ad00f622e74ebe49f853855424fb53aaa57164f6
4
- data.tar.gz: 164a35112070dc99ac9e8cfe5559bd93c104ee0648057fb506a997c15a433dd4
3
+ metadata.gz: 0e8878b8c45aca79d255b1c00055dab18317ee51f34c3444b2413a8c9d40eede
4
+ data.tar.gz: 81ec71492aa8194efa5613732f269be81968d9c24e50e5ad386e788ebffac35c
5
5
  SHA512:
6
- metadata.gz: ee7769d61b4c768ea8c78a2be98142b5aef55be19e9db23a9399a6684ec070805a8e6ecb11ec2c238a3f43fec35d5b743a9e1701023a0db02a7027533b5b73eb
7
- data.tar.gz: 93670ae87f6e3730406f2b1185eb93a82bb8490c3d5e15154e45c878466f36d41719ed5f554a851e9ab69868a968d688c936fbf30a779ec125ecba794394b7b9
6
+ metadata.gz: af551bed15e41f056f3b31d8ffe5768b2c0daae3dbe39e721f53733b9e88fe79c165e71a609dcf450374bd352d9092d053cdd6ae673b07b449ce9151c2784d92
7
+ data.tar.gz: 8448ed20ea599f56075ea49ea1293722e0fda3b2ef65039af1daeea0af11c31940afdf754c0590689748412270300784866c2c310d9a3f5de49c992a9fe12896
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <grammar xmlns="http://relaxng.org/ns/structure/1.0">
2
+ <grammar ns="https://www.metanorma.org/ns/acme" xmlns="http://relaxng.org/ns/structure/1.0">
3
3
  <!--
4
4
  Currently we inherit from a namespaced grammar, isostandard. Until we inherit from isodoc,
5
5
  we cannot have a new default namespace: we will end up with a grammar with two different
@@ -43,11 +43,17 @@ module Asciidoctor
43
43
  end
44
44
  end
45
45
 
46
+ def docidentifier_cleanup(xmldoc)
47
+ template = configuration.docid_template ||
48
+ "{{ organization_name_short }} {{ docnumeric }}"
49
+ docid = xmldoc.at("//bibdata/docidentifier")
50
+ id = boilerplate_isodoc(xmldoc).populate_template(template, nil)
51
+ id.empty? and docid.remove or docid.children = id
52
+ end
53
+
46
54
  def metadata_id(node, xml)
47
- return unless node.attr("docnumber")
48
55
  xml.docidentifier do |i|
49
- i << "#{configuration.organization_name_short} "\
50
- "#{node.attr("docnumber")}"
56
+ i << "DUMMY"
51
57
  end
52
58
  xml.docnumber { |i| i << node.attr("docnumber") }
53
59
  end
@@ -64,16 +70,6 @@ module Asciidoctor
64
70
  end
65
71
  end
66
72
 
67
- def metadata_security(node, xml)
68
- security = node.attr("security") || return
69
- xml.security security
70
- end
71
-
72
- def metadata_ext(node, xml)
73
- super
74
- metadata_security(node, xml)
75
- end
76
-
77
73
  def title_validate(root)
78
74
  nil
79
75
  end
@@ -121,7 +117,7 @@ module Asciidoctor
121
117
  content_validate(doc)
122
118
  schema_validate(formattedstr_strip(doc.dup),
123
119
  configuration.validate_rng_file ||
124
- File.join(File.dirname(__FILE__), "acme.rng"))
120
+ File.join(File.dirname(__FILE__), "acme.rng"))
125
121
  end
126
122
 
127
123
  def html_path_acme(file)
@@ -154,6 +150,14 @@ module Asciidoctor
154
150
  def configuration
155
151
  Metanorma::Acme.configuration
156
152
  end
153
+
154
+ def boilerplate_isodoc(xmldoc)
155
+ conv = super
156
+ Metanorma::Acme::Configuration::CONFIG_ATTRS.each do |a|
157
+ conv.labels[a] = configuration.send a
158
+ end
159
+ conv
160
+ end
157
161
  end
158
162
  end
159
163
  end
@@ -5,19 +5,13 @@ require "fileutils"
5
5
  module IsoDoc
6
6
  module Acme
7
7
  module BaseConvert
8
- #def convert1(docxml, filename, dir)
9
- # FileUtils.cp html_doc_path('logo.jpg'), File.join(@localdir, "logo.jpg")
10
- # @files_to_delete << File.join(@localdir, "logo.jpg")
11
- # super
12
- #end
13
-
14
8
  def metadata_init(lang, script, labels)
15
9
  @meta = Metadata.new(lang, script, labels)
16
10
  end
17
11
 
18
- def info(isoxml, out)
19
- @meta.security isoxml, out
20
- super
12
+ def baselocation(loc)
13
+ return nil if loc.nil?
14
+ File.expand_path(File.join(File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
21
15
  end
22
16
 
23
17
  def annex_name(annex, name, div)
@@ -13,6 +13,14 @@ module IsoDoc
13
13
  super
14
14
  end
15
15
 
16
+ class << self
17
+ attr_accessor :_file
18
+ end
19
+
20
+ def self.inherited( k )
21
+ k._file = caller_locations.first.absolute_path
22
+ end
23
+
16
24
  def default_fonts(options)
17
25
  {
18
26
  bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'),
@@ -23,15 +31,15 @@ module IsoDoc
23
31
 
24
32
  def default_file_locations(_options)
25
33
  {
26
- htmlstylesheet: configuration.htmlstylesheet ||
34
+ htmlstylesheet: baselocation(configuration.htmlstylesheet) ||
27
35
  html_doc_path("htmlstyle.scss"),
28
- htmlcoverpage: configuration.htmlcoverpage ||
36
+ htmlcoverpage: baselocation(configuration.htmlcoverpage) ||
29
37
  html_doc_path("html_acme_titlepage.html"),
30
- htmlintropage: configuration.htmlintropage ||
38
+ htmlintropage: baselocation(configuration.htmlintropage) ||
31
39
  html_doc_path("html_acme_intro.html"),
32
- scripts: configuration.scripts ||
40
+ scripts: baselocation(configuration.scripts) ||
33
41
  html_doc_path("scripts.html"),
34
- i18nyaml: configuration.i18nyaml
42
+ i18nyaml: baselocation(configuration.i18nyaml)
35
43
  }
36
44
  end
37
45
 
@@ -8,74 +8,40 @@ module IsoDoc
8
8
  super
9
9
  here = File.dirname(__FILE__)
10
10
  default_logo_path = File.expand_path(File.join(here, "html", "logo.jpg"))
11
- set(:logo, configuration.logo_path || default_logo_path)
11
+ set(:logo, baselocation(configuration.logo_path) || default_logo_path)
12
12
  end
13
13
 
14
- def configuration
15
- Metanorma::Acme.configuration
16
- end
17
-
18
- def author(isoxml, _out)
19
- super
20
- tc = isoxml.at(ns("//bibdata/ext/editorialgroup/committee"))
21
- set(:tc, tc.text) if tc
14
+ class << self
15
+ attr_accessor :_file
22
16
  end
23
17
 
24
- def docid(isoxml, _out)
25
- docnumber = isoxml.at(ns("//bibdata/docidentifier"))
26
- docstatus = isoxml.at(ns("//bibdata/status/stage"))
27
- dn = docnumber&.text
28
- if docstatus
29
- abbr = status_abbr(docstatus.text)
30
- dn = "#{dn}(#{abbr})" unless abbr.empty?
31
- end
32
- set(:docnumber, dn)
18
+ def self.inherited( k )
19
+ k._file = caller_locations.first.absolute_path
33
20
  end
34
21
 
35
- def status_abbr(status)
36
- case status
37
- when "working-draft" then "wd"
38
- when "committee-draft" then "cd"
39
- when "draft-standard" then "d"
40
- else
41
- ""
42
- end
22
+ def baselocation(loc)
23
+ return nil if loc.nil?
24
+ File.expand_path(File.join(File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
43
25
  end
44
26
 
45
- def unpublished(status)
46
- !%w(published withdrawn).include? status.downcase
27
+ def configuration
28
+ Metanorma::Acme.configuration
47
29
  end
48
30
 
49
- def version(isoxml, _out)
31
+ def author(isoxml, _out)
50
32
  super
51
- revdate = get[:revdate]
52
- set(:revdate_monthyear, monthyr(revdate))
33
+ tc = isoxml.at(ns("//bibdata/ext/editorialgroup/committee"))
34
+ set(:tc, tc.text) if tc
53
35
  end
54
36
 
55
- MONTHS = {
56
- "01": "January",
57
- "02": "February",
58
- "03": "March",
59
- "04": "April",
60
- "05": "May",
61
- "06": "June",
62
- "07": "July",
63
- "08": "August",
64
- "09": "September",
65
- "10": "October",
66
- "11": "November",
67
- "12": "December",
68
- }.freeze
69
-
70
- def monthyr(isodate)
71
- m = /(?<yr>\d\d\d\d)-(?<mo>\d\d)/.match isodate
72
- return isodate unless m && m[:yr] && m[:mo]
73
- return "#{MONTHS[m[:mo].to_sym]} #{m[:yr]}"
37
+ def stage_abbr(status)
38
+ return super unless configuration.stage_abbreviations
39
+ Hash(configuration.stage_abbreviations).dig(status)
74
40
  end
75
41
 
76
- def security(isoxml, _out)
77
- security = isoxml.at(ns("//bibdata/ext/security")) || return
78
- set(:security, security.text)
42
+ def unpublished(status)
43
+ stages = configuration&.published_stages || ["published"]
44
+ !(Array(stages).map { |m| m.downcase }.include? status.downcase)
79
45
  end
80
46
  end
81
47
  end
@@ -11,6 +11,14 @@ module IsoDoc
11
11
  super
12
12
  end
13
13
 
14
+ class << self
15
+ attr_accessor :_file
16
+ end
17
+
18
+ def self.inherited( k )
19
+ k._file = caller_locations.first.absolute_path
20
+ end
21
+
14
22
  def default_fonts(options)
15
23
  {
16
24
  bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'),
@@ -21,13 +29,13 @@ module IsoDoc
21
29
 
22
30
  def default_file_locations(_options)
23
31
  {
24
- htmlstylesheet: configuration.htmlstylesheet ||
32
+ htmlstylesheet: baselocation(configuration.htmlstylesheet) ||
25
33
  html_doc_path("htmlstyle.scss"),
26
- htmlcoverpage: configuration.htmlcoverpage ||
34
+ htmlcoverpage: baselocation(configuration.htmlcoverpage) ||
27
35
  html_doc_path("html_acme_titlepage.html"),
28
- htmlintropage: configuration.htmlintropage ||
36
+ htmlintropage: baselocation(configuration.htmlintropage) ||
29
37
  html_doc_path("html_acme_intro.html"),
30
- scripts_pdf: configuration.scripts_pdf ||
38
+ scripts_pdf: baselocation(configuration.scripts_pdf) ||
31
39
  html_doc_path("scripts.pdf.html")
32
40
  }
33
41
  end
@@ -12,6 +12,14 @@ module IsoDoc
12
12
  super
13
13
  end
14
14
 
15
+ class << self
16
+ attr_accessor :_file
17
+ end
18
+
19
+ def self.inherited( k )
20
+ k._file = caller_locations.first.absolute_path
21
+ end
22
+
15
23
  def default_fonts(options)
16
24
  {
17
25
  bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Arial",sans-serif'),
@@ -22,17 +30,17 @@ module IsoDoc
22
30
 
23
31
  def default_file_locations(options)
24
32
  {
25
- wordstylesheet: configuration.wordstylesheet ||
33
+ wordstylesheet: baselocation(configuration.wordstylesheet) ||
26
34
  html_doc_path("wordstyle.scss"),
27
- standardstylesheet: configuration.standardstylesheet ||
35
+ standardstylesheet: baselocation(configuration.standardstylesheet) ||
28
36
  html_doc_path("acme.scss"),
29
- header: configuration.header ||
37
+ header: baselocation(configuration.header) ||
30
38
  html_doc_path("header.html"),
31
- wordcoverpage: configuration.wordcoverpage ||
39
+ wordcoverpage: baselocation(configuration.wordcoverpage) ||
32
40
  html_doc_path("word_acme_titlepage.html"),
33
- wordintropage: configuration.wordintropage ||
41
+ wordintropage: baselocation(configuration.wordintropage) ||
34
42
  html_doc_path("word_acme_intro.html"),
35
- i18nyaml: configuration.i18nyaml,
43
+ i18nyaml: baselocation(configuration.i18nyaml),
36
44
  ulstyle: "l3",
37
45
  olstyle: "l2",
38
46
  }
@@ -1,12 +1,13 @@
1
1
  require "metanorma/acme/processor"
2
2
  require "metanorma/acme/version"
3
3
  require 'forwardable'
4
+ require 'yaml'
4
5
 
5
6
  module Metanorma
6
7
  module Acme
7
8
  ORGANIZATION_NAME_SHORT = "Acme"
8
9
  ORGANIZATION_NAME_LONG = "Acme Corp."
9
- DOCUMENT_NAMESPACE = "https://open.ribose.com/standards/acme"
10
+ DOCUMENT_NAMESPACE = "https://metanorma.org/ns/acme"
10
11
  YAML_CONFIG_FILE = 'metanorma.yml'
11
12
 
12
13
  class Configuration
@@ -14,12 +15,15 @@ module Metanorma
14
15
  organization_name_short
15
16
  organization_name_long
16
17
  document_namespace
18
+ docid_template
17
19
  i18nyaml
18
20
  logo_path
19
21
  header
20
22
  htmlcoverpage
21
23
  htmlintropage
22
24
  htmlstylesheet
25
+ published_stages
26
+ stage_abbreviations
23
27
  scripts
24
28
  scripts_pdf
25
29
  standardstylesheet
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Acme
3
- VERSION = "1.4.0"
3
+ VERSION = "1.4.1"
4
4
  end
5
5
  end
@@ -13,4 +13,7 @@ standardstylesheet: /metanorma-mine/lib/isodoc/mine/html/
13
13
  header: /metanorma-mine/lib/isodoc/mine/html/header.html
14
14
  wordcoverpage: /metanorma-mine/lib/isodoc/mine/html/word_mine_titlepage.html
15
15
  wordintropage: /metanorma-mine/lib/isodoc/mine/html/word_mine_intro.html
16
- wordstylesheet: /metanorma-mine/lib/isodoc/mine/html/wordstyle.scss
16
+ wordstylesheet: /metanorma-mine/lib/isodoc/mine/html/wordstyle.scss
17
+ docid_template: "{{ organization_name_short }} {{ docnumeric }}"
18
+ published_stages:
19
+ - published
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-acme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
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-02-04 00:00:00.000000000 Z
11
+ date: 2020-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities