metanorma-rsd 1.1.4 → 1.2.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.
@@ -0,0 +1,22 @@
1
+ module Asciidoctor
2
+ module Rsd
3
+ class Converter < Standoc::Converter
4
+ def content_validate(doc)
5
+ super
6
+ bibdata_validate(doc.root)
7
+ end
8
+
9
+ def bibdata_validate(doc)
10
+ stage_validate(doc)
11
+ end
12
+
13
+ def stage_validate(xmldoc)
14
+ stage = xmldoc&.at("//bibdata/status/stage")&.text
15
+ %w(proposal working-draft committee-draft draft-standard final-draft
16
+ published withdrawn).include? stage or
17
+ warn "Document Attributes: #{stage} is not a recognised status"
18
+ end
19
+ end
20
+ end
21
+ end
22
+
@@ -0,0 +1,64 @@
1
+ require_relative "metadata"
2
+ require "fileutils"
3
+
4
+ module IsoDoc
5
+ module Rsd
6
+ module BaseConvert
7
+ def convert1(docxml, filename, dir)
8
+ FileUtils.cp html_doc_path('logo.svg'), File.join(@localdir, "logo.svg")
9
+ @files_to_delete << File.join(@localdir, "logo.svg")
10
+ super
11
+ end
12
+
13
+ def metadata_init(lang, script, labels)
14
+ @meta = Metadata.new(lang, script, labels)
15
+ end
16
+
17
+ def annex_name(annex, name, div)
18
+ div.h1 **{ class: "Annex" } do |t|
19
+ t << "#{anchor(annex['id'], :label)} "
20
+ t.br
21
+ t.b do |b|
22
+ name&.children&.each { |c2| parse(c2, b) }
23
+ end
24
+ end
25
+ end
26
+
27
+ def term_defs_boilerplate(div, source, term, preface)
28
+ if source.empty? && term.nil?
29
+ div << @no_terms_boilerplate
30
+ else
31
+ div << term_defs_boilerplate_cont(source, term)
32
+ end
33
+ end
34
+
35
+ def i18n_init(lang, script)
36
+ super
37
+ @annex_lbl = "Appendix"
38
+ end
39
+
40
+ def fileloc(loc)
41
+ File.join(File.dirname(__FILE__), loc)
42
+ end
43
+
44
+ def cleanup(docxml)
45
+ super
46
+ term_cleanup(docxml)
47
+ end
48
+
49
+ def term_cleanup(docxml)
50
+ docxml.xpath("//p[@class = 'Terms']").each do |d|
51
+ h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
52
+ h2.add_child("&nbsp;")
53
+ h2.add_child(d.remove)
54
+ end
55
+ docxml
56
+ end
57
+
58
+ def info(isoxml, out)
59
+ @meta.security isoxml, out
60
+ super
61
+ end
62
+ end
63
+ end
64
+ end
@@ -1,5 +1,5 @@
1
- <div class="document-stage-band" id='{{ status | downcase | replace: " ", "-" }}-band'>
2
- <p class="document-stage">{{ status }}</p>
1
+ <div class="document-stage-band" id='{{ stage | downcase | replace: " ", "-" }}-band'>
2
+ <p class="document-stage">{{ stage }}</p>
3
3
  </div>
4
4
 
5
5
  <div class="document-type-band" id='{{ doctype | downcase | replace: " ", "-" }}-band'>
@@ -45,9 +45,9 @@
45
45
  </div>
46
46
 
47
47
  <div class="coverpage-stage-block" >
48
- <p><span class="coverpage-maturity" id="{{ status | replace: ' ', '-' | downcase }}">
48
+ <p><span class="coverpage-maturity" id="{{ stage | replace: ' ', '-' | downcase }}">
49
49
  {%- if unpublished -%}
50
- {{- status -}}
50
+ {{- stage -}}
51
51
  {%- else -%}
52
52
  {%- if publisheddate and publisheddate != "XXXX" -%}
53
53
  Published {{ publisheddate -}}
@@ -18,7 +18,7 @@ margin-left:4.25pt;margin-right:4.25pt'>
18
18
  <p class="MsoNormal" align="center" style='text-align:center;border:none;
19
19
  mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
20
20
  lang="EN-GB" style='font-size:16.0pt'>{%- if unpublished -%}
21
- {{- status -}}
21
+ {{- stage -}}
22
22
  {%- else -%}
23
23
  {%- if publisheddate and publisheddate != "XXXX" -%}
24
24
  Published {{ publisheddate -}}
@@ -1,6 +1,5 @@
1
+ require_relative "base_convert"
1
2
  require "isodoc"
2
- require_relative "metadata"
3
- require "fileutils"
4
3
 
5
4
  module IsoDoc
6
5
  module Rsd
@@ -14,12 +13,6 @@ module IsoDoc
14
13
  super
15
14
  end
16
15
 
17
- def convert1(docxml, filename, dir)
18
- FileUtils.cp html_doc_path('logo.svg'), File.join(@localdir, "logo.svg")
19
- @files_to_delete << File.join(@localdir, "logo.svg")
20
- super
21
- end
22
-
23
16
  def default_fonts(options)
24
17
  {
25
18
  bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'),
@@ -37,10 +30,6 @@ module IsoDoc
37
30
  }
38
31
  end
39
32
 
40
- def metadata_init(lang, script, labels)
41
- @meta = Metadata.new(lang, script, labels)
42
- end
43
-
44
33
  def googlefonts
45
34
  <<~HEAD.freeze
46
35
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i|Space+Mono:400,700" rel="stylesheet">
@@ -61,51 +50,7 @@ module IsoDoc
61
50
  docxml
62
51
  end
63
52
 
64
- def annex_name(annex, name, div)
65
- div.h1 **{ class: "Annex" } do |t|
66
- t << "#{get_anchors[annex['id']][:label]} "
67
- t.br
68
- t.b do |b|
69
- name&.children&.each { |c2| parse(c2, b) }
70
- end
71
- end
72
- end
73
-
74
- def term_defs_boilerplate(div, source, term, preface)
75
- if source.empty? && term.nil?
76
- div << @no_terms_boilerplate
77
- else
78
- div << term_defs_boilerplate_cont(source, term)
79
- end
80
- end
81
-
82
- def i18n_init(lang, script)
83
- super
84
- @annex_lbl = "Appendix"
85
- end
86
-
87
- def fileloc(loc)
88
- File.join(File.dirname(__FILE__), loc)
89
- end
90
-
91
- def cleanup(docxml)
92
- super
93
- term_cleanup(docxml)
94
- end
95
-
96
- def term_cleanup(docxml)
97
- docxml.xpath("//p[@class = 'Terms']").each do |d|
98
- h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
99
- h2.add_child("&nbsp;")
100
- h2.add_child(d.remove)
101
- end
102
- docxml
103
- end
104
-
105
- def info(isoxml, out)
106
- @meta.security isoxml, out
107
- super
108
- end
53
+ include BaseConvert
109
54
  end
110
55
  end
111
56
  end
@@ -6,7 +6,6 @@ module IsoDoc
6
6
  class Metadata < IsoDoc::Metadata
7
7
  def initialize(lang, script, labels)
8
8
  super
9
- set(:status, "XXX")
10
9
  end
11
10
 
12
11
  def title(isoxml, _out)
@@ -19,7 +18,7 @@ module IsoDoc
19
18
  end
20
19
 
21
20
  def author(isoxml, _out)
22
- tc = isoxml.at(ns("//bibdata/editorialgroup/committee"))
21
+ tc = isoxml.at(ns("//bibdata/ext/editorialgroup/committee"))
23
22
  set(:tc, tc.text) if tc
24
23
  end
25
24
 
@@ -70,7 +69,7 @@ module IsoDoc
70
69
  end
71
70
 
72
71
  def security(isoxml, _out)
73
- security = isoxml.at(ns("//bibdata/security")) || return
72
+ security = isoxml.at(ns("//bibdata/ext/security")) || return
74
73
  set(:security, security.text)
75
74
  end
76
75
  end
@@ -1,6 +1,5 @@
1
+ require_relative "base_convert"
1
2
  require "isodoc"
2
- require_relative "metadata"
3
- require "fileutils"
4
3
 
5
4
  module IsoDoc
6
5
  module Rsd
@@ -12,12 +11,6 @@ module IsoDoc
12
11
  super
13
12
  end
14
13
 
15
- def convert1(docxml, filename, dir)
16
- FileUtils.cp html_doc_path('logo.svg'), File.join(@localdir, "logo.svg")
17
- @files_to_delete << File.join(@localdir, "logo.svg")
18
- super
19
- end
20
-
21
14
  def default_fonts(options)
22
15
  {
23
16
  bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'),
@@ -35,10 +28,6 @@ module IsoDoc
35
28
  }
36
29
  end
37
30
 
38
- def metadata_init(lang, script, labels)
39
- @meta = Metadata.new(lang, script, labels)
40
- end
41
-
42
31
  def googlefonts()
43
32
  <<~HEAD.freeze
44
33
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i|Space+Mono:400,700" rel="stylesheet">
@@ -59,51 +48,7 @@ module IsoDoc
59
48
  docxml
60
49
  end
61
50
 
62
- def annex_name(annex, name, div)
63
- div.h1 **{ class: "Annex" } do |t|
64
- t << "#{get_anchors[annex['id']][:label]} "
65
- t.br
66
- t.b do |b|
67
- name&.children&.each { |c2| parse(c2, b) }
68
- end
69
- end
70
- end
71
-
72
- def term_defs_boilerplate(div, source, term, preface)
73
- if source.empty? && term.nil?
74
- div << @no_terms_boilerplate
75
- else
76
- div << term_defs_boilerplate_cont(source, term)
77
- end
78
- end
79
-
80
- def i18n_init(lang, script)
81
- super
82
- @annex_lbl = "Appendix"
83
- end
84
-
85
- def fileloc(loc)
86
- File.join(File.dirname(__FILE__), loc)
87
- end
88
-
89
- def cleanup(docxml)
90
- super
91
- term_cleanup(docxml)
92
- end
93
-
94
- def term_cleanup(docxml)
95
- docxml.xpath("//p[@class = 'Terms']").each do |d|
96
- h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
97
- h2.add_child("&nbsp;")
98
- h2.add_child(d.remove)
99
- end
100
- docxml
101
- end
102
-
103
- def info(isoxml, out)
104
- @meta.security isoxml, out
105
- super
106
- end
51
+ include BaseConvert
107
52
  end
108
53
  end
109
54
  end
@@ -1,6 +1,5 @@
1
+ require_relative "base_convert"
1
2
  require "isodoc"
2
- require_relative "metadata"
3
- require "fileutils"
4
3
 
5
4
  module IsoDoc
6
5
  module Rsd
@@ -13,12 +12,6 @@ module IsoDoc
13
12
  super
14
13
  end
15
14
 
16
- def convert1(docxml, filename, dir)
17
- FileUtils.cp html_doc_path('logo.svg'), File.join(@localdir, "logo.svg")
18
- @files_to_delete << File.join(@localdir, "logo.svg")
19
- super
20
- end
21
-
22
15
  def default_fonts(options)
23
16
  {
24
17
  bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Arial",sans-serif'),
@@ -39,9 +32,6 @@ module IsoDoc
39
32
  }
40
33
  end
41
34
 
42
- def metadata_init(lang, script, labels)
43
- @meta = Metadata.new(lang, script, labels)
44
- end
45
35
 
46
36
  def make_body(xml, docxml)
47
37
  body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72" }
@@ -52,51 +42,7 @@ module IsoDoc
52
42
  end
53
43
  end
54
44
 
55
- def info(isoxml, out)
56
- @meta.security isoxml, out
57
- super
58
- end
59
-
60
- def annex_name(annex, name, div)
61
- div.h1 **{ class: "Annex" } do |t|
62
- t << "#{get_anchors[annex['id']][:label]} "
63
- t.br
64
- t.b do |b|
65
- name&.children&.each { |c2| parse(c2, b) }
66
- end
67
- end
68
- end
69
-
70
- def term_defs_boilerplate(div, source, term, preface)
71
- if source.empty? && term.nil?
72
- div << @no_terms_boilerplate
73
- else
74
- div << term_defs_boilerplate_cont(source, term)
75
- end
76
- end
77
-
78
- def i18n_init(lang, script)
79
- super
80
- @annex_lbl = "Appendix"
81
- end
82
-
83
- def fileloc(loc)
84
- File.join(File.dirname(__FILE__), loc)
85
- end
86
-
87
- def cleanup(docxml)
88
- super
89
- term_cleanup(docxml)
90
- end
91
-
92
- def term_cleanup(docxml)
93
- docxml.xpath("//p[@class = 'Terms']").each do |d|
94
- h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
95
- h2.add_child("&nbsp;")
96
- h2.add_child(d.remove)
97
- end
98
- docxml
99
- end
45
+ include BaseConvert
100
46
  end
101
47
  end
102
48
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Rsd
3
- VERSION = "1.1.4"
3
+ VERSION = "1.2.0"
4
4
  end
5
5
  end
@@ -26,12 +26,13 @@ Gem::Specification.new do |spec|
26
26
  spec.bindir = "exe"
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
29
30
 
30
31
  spec.add_dependency "asciidoctor", "~> 1.5.7"
31
32
  spec.add_dependency "htmlentities", "~> 4.3.4"
32
33
  spec.add_dependency "nokogiri"
33
- spec.add_dependency "metanorma-standoc", "~> 1.1.0"
34
- spec.add_dependency "isodoc", "~> 0.9.0"
34
+ spec.add_dependency "metanorma-standoc", "~> 1.2.0"
35
+ spec.add_dependency "isodoc", "~> 0.10.0"
35
36
 
36
37
  spec.add_development_dependency "byebug", "~> 9.1"
37
38
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-rsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-04 00:00:00.000000000 Z
11
+ date: 2019-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.1.0
61
+ version: 1.2.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.1.0
68
+ version: 1.2.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: isodoc
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.9.0
75
+ version: 0.10.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.9.0
82
+ version: 0.10.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: byebug
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -252,6 +252,8 @@ files:
252
252
  - lib/asciidoctor/rsd/isostandard.rng
253
253
  - lib/asciidoctor/rsd/reqt.rng
254
254
  - lib/asciidoctor/rsd/rsd.rng
255
+ - lib/asciidoctor/rsd/validate.rb
256
+ - lib/isodoc/rsd/base_convert.rb
255
257
  - lib/isodoc/rsd/html/header.html
256
258
  - lib/isodoc/rsd/html/html_rsd_intro.html
257
259
  - lib/isodoc/rsd/html/html_rsd_titlepage.html
@@ -284,7 +286,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
284
286
  requirements:
285
287
  - - ">="
286
288
  - !ruby/object:Gem::Version
287
- version: '0'
289
+ version: 2.4.0
288
290
  required_rubygems_version: !ruby/object:Gem::Requirement
289
291
  requirements:
290
292
  - - ">="
@@ -292,7 +294,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
294
  version: '0'
293
295
  requirements: []
294
296
  rubyforge_project:
295
- rubygems_version: 2.7.6
297
+ rubygems_version: 2.7.7
296
298
  signing_key:
297
299
  specification_version: 4
298
300
  summary: metanorma-rsd lets you write RSD in AsciiDoc.