metanorma-jis 0.0.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 +7 -0
- data/.hound.yml +5 -0
- data/.rubocop.yml +10 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +12 -0
- data/LICENSE +25 -0
- data/README.adoc +81 -0
- data/lib/html2doc/lists.rb +166 -0
- data/lib/isodoc/jis/base_convert.rb +41 -0
- data/lib/isodoc/jis/html/header.html +934 -0
- data/lib/isodoc/jis/html/html_jis_intro.html +8 -0
- data/lib/isodoc/jis/html/html_jis_titlepage.html +79 -0
- data/lib/isodoc/jis/html/htmlstyle.css +47 -0
- data/lib/isodoc/jis/html/htmlstyle.scss +45 -0
- data/lib/isodoc/jis/html/isodoc.css +12080 -0
- data/lib/isodoc/jis/html/isodoc.scss +11551 -0
- data/lib/isodoc/jis/html/style-human.css +1107 -0
- data/lib/isodoc/jis/html/style-human.scss +783 -0
- data/lib/isodoc/jis/html/style-iso.css +1133 -0
- data/lib/isodoc/jis/html/style-iso.scss +800 -0
- data/lib/isodoc/jis/html/word_jis_intro.html +14 -0
- data/lib/isodoc/jis/html/word_jis_titlepage.html +128 -0
- data/lib/isodoc/jis/html/wordstyle.css +3477 -0
- data/lib/isodoc/jis/html/wordstyle.scss +3378 -0
- data/lib/isodoc/jis/html_convert.rb +37 -0
- data/lib/isodoc/jis/i18n-ja.yaml +214 -0
- data/lib/isodoc/jis/i18n.rb +15 -0
- data/lib/isodoc/jis/init.rb +34 -0
- data/lib/isodoc/jis/metadata.rb +52 -0
- data/lib/isodoc/jis/pdf_convert.rb +17 -0
- data/lib/isodoc/jis/presentation_xml_convert.rb +11 -0
- data/lib/isodoc/jis/word_convert.rb +153 -0
- data/lib/isodoc/jis/xref.rb +6 -0
- data/lib/metanorma/jis/basicdoc.rng +1125 -0
- data/lib/metanorma/jis/biblio-standoc.rng +164 -0
- data/lib/metanorma/jis/biblio.rng +1461 -0
- data/lib/metanorma/jis/converter.rb +71 -0
- data/lib/metanorma/jis/front.rb +51 -0
- data/lib/metanorma/jis/isodoc.rng +2450 -0
- data/lib/metanorma/jis/isostandard.rng +316 -0
- data/lib/metanorma/jis/jis.rng +63 -0
- data/lib/metanorma/jis/processor.rb +53 -0
- data/lib/metanorma/jis/relaton-jis.rng +231 -0
- data/lib/metanorma/jis/reqt.rng +226 -0
- data/lib/metanorma/jis/version.rb +6 -0
- data/lib/metanorma/jis.rb +6 -0
- data/lib/metanorma-jis.rb +16 -0
- data/metanorma-jis.gemspec +49 -0
- metadata +303 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
require "metanorma-iso"
|
3
|
+
require_relative "base_convert"
|
4
|
+
require_relative "init"
|
5
|
+
|
6
|
+
module IsoDoc
|
7
|
+
module JIS
|
8
|
+
class HtmlConvert < IsoDoc::Iso::HtmlConvert
|
9
|
+
def initialize(options)
|
10
|
+
super
|
11
|
+
@libdir = File.dirname(__FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
def default_fonts(options)
|
15
|
+
{
|
16
|
+
bodyfont: (options[:script] == "Jpan" ? '"MS Mincho",serif' : '"Times New Roman",serif'),
|
17
|
+
headerfont: (options[:script] == "Jpan" ? '"MS Gothic",sans-serif' : '"Arial",sans-serif'),
|
18
|
+
monospacefont: '"Courier New",monospace',
|
19
|
+
monospacefontsize: "1.0em",
|
20
|
+
footnotefontsize: "0.9em",
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
def default_file_locations(_options)
|
25
|
+
@libdir = File.dirname(__FILE__)
|
26
|
+
{
|
27
|
+
htmlstylesheet: html_doc_path("htmlstyle.scss"),
|
28
|
+
htmlcoverpage: html_doc_path("html_jis_titlepage.html"),
|
29
|
+
htmlintropage: html_doc_path("html_jis_intro.html"),
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
include BaseConvert
|
34
|
+
include Init
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,214 @@
|
|
1
|
+
term_def_boilerplate:
|
2
|
+
scope: 適用範囲
|
3
|
+
symbolsabbrev: 記号及び略語
|
4
|
+
abbrev: Abbreviated terms
|
5
|
+
symbols: Symbols
|
6
|
+
table_of_contents: 目次
|
7
|
+
introduction: 序文
|
8
|
+
foreword: まえがき
|
9
|
+
abstract: Abstract
|
10
|
+
acknowledgements: Acknowledgements
|
11
|
+
termsdef: 用語及び定義
|
12
|
+
termsdefsymbolsabbrev: Terms, definitions, symbols and abbreviated terms
|
13
|
+
termsdefsymbols: Terms, definitions and symbols
|
14
|
+
termsdefabbrev: Terms, definitions and abbreviated terms
|
15
|
+
normref: 引用規格
|
16
|
+
bibliography: 参考文献
|
17
|
+
preface: Preface
|
18
|
+
clause: 箇条
|
19
|
+
annex: 附属書
|
20
|
+
appendix: Appendix
|
21
|
+
no_terms_boilerplate: |
|
22
|
+
<p>この規格には,定義する用語はない。</p>
|
23
|
+
internal_terms_boilerplate: |
|
24
|
+
<p>この規格で用いる主な用語及び定義は,次による。</p>
|
25
|
+
norm_with_refs_pref:
|
26
|
+
次に掲げる引用規格は,この規格に引用されることによって,その一部又は全部がこの規格の要 求事項を構成している。これらの引用規格のうち,西暦年を付記してあるものは,記載の年の版を適 用し,その後の改正版(追補を含む。)は適用しない。西暦年の付記がない引用規格は,その最新版(追 補を含む。)を適用する。
|
27
|
+
norm_empty_pref:
|
28
|
+
この規格には,引用規格はない。
|
29
|
+
external_terms_boilerplate: |
|
30
|
+
<p>この規格で用いる主な用語及び定義は,% による。</p>
|
31
|
+
internal_external_terms_boilerplate: |
|
32
|
+
<p>この規格で用いる主な用語及び定義は,次によるほか,% による。</p>
|
33
|
+
term_defined_in: "[term defined in %]"
|
34
|
+
binary_and: "%1 and %2"
|
35
|
+
multiple_and: "%1, and %2"
|
36
|
+
binary_or: "%1 or %2"
|
37
|
+
multiple_or: "%1, or %2"
|
38
|
+
chain_and: "%1 and %2"
|
39
|
+
chain_or: "%1 or %2"
|
40
|
+
chain_from: "%1 from %2"
|
41
|
+
chain_to: "%1 to %2"
|
42
|
+
ordinal_keys: []
|
43
|
+
SpelloutRules: spellout-ordinal
|
44
|
+
note: 注記
|
45
|
+
note_xref: 注記
|
46
|
+
termnote: 注釈%
|
47
|
+
list: List
|
48
|
+
deflist: Definition List
|
49
|
+
figure: 図
|
50
|
+
diagram: Diagram
|
51
|
+
formula: 式
|
52
|
+
inequality: Formula
|
53
|
+
table: 表
|
54
|
+
requirement: 要求事項
|
55
|
+
recommendation: 推奨事項
|
56
|
+
permission: 許容事項
|
57
|
+
box: Box
|
58
|
+
index: 索引
|
59
|
+
standard_no: 規格番号
|
60
|
+
number: 番号
|
61
|
+
# Modspec
|
62
|
+
recommendationtest: Recommendation test
|
63
|
+
requirementtest: Requirement test
|
64
|
+
permissiontest: Permission test
|
65
|
+
recommendationclass: Recommendations class
|
66
|
+
requirementclass: Requirements class
|
67
|
+
permissionclass: Permissions class
|
68
|
+
abstracttest: Abstract test
|
69
|
+
conformanceclass: Conformance class
|
70
|
+
key: 記号説明
|
71
|
+
example: 例
|
72
|
+
example_xref: 例
|
73
|
+
where: ここで,
|
74
|
+
where_one: ここで,
|
75
|
+
wholeoftext: Whole of text
|
76
|
+
draft_label: draft
|
77
|
+
inform_annex: 参考
|
78
|
+
norm_annex: 規定
|
79
|
+
modified: modified
|
80
|
+
deprecated: DEPRECATED
|
81
|
+
source: 出典
|
82
|
+
and: and
|
83
|
+
all_parts: 規格群
|
84
|
+
edition_ordinal: "%Spellout edition"
|
85
|
+
edition: edition
|
86
|
+
version: version
|
87
|
+
toc_figures: List of figures
|
88
|
+
toc_tables: List of tables
|
89
|
+
toc_recommendations: List of recommendations
|
90
|
+
month_january: January
|
91
|
+
month_february: February
|
92
|
+
month_march: March
|
93
|
+
month_april: April
|
94
|
+
month_may: May
|
95
|
+
month_june: June
|
96
|
+
month_july: July
|
97
|
+
month_august: August
|
98
|
+
month_september: September
|
99
|
+
month_october: October
|
100
|
+
month_november: November
|
101
|
+
month_december: December
|
102
|
+
obligation: Obligation
|
103
|
+
admonition: {
|
104
|
+
danger: Danger,
|
105
|
+
warning: Warning,
|
106
|
+
caution: Caution,
|
107
|
+
important: Important,
|
108
|
+
safety precautions: Safety Precautions,
|
109
|
+
editorial: Editorial Note
|
110
|
+
}
|
111
|
+
locality: {
|
112
|
+
section: Section,
|
113
|
+
clause: 箇条,
|
114
|
+
subclause: 細分箇条,
|
115
|
+
part: 部,
|
116
|
+
paragraph: 段落,
|
117
|
+
chapter: Chapter,
|
118
|
+
page: Page,
|
119
|
+
table: 表,
|
120
|
+
annex: 附属書,
|
121
|
+
figure: 図,
|
122
|
+
example: 例,
|
123
|
+
note: 注記,
|
124
|
+
formula: 式,
|
125
|
+
}
|
126
|
+
grammar_abbrevs:
|
127
|
+
masculine: m
|
128
|
+
feminine: f
|
129
|
+
neuter: n
|
130
|
+
common: common
|
131
|
+
singular: sg
|
132
|
+
dual: dual
|
133
|
+
pl: pl
|
134
|
+
isPreposition: prep
|
135
|
+
isParticiple: part
|
136
|
+
isAdjective: adj
|
137
|
+
isAdverb: adv
|
138
|
+
isNoun: noun
|
139
|
+
isVerb: verb
|
140
|
+
relatedterms:
|
141
|
+
deprecates: deprecates
|
142
|
+
supersedes: supersedes
|
143
|
+
narrower: narrower
|
144
|
+
broader: broader
|
145
|
+
equivalent: equivalent
|
146
|
+
compare: compare
|
147
|
+
contrast: contrast
|
148
|
+
see: see
|
149
|
+
seealso: see also
|
150
|
+
inflection:
|
151
|
+
Clause:
|
152
|
+
sg: Clause
|
153
|
+
pl: Clauses
|
154
|
+
Annex:
|
155
|
+
sg: Annex
|
156
|
+
pl: Annexes
|
157
|
+
Appendix:
|
158
|
+
sg: Appendix
|
159
|
+
pl: Appendixes
|
160
|
+
Note:
|
161
|
+
sg: Note
|
162
|
+
pl: Notes
|
163
|
+
"Note % to entry":
|
164
|
+
sg: Note % to entry
|
165
|
+
pl: Notes % to entry
|
166
|
+
List:
|
167
|
+
sg: List
|
168
|
+
pl: Lists
|
169
|
+
Figure:
|
170
|
+
sg: Figure
|
171
|
+
pl: Figures
|
172
|
+
Formula:
|
173
|
+
sg: Formula
|
174
|
+
pl: Formulas
|
175
|
+
Table:
|
176
|
+
sg: Table
|
177
|
+
pl: Tables
|
178
|
+
Requirement:
|
179
|
+
sg: Requirement
|
180
|
+
pl: Requirements
|
181
|
+
Recommendation:
|
182
|
+
sg: Recommendation
|
183
|
+
pl: Recommendations
|
184
|
+
Permission:
|
185
|
+
sg: Permission
|
186
|
+
pl: Permissions
|
187
|
+
Example:
|
188
|
+
sg: Example
|
189
|
+
pl: Examples
|
190
|
+
Part:
|
191
|
+
sg: Part
|
192
|
+
pl: Parts
|
193
|
+
Section:
|
194
|
+
sg: Section
|
195
|
+
pl: Sections
|
196
|
+
Paragraph:
|
197
|
+
sg: Paragraph
|
198
|
+
pl: Paragraphs
|
199
|
+
Chapter:
|
200
|
+
sg: Chapter
|
201
|
+
pl: Chapters
|
202
|
+
Page:
|
203
|
+
sg: Page
|
204
|
+
pl: Pages
|
205
|
+
doctype_dict:
|
206
|
+
international-standard: 日本産業規格
|
207
|
+
technical-specification: 標準仕様書
|
208
|
+
technical-report: 標準報告書
|
209
|
+
publicly-available-specification: Publicly Available Specification
|
210
|
+
international-workshop-agreement: International Workshop Agreement
|
211
|
+
guide: Guide
|
212
|
+
amendment: 追補
|
213
|
+
technical-corrigendum: Technical Corrigendum
|
214
|
+
directive: Directive
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module IsoDoc
|
2
|
+
module JIS
|
3
|
+
class I18n < IsoDoc::Iso::I18n
|
4
|
+
def load_yaml1(lang, script)
|
5
|
+
y = if lang == "ja"
|
6
|
+
YAML.load_file(File.join(File.dirname(__FILE__), "i18n-ja.yaml"))
|
7
|
+
else
|
8
|
+
YAML.load_file(File.join(File.dirname(__FILE__), "i18n-ja.yaml"))
|
9
|
+
end
|
10
|
+
super.deep_merge(y)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
require_relative "metadata"
|
3
|
+
require_relative "i18n"
|
4
|
+
|
5
|
+
module IsoDoc
|
6
|
+
module JIS
|
7
|
+
module Init
|
8
|
+
def metadata_init(lang, script, locale, labels)
|
9
|
+
@meta = Metadata.new(lang, script, locale, labels)
|
10
|
+
end
|
11
|
+
|
12
|
+
def xref_init(lang, script, _klass, labels, options)
|
13
|
+
@xrefs = Xref.new(lang, script,
|
14
|
+
HtmlConvert.new(language: lang, script: script),
|
15
|
+
labels, options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def i18n_init(lang, script, locale, i18nyaml = nil)
|
19
|
+
@i18n = I18n.new(lang, script, locale: locale,
|
20
|
+
i18nyaml: i18nyaml || @i18nyaml)
|
21
|
+
end
|
22
|
+
|
23
|
+
def omit_docid_prefix(prefix)
|
24
|
+
return true if prefix.nil? || prefix.empty?
|
25
|
+
|
26
|
+
super || %w(JIS).include?(prefix)
|
27
|
+
end
|
28
|
+
|
29
|
+
def std_docid_semantic(text)
|
30
|
+
text
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
require "metanorma-iso"
|
3
|
+
|
4
|
+
module IsoDoc
|
5
|
+
module JIS
|
6
|
+
class Metadata < IsoDoc::Iso::Metadata
|
7
|
+
def title(isoxml, _out)
|
8
|
+
lang = case @lang
|
9
|
+
when "ja", "en" then @lang
|
10
|
+
else "ja"
|
11
|
+
end
|
12
|
+
# intro, main, part, amd = title_parts(isoxml, lang)
|
13
|
+
tp = title_parts(isoxml, lang)
|
14
|
+
tn = title_nums(isoxml)
|
15
|
+
|
16
|
+
set(:doctitlemain,
|
17
|
+
@c.encode(tp[:main] ? tp[:main].text : "", :hexadecimal))
|
18
|
+
main = compose_title(tp, tn, lang)
|
19
|
+
set(:doctitle, main)
|
20
|
+
tp[:intro] and
|
21
|
+
set(:doctitleintro,
|
22
|
+
@c.encode(tp[:intro] ? tp[:intro].text : "", :hexadecimal))
|
23
|
+
set(:doctitlepartlabel, part_prefix(tn, lang))
|
24
|
+
set(:doctitlepart, @c.encode(tp[:part].text, :hexadecimal)) if tp[:part]
|
25
|
+
set(:doctitleamdlabel, amd_prefix(tn, lang)) if tn[:amd]
|
26
|
+
set(:doctitleamd, @c.encode(tp[:amd].text, :hexadecimal)) if tp[:amd]
|
27
|
+
set(:doctitlecorrlabel, corr_prefix(tn, lang)) if tn[:corr]
|
28
|
+
end
|
29
|
+
|
30
|
+
def subtitle(isoxml, _out)
|
31
|
+
lang = @lang == "ja" ? "en" : "ja"
|
32
|
+
tp = title_parts(isoxml, lang)
|
33
|
+
tn = title_nums(isoxml)
|
34
|
+
|
35
|
+
set(:docsubtitlemain,
|
36
|
+
@c.encode(tp[:main] ? tp[:main].text : "", :hexadecimal))
|
37
|
+
main = compose_title(tp, tn, lang)
|
38
|
+
set(:docsubtitle, main)
|
39
|
+
tp[:intro] and
|
40
|
+
set(:docsubtitleintro,
|
41
|
+
@c.encode(tp[:intro] ? tp[:intro].text : "", :hexadecimal))
|
42
|
+
set(:docsubtitlepartlabel, part_prefix(tn, lang))
|
43
|
+
tp[:part] and
|
44
|
+
set(:docsubtitlepart,
|
45
|
+
@c.encode(tp[:part].text, :hexadecimal))
|
46
|
+
set(:docsubtitleamdlabel, amd_prefix(tn, lang)) if tn[:amd]
|
47
|
+
set(:docsubtitleamd, @c.encode(tp[:amd].text, :hexadecimal)) if tp[:amd]
|
48
|
+
set(:docsubtitlecorrlabel, corr_prefix(tn, lang)) if tn[:corr]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative "base_convert"
|
2
|
+
require "isodoc"
|
3
|
+
|
4
|
+
module IsoDoc
|
5
|
+
module JIS
|
6
|
+
class PdfConvert < IsoDoc::XslfoPdfConvert
|
7
|
+
def initialize(options)
|
8
|
+
@libdir = File.dirname(__FILE__)
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def pdf_stylesheet(_docxml)
|
13
|
+
"jis.international-standard.xsl"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,153 @@
|
|
1
|
+
require_relative "../../html2doc/lists"
|
2
|
+
require_relative "base_convert"
|
3
|
+
require "isodoc"
|
4
|
+
require_relative "init"
|
5
|
+
|
6
|
+
module IsoDoc
|
7
|
+
module JIS
|
8
|
+
class WordConvert < IsoDoc::WordConvert
|
9
|
+
def initialize(options)
|
10
|
+
@libdir = File.dirname(__FILE__)
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
def default_fonts(options)
|
15
|
+
{ bodyfont: (options[:script] == "Jpan" ? '"MS Mincho",serif' : '"Times New Roman",serif'),
|
16
|
+
headerfont: (options[:script] == "Jpan" ? '"MS Gothic",sans-serif' : '"Arial",sans-serif'),
|
17
|
+
monospacefont: '"Courier New",monospace',
|
18
|
+
normalfontsize: "10.0pt",
|
19
|
+
monospacefontsize: "9.0pt",
|
20
|
+
smallerfontsize: "10.0pt",
|
21
|
+
footnotefontsize: "10.0pt" }
|
22
|
+
end
|
23
|
+
|
24
|
+
def default_file_locations(_options)
|
25
|
+
{ htmlstylesheet: html_doc_path("htmlstyle.scss"),
|
26
|
+
htmlcoverpage: html_doc_path("html_jis_titlepage.html"),
|
27
|
+
htmlintropage: html_doc_path("html_jis_intro.html"),
|
28
|
+
wordstylesheet: html_doc_path("wordstyle.scss"),
|
29
|
+
standardstylesheet: html_doc_path("isodoc.scss"),
|
30
|
+
header: html_doc_path("header.html"),
|
31
|
+
wordcoverpage: html_doc_path("word_jis_titlepage.html"),
|
32
|
+
wordintropage: html_doc_path("word_jis_intro.html"),
|
33
|
+
ulstyle: "l9",
|
34
|
+
olstyle: "l8" }
|
35
|
+
end
|
36
|
+
|
37
|
+
def postprocess(result, filename, dir)
|
38
|
+
filename = filename.sub(/\.doc$/, "")
|
39
|
+
header = generate_header(filename, dir)
|
40
|
+
result = from_xhtml(cleanup(to_xhtml(textcleanup(result))))
|
41
|
+
toWord(result, filename, dir, header)
|
42
|
+
@files_to_delete.each { |f| FileUtils.rm_f f }
|
43
|
+
end
|
44
|
+
|
45
|
+
def word_cleanup(docxml)
|
46
|
+
word_note_cleanup(docxml)
|
47
|
+
boldface(docxml)
|
48
|
+
super
|
49
|
+
end
|
50
|
+
|
51
|
+
def word_note_cleanup(docxml)
|
52
|
+
docxml.xpath("//p[@class = 'Note']").each do |p|
|
53
|
+
p.xpath("//following-sibling::p").each do |p2|
|
54
|
+
p2["class"] == "Note" and
|
55
|
+
p2["class"] = "NoteCont"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def boldface(docxml)
|
61
|
+
docxml.xpath("//h1 | h2 | h3 | h4 | h5 | h6").each do |h|
|
62
|
+
h.children = "<b>#{to_xml(h.children)}</b>"
|
63
|
+
end
|
64
|
+
docxml.xpath("//b").each do |b|
|
65
|
+
b.name = "span"
|
66
|
+
b["class"] = "Strong"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def toWord(result, filename, dir, header)
|
71
|
+
result = word_split(word_cleanup(to_xhtml(result)))
|
72
|
+
@wordstylesheet = wordstylesheet_update
|
73
|
+
result.each do |k, v|
|
74
|
+
to_word1(v, "#{filename}#{k}", dir, header)
|
75
|
+
end
|
76
|
+
header&.unlink
|
77
|
+
@wordstylesheet.unlink if @wordstylesheet.is_a?(Tempfile)
|
78
|
+
end
|
79
|
+
|
80
|
+
def to_word1(result, filename, dir, header)
|
81
|
+
result or return
|
82
|
+
result = from_xhtml(result).gsub(/-DOUBLE_HYPHEN_ESCAPE-/, "--")
|
83
|
+
::Html2Doc::JIS.new(
|
84
|
+
filename: filename, imagedir: @localdir,
|
85
|
+
stylesheet: @wordstylesheet&.path,
|
86
|
+
header_file: header&.path, dir: dir,
|
87
|
+
asciimathdelims: [@openmathdelim, @closemathdelim],
|
88
|
+
liststyles: { ul: @ulstyle, ol: @olstyle }
|
89
|
+
).process(result)
|
90
|
+
end
|
91
|
+
|
92
|
+
def word_split(xml)
|
93
|
+
b = xml.dup
|
94
|
+
{ _cover: cover_split(xml), "": main_split(b) }
|
95
|
+
end
|
96
|
+
|
97
|
+
def cover_split(xml)
|
98
|
+
xml.at("//body").elements.each do |e|
|
99
|
+
e.name == "div" && e["class"] == "WordSection1" and next
|
100
|
+
e.remove
|
101
|
+
end
|
102
|
+
xml
|
103
|
+
end
|
104
|
+
|
105
|
+
def main_split(xml)
|
106
|
+
c = xml.at("//div[@class = 'WordSection1']")
|
107
|
+
c.next_element&.remove
|
108
|
+
c.remove
|
109
|
+
xml
|
110
|
+
end
|
111
|
+
|
112
|
+
def norm_ref(isoxml, out, num)
|
113
|
+
(f = isoxml.at(ns(norm_ref_xpath)) and f["hidden"] != "true") or
|
114
|
+
return num
|
115
|
+
out.div class: "normref" do |div|
|
116
|
+
num += 1
|
117
|
+
clause_name(f, f.at(ns("./title")), div, nil)
|
118
|
+
if f.name == "clause"
|
119
|
+
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
120
|
+
else biblio_list(f, div, false)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
num
|
124
|
+
end
|
125
|
+
|
126
|
+
def bibliography(isoxml, out)
|
127
|
+
(f = isoxml.at(ns(bibliography_xpath)) and f["hidden"] != "true") or
|
128
|
+
return
|
129
|
+
page_break(out)
|
130
|
+
out.div class: "bibliography" do |div|
|
131
|
+
div.h1 class: "Section3" do |h1|
|
132
|
+
f.at(ns("./title"))&.children&.each { |c2| parse(c2, h1) }
|
133
|
+
end
|
134
|
+
biblio_list(f, div, true)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
def new_styles(docxml)
|
139
|
+
super
|
140
|
+
biblio_paras(docxml)
|
141
|
+
end
|
142
|
+
|
143
|
+
def biblio_paras(docxml)
|
144
|
+
docxml.xpath("//div[@class = 'normref']//p[not(@class)]").each do |p|
|
145
|
+
p["class"] = "NormRefText"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
include BaseConvert
|
150
|
+
include Init
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|