metanorma-generic 2.7.0 → 2.7.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 +4 -4
- data/lib/metanorma/generic/basicdoc.rng +71 -6
- data/lib/metanorma/generic/biblio.rng +3 -1
- data/lib/metanorma/generic/converter.rb +16 -8
- data/lib/metanorma/generic/isodoc.rng +3 -0
- data/lib/metanorma/generic/processor.rb +1 -4
- data/lib/metanorma/generic/reqt.rng +3 -0
- data/lib/metanorma/generic/version.rb +1 -1
- data/lib/metanorma/generic.rb +50 -15
- data/metanorma.yml.example +6 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd710f710d4ac3b76fed5d6f647c2fec15372b84f2d86e01380a310b5d772db5
|
4
|
+
data.tar.gz: bf48530b643adc2078b880f6913df915bc8c6696d727e792baac2014f7605bb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d45aca2e37d6987437b9cb12f287740d05a5c209c3f01f249b3ffa266995303cf62db2e391d10904344271da4058fb8b21ba6dcb228d600a88bb7dc134aeed6
|
7
|
+
data.tar.gz: c4f75e08a3ffe7f68dde7076fa94cb7209f1345a41fe423750e6110aebf5efd7676913998576dd594a72008157e2545d8e25c847ca19ba873330173f9edb878f
|
@@ -1000,14 +1000,14 @@
|
|
1000
1000
|
<define name="PureTextElement">
|
1001
1001
|
<choice>
|
1002
1002
|
<text/>
|
1003
|
-
<ref name="
|
1004
|
-
<ref name="
|
1003
|
+
<ref name="pure_em"/>
|
1004
|
+
<ref name="pure_strong"/>
|
1005
1005
|
<ref name="sub"/>
|
1006
1006
|
<ref name="sup"/>
|
1007
|
-
<ref name="
|
1008
|
-
<ref name="
|
1009
|
-
<ref name="
|
1010
|
-
<ref name="
|
1007
|
+
<ref name="pure_tt"/>
|
1008
|
+
<ref name="pure_underline"/>
|
1009
|
+
<ref name="pure_strike"/>
|
1010
|
+
<ref name="pure_smallcap"/>
|
1011
1011
|
<ref name="br"/>
|
1012
1012
|
</choice>
|
1013
1013
|
</define>
|
@@ -1031,6 +1031,13 @@
|
|
1031
1031
|
</zeroOrMore>
|
1032
1032
|
</element>
|
1033
1033
|
</define>
|
1034
|
+
<define name="pure_em">
|
1035
|
+
<element name="em">
|
1036
|
+
<zeroOrMore>
|
1037
|
+
<ref name="PureTextElement"/>
|
1038
|
+
</zeroOrMore>
|
1039
|
+
</element>
|
1040
|
+
</define>
|
1034
1041
|
<define name="strong">
|
1035
1042
|
<element name="strong">
|
1036
1043
|
<zeroOrMore>
|
@@ -1046,6 +1053,13 @@
|
|
1046
1053
|
</zeroOrMore>
|
1047
1054
|
</element>
|
1048
1055
|
</define>
|
1056
|
+
<define name="pure_strong">
|
1057
|
+
<element name="strong">
|
1058
|
+
<zeroOrMore>
|
1059
|
+
<ref name="PureTextElement"/>
|
1060
|
+
</zeroOrMore>
|
1061
|
+
</element>
|
1062
|
+
</define>
|
1049
1063
|
<define name="tt">
|
1050
1064
|
<element name="tt">
|
1051
1065
|
<zeroOrMore>
|
@@ -1060,6 +1074,13 @@
|
|
1060
1074
|
</zeroOrMore>
|
1061
1075
|
</element>
|
1062
1076
|
</define>
|
1077
|
+
<define name="pure_tt">
|
1078
|
+
<element name="tt">
|
1079
|
+
<zeroOrMore>
|
1080
|
+
<ref name="PureTextElement"/>
|
1081
|
+
</zeroOrMore>
|
1082
|
+
</element>
|
1083
|
+
</define>
|
1063
1084
|
<define name="keyword">
|
1064
1085
|
<element name="keyword">
|
1065
1086
|
<zeroOrMore>
|
@@ -1090,13 +1111,42 @@
|
|
1090
1111
|
<zeroOrMore>
|
1091
1112
|
<choice>
|
1092
1113
|
<ref name="PureTextElement"/>
|
1114
|
+
<ref name="stem"/>
|
1115
|
+
<ref name="eref"/>
|
1116
|
+
<ref name="xref"/>
|
1117
|
+
<ref name="hyperlink"/>
|
1093
1118
|
<ref name="index"/>
|
1094
1119
|
<ref name="index-xref"/>
|
1095
1120
|
</choice>
|
1096
1121
|
</zeroOrMore>
|
1097
1122
|
</element>
|
1098
1123
|
</define>
|
1124
|
+
<define name="pure_strike">
|
1125
|
+
<element name="strike">
|
1126
|
+
<zeroOrMore>
|
1127
|
+
<ref name="PureTextElement"/>
|
1128
|
+
</zeroOrMore>
|
1129
|
+
</element>
|
1130
|
+
</define>
|
1099
1131
|
<define name="underline">
|
1132
|
+
<element name="underline">
|
1133
|
+
<optional>
|
1134
|
+
<attribute name="style"/>
|
1135
|
+
</optional>
|
1136
|
+
<zeroOrMore>
|
1137
|
+
<choice>
|
1138
|
+
<ref name="PureTextElement"/>
|
1139
|
+
<ref name="stem"/>
|
1140
|
+
<ref name="eref"/>
|
1141
|
+
<ref name="xref"/>
|
1142
|
+
<ref name="hyperlink"/>
|
1143
|
+
<ref name="index"/>
|
1144
|
+
<ref name="index-xref"/>
|
1145
|
+
</choice>
|
1146
|
+
</zeroOrMore>
|
1147
|
+
</element>
|
1148
|
+
</define>
|
1149
|
+
<define name="pure_underline">
|
1100
1150
|
<element name="underline">
|
1101
1151
|
<optional>
|
1102
1152
|
<attribute name="style"/>
|
@@ -1107,6 +1157,21 @@
|
|
1107
1157
|
</element>
|
1108
1158
|
</define>
|
1109
1159
|
<define name="smallcap">
|
1160
|
+
<element name="smallcap">
|
1161
|
+
<zeroOrMore>
|
1162
|
+
<choice>
|
1163
|
+
<ref name="PureTextElement"/>
|
1164
|
+
<ref name="stem"/>
|
1165
|
+
<ref name="eref"/>
|
1166
|
+
<ref name="xref"/>
|
1167
|
+
<ref name="hyperlink"/>
|
1168
|
+
<ref name="index"/>
|
1169
|
+
<ref name="index-xref"/>
|
1170
|
+
</choice>
|
1171
|
+
</zeroOrMore>
|
1172
|
+
</element>
|
1173
|
+
</define>
|
1174
|
+
<define name="pure_smallcap">
|
1110
1175
|
<element name="smallcap">
|
1111
1176
|
<zeroOrMore>
|
1112
1177
|
<ref name="PureTextElement"/>
|
@@ -2,6 +2,8 @@ require "asciidoctor"
|
|
2
2
|
require "metanorma/standoc/converter"
|
3
3
|
require "fileutils"
|
4
4
|
require_relative "front"
|
5
|
+
require "metanorma"
|
6
|
+
require "pathname"
|
5
7
|
|
6
8
|
module Metanorma
|
7
9
|
module Generic
|
@@ -20,20 +22,17 @@ module Metanorma
|
|
20
22
|
end
|
21
23
|
|
22
24
|
def baselocation(loc)
|
23
|
-
|
24
|
-
|
25
|
+
loc.nil? and return nil
|
25
26
|
return loc
|
26
|
-
File.expand_path(File.join(File.dirname(
|
27
|
-
self.class::_file || __FILE__,
|
28
|
-
), "..", "..", "..", loc))
|
29
27
|
end
|
30
28
|
|
31
29
|
def docidentifier_cleanup(xmldoc)
|
30
|
+
b = boilerplate_isodoc(xmldoc) or return
|
32
31
|
template = configuration.docid_template ||
|
33
32
|
"{{ organization_name_short }} {{ docnumeric }}"
|
34
33
|
docid = xmldoc.at("//bibdata/docidentifier")
|
35
34
|
docid&.text&.empty? or return
|
36
|
-
id =
|
35
|
+
id = b.populate_template(template, nil)
|
37
36
|
(id.empty? and docid.remove) or docid.children = id
|
38
37
|
end
|
39
38
|
|
@@ -58,6 +57,10 @@ module Metanorma
|
|
58
57
|
def read_config_file(path_to_config_file)
|
59
58
|
Metanorma::Generic.configuration
|
60
59
|
.set_default_values_from_yaml_file(path_to_config_file)
|
60
|
+
# reregister Processor to Metanorma with updated values
|
61
|
+
if defined? Metanorma::Registry
|
62
|
+
Metanorma::Registry.instance.register(Metanorma::Generic::Processor)
|
63
|
+
end
|
61
64
|
end
|
62
65
|
|
63
66
|
def sectiontype_streamline(ret)
|
@@ -75,7 +78,12 @@ module Metanorma
|
|
75
78
|
end
|
76
79
|
|
77
80
|
def document(node)
|
78
|
-
|
81
|
+
if node.attr("customize")
|
82
|
+
p = node.attr("customize")
|
83
|
+
(Pathname.new p).absolute? or
|
84
|
+
p = File.expand_path(File.join(Metanorma::Utils::localdir(node), p))
|
85
|
+
read_config_file(p)
|
86
|
+
end
|
79
87
|
super
|
80
88
|
end
|
81
89
|
|
@@ -158,7 +166,7 @@ module Metanorma
|
|
158
166
|
end
|
159
167
|
|
160
168
|
def boilerplate_isodoc(xmldoc)
|
161
|
-
conv = super
|
169
|
+
conv = super or return nil
|
162
170
|
Metanorma::Generic::Configuration::CONFIG_ATTRS.each do |a|
|
163
171
|
conv.meta.set(a, configuration.send(a))
|
164
172
|
end
|
data/lib/metanorma/generic.rb
CHANGED
@@ -10,6 +10,10 @@ module Metanorma
|
|
10
10
|
DOCUMENT_NAMESPACE = "https://www.metanorma.org/ns/generic"
|
11
11
|
YAML_CONFIG_FILE = "metanorma.yml"
|
12
12
|
|
13
|
+
class DummyProcessor < ::Metanorma::Processor
|
14
|
+
def initialize; end # rubocop:disable Lint/MissingSuper
|
15
|
+
end
|
16
|
+
|
13
17
|
class Configuration
|
14
18
|
CONFIG_ATTRS = %i[
|
15
19
|
organization_name_short
|
@@ -62,6 +66,7 @@ module Metanorma
|
|
62
66
|
word_footnotefontsize
|
63
67
|
xml_root_tag
|
64
68
|
pdf_stylesheet
|
69
|
+
formats
|
65
70
|
].freeze
|
66
71
|
|
67
72
|
def filepath_attrs
|
@@ -86,11 +91,31 @@ module Metanorma
|
|
86
91
|
# Try to set config values from yaml file in current directory
|
87
92
|
@yaml = File.join(File.dirname(self.class::_file || __FILE__), "..",
|
88
93
|
"..", YAML_CONFIG_FILE)
|
89
|
-
set_default_values_from_yaml_file(@yaml)
|
94
|
+
set_default_values_from_yaml_file(@yaml)
|
95
|
+
end
|
96
|
+
|
97
|
+
# may be invoked multiple times, needs to not overwrite
|
98
|
+
def postprocess_defaults
|
99
|
+
default_org
|
100
|
+
default_formats
|
101
|
+
default_titles
|
102
|
+
end
|
103
|
+
|
104
|
+
def default_org
|
90
105
|
self.organization_name_short ||= ORGANIZATION_NAME_SHORT
|
91
106
|
self.organization_name_long ||= ORGANIZATION_NAME_LONG
|
92
107
|
self.document_namespace ||= DOCUMENT_NAMESPACE
|
93
|
-
|
108
|
+
end
|
109
|
+
|
110
|
+
# convert array to hash; if already is hash (no override in customize),
|
111
|
+
# don't reconvert
|
112
|
+
def default_formats
|
113
|
+
formats.is_a?(Hash) and return
|
114
|
+
self.formats ||= %w(html doc)
|
115
|
+
self.formats = self.formats.each_with_object({}) do |k, m|
|
116
|
+
m[k.to_sym] = k
|
117
|
+
end
|
118
|
+
self.formats.merge! DummyProcessor.new.output_formats
|
94
119
|
end
|
95
120
|
|
96
121
|
def default_titles
|
@@ -107,18 +132,25 @@ module Metanorma
|
|
107
132
|
end
|
108
133
|
|
109
134
|
def set_default_values_from_yaml_file(config_file)
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
135
|
+
if File.file?(config_file)
|
136
|
+
root_path, default_config_options =
|
137
|
+
set_default_values_from_yaml_file_prep(config_file)
|
138
|
+
CONFIG_ATTRS.each do |attr|
|
139
|
+
set_default_value_from_yaml_file(attr, root_path,
|
140
|
+
default_config_options)
|
141
|
+
end
|
117
142
|
end
|
143
|
+
postprocess_defaults
|
144
|
+
end
|
145
|
+
|
146
|
+
def set_default_value_from_yaml_file(attr, root_path, default_options)
|
147
|
+
value = default_options[attr.to_s]
|
148
|
+
value && filepath_attrs.include?(attr) and
|
149
|
+
value = absolute_path(value, root_path)
|
150
|
+
instance_variable_set("@#{attr}", value)
|
118
151
|
end
|
119
152
|
|
120
153
|
def set_default_values_from_yaml_file_prep(config_file)
|
121
|
-
# root_path = File.dirname(self.class::_file || __FILE__)
|
122
154
|
root_path = File.dirname(config_file)
|
123
155
|
default_config_options =
|
124
156
|
YAML.safe_load(File.read(config_file, encoding: "UTF-8"))
|
@@ -135,11 +167,14 @@ module Metanorma
|
|
135
167
|
end
|
136
168
|
|
137
169
|
def absolute_path(value, root_path)
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
Pathname.new(
|
170
|
+
case value
|
171
|
+
when Hash then absolute_path1(value, root_path)
|
172
|
+
when Array then absolute_path1_array(value, root_path)
|
173
|
+
when String
|
174
|
+
if !value.empty? && !Pathname.new(value).absolute?
|
175
|
+
Pathname.new(File.join(root_path, value)).cleanpath.to_s
|
176
|
+
else value
|
177
|
+
end
|
143
178
|
else value
|
144
179
|
end
|
145
180
|
end
|
data/metanorma.yml.example
CHANGED
@@ -8,6 +8,10 @@ logo_paths:
|
|
8
8
|
- /metanorma-mine/lib/isodoc/mine/html/logo1.jpg
|
9
9
|
- /metanorma-mine/lib/isodoc/mine/html/logo2.jpg
|
10
10
|
validate_rng_file: /metanorma-mine/lib/metanorma/mine/mine.rng
|
11
|
+
formats:
|
12
|
+
- html
|
13
|
+
- pdf
|
14
|
+
- doc
|
11
15
|
htmlcoverpage: /metanorma-mine/lib/isodoc/mine/html/html_mine_titlepage.html
|
12
16
|
htmlintropage: /metanorma-mine/lib/isodoc/mine/html/html_mine_intro.html
|
13
17
|
htmlstylesheet: /metanorma-mine/lib/isodoc/mine/html/htmlstyle.scss
|
@@ -74,5 +78,5 @@ normref_titles:
|
|
74
78
|
bibliography_titles:
|
75
79
|
- Bibliography
|
76
80
|
fonts_manifest:
|
77
|
-
|
78
|
-
|
81
|
+
Font1:
|
82
|
+
Font2:
|
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: 2.7.
|
4
|
+
version: 2.7.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: 2024-
|
11
|
+
date: 2024-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-standoc
|