metanorma-m3aawg 1.5.6 → 1.6.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/.github/workflows/rake.yml +27 -8
- data/README.adoc +2 -4
- data/lib/asciidoctor/m3aawg/converter.rb +4 -49
- data/lib/asciidoctor/m3aawg/isodoc.rng +13 -0
- data/lib/isodoc/m3aawg/base_convert.rb +2 -12
- data/lib/isodoc/m3aawg/html_convert.rb +7 -31
- data/lib/isodoc/m3aawg/i18n.rb +3 -4
- data/lib/isodoc/m3aawg/init.rb +2 -5
- data/lib/isodoc/m3aawg/m3d.report.xsl +99 -22
- data/lib/isodoc/m3aawg/metadata.rb +5 -17
- data/lib/isodoc/m3aawg/presentation_xml_convert.rb +11 -6
- data/lib/isodoc/m3aawg/word_convert.rb +4 -35
- data/lib/isodoc/m3aawg/xref.rb +5 -0
- data/lib/metanorma/m3aawg.rb +28 -2
- data/lib/metanorma/m3aawg/processor.rb +4 -1
- data/lib/metanorma/m3aawg/version.rb +1 -1
- data/metanorma-m3d.gemspec +1 -1
- data/metanorma.yml +45 -0
- metadata +6 -6
- data/lib/asciidoctor/m3aawg/validate.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2fd3488774323dab01d7b10d584bae9492abebe8d22376a1a3a5351026cd8f2
|
4
|
+
data.tar.gz: f3d059e05c404ad418f7bce4251e36b00781dd8e7df08891957e8becd64477be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce3566f1142e13b1e7643dff05304bfe46e00a45aefcd147fcc7b6c995cf390bf7ead57f1951aab95327408908611810f8a6b00abcd4231e5a66418de1953f21
|
7
|
+
data.tar.gz: f46acdf4f84b6a3c14cbe24c4ef9115254150afba1bda0dbc8583478a265eb9f1148f2bdacec040f8dcea820c9e270cf31b94660aaba49328318c810ac97ab80
|
data/.github/workflows/rake.yml
CHANGED
@@ -4,7 +4,8 @@ name: rake
|
|
4
4
|
|
5
5
|
on:
|
6
6
|
push:
|
7
|
-
branches: [ master ]
|
7
|
+
branches: [ master, main ]
|
8
|
+
tags: [ v* ]
|
8
9
|
pull_request:
|
9
10
|
|
10
11
|
jobs:
|
@@ -31,14 +32,32 @@ jobs:
|
|
31
32
|
steps:
|
32
33
|
- uses: actions/checkout@master
|
33
34
|
|
34
|
-
-
|
35
|
-
uses: ruby/setup-ruby@v1
|
35
|
+
- uses: ruby/setup-ruby@v1
|
36
36
|
with:
|
37
37
|
ruby-version: ${{ matrix.ruby }}
|
38
|
-
bundler-cache: true
|
39
38
|
|
40
|
-
-
|
41
|
-
|
39
|
+
- uses: actions/cache@v1
|
40
|
+
with:
|
41
|
+
path: vendor/bundle
|
42
|
+
key: bundle-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}
|
43
|
+
restore-keys: bundle-${{ matrix.os }}-${{ matrix.ruby }}
|
44
|
+
|
45
|
+
- run: bundle config set path 'vendor/bundle'
|
46
|
+
|
47
|
+
- run: bundle install --jobs 4 --retry 3
|
42
48
|
|
43
|
-
-
|
44
|
-
|
49
|
+
- run: bundle exec rake
|
50
|
+
|
51
|
+
notify:
|
52
|
+
name: Trigger notify workflow
|
53
|
+
needs: rake
|
54
|
+
runs-on: ubuntu-latest
|
55
|
+
steps:
|
56
|
+
- name: Trigger notify workflow
|
57
|
+
uses: Sibz/github-status-action@v1
|
58
|
+
with:
|
59
|
+
authToken: ${{ secrets.GITHUB_TOKEN }}
|
60
|
+
context: 'tests-passed-successfully'
|
61
|
+
description: 'Tests passed successfully'
|
62
|
+
state: 'success'
|
63
|
+
sha: ${{ github.event.pull_request.head.sha || github.sha }}
|
data/README.adoc
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
= Metanorma processor for M3AAWG documents
|
2
2
|
|
3
3
|
https://github.com/metanorma/metanorma-m3aawg[metanorma-m3aawg] image:https://img.shields.io/gem/v/metanorma-m3aawg.svg["Gem Version", link="https://rubygems.org/gems/metanorma-m3aawg"]::
|
4
|
-
image:https://github.com/metanorma/metanorma-m3aawg/workflows/
|
5
|
-
image:https://github.com/metanorma/metanorma-m3aawg/workflows/windows/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-m3aawg/actions?workflow=windows"]
|
6
|
-
image:https://github.com/metanorma/metanorma-m3aawg/workflows/ubuntu/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-m3aawg/actions?workflow=ubuntu"]
|
4
|
+
image:https://github.com/metanorma/metanorma-m3aawg/workflows/rake/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-m3aawg/actions?workflow=rake"]
|
7
5
|
image:https://codeclimate.com/github/metanorma/metanorma-m3aawg/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-m3aawg"]
|
8
6
|
image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-m3aawg.svg["Pull Requests", link="https://github.com/metanorma/metanorma-m3aawg/pulls"]
|
9
7
|
image:https://img.shields.io/github/commits-since/metanorma/metanorma-m3aawg/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-m3aawg/releases"]
|
@@ -12,7 +10,7 @@ _Formerly known as_ `asciidoctor-m3d`.
|
|
12
10
|
|
13
11
|
== Functionality
|
14
12
|
|
15
|
-
This gem processes
|
13
|
+
This gem processes https://www.metanorma.com[Metanorma documents] following
|
16
14
|
a template for generating M3AAWG documents.
|
17
15
|
|
18
16
|
The gem currently inherits from the https://github.com/metanorma/metanorma-standoc
|
@@ -1,27 +1,14 @@
|
|
1
|
-
require "asciidoctor"
|
2
|
-
require "metanorma/m3aawg/version"
|
3
|
-
require "isodoc/m3aawg/html_convert"
|
4
|
-
require "isodoc/m3aawg/word_convert"
|
5
|
-
require "isodoc/m3aawg/pdf_convert"
|
6
1
|
require "asciidoctor/standoc/converter"
|
7
|
-
require
|
8
|
-
require_relative "./validate.rb"
|
2
|
+
require 'asciidoctor/generic/converter'
|
9
3
|
|
10
4
|
module Asciidoctor
|
11
5
|
module M3AAWG
|
12
|
-
|
13
|
-
# A {Converter} implementation that generates M3D output, and a document
|
14
|
-
# schema encapsulation of the document for validation
|
15
|
-
class Converter < Standoc::Converter
|
6
|
+
class Converter < Asciidoctor::Generic::Converter
|
16
7
|
XML_ROOT_TAG = "m3d-standard".freeze
|
17
8
|
XML_NAMESPACE = "https://www.metanorma.org/ns/m3d".freeze
|
18
9
|
|
19
10
|
register_for "m3aawg"
|
20
11
|
|
21
|
-
def default_publisher
|
22
|
-
"Messaging Malware and Mobile Anti-Abuse Working Group"
|
23
|
-
end
|
24
|
-
|
25
12
|
def metadata_committee(node, xml)
|
26
13
|
return unless node.attr("technical-committee")
|
27
14
|
xml.editorialgroup do |a|
|
@@ -36,21 +23,8 @@ module Asciidoctor
|
|
36
23
|
end
|
37
24
|
end
|
38
25
|
|
39
|
-
|
40
|
-
|
41
|
-
dn = node.attr("docnumber")
|
42
|
-
if docstatus
|
43
|
-
abbr = IsoDoc::M3AAWG::Metadata.new("en", "Latn", @i18n).
|
44
|
-
stage_abbr(docstatus)
|
45
|
-
dn = "#{dn}(#{abbr})" unless abbr.empty?
|
46
|
-
end
|
47
|
-
node.attr("copyright-year") and dn += ":#{node.attr("copyright-year")}"
|
48
|
-
xml.docidentifier dn, **{type: "M3AAWG"}
|
49
|
-
xml.docnumber { |i| i << node.attr("docnumber") }
|
50
|
-
end
|
51
|
-
|
52
|
-
def title_validate(root)
|
53
|
-
nil
|
26
|
+
def configuration
|
27
|
+
Metanorma::M3AAWG.configuration
|
54
28
|
end
|
55
29
|
|
56
30
|
def makexml(node)
|
@@ -58,15 +32,6 @@ module Asciidoctor
|
|
58
32
|
super
|
59
33
|
end
|
60
34
|
|
61
|
-
def doctype(node)
|
62
|
-
d = super
|
63
|
-
unless %w{policy best-practices supporting-document report}.include? d
|
64
|
-
@log.add("Document Attributes", nil, "#{d} is not a legal document type: reverting to 'report'")
|
65
|
-
d = "report"
|
66
|
-
end
|
67
|
-
d
|
68
|
-
end
|
69
|
-
|
70
35
|
def outputs(node, ret)
|
71
36
|
File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
|
72
37
|
presentation_xml_converter(node).convert(@filename + ".xml")
|
@@ -75,12 +40,6 @@ module Asciidoctor
|
|
75
40
|
pdf_converter(node)&.convert(@filename + ".presentation.xml", nil, false, "#{@filename}.pdf")
|
76
41
|
end
|
77
42
|
|
78
|
-
def validate(doc)
|
79
|
-
content_validate(doc)
|
80
|
-
schema_validate(formattedstr_strip(doc.dup),
|
81
|
-
File.join(File.dirname(__FILE__), "m3d.rng"))
|
82
|
-
end
|
83
|
-
|
84
43
|
def sections_cleanup(x)
|
85
44
|
super
|
86
45
|
x.xpath("//*[@inline-header]").each do |h|
|
@@ -88,10 +47,6 @@ module Asciidoctor
|
|
88
47
|
end
|
89
48
|
end
|
90
49
|
|
91
|
-
def style(n, t)
|
92
|
-
return
|
93
|
-
end
|
94
|
-
|
95
50
|
def presentation_xml_converter(node)
|
96
51
|
IsoDoc::M3AAWG::PresentationXMLConvert.new(html_extract_attributes(node))
|
97
52
|
end
|
@@ -24,6 +24,14 @@
|
|
24
24
|
<start>
|
25
25
|
<ref name="standard-document"/>
|
26
26
|
</start>
|
27
|
+
<define name="doctype">
|
28
|
+
<element name="doctype">
|
29
|
+
<optional>
|
30
|
+
<attribute name="abbreviation"/>
|
31
|
+
</optional>
|
32
|
+
<ref name="DocumentType"/>
|
33
|
+
</element>
|
34
|
+
</define>
|
27
35
|
<define name="hyperlink">
|
28
36
|
<element name="link">
|
29
37
|
<attribute name="target">
|
@@ -141,6 +149,11 @@
|
|
141
149
|
<data type="boolean"/>
|
142
150
|
</attribute>
|
143
151
|
</optional>
|
152
|
+
<optional>
|
153
|
+
<attribute name="key">
|
154
|
+
<data type="boolean"/>
|
155
|
+
</attribute>
|
156
|
+
</optional>
|
144
157
|
<oneOrMore>
|
145
158
|
<ref name="dt"/>
|
146
159
|
<ref name="dd"/>
|
@@ -3,18 +3,8 @@ require "fileutils"
|
|
3
3
|
module IsoDoc
|
4
4
|
module M3AAWG
|
5
5
|
module BaseRender
|
6
|
-
def
|
7
|
-
|
8
|
-
term_cleanup(docxml)
|
9
|
-
end
|
10
|
-
|
11
|
-
def term_cleanup(docxml)
|
12
|
-
docxml.xpath("//p[@class = 'Terms']").each do |d|
|
13
|
-
h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
|
14
|
-
h2.add_child(" ")
|
15
|
-
h2.add_child(d.remove)
|
16
|
-
end
|
17
|
-
docxml
|
6
|
+
def configuration
|
7
|
+
Metanorma::M3AAWG.configuration
|
18
8
|
end
|
19
9
|
end
|
20
10
|
end
|
@@ -1,35 +1,18 @@
|
|
1
1
|
require "isodoc"
|
2
|
+
require "isodoc/generic/html_convert"
|
2
3
|
require_relative "base_convert"
|
3
4
|
require_relative "init"
|
4
5
|
|
5
6
|
module IsoDoc
|
6
7
|
module M3AAWG
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
def initialize(options)
|
11
|
-
@libdir = File.dirname(__FILE__)
|
12
|
-
super
|
13
|
-
end
|
14
|
-
|
15
|
-
def default_fonts(options)
|
16
|
-
{
|
17
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
|
18
|
-
'"Overpass",sans-serif'),
|
19
|
-
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
20
|
-
'"Overpass",sans-serif'),
|
21
|
-
monospacefont: '"Space Mono",monospace'
|
22
|
-
}
|
8
|
+
class HtmlConvert < IsoDoc::Generic::HtmlConvert
|
9
|
+
def configuration
|
10
|
+
Metanorma::M3AAWG.configuration
|
23
11
|
end
|
24
12
|
|
25
|
-
def
|
26
|
-
|
27
|
-
|
28
|
-
htmlcoverpage: html_doc_path("html_m3d_titlepage.html"),
|
29
|
-
htmlintropage: html_doc_path("html_m3d_intro.html"),
|
30
|
-
standardstylesheet: nil,
|
31
|
-
scripts: html_doc_path("scripts.html"),
|
32
|
-
}
|
13
|
+
def initialize(options)
|
14
|
+
#require "byebug"; byebug
|
15
|
+
super
|
33
16
|
end
|
34
17
|
|
35
18
|
def colophon(body, docxml)
|
@@ -45,13 +28,6 @@ module IsoDoc
|
|
45
28
|
end
|
46
29
|
end
|
47
30
|
|
48
|
-
def googlefonts()
|
49
|
-
<<~HEAD.freeze
|
50
|
-
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i|Space+Mono:400,700" rel="stylesheet">
|
51
|
-
<link href="https://fonts.googleapis.com/css?family=Overpass:300,300i,600,900" rel="stylesheet">
|
52
|
-
HEAD
|
53
|
-
end
|
54
|
-
|
55
31
|
def make_body(xml, docxml)
|
56
32
|
body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72",
|
57
33
|
"xml:lang": "EN-US", class: "container" }
|
data/lib/isodoc/m3aawg/i18n.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
module IsoDoc
|
2
2
|
module M3AAWG
|
3
|
-
class I18n < IsoDoc::I18n
|
4
|
-
def
|
5
|
-
|
6
|
-
super.merge(y)
|
3
|
+
class I18n < IsoDoc::Generic::I18n
|
4
|
+
def configuration
|
5
|
+
Metanorma::M3AAWG.configuration
|
7
6
|
end
|
8
7
|
end
|
9
8
|
end
|
data/lib/isodoc/m3aawg/init.rb
CHANGED
@@ -11,16 +11,13 @@ module IsoDoc
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def xref_init(lang, script, klass, labels, options)
|
14
|
-
|
14
|
+
html = HtmlConvert.new(language: lang, script: script)
|
15
|
+
@xrefs = Xref.new(lang, script, html, labels, options)
|
15
16
|
end
|
16
17
|
|
17
18
|
def i18n_init(lang, script, i18nyaml = nil)
|
18
19
|
@i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
|
19
20
|
end
|
20
|
-
|
21
|
-
def fileloc(loc)
|
22
|
-
File.join(File.dirname(__FILE__), loc)
|
23
|
-
end
|
24
21
|
end
|
25
22
|
end
|
26
23
|
end
|
@@ -908,13 +908,22 @@
|
|
908
908
|
<title-part lang="en">
|
909
909
|
|
910
910
|
|
911
|
+
|
911
912
|
</title-part>
|
912
913
|
<title-part lang="fr">
|
913
914
|
|
914
915
|
|
916
|
+
|
915
917
|
</title-part>
|
916
918
|
<title-part lang="zh">第 # 部分:</title-part>
|
917
919
|
|
920
|
+
<title-subpart lang="en">
|
921
|
+
|
922
|
+
</title-subpart>
|
923
|
+
<title-subpart lang="fr">
|
924
|
+
|
925
|
+
</title-subpart>
|
926
|
+
|
918
927
|
<title-modified lang="en">modified</title-modified>
|
919
928
|
<title-modified lang="fr">modifiée</title-modified>
|
920
929
|
|
@@ -1380,7 +1389,9 @@
|
|
1380
1389
|
|
1381
1390
|
|
1382
1391
|
|
1383
|
-
|
1392
|
+
<!-- <xsl:if test="$namespace = 'bipm'">
|
1393
|
+
<fo:block> </fo:block>
|
1394
|
+
</xsl:if> -->
|
1384
1395
|
|
1385
1396
|
<!-- $namespace = 'iso' or -->
|
1386
1397
|
|
@@ -1543,6 +1554,7 @@
|
|
1543
1554
|
<xsl:if test="normalize-space() != ''">
|
1544
1555
|
<fo:block xsl:use-attribute-sets="table-name-style">
|
1545
1556
|
|
1557
|
+
|
1546
1558
|
<xsl:apply-templates/>
|
1547
1559
|
</fo:block>
|
1548
1560
|
</xsl:if>
|
@@ -1896,6 +1908,7 @@
|
|
1896
1908
|
|
1897
1909
|
|
1898
1910
|
|
1911
|
+
|
1899
1912
|
<!-- <xsl:if test="$namespace = 'bipm'">
|
1900
1913
|
<xsl:attribute name="height">8mm</xsl:attribute>
|
1901
1914
|
</xsl:if> -->
|
@@ -1981,7 +1994,8 @@
|
|
1981
1994
|
</xsl:attribute>
|
1982
1995
|
</xsl:if>
|
1983
1996
|
<xsl:call-template name="display-align"/>
|
1984
|
-
<fo:block>
|
1997
|
+
<fo:block>
|
1998
|
+
|
1985
1999
|
<xsl:apply-templates/>
|
1986
2000
|
</fo:block>
|
1987
2001
|
</fo:table-cell>
|
@@ -2193,7 +2207,11 @@
|
|
2193
2207
|
<xsl:apply-templates/>
|
2194
2208
|
</fo:inline>
|
2195
2209
|
</xsl:template><xsl:template match="*[local-name()='dl']">
|
2196
|
-
<fo:block-container
|
2210
|
+
<fo:block-container>
|
2211
|
+
|
2212
|
+
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
2213
|
+
|
2214
|
+
|
2197
2215
|
<xsl:if test="parent::*[local-name() = 'note']">
|
2198
2216
|
<xsl:attribute name="margin-left">
|
2199
2217
|
<xsl:choose>
|
@@ -2203,8 +2221,11 @@
|
|
2203
2221
|
</xsl:attribute>
|
2204
2222
|
|
2205
2223
|
</xsl:if>
|
2206
|
-
<fo:block-container
|
2207
|
-
|
2224
|
+
<fo:block-container>
|
2225
|
+
|
2226
|
+
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
2227
|
+
|
2228
|
+
|
2208
2229
|
<xsl:variable name="parent" select="local-name(..)"/>
|
2209
2230
|
|
2210
2231
|
<xsl:variable name="key_iso">
|
@@ -2218,9 +2239,12 @@
|
|
2218
2239
|
<fo:block margin-bottom="12pt" text-align="left">
|
2219
2240
|
|
2220
2241
|
<xsl:variable name="title-where">
|
2221
|
-
|
2222
|
-
|
2223
|
-
|
2242
|
+
|
2243
|
+
|
2244
|
+
<xsl:call-template name="getTitle">
|
2245
|
+
<xsl:with-param name="name" select="'title-where'"/>
|
2246
|
+
</xsl:call-template>
|
2247
|
+
|
2224
2248
|
</xsl:variable>
|
2225
2249
|
<xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
|
2226
2250
|
<xsl:apply-templates select="*[local-name()='dt']/*"/>
|
@@ -2236,9 +2260,12 @@
|
|
2236
2260
|
|
2237
2261
|
|
2238
2262
|
<xsl:variable name="title-where">
|
2239
|
-
|
2240
|
-
|
2241
|
-
|
2263
|
+
|
2264
|
+
|
2265
|
+
<xsl:call-template name="getTitle">
|
2266
|
+
<xsl:with-param name="name" select="'title-where'"/>
|
2267
|
+
</xsl:call-template>
|
2268
|
+
|
2242
2269
|
</xsl:variable>
|
2243
2270
|
<xsl:value-of select="$title-where"/>
|
2244
2271
|
</fo:block>
|
@@ -2249,9 +2276,12 @@
|
|
2249
2276
|
|
2250
2277
|
|
2251
2278
|
<xsl:variable name="title-key">
|
2252
|
-
|
2253
|
-
|
2254
|
-
|
2279
|
+
|
2280
|
+
|
2281
|
+
<xsl:call-template name="getTitle">
|
2282
|
+
<xsl:with-param name="name" select="'title-key'"/>
|
2283
|
+
</xsl:call-template>
|
2284
|
+
|
2255
2285
|
</xsl:variable>
|
2256
2286
|
<xsl:value-of select="$title-key"/>
|
2257
2287
|
</fo:block>
|
@@ -2827,7 +2857,18 @@
|
|
2827
2857
|
<xsl:with-param name="previousRow" select="$newRow"/>
|
2828
2858
|
</xsl:apply-templates>
|
2829
2859
|
</xsl:template><xsl:template name="getLang">
|
2830
|
-
<xsl:variable name="
|
2860
|
+
<xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
|
2861
|
+
<xsl:variable name="language">
|
2862
|
+
<xsl:choose>
|
2863
|
+
<xsl:when test="$language_current != ''">
|
2864
|
+
<xsl:value-of select="$language_current"/>
|
2865
|
+
</xsl:when>
|
2866
|
+
<xsl:otherwise>
|
2867
|
+
<xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
|
2868
|
+
</xsl:otherwise>
|
2869
|
+
</xsl:choose>
|
2870
|
+
</xsl:variable>
|
2871
|
+
|
2831
2872
|
<xsl:choose>
|
2832
2873
|
<xsl:when test="$language = 'English'">en</xsl:when>
|
2833
2874
|
<xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
|
@@ -2862,6 +2903,7 @@
|
|
2862
2903
|
<xsl:value-of select="substring($str, 2)"/>
|
2863
2904
|
</xsl:template><xsl:template match="mathml:math">
|
2864
2905
|
<fo:inline font-family="STIX Two Math"> <!-- -->
|
2906
|
+
|
2865
2907
|
<xsl:variable name="mathml">
|
2866
2908
|
<xsl:apply-templates select="." mode="mathml"/>
|
2867
2909
|
</xsl:variable>
|
@@ -2944,10 +2986,14 @@
|
|
2944
2986
|
</fo:inline>
|
2945
2987
|
</xsl:template><xsl:template match="*[local-name() = 'modification']">
|
2946
2988
|
<xsl:variable name="title-modified">
|
2947
|
-
|
2948
|
-
|
2949
|
-
|
2989
|
+
|
2990
|
+
|
2991
|
+
<xsl:call-template name="getTitle">
|
2992
|
+
<xsl:with-param name="name" select="'title-modified'"/>
|
2993
|
+
</xsl:call-template>
|
2994
|
+
|
2950
2995
|
</xsl:variable>
|
2996
|
+
|
2951
2997
|
<xsl:choose>
|
2952
2998
|
<xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
|
2953
2999
|
<xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
|
@@ -3824,9 +3870,12 @@
|
|
3824
3870
|
</fo:block>
|
3825
3871
|
</xsl:template><xsl:template match="*[local-name() = 'deprecates']">
|
3826
3872
|
<xsl:variable name="title-deprecated">
|
3827
|
-
|
3828
|
-
|
3829
|
-
|
3873
|
+
|
3874
|
+
|
3875
|
+
<xsl:call-template name="getTitle">
|
3876
|
+
<xsl:with-param name="name" select="'title-deprecated'"/>
|
3877
|
+
</xsl:call-template>
|
3878
|
+
|
3830
3879
|
</xsl:variable>
|
3831
3880
|
<fo:block xsl:use-attribute-sets="deprecates-style">
|
3832
3881
|
<xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
|
@@ -4194,13 +4243,22 @@
|
|
4194
4243
|
</xsl:template><xsl:template name="split">
|
4195
4244
|
<xsl:param name="pText" select="."/>
|
4196
4245
|
<xsl:param name="sep" select="','"/>
|
4246
|
+
<xsl:param name="normalize-space" select="'true'"/>
|
4197
4247
|
<xsl:if test="string-length($pText) >0">
|
4198
4248
|
<item>
|
4199
|
-
<xsl:
|
4249
|
+
<xsl:choose>
|
4250
|
+
<xsl:when test="$normalize-space = 'true'">
|
4251
|
+
<xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
|
4252
|
+
</xsl:when>
|
4253
|
+
<xsl:otherwise>
|
4254
|
+
<xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
|
4255
|
+
</xsl:otherwise>
|
4256
|
+
</xsl:choose>
|
4200
4257
|
</item>
|
4201
4258
|
<xsl:call-template name="split">
|
4202
4259
|
<xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
|
4203
4260
|
<xsl:with-param name="sep" select="$sep"/>
|
4261
|
+
<xsl:with-param name="normalize-space" select="$normalize-space"/>
|
4204
4262
|
</xsl:call-template>
|
4205
4263
|
</xsl:if>
|
4206
4264
|
</xsl:template><xsl:template name="getDocumentId">
|
@@ -4266,4 +4324,23 @@
|
|
4266
4324
|
<xsl:with-param name="letter-spacing" select="$letter-spacing"/>
|
4267
4325
|
</xsl:call-template>
|
4268
4326
|
</xsl:if>
|
4327
|
+
</xsl:template><xsl:template name="repeat">
|
4328
|
+
<xsl:param name="char" select="'*'"/>
|
4329
|
+
<xsl:param name="count"/>
|
4330
|
+
<xsl:if test="$count > 0">
|
4331
|
+
<xsl:value-of select="$char"/>
|
4332
|
+
<xsl:call-template name="repeat">
|
4333
|
+
<xsl:with-param name="char" select="$char"/>
|
4334
|
+
<xsl:with-param name="count" select="$count - 1"/>
|
4335
|
+
</xsl:call-template>
|
4336
|
+
</xsl:if>
|
4337
|
+
</xsl:template><xsl:template name="getLocalizedString">
|
4338
|
+
<xsl:param name="key"/>
|
4339
|
+
|
4340
|
+
<xsl:variable name="curr_lang">
|
4341
|
+
<xsl:call-template name="getLang"/>
|
4342
|
+
</xsl:variable>
|
4343
|
+
|
4344
|
+
<xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
|
4345
|
+
|
4269
4346
|
</xsl:template></xsl:stylesheet>
|
@@ -2,9 +2,11 @@ require "isodoc"
|
|
2
2
|
|
3
3
|
module IsoDoc
|
4
4
|
module M3AAWG
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
class Metadata < IsoDoc::Generic::Metadata
|
6
|
+
def configuration
|
7
|
+
Metanorma::M3AAWG.configuration
|
8
|
+
end
|
9
|
+
|
8
10
|
def initialize(lang, script, labels)
|
9
11
|
super
|
10
12
|
here = File.dirname(__FILE__)
|
@@ -34,20 +36,6 @@ module IsoDoc
|
|
34
36
|
docnumber = isoxml.at(ns("//bibdata/docidentifier"))
|
35
37
|
set(:docnumber, docnumber&.text)
|
36
38
|
end
|
37
|
-
|
38
|
-
def stage_abbr(status)
|
39
|
-
case status
|
40
|
-
when "working-draft" then "wd"
|
41
|
-
when "committee-draft" then "cd"
|
42
|
-
when "draft-standard" then "d"
|
43
|
-
else
|
44
|
-
""
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def unpublished(status)
|
49
|
-
!%w(published withdrawn).include? status.downcase
|
50
|
-
end
|
51
39
|
end
|
52
40
|
end
|
53
41
|
end
|
@@ -1,16 +1,21 @@
|
|
1
1
|
require_relative "init"
|
2
|
+
require "metanorma-generic"
|
2
3
|
require "isodoc"
|
3
4
|
|
4
5
|
module IsoDoc
|
5
6
|
module M3AAWG
|
6
|
-
class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
|
7
|
+
class PresentationXMLConvert < IsoDoc::Generic::PresentationXMLConvert
|
8
|
+
def configuration
|
9
|
+
Metanorma::M3AAWG.configuration
|
10
|
+
end
|
11
|
+
|
7
12
|
def annex1(f)
|
8
|
-
|
9
|
-
|
10
|
-
|
13
|
+
lbl = @xrefs.anchor(f['id'], :label)
|
14
|
+
if t = f.at(ns("./title"))
|
15
|
+
t.children = "<strong>#{t.children.to_xml}</strong>"
|
16
|
+
end
|
17
|
+
prefix_name(f, "<br/>", lbl, "title")
|
11
18
|
end
|
12
|
-
prefix_name(f, "<br/>", lbl, "title")
|
13
|
-
end
|
14
19
|
|
15
20
|
include Init
|
16
21
|
end
|
@@ -1,39 +1,13 @@
|
|
1
1
|
require "isodoc"
|
2
2
|
require_relative "base_convert"
|
3
|
+
require "isodoc/generic/word_convert"
|
3
4
|
require_relative "init"
|
4
5
|
|
5
6
|
module IsoDoc
|
6
7
|
module M3AAWG
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
class WordConvert < IsoDoc::WordConvert
|
11
|
-
def initialize(options)
|
12
|
-
@libdir = File.dirname(__FILE__)
|
13
|
-
super
|
14
|
-
end
|
15
|
-
|
16
|
-
def default_fonts(options)
|
17
|
-
{
|
18
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Garamond",serif'),
|
19
|
-
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Garamond",serif'),
|
20
|
-
monospacefont: '"Courier New",monospace'
|
21
|
-
}
|
22
|
-
end
|
23
|
-
|
24
|
-
def default_file_locations(_options)
|
25
|
-
{
|
26
|
-
htmlstylesheet: html_doc_path("htmlstyle.scss"),
|
27
|
-
htmlcoverpage: html_doc_path("html_m3d_titlepage.html"),
|
28
|
-
htmlintropage: html_doc_path("html_m3d_intro.html"),
|
29
|
-
scripts: html_doc_path("scripts.html"),
|
30
|
-
wordstylesheet: html_doc_path("wordstyle.scss"),
|
31
|
-
standardstylesheet: html_doc_path("m3d.scss"),
|
32
|
-
header: html_doc_path("header.html"),
|
33
|
-
wordintropage: html_doc_path("word_m3d_intro.html"),
|
34
|
-
ulstyle: "l3",
|
35
|
-
olstyle: "l2",
|
36
|
-
}
|
8
|
+
class WordConvert < IsoDoc::Generic::WordConvert
|
9
|
+
def configuration
|
10
|
+
Metanorma::M3AAWG.configuration
|
37
11
|
end
|
38
12
|
|
39
13
|
def colophon(body, docxml)
|
@@ -51,11 +25,6 @@ module IsoDoc
|
|
51
25
|
end
|
52
26
|
end
|
53
27
|
|
54
|
-
def title(isoxml, _out)
|
55
|
-
main = isoxml&.at(ns("//title[@language='en']"))&.text
|
56
|
-
set_metadata(:doctitle, main)
|
57
|
-
end
|
58
|
-
|
59
28
|
include BaseRender
|
60
29
|
include Init
|
61
30
|
end
|
data/lib/isodoc/m3aawg/xref.rb
CHANGED
data/lib/metanorma/m3aawg.rb
CHANGED
@@ -1,7 +1,33 @@
|
|
1
|
-
|
1
|
+
require "metanorma"
|
2
|
+
require "metanorma-generic"
|
3
|
+
require "metanorma/m3aawg/processor"
|
2
4
|
|
3
5
|
module Metanorma
|
4
|
-
module
|
6
|
+
module M3AAWG
|
5
7
|
|
8
|
+
class Configuration < Metanorma::Generic::Configuration
|
9
|
+
def initialize(*args)
|
10
|
+
super
|
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 {}
|
6
30
|
end
|
7
31
|
end
|
32
|
+
Metanorma::Registry.instance.register(Metanorma::M3AAWG::Processor)
|
33
|
+
|
data/metanorma-m3d.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
32
32
|
spec.add_dependency "thread_safe"
|
33
33
|
|
34
|
-
spec.add_dependency "metanorma-
|
34
|
+
spec.add_dependency "metanorma-generic", "~> 1.7.0"
|
35
35
|
spec.add_dependency "isodoc", "~> 1.2.0"
|
36
36
|
|
37
37
|
spec.add_development_dependency "byebug", "~> 9.1"
|
data/metanorma.yml
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
metanorma_name: m3aawg
|
2
|
+
organization_name_short: M3AAWG
|
3
|
+
organization_name_long: Messaging Malware and Mobile Anti-Abuse Working Group
|
4
|
+
document_namespace: https://www.metanorma.org/ns/m3d
|
5
|
+
xml_root_tag: m3d-standard
|
6
|
+
html_bodyfont: '"Overpass",sans-serif'
|
7
|
+
html_headerfont: '"Overpass",sans-serif'
|
8
|
+
html_monospacefont: '"Space Mono",monospace'
|
9
|
+
i18nyaml: lib/isodoc/m3aawg/i18n-en.yaml
|
10
|
+
validate_rng_file: lib/asciidoctor/m3aawg/m3d.rng
|
11
|
+
htmlcoverpage: lib/isodoc/m3aawg/html/html_m3d_titlepage.html
|
12
|
+
htmlintropage: lib/isodoc/m3aawg/html/html_m3d_intro.html
|
13
|
+
htmlstylesheet: lib/isodoc/m3aawg/html/htmlstyle.scss
|
14
|
+
scripts: lib/isodoc/m3aawg/html/scripts.html
|
15
|
+
word_bodyfont: '"Garamond",serif'
|
16
|
+
word_headerfont: '"Garamond",serif'
|
17
|
+
word_monospacefont: '"Courier New",monospace'
|
18
|
+
standardstylesheet: lib/isodoc/m3aawg/html/m3d.scss
|
19
|
+
header: lib/isodoc/m3aawg/html/header.html
|
20
|
+
wordcoverpage: ""
|
21
|
+
wordintropage: lib/isodoc/m3aawg/html/word_m3d_intro.html
|
22
|
+
wordstylesheet: lib/isodoc/m3aawg/html/wordstyle.scss
|
23
|
+
webfont:
|
24
|
+
- "https://fonts.googleapis.com/css?family=Overpass:300,300i,600,900"
|
25
|
+
- "https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i|Space+Mono:400,700"
|
26
|
+
docid_template: "{{ docnumeric }}{% if stageabbr %}({{ stageabbr }}){%endif%}{% if docyear %}:{{docyear}}{%endif%}"
|
27
|
+
doctypes:
|
28
|
+
- policy
|
29
|
+
- best-practices
|
30
|
+
- supporting-document
|
31
|
+
- report
|
32
|
+
default_doctype: report
|
33
|
+
published_stages:
|
34
|
+
- published
|
35
|
+
- withdrawn
|
36
|
+
default_stage: published
|
37
|
+
stage_abbreviations:
|
38
|
+
proposal:
|
39
|
+
working-draft: wd
|
40
|
+
committee-draft: cd
|
41
|
+
draft-standard: d
|
42
|
+
final-draft:
|
43
|
+
published:
|
44
|
+
withdrawn:
|
45
|
+
logo_path: ""
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-m3aawg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.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-
|
11
|
+
date: 2020-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -39,19 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: metanorma-
|
42
|
+
name: metanorma-generic
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.7.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.7.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: isodoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,7 +238,6 @@ files:
|
|
238
238
|
- lib/asciidoctor/m3aawg/isodoc.rng
|
239
239
|
- lib/asciidoctor/m3aawg/m3d.rng
|
240
240
|
- lib/asciidoctor/m3aawg/reqt.rng
|
241
|
-
- lib/asciidoctor/m3aawg/validate.rb
|
242
241
|
- lib/isodoc/m3aawg/base_convert.rb
|
243
242
|
- lib/isodoc/m3aawg/html/dots-w@2x.png
|
244
243
|
- lib/isodoc/m3aawg/html/dots@2x.png
|
@@ -271,6 +270,7 @@ files:
|
|
271
270
|
- lib/metanorma/m3aawg/processor.rb
|
272
271
|
- lib/metanorma/m3aawg/version.rb
|
273
272
|
- metanorma-m3d.gemspec
|
273
|
+
- metanorma.yml
|
274
274
|
homepage: https://github.com/metanorma/metanorma-m3aawg
|
275
275
|
licenses:
|
276
276
|
- BSD-2-Clause
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Asciidoctor
|
2
|
-
module M3AAWG
|
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
|
-
@log.add("Document Attributes", nil, "#{stage} is not a recognised status")
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|