metanorma-mpfd 0.0.2

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.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +17 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +25 -0
  7. data/README.adoc +1 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/rspec +18 -0
  11. data/bin/setup +8 -0
  12. data/lib/asciidoctor/mpfd/biblio.rng +836 -0
  13. data/lib/asciidoctor/mpfd/converter.rb +204 -0
  14. data/lib/asciidoctor/mpfd/isodoc.rng +1041 -0
  15. data/lib/asciidoctor/mpfd/isostandard.rng +1001 -0
  16. data/lib/asciidoctor/mpfd/pdf.js +31 -0
  17. data/lib/asciidoctor/mpfd/rsd.rng +212 -0
  18. data/lib/asciidoctor/mpfd/section.rb +94 -0
  19. data/lib/asciidoctor/mpfd/version.rb +5 -0
  20. data/lib/asciidoctor/mpfd.rb +9 -0
  21. data/lib/isodoc/mpfd/html/header.html +184 -0
  22. data/lib/isodoc/mpfd/html/html_rsd_intro.html +8 -0
  23. data/lib/isodoc/mpfd/html/html_rsd_titlepage.html +58 -0
  24. data/lib/isodoc/mpfd/html/htmlstyle.scss +1094 -0
  25. data/lib/isodoc/mpfd/html/logo.jpg +0 -0
  26. data/lib/isodoc/mpfd/html/logo.svg +1 -0
  27. data/lib/isodoc/mpfd/html/mpfa-logo-no-text@4x.png +0 -0
  28. data/lib/isodoc/mpfd/html/mpfa-logo@4x.png +0 -0
  29. data/lib/isodoc/mpfd/html/rsd.scss +564 -0
  30. data/lib/isodoc/mpfd/html/scripts.html +82 -0
  31. data/lib/isodoc/mpfd/html/word_rsd_intro.html +3 -0
  32. data/lib/isodoc/mpfd/html/word_rsd_titlepage.html +42 -0
  33. data/lib/isodoc/mpfd/html/wordstyle.scss +1096 -0
  34. data/lib/isodoc/mpfd/html_convert.rb +370 -0
  35. data/lib/isodoc/mpfd/i18n-en.yaml +1 -0
  36. data/lib/isodoc/mpfd/metadata.rb +98 -0
  37. data/lib/isodoc/mpfd/pdf_convert.rb +367 -0
  38. data/lib/isodoc/mpfd/word_convert.rb +347 -0
  39. data/lib/metanorma/mpfd/processor.rb +43 -0
  40. data/lib/metanorma/mpfd.rb +7 -0
  41. data/lib/metanorma-mpfd.rb +11 -0
  42. data/metanorma-mpfd.gemspec +46 -0
  43. metadata +326 -0
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ try {
4
+ require.resolve("puppeteer");
5
+ } catch(e) {
6
+ console.error("puppeteer Node library is not installed; will not generate PDF");
7
+ process.exit(e.code);
8
+ }
9
+
10
+ const puppeteer = require('puppeteer');
11
+
12
+ const createPdf = async() => {
13
+ let browser;
14
+ try {
15
+ browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
16
+ const page = await browser.newPage();
17
+ await page.goto(process.argv[2], {waitUntil: 'networkidle2'});
18
+ await page.pdf({
19
+ path: process.argv[3],
20
+ format: 'A4'
21
+ });
22
+ } catch (err) {
23
+ console.log(err.message);
24
+ } finally {
25
+ if (browser) {
26
+ browser.close();
27
+ }
28
+ process.exit();
29
+ }
30
+ };
31
+ createPdf();
@@ -0,0 +1,212 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <!--
4
+ Currently we inherit from a namespaced grammar, isostandard. Until we inherit from isodoc,
5
+ we cannot have a new default namespace: we will end up with a grammar with two different
6
+ namespaces, one for isostandard and one for csand additions. And we do not want that.
7
+ -->
8
+ <include href="isostandard.rng">
9
+ <start>
10
+ <ref name="rsd-standard"/>
11
+ </start>
12
+ <define name="language">
13
+ <element name="language">
14
+ <value>en</value>
15
+ </element>
16
+ </define>
17
+ <define name="docidentifier">
18
+ <element name="docidentifier">
19
+ <text/>
20
+ </element>
21
+ </define>
22
+ <define name="btitle">
23
+ <element name="title">
24
+ <ref name="FormattedString"/>
25
+ </element>
26
+ </define>
27
+ <define name="figure">
28
+ <element name="figure">
29
+ <attribute name="id">
30
+ <data type="ID"/>
31
+ </attribute>
32
+ <optional>
33
+ <ref name="source"/>
34
+ </optional>
35
+ <optional>
36
+ <ref name="tname"/>
37
+ </optional>
38
+ <choice>
39
+ <oneOrMore>
40
+ <ref name="figure"/>
41
+ </oneOrMore>
42
+ <group>
43
+ <choice>
44
+ <zeroOrMore>
45
+ <ref name="TextElement"/>
46
+ </zeroOrMore>
47
+ <ref name="pre"/>
48
+ </choice>
49
+ <zeroOrMore>
50
+ <ref name="note"/>
51
+ </zeroOrMore>
52
+ <optional>
53
+ <ref name="dl"/>
54
+ </optional>
55
+ </group>
56
+ </choice>
57
+ </element>
58
+ </define>
59
+ <define name="status">
60
+ <element name="status">
61
+ <choice>
62
+ <value>proposal</value>
63
+ <value>working-draft</value>
64
+ <value>committee-draft</value>
65
+ <value>draft-standard</value>
66
+ <value>final-draft</value>
67
+ <value>published</value>
68
+ <value>withdrawn</value>
69
+ <ref name="LocalizedString"/>
70
+ </choice>
71
+ </element>
72
+ </define>
73
+ <!-- TextElement |= keyword -->
74
+ <define name="TextElement">
75
+ <choice>
76
+ <text/>
77
+ <ref name="em"/>
78
+ <ref name="eref"/>
79
+ <ref name="strong"/>
80
+ <ref name="stem"/>
81
+ <ref name="sub"/>
82
+ <ref name="sup"/>
83
+ <ref name="tt"/>
84
+ <ref name="strike"/>
85
+ <ref name="smallcap"/>
86
+ <ref name="xref"/>
87
+ <ref name="br"/>
88
+ <ref name="hyperlink"/>
89
+ <ref name="hr"/>
90
+ <ref name="pagebreak"/>
91
+ <ref name="bookmark"/>
92
+ <ref name="keyword"/>
93
+ </choice>
94
+ </define>
95
+ <define name="BibItemType" combine="choice">
96
+ <choice>
97
+ <value>policy-and-procedures</value>
98
+ <value>best-practices</value>
99
+ <value>supporting-document</value>
100
+ <value>report</value>
101
+ <value>legal</value>
102
+ <value>directives</value>
103
+ <value>proposal</value>
104
+ <value>standard</value>
105
+ </choice>
106
+ </define>
107
+ <define name="editorialgroup">
108
+ <element name="editorialgroup">
109
+ <ref name="committee"/>
110
+ </element>
111
+ </define>
112
+ <define name="BibData">
113
+ <optional>
114
+ <attribute name="type">
115
+ <ref name="BibItemType"/>
116
+ </attribute>
117
+ </optional>
118
+ <oneOrMore>
119
+ <ref name="btitle"/>
120
+ </oneOrMore>
121
+ <optional>
122
+ <ref name="formattedref"/>
123
+ </optional>
124
+ <zeroOrMore>
125
+ <ref name="bsource"/>
126
+ </zeroOrMore>
127
+ <zeroOrMore>
128
+ <ref name="docidentifier"/>
129
+ </zeroOrMore>
130
+ <zeroOrMore>
131
+ <ref name="bdate"/>
132
+ </zeroOrMore>
133
+ <zeroOrMore>
134
+ <ref name="contributor"/>
135
+ </zeroOrMore>
136
+ <optional>
137
+ <ref name="edition"/>
138
+ </optional>
139
+ <zeroOrMore>
140
+ <ref name="biblionote"/>
141
+ </zeroOrMore>
142
+ <zeroOrMore>
143
+ <ref name="language"/>
144
+ </zeroOrMore>
145
+ <zeroOrMore>
146
+ <ref name="script"/>
147
+ </zeroOrMore>
148
+ <zeroOrMore>
149
+ <ref name="abstract"/>
150
+ </zeroOrMore>
151
+ <optional>
152
+ <ref name="status"/>
153
+ </optional>
154
+ <ref name="copyright"/>
155
+ <zeroOrMore>
156
+ <ref name="docrelation"/>
157
+ </zeroOrMore>
158
+ <ref name="editorialgroup"/>
159
+ <zeroOrMore>
160
+ <ref name="ics"/>
161
+ </zeroOrMore>
162
+ <optional>
163
+ <ref name="security"/>
164
+ </optional>
165
+ </define>
166
+ </include>
167
+ <define name="committee">
168
+ <element name="committee">
169
+ <attribute name="type">
170
+ <choice>
171
+ <value>technical</value>
172
+ <value>provisional</value>
173
+ </choice>
174
+ </attribute>
175
+ <text/>
176
+ </element>
177
+ </define>
178
+ <define name="pre">
179
+ <element name="pre">
180
+ <text/>
181
+ </element>
182
+ </define>
183
+ <define name="keyword">
184
+ <element name="keyword">
185
+ <text/>
186
+ </element>
187
+ </define>
188
+ <define name="security">
189
+ <element name="security">
190
+ <text/>
191
+ </element>
192
+ </define>
193
+ <define name="rsd-standard">
194
+ <element name="rsd-standard">
195
+ <ref name="bibdata"/>
196
+ <optional>
197
+ <ref name="version"/>
198
+ </optional>
199
+ <zeroOrMore>
200
+ <ref name="termdocsource"/>
201
+ </zeroOrMore>
202
+ <ref name="preface"/>
203
+ <oneOrMore>
204
+ <ref name="sections"/>
205
+ </oneOrMore>
206
+ <zeroOrMore>
207
+ <ref name="annex"/>
208
+ </zeroOrMore>
209
+ <ref name="bibliography"/>
210
+ </element>
211
+ </define>
212
+ </grammar>
@@ -0,0 +1,94 @@
1
+ require "asciidoctor"
2
+ require "asciidoctor/mpfd"
3
+ require "asciidoctor/iso/converter"
4
+ require "isodoc/mpfd/html_convert"
5
+ require "isodoc/mpfd/word_convert"
6
+
7
+ module Asciidoctor
8
+ module Mpfd
9
+
10
+ # A {Converter} implementation that generates MPFD output, and a document
11
+ # schema encapsulation of the document for validation
12
+ #
13
+ class Converter < ISO::Converter
14
+
15
+ def sections_cleanup(x)
16
+ super
17
+ x.xpath("//*[@inline-header]").each do |h|
18
+ h.delete("inline-header")
19
+ end
20
+ x.xpath("//[@guidance]").each do |h|
21
+ require "byebug"; byebug
22
+ c = h.previous_element || next
23
+ c.add_child h.remove
24
+ end
25
+ end
26
+
27
+ def section(node)
28
+ a = { id: Asciidoctor::ISO::Utils::anchor_or_uuid(node) }
29
+ noko do |xml|
30
+ case sectiontype(node)
31
+ when "introduction" then
32
+ if node.level == 1 then introduction_parse(a, xml, node)
33
+ else
34
+ clause_parse(a, xml, node)
35
+ end
36
+ when "terms and definitions",
37
+ "terms, definitions, symbols and abbreviated terms",
38
+ "terms, definitions, symbols and abbreviations",
39
+ "terms, definitions and symbols",
40
+ "terms, definitions and abbreviations",
41
+ "terms, definitions and abbreviated terms",
42
+ "glossary"
43
+ @term_def = true
44
+ term_def_parse(a, xml, node, true)
45
+ @term_def = false
46
+ when "symbols and abbreviated terms"
47
+ symbols_parse(a, xml, node)
48
+ when "bibliography" then bibliography_parse(a, xml, node)
49
+ else
50
+ if @term_def then term_def_subclause_parse(a, xml, node)
51
+ elsif @biblio then bibliography_parse(a, xml, node)
52
+ elsif node.attr("style") == "bibliography" && node.level == 1
53
+ bibliography_parse(a, xml, node)
54
+ elsif node.attr("style") == "appendix" && node.level == 1
55
+ annex_parse(a, xml, node)
56
+ elsif node.option? "appendix"
57
+ appendix_parse(a, xml, node)
58
+ else
59
+ clause_parse(a, xml, node)
60
+ end
61
+ end
62
+ end.join("\n")
63
+ end
64
+
65
+ def term_def_title(_toplevel, node)
66
+ return node.title
67
+ end
68
+
69
+ def make_preface(x, s)
70
+ if x.at("//foreword | //introduction | //terms")
71
+ preface = s.add_previous_sibling("<preface/>").first
72
+ foreword = x.at("//foreword")
73
+ preface.add_child foreword.remove if foreword
74
+ introduction = x.at("//introduction")
75
+ preface.add_child introduction.remove if introduction
76
+ terms = x.at("//terms")
77
+ preface.add_child terms.remove if terms
78
+ end
79
+ x.xpath("//clause[@preface]").each do |c|
80
+ c.delete("preface")
81
+ preface.add_child c.remove
82
+ end
83
+ end
84
+
85
+ def clause_parse(attrs, xml, node)
86
+ attrs[:preface] = true if node.attr("style") == "preface"
87
+ attrs[:guidance] = true if node.role == "guidance"
88
+ attrs[:container] = true if node.role == "container"
89
+ super
90
+ end
91
+
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,5 @@
1
+ module Asciidoctor
2
+ module Mpfd
3
+ VERSION = "0.0.2"
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ require "asciidoctor/mpfd/version"
2
+
3
+ module Asciidoctor
4
+ module Mpfd
5
+
6
+ MPFD_NAMESPACE = "https://open.ribose.com/standards/mpfd"
7
+
8
+ end
9
+ end
@@ -0,0 +1,184 @@
1
+ <html xmlns:v="urn:schemas-microsoft-com:vml"
2
+ xmlns:o="urn:schemas-microsoft-com:office:office"
3
+ xmlns:w="urn:schemas-microsoft-com:office:word"
4
+ xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
5
+ xmlns:mv="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
6
+
7
+ <head>
8
+ <meta name=Title content="">
9
+ <meta name=Keywords content="">
10
+ <meta http-equiv=Content-Type content="text/html; charset=utf-8">
11
+ <meta name=ProgId content=Word.Document>
12
+ <meta name=Generator content="Microsoft Word 15">
13
+ <meta name=Originator content="Microsoft Word 15">
14
+ <link id=Main-File rel=Main-File href="../{{ filename }}.html">
15
+ <!--[if gte mso 9]><xml>
16
+ <o:shapedefaults v:ext="edit" spidmax="2049"/>
17
+ </xml><![endif]-->
18
+ </head>
19
+
20
+ <body lang=EN link=blue vlink="#954F72">
21
+
22
+ <div style='mso-element:footnote-separator' id=fs>
23
+
24
+ <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
25
+ normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
26
+
27
+ <hr align=left size=1 width="33%">
28
+
29
+ <![endif]></span></span></p>
30
+
31
+ </div>
32
+
33
+ <div style='mso-element:footnote-continuation-separator' id=fcs>
34
+
35
+ <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
36
+ normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
37
+
38
+ <hr align=left size=1>
39
+
40
+ <![endif]></span></span></p>
41
+
42
+ </div>
43
+
44
+ <div style='mso-element:endnote-separator' id=es>
45
+
46
+ <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
47
+ normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
48
+
49
+ <hr align=left size=1 width="33%">
50
+
51
+ <![endif]></span></span></p>
52
+
53
+ </div>
54
+
55
+ <div style='mso-element:endnote-continuation-separator' id=ecs>
56
+
57
+ <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
58
+ normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
59
+
60
+ <hr align=left size=1>
61
+
62
+ <![endif]></span></span></p>
63
+
64
+ </div>
65
+
66
+ <div style='mso-element:header' id=eh1>
67
+
68
+ <p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
69
+ mso-line-height-rule:exactly'><span lang=EN-GB>CS&nbsp;{{ docnumber }}:{{ docyear }}</span></p>
70
+
71
+ </div>
72
+
73
+ <div style='mso-element:header' id=h1>
74
+
75
+ <p class=MsoHeader style='margin-bottom:18.0pt'><span lang=EN-GB
76
+ style='font-size:10.0pt;mso-bidi-font-size:11.0pt;font-weight:normal'>©
77
+ Ribose Group Inc.&nbsp;{{ docyear }}&nbsp;– All rights reserved</span><span lang=EN-GB
78
+ style='font-weight:normal'><o:p></o:p></span></p>
79
+
80
+ </div>
81
+
82
+ <div style='mso-element:footer' id=ef1>
83
+
84
+ <p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
85
+ exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
86
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
87
+ style='mso-element:field-begin'></span><span
88
+ style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
89
+ </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
90
+ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
91
+ mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
92
+ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
93
+ mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
94
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
95
+ style='mso-tab-count:1'>                                                                                                                                                                           </span>©
96
+ Ribose Group Inc.&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
97
+
98
+ </div>
99
+
100
+ <div style='mso-element:header' id=eh2>
101
+
102
+ <p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
103
+ mso-line-height-rule:exactly'><span lang=EN-GB>Ribose Group Inc.&nbsp;{{ docnumber }}:{{ docyear }}</span></p>
104
+
105
+ </div>
106
+
107
+ <div style='mso-element:header' id=h2>
108
+
109
+ <p class=MsoHeader align=right style='text-align:right;line-height:12.0pt;
110
+ mso-line-height-rule:exactly'><span lang=EN-GB>Ribose Group Inc.&nbsp;{{ docnumber }}:{{ docyear }}</span></p>
111
+
112
+ </div>
113
+
114
+ <div style='mso-element:footer' id=ef2>
115
+
116
+ <p class=MsoFooter style='line-height:12.0pt;mso-line-height-rule:exactly'><!--[if supportFields]><span
117
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
118
+ style='mso-element:field-begin'></span><span
119
+ style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
120
+ </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
121
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
122
+ style='mso-no-proof:yes'>ii</span></span><!--[if supportFields]><span
123
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
124
+ style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
125
+ style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
126
+ 1'>                                                                                                                                                                           </span>©
127
+ Ribose Group Inc.&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
128
+
129
+ </div>
130
+
131
+ <div style='mso-element:footer' id=f2>
132
+
133
+ <p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
134
+ style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© Ribose Group Inc.&nbsp;{{ docyear }}&nbsp;– All
135
+ rights reserved<span style='mso-tab-count:1'>                                                                                                                                                                          </span></span><!--[if supportFields]><span
136
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
137
+ style='mso-element:field-begin'></span> PAGE<span style='mso-spacerun:yes'>  
138
+ </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
139
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
140
+ style='mso-no-proof:yes'>iii</span></span><!--[if supportFields]><span
141
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
142
+ style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
143
+ style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
144
+
145
+ </div>
146
+
147
+ <div style='mso-element:footer' id=ef3>
148
+
149
+ <p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
150
+ exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
151
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
152
+ style='mso-element:field-begin'></span><span
153
+ style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
154
+ </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
155
+ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
156
+ mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
157
+ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
158
+ mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
159
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
160
+ style='mso-tab-count:1'>                                                                                                                                                                           </span>©
161
+ Ribose Group Inc.&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
162
+
163
+ </div>
164
+
165
+ <div style='mso-element:footer' id=f3>
166
+
167
+ <p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
168
+ style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© Ribose Group Inc.&nbsp;{{ docyear }}&nbsp;– All
169
+ rights reserved<span style='mso-tab-count:1'>                                                                                                                                                                           </span></span><!--[if supportFields]><b
170
+ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
171
+ mso-bidi-font-size:11.0pt'><span style='mso-element:field-begin'></span>
172
+ PAGE<span style='mso-spacerun:yes'>   </span>\* MERGEFORMAT <span
173
+ style='mso-element:field-separator'></span></span></b><![endif]--><b
174
+ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
175
+ mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>3</span></span></b><!--[if supportFields]><b
176
+ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
177
+ mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
178
+ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
179
+
180
+ </div>
181
+
182
+ </body>
183
+
184
+ </html>
@@ -0,0 +1,8 @@
1
+ <nav>
2
+ <h1 id="content">Contents</h1>
3
+ <div id="toc"></div>
4
+
5
+ </nav>
6
+
7
+
8
+ <div class="rule toc"></div>
@@ -0,0 +1,58 @@
1
+ <!--
2
+ <div class="document-stage-band" id='{{ status | downcase | replace: " ", "-" }}-band'>
3
+ <p class="document-stage">{{ status }}</p>
4
+ </div>
5
+
6
+ <div class="document-type-band" id='{{ doctype | downcase | replace: " ", "-" }}-band'>
7
+ <p class="document-type">Ribose {{ doctype }}</p>
8
+ </div>
9
+ -->
10
+
11
+
12
+ <div id='toggle'> <span>&#x2022;</span> </div>
13
+
14
+ <header>
15
+
16
+ <div class="coverpage">
17
+ <div class="wrapper-top">
18
+
19
+ <div class="coverpage-doc-identity">
20
+ <img src="mpfa-logo-no-text@4x.png" width="50px">
21
+ </div>
22
+
23
+ {% if docnumber %}
24
+ <div class="doc-number">
25
+ <span class="docnumber">{{ docnumber }}</span>
26
+ <span class="docyear">{{ docyear }} {{ draftinfo }}</span>
27
+ </div>
28
+ {% endif %}
29
+
30
+ <div class="coverpage-title">
31
+ <span class="title-1">{{ doctype }}</span>
32
+ <span class="title-3">{{ doctitle }}</span>
33
+ <!--<span class="title-second">{{ docsubtitle }}</span>-->
34
+ </div>
35
+
36
+ <div class="coverpage-footer">
37
+ <div class="coverpage-logo">
38
+ <span class="doc-edition">{{ edition }} Edition</span>
39
+ <span>{{ revdate_monthyear }} {{ draftinfo }}</span>
40
+
41
+ </div>
42
+
43
+ <div class="coverpage-location">
44
+ <span>Hong Kong</span>
45
+ </div>
46
+ </div>
47
+
48
+
49
+
50
+ <div class="info-section">
51
+ <div class="copyright">
52
+ </div>
53
+
54
+ </div>
55
+ </div>
56
+ </div>
57
+
58
+ </header>