metanorma-generic 1.6.3 → 1.7.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 +4 -4
- data/lib/asciidoctor/generic/basicdoc.rng +4 -11
- data/lib/asciidoctor/generic/converter.rb +37 -3
- data/lib/asciidoctor/generic/generic.rng +7 -0
- data/lib/asciidoctor/generic/isodoc.rng +13 -6
- data/lib/isodoc/generic/base_convert.rb +2 -0
- data/lib/isodoc/generic/html_convert.rb +16 -9
- data/lib/isodoc/generic/i18n.rb +26 -0
- data/lib/isodoc/generic/init.rb +6 -5
- data/lib/isodoc/generic/metadata.rb +5 -0
- data/lib/isodoc/generic/utils.rb +21 -0
- data/lib/isodoc/generic/word_convert.rb +19 -12
- data/lib/metanorma/generic.rb +3 -0
- data/lib/metanorma/generic/version.rb +1 -1
- data/metanorma-generic.gemspec +1 -1
- data/metanorma.yml.example +5 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbd87f79baeb66107643bd3c6e9377853f72f3b19d17615aced5737609ea31e4
|
4
|
+
data.tar.gz: a1e014a6a7076b4f39c37bcb35d67fecb221ff0494ba38ce88482affb8aef854
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b26374f517b2c486fd6780a66f05357689990026dab52e88c8f8b9a1aec881653a4f23f915bf5e6944c83ae8fe943046ae42047382c3968a5b1cca11204f5a53
|
7
|
+
data.tar.gz: 35502f72cf8aa2f3f19848d4fe9326994f8af544531e71da3dabf61215329c164404cfd5d7fab6e72da66f43ae851272ceaf6a1d9fbf6a72fdf15552d6dcd4e6
|
@@ -158,17 +158,7 @@
|
|
158
158
|
<data type="ID"/>
|
159
159
|
</attribute>
|
160
160
|
<oneOrMore>
|
161
|
-
<
|
162
|
-
<ref name="formula"/>
|
163
|
-
<ref name="ul"/>
|
164
|
-
<ref name="ol"/>
|
165
|
-
<ref name="dl"/>
|
166
|
-
<ref name="quote"/>
|
167
|
-
<ref name="sourcecode"/>
|
168
|
-
<ref name="paragraph"/>
|
169
|
-
<ref name="table"/>
|
170
|
-
<ref name="figure"/>
|
171
|
-
</choice>
|
161
|
+
<ref name="paragraph"/>
|
172
162
|
</oneOrMore>
|
173
163
|
</element>
|
174
164
|
</define>
|
@@ -1028,6 +1018,9 @@
|
|
1028
1018
|
<value>alphabet_upper</value>
|
1029
1019
|
</choice>
|
1030
1020
|
</attribute>
|
1021
|
+
<optional>
|
1022
|
+
<attribute name="start"/>
|
1023
|
+
</optional>
|
1031
1024
|
<oneOrMore>
|
1032
1025
|
<ref name="li"/>
|
1033
1026
|
</oneOrMore>
|
@@ -32,6 +32,22 @@ module Asciidoctor
|
|
32
32
|
configuration.organization_name_long
|
33
33
|
end
|
34
34
|
|
35
|
+
def org_abbrev
|
36
|
+
if !configuration.organization_name_long.empty? &&
|
37
|
+
!configuration.organization_name_short.empty? &&
|
38
|
+
configuration.organization_name_long !=
|
39
|
+
configuration.organization_name_short
|
40
|
+
{ configuration.organization_name_long =>
|
41
|
+
configuration.organization_name_short }
|
42
|
+
else
|
43
|
+
super
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def relaton_relations
|
48
|
+
Array(configuration.relations) || []
|
49
|
+
end
|
50
|
+
|
35
51
|
def metadata_committee(node, xml)
|
36
52
|
return unless node.attr("committee")
|
37
53
|
xml.editorialgroup do |a|
|
@@ -117,10 +133,10 @@ module Asciidoctor
|
|
117
133
|
|
118
134
|
def outputs(node, ret)
|
119
135
|
File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
|
120
|
-
presentation_xml_converter(node)
|
121
|
-
html_converter(node)
|
136
|
+
presentation_xml_converter(node)&.convert(@filename + ".xml")
|
137
|
+
html_converter(node)&.convert(@filename + ".presentation.xml",
|
122
138
|
nil, false, "#{@filename}.html")
|
123
|
-
doc_converter(node)
|
139
|
+
doc_converter(node)&.convert(@filename + ".presentation.xml",
|
124
140
|
nil, false, "#{@filename}.doc")
|
125
141
|
pdf_converter(node)&.convert(@filename + ".presentation.xml",
|
126
142
|
nil, false, "#{@filename}.pdf")
|
@@ -141,6 +157,7 @@ module Asciidoctor
|
|
141
157
|
|
142
158
|
def bibdata_validate(doc)
|
143
159
|
stage_validate(doc)
|
160
|
+
committee_validate(doc)
|
144
161
|
end
|
145
162
|
|
146
163
|
def stage_validate(xmldoc)
|
@@ -151,6 +168,15 @@ module Asciidoctor
|
|
151
168
|
@log.add("Document Attributes", nil, "#{stage} is not a recognised status")
|
152
169
|
end
|
153
170
|
|
171
|
+
def committee_validate(xmldoc)
|
172
|
+
committees = Array(configuration&.committees) || return
|
173
|
+
committees.empty? and return
|
174
|
+
xmldoc.xpath("//bibdata/ext/editorialgroup/committee").each do |c|
|
175
|
+
committees.include? c.text or
|
176
|
+
@log.add("Document Attributes", nil, "#{c.text} is not a recognised committee")
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
154
180
|
def sections_cleanup(x)
|
155
181
|
super
|
156
182
|
x.xpath("//*[@inline-header]").each do |h|
|
@@ -187,6 +213,14 @@ module Asciidoctor
|
|
187
213
|
end
|
188
214
|
conv
|
189
215
|
end
|
216
|
+
|
217
|
+
def boilerplate_file(xmldoc)
|
218
|
+
f = configuration.boilerplate
|
219
|
+
f.nil? and return super
|
220
|
+
f.is_a? String and return baselocation(f)
|
221
|
+
f.is_a? Hash and f[@lang] and return baselocation(f[@lang])
|
222
|
+
super
|
223
|
+
end
|
190
224
|
end
|
191
225
|
end
|
192
226
|
end
|
@@ -59,6 +59,13 @@
|
|
59
59
|
</define>
|
60
60
|
<define name="generic-standard">
|
61
61
|
<element name="generic-standard">
|
62
|
+
<attribute name="version"/>
|
63
|
+
<attribute name="type">
|
64
|
+
<choice>
|
65
|
+
<value>semantic</value>
|
66
|
+
<value>presentation</value>
|
67
|
+
</choice>
|
68
|
+
</attribute>
|
62
69
|
<ref name="bibdata"/>
|
63
70
|
<zeroOrMore>
|
64
71
|
<ref name="termdocsource"/>
|
@@ -64,6 +64,11 @@
|
|
64
64
|
</choice>
|
65
65
|
</attribute>
|
66
66
|
</optional>
|
67
|
+
<optional>
|
68
|
+
<attribute name="droploc">
|
69
|
+
<data type="boolean"/>
|
70
|
+
</attribute>
|
71
|
+
</optional>
|
67
72
|
<text/>
|
68
73
|
</element>
|
69
74
|
</define>
|
@@ -859,6 +864,13 @@
|
|
859
864
|
</define>
|
860
865
|
<define name="standard-document">
|
861
866
|
<element name="standard-document">
|
867
|
+
<attribute name="version"/>
|
868
|
+
<attribute name="type">
|
869
|
+
<choice>
|
870
|
+
<value>semantic</value>
|
871
|
+
<value>presentation</value>
|
872
|
+
</choice>
|
873
|
+
</attribute>
|
862
874
|
<ref name="bibdata"/>
|
863
875
|
<optional>
|
864
876
|
<ref name="boilerplate"/>
|
@@ -880,7 +892,7 @@
|
|
880
892
|
<oneOrMore>
|
881
893
|
<choice>
|
882
894
|
<ref name="content"/>
|
883
|
-
<ref name="
|
895
|
+
<ref name="abstract"/>
|
884
896
|
<ref name="foreword"/>
|
885
897
|
<ref name="introduction"/>
|
886
898
|
<ref name="acknowledgements"/>
|
@@ -1481,11 +1493,6 @@
|
|
1481
1493
|
</optional>
|
1482
1494
|
</element>
|
1483
1495
|
</define>
|
1484
|
-
<define name="preface_abstract">
|
1485
|
-
<element name="abstract">
|
1486
|
-
<ref name="Basic-Section"/>
|
1487
|
-
</element>
|
1488
|
-
</define>
|
1489
1496
|
<define name="term-clause">
|
1490
1497
|
<element name="clause">
|
1491
1498
|
<optional>
|
@@ -4,11 +4,13 @@ require "fileutils"
|
|
4
4
|
module IsoDoc
|
5
5
|
module Generic
|
6
6
|
module BaseConvert
|
7
|
+
=begin
|
7
8
|
def baselocation(loc)
|
8
9
|
return nil if loc.nil?
|
9
10
|
File.expand_path(File.join(
|
10
11
|
File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
|
11
12
|
end
|
13
|
+
=end
|
12
14
|
|
13
15
|
def cleanup(docxml)
|
14
16
|
super
|
@@ -24,10 +24,14 @@ module IsoDoc
|
|
24
24
|
|
25
25
|
def default_fonts(options)
|
26
26
|
{
|
27
|
-
bodyfont: (
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
bodyfont: (
|
28
|
+
options[:script] == "Hans" ? '"SimSun",serif' :
|
29
|
+
configuration.html_bodyfont || '"Overpass",sans-serif'
|
30
|
+
),
|
31
|
+
headerfont: (
|
32
|
+
options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
33
|
+
configuration.html_headerfont || '"Overpass",sans-serif'
|
34
|
+
),
|
31
35
|
monospacefont: configuration.html_monospacefont || '"Space Mono",monospace'
|
32
36
|
}
|
33
37
|
end
|
@@ -35,20 +39,23 @@ module IsoDoc
|
|
35
39
|
def default_file_locations(_options)
|
36
40
|
{
|
37
41
|
htmlstylesheet: baselocation(configuration.htmlstylesheet) ||
|
38
|
-
|
42
|
+
html_doc_path("htmlstyle.scss"),
|
39
43
|
htmlcoverpage: baselocation(configuration.htmlcoverpage) ||
|
40
|
-
|
44
|
+
html_doc_path("html_generic_titlepage.html"),
|
41
45
|
htmlintropage: baselocation(configuration.htmlintropage) ||
|
42
|
-
|
46
|
+
html_doc_path("html_generic_intro.html"),
|
43
47
|
scripts: baselocation(configuration.scripts) ||
|
44
|
-
|
45
|
-
i18nyaml:
|
48
|
+
html_doc_path("scripts.html"),
|
49
|
+
i18nyaml: (configuration.i18nyaml.is_a?(String) ?
|
50
|
+
baselocation(configuration.i18nyaml) : nil)
|
46
51
|
}
|
47
52
|
end
|
48
53
|
|
54
|
+
=begin
|
49
55
|
def configuration
|
50
56
|
Metanorma::Generic.configuration
|
51
57
|
end
|
58
|
+
=end
|
52
59
|
|
53
60
|
def googlefonts
|
54
61
|
return unless configuration.webfont
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative "utils"
|
2
|
+
|
3
|
+
module IsoDoc
|
4
|
+
module Generic
|
5
|
+
class I18n < IsoDoc::I18n
|
6
|
+
class << self
|
7
|
+
attr_accessor :_file
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.inherited( k )
|
11
|
+
k._file = caller_locations.first.absolute_path
|
12
|
+
end
|
13
|
+
|
14
|
+
def load_yaml1(lang, script)
|
15
|
+
return super unless configuration.i18nyaml
|
16
|
+
file = configuration.i18nyaml.is_a?(Hash) ?
|
17
|
+
configuration.i18nyaml[lang] : configuration.i18nyaml
|
18
|
+
return super if file.nil?
|
19
|
+
y = YAML.load_file(baselocation(file))
|
20
|
+
super.merge(y)
|
21
|
+
end
|
22
|
+
|
23
|
+
include Utils
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/isodoc/generic/init.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require "isodoc"
|
2
2
|
require_relative "metadata"
|
3
3
|
require_relative "xref"
|
4
|
+
require_relative "i18n"
|
5
|
+
require_relative "utils"
|
4
6
|
|
5
7
|
module IsoDoc
|
6
8
|
module Generic
|
@@ -15,14 +17,13 @@ module IsoDoc
|
|
15
17
|
end
|
16
18
|
|
17
19
|
def i18n_init(lang, script, i18nyaml = nil)
|
20
|
+
f = Metanorma::Generic.configuration.i18nyaml
|
21
|
+
f = nil unless f.is_a? String
|
18
22
|
@i18n = I18n.new(
|
19
|
-
lang, script, i18nyaml ||
|
20
|
-
Metanorma::Generic.configuration.i18nyaml || @i18nyaml)
|
23
|
+
lang, script, i18nyaml || f || @i18nyaml)
|
21
24
|
end
|
22
25
|
|
23
|
-
|
24
|
-
File.join(File.dirname(__FILE__), loc)
|
25
|
-
end
|
26
|
+
include Utils
|
26
27
|
end
|
27
28
|
end
|
28
29
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "isodoc"
|
2
2
|
require_relative "init"
|
3
|
+
require_relative "utils"
|
3
4
|
|
4
5
|
module IsoDoc
|
5
6
|
module Generic
|
@@ -23,6 +24,7 @@ module IsoDoc
|
|
23
24
|
k._file = caller_locations.first.absolute_path
|
24
25
|
end
|
25
26
|
|
27
|
+
=begin
|
26
28
|
def baselocation(loc)
|
27
29
|
return nil if loc.nil?
|
28
30
|
File.expand_path(File.join(File.dirname(
|
@@ -34,6 +36,7 @@ module IsoDoc
|
|
34
36
|
def configuration
|
35
37
|
Metanorma::Generic.configuration
|
36
38
|
end
|
39
|
+
=end
|
37
40
|
|
38
41
|
def author(isoxml, _out)
|
39
42
|
super
|
@@ -57,6 +60,8 @@ module IsoDoc
|
|
57
60
|
set(e.to_sym, b)
|
58
61
|
end
|
59
62
|
end
|
63
|
+
|
64
|
+
include Utils
|
60
65
|
end
|
61
66
|
end
|
62
67
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module IsoDoc
|
2
|
+
module Generic
|
3
|
+
module Utils
|
4
|
+
def configuration
|
5
|
+
Metanorma::Generic.configuration
|
6
|
+
end
|
7
|
+
|
8
|
+
def fileloc(loc)
|
9
|
+
File.join(File.dirname(__FILE__), loc)
|
10
|
+
end
|
11
|
+
|
12
|
+
def baselocation(loc)
|
13
|
+
return nil if loc.nil?
|
14
|
+
f = defined?(self.class::_file) ? (self.class::_file || __FILE__) :
|
15
|
+
__FILE__
|
16
|
+
File.expand_path(File.join(
|
17
|
+
File.dirname(f), "..", "..", "..", loc))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -23,10 +23,14 @@ module IsoDoc
|
|
23
23
|
|
24
24
|
def default_fonts(options)
|
25
25
|
{
|
26
|
-
bodyfont: (
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
bodyfont: (
|
27
|
+
options[:script] == "Hans" ? '"SimSun",serif' :
|
28
|
+
configuration.word_bodyfont || '"Arial",sans-serif'
|
29
|
+
),
|
30
|
+
headerfont: (
|
31
|
+
options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
32
|
+
configuration.word_headerfont || '"Arial",sans-serif'
|
33
|
+
),
|
30
34
|
monospacefont: configuration.word_monospacefont || '"Courier New",monospace'
|
31
35
|
}
|
32
36
|
end
|
@@ -34,24 +38,27 @@ module IsoDoc
|
|
34
38
|
def default_file_locations(options)
|
35
39
|
{
|
36
40
|
wordstylesheet: baselocation(configuration.wordstylesheet) ||
|
37
|
-
|
41
|
+
html_doc_path("wordstyle.scss"),
|
38
42
|
standardstylesheet: baselocation(configuration.standardstylesheet) ||
|
39
|
-
|
43
|
+
html_doc_path("generic.scss"),
|
40
44
|
header: baselocation(configuration.header) ||
|
41
|
-
|
45
|
+
html_doc_path("header.html"),
|
42
46
|
wordcoverpage: baselocation(configuration.wordcoverpage) ||
|
43
|
-
|
47
|
+
html_doc_path("word_generic_titlepage.html"),
|
44
48
|
wordintropage: baselocation(configuration.wordintropage) ||
|
45
|
-
|
46
|
-
i18nyaml:
|
47
|
-
|
48
|
-
|
49
|
+
html_doc_path("word_generic_intro.html"),
|
50
|
+
i18nyaml: (configuration.i18nyaml.is_a?(String) ?
|
51
|
+
baselocation(configuration.i18nyaml) : nil),
|
52
|
+
ulstyle: "l3",
|
53
|
+
olstyle: "l2",
|
49
54
|
}
|
50
55
|
end
|
51
56
|
|
57
|
+
=begin
|
52
58
|
def configuration
|
53
59
|
Metanorma::Generic.configuration
|
54
60
|
end
|
61
|
+
=end
|
55
62
|
|
56
63
|
include BaseConvert
|
57
64
|
include Init
|
data/lib/metanorma/generic.rb
CHANGED
@@ -15,6 +15,8 @@ module Metanorma
|
|
15
15
|
organization_name_short
|
16
16
|
organization_name_long
|
17
17
|
bibliography_titles
|
18
|
+
boilerplate
|
19
|
+
committees
|
18
20
|
document_namespace
|
19
21
|
docid_template
|
20
22
|
doctypes
|
@@ -33,6 +35,7 @@ module Metanorma
|
|
33
35
|
metanorma_name
|
34
36
|
normref_titles
|
35
37
|
published_stages
|
38
|
+
relations
|
36
39
|
default_stage
|
37
40
|
stage_abbreviations
|
38
41
|
scripts
|
data/metanorma-generic.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
30
30
|
spec.add_dependency "ruby-jing"
|
31
|
-
spec.add_dependency "metanorma-standoc", "~> 1.
|
31
|
+
spec.add_dependency "metanorma-standoc", "~> 1.6.0"
|
32
32
|
spec.add_dependency "isodoc", "~> 1.2.0"
|
33
33
|
|
34
34
|
spec.add_development_dependency "byebug", "~> 9.1"
|
data/metanorma.yml.example
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-generic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.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: 2020-09-
|
11
|
+
date: 2020-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.6.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 1.6.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: isodoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -253,10 +253,12 @@ files:
|
|
253
253
|
- lib/isodoc/generic/html/word_generic_titlepage.html
|
254
254
|
- lib/isodoc/generic/html/wordstyle.scss
|
255
255
|
- lib/isodoc/generic/html_convert.rb
|
256
|
+
- lib/isodoc/generic/i18n.rb
|
256
257
|
- lib/isodoc/generic/init.rb
|
257
258
|
- lib/isodoc/generic/metadata.rb
|
258
259
|
- lib/isodoc/generic/pdf_convert.rb
|
259
260
|
- lib/isodoc/generic/presentation_xml_convert.rb
|
261
|
+
- lib/isodoc/generic/utils.rb
|
260
262
|
- lib/isodoc/generic/word_convert.rb
|
261
263
|
- lib/isodoc/generic/xref.rb
|
262
264
|
- lib/metanorma-generic.rb
|