isodoc 2.12.9 → 3.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 +4 -4
- data/isodoc.gemspec +3 -2
- data/lib/isodoc/base_style/all.scss +6 -6
- data/lib/isodoc/base_style/bands.css +135 -0
- data/lib/isodoc/base_style/bands.scss +6 -3
- data/lib/isodoc/base_style/blocks.scss +1 -1
- data/lib/isodoc/base_style/metanorma_word.css +33 -17
- data/lib/isodoc/base_style/nav.scss +7 -7
- data/lib/isodoc/base_style/reset.css +100 -54
- data/lib/isodoc/css.rb +1 -1
- data/lib/isodoc/function/blocks.rb +9 -6
- data/lib/isodoc/function/inline.rb +30 -7
- data/lib/isodoc/function/reqt.rb +3 -2
- data/lib/isodoc/function/section.rb +1 -1
- data/lib/isodoc/function/to_word_html.rb +19 -6
- data/lib/isodoc/gem_tasks.rb +1 -1
- data/lib/isodoc/html_function/html.rb +4 -2
- data/lib/isodoc/init.rb +1 -0
- data/lib/isodoc/presentation_function/block.rb +14 -8
- data/lib/isodoc/presentation_function/concepts.rb +37 -13
- data/lib/isodoc/presentation_function/erefs.rb +13 -8
- data/lib/isodoc/presentation_function/image.rb +5 -2
- data/lib/isodoc/presentation_function/inline.rb +41 -16
- data/lib/isodoc/presentation_function/math.rb +19 -8
- data/lib/isodoc/presentation_function/sourcecode.rb +46 -15
- data/lib/isodoc/presentation_function/xrefs.rb +14 -1
- data/lib/isodoc/presentation_xml_convert.rb +24 -4
- data/lib/isodoc/sassc_importer.rb +1 -1
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_function/body.rb +1 -1
- data/lib/isodoc/xref/xref_sect_gen.rb +4 -2
- metadata +8 -8
- data/lib/isodoc/base_style/all.css +0 -368
@@ -12,7 +12,7 @@ module IsoDoc
|
|
12
12
|
ret = ""
|
13
13
|
@sourcehighlighter and ret += rouge_css_location
|
14
14
|
a = docxml.at(ns("//metanorma-extension/" \
|
15
|
-
"clause[title = 'user-css']/sourcecode")) and
|
15
|
+
"clause[title = 'user-css']/sourcecode/body")) and
|
16
16
|
ret += "\n#{to_xml(a.children)}"
|
17
17
|
ret
|
18
18
|
end
|
@@ -34,7 +34,7 @@ module IsoDoc
|
|
34
34
|
|
35
35
|
def callouts(elem)
|
36
36
|
elem.xpath(ns(".//callout")).each do |c|
|
37
|
-
@callouts[c["target"]] = c.children
|
37
|
+
@callouts[c["target"]] = to_xml(c.children)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -42,36 +42,67 @@ module IsoDoc
|
|
42
42
|
sourcehighlighter_css(docxml)
|
43
43
|
@highlighter = sourcehighlighter
|
44
44
|
@callouts = {}
|
45
|
-
docxml.xpath(ns("//sourcecode"))
|
45
|
+
(docxml.xpath(ns("//sourcecode")) -
|
46
|
+
docxml.xpath(ns("//metanorma-extension//sourcecode")))
|
47
|
+
.each do |f|
|
46
48
|
sourcecode1(f)
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
50
52
|
def sourcecode1(elem)
|
51
|
-
|
53
|
+
ret1 = semx_fmt_dup(elem)
|
54
|
+
b = ret1.at(ns(".//body")) and b.replace(b.children)
|
55
|
+
#sourcecode_annot_id(elem)
|
52
56
|
source_label(elem)
|
57
|
+
source_highlight(ret1, elem["linenums"] == "true", elem["lang"])
|
53
58
|
callouts(elem)
|
54
|
-
annotations(elem)
|
59
|
+
annotations(elem, ret1)
|
60
|
+
fmt_sourcecode(elem, ret1)
|
55
61
|
end
|
56
62
|
|
57
|
-
def
|
63
|
+
def fmt_sourcecode(elem, ret1)
|
64
|
+
ret = Nokogiri::XML::Node.new("fmt-#{elem.name}", elem.document)
|
65
|
+
elem.attributes.each_key { |x| x != "id" and ret[x] = elem[x] }
|
66
|
+
ret1.xpath(ns("./name")).each(&:remove)
|
67
|
+
ret << ret1.children
|
68
|
+
elem << ret
|
69
|
+
end
|
70
|
+
|
71
|
+
# KILL
|
72
|
+
def sourcecode_annot_id(elem)
|
73
|
+
elem.xpath(ns("./annotation")).each do |a|
|
74
|
+
if a["original-id"]
|
75
|
+
a["id"] = a["original-id"]
|
76
|
+
a.delete("original-id")
|
77
|
+
end
|
78
|
+
a.xpath(".//*[@original-id]").each do |n|
|
79
|
+
n["id"] = n["original-id"]
|
80
|
+
n.delete("original-id")
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def annotations(elem, fmt_elem)
|
58
86
|
elem.at(ns("./annotation")) or return
|
59
87
|
ret = ""
|
60
88
|
elem.xpath(ns("./annotation")).each do |a|
|
61
|
-
a
|
89
|
+
id = a['original-id']
|
90
|
+
dd = semx_fmt_dup(a)
|
91
|
+
dd["source"] = a["id"]
|
62
92
|
ret += <<~OUT
|
63
|
-
<dt id='#{
|
64
|
-
<dd>#{
|
93
|
+
<dt id='#{id}'><span class='c'>#{@callouts[id]}</span></dt>
|
94
|
+
<dd>#{to_xml dd}</dd>
|
65
95
|
OUT
|
66
96
|
end
|
67
|
-
|
97
|
+
fmt_elem.xpath(ns("./annotation")).each(&:remove)
|
98
|
+
fmt_elem << "<dl><name>#{@i18n.key}</name>#{ret}</dl>"
|
68
99
|
end
|
69
100
|
|
70
|
-
def source_highlight(elem)
|
101
|
+
def source_highlight(elem, linenums, lang)
|
71
102
|
@highlighter or return
|
72
103
|
markup = source_remove_markup(elem)
|
73
|
-
p = source_lex(elem)
|
74
|
-
elem.children = if
|
104
|
+
p = source_lex(elem, lang)
|
105
|
+
elem.children = if linenums
|
75
106
|
r = sourcecode_table_to_elem(elem, p)
|
76
107
|
source_restore_markup_table(r, markup)
|
77
108
|
else
|
@@ -140,8 +171,8 @@ module IsoDoc
|
|
140
171
|
r
|
141
172
|
end
|
142
173
|
|
143
|
-
def source_lex(elem)
|
144
|
-
lexer = Rouge::Lexer.find(
|
174
|
+
def source_lex(elem, lang)
|
175
|
+
lexer = Rouge::Lexer.find(lang || "plaintext") ||
|
145
176
|
Rouge::Lexer.find("plaintext")
|
146
177
|
l = Rouge::Lexers::Escape.new(start: "{^^{", end: "}^^}", lang: lexer)
|
147
178
|
source = to_xml(elem.children).gsub(/</, "{^^{<").gsub(/>/, ">}^^}")
|
@@ -1,5 +1,18 @@
|
|
1
1
|
module IsoDoc
|
2
2
|
class PresentationXMLConvert < ::IsoDoc::Convert
|
3
|
+
def fmt_ref(docxml)
|
4
|
+
docxml.xpath(ns("//xref | //eref | //origin | //link")).each do |x|
|
5
|
+
sem_xml_descendant?(x) and next
|
6
|
+
tag = x.name
|
7
|
+
y = Nokogiri::XML::Node.new("fmt-#{tag}", x.document)
|
8
|
+
x.attributes.each_key { |a| y[a] = x[a] }
|
9
|
+
n = semx_fmt_dup(x) # semx/fmt-xref for ease of processing
|
10
|
+
n.children.each { |c| y << c }
|
11
|
+
n << y
|
12
|
+
x.next = n
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
3
16
|
def prefix_container(container, linkend, node, target)
|
4
17
|
prefix_container?(container, node) or return linkend
|
5
18
|
container_container = @xrefs.anchor(container, :container, false)
|
@@ -126,7 +139,7 @@ module IsoDoc
|
|
126
139
|
|
127
140
|
def loc2xref(entry)
|
128
141
|
if entry[:target]
|
129
|
-
"<xref nested='true' target='#{entry[:target]}'>#{entry[:label]}</xref>"
|
142
|
+
"<fmt-xref nested='true' target='#{entry[:target]}'>#{entry[:label]}</fmt-xref>"
|
130
143
|
else
|
131
144
|
entry[:label]
|
132
145
|
end
|
@@ -28,9 +28,27 @@ module IsoDoc
|
|
28
28
|
@xrefs.klass.info docxml, nil
|
29
29
|
conversions(docxml)
|
30
30
|
docxml.root["type"] = "presentation"
|
31
|
+
repeat_id_validate(docxml.root)
|
31
32
|
docxml.to_xml.gsub("<", "<").gsub(">", ">")
|
32
33
|
end
|
33
34
|
|
35
|
+
def repeat_id_validate1(elem)
|
36
|
+
if @doc_ids[elem["id"]]
|
37
|
+
@log.add("Anchors", elem,
|
38
|
+
"Anchor #{elem['id']} has already been " \
|
39
|
+
"used at line #{@doc_ids[elem['id']]}", severity: 0)
|
40
|
+
end
|
41
|
+
@doc_ids[elem["id"]] = elem.line
|
42
|
+
end
|
43
|
+
|
44
|
+
def repeat_id_validate(doc)
|
45
|
+
@log or return
|
46
|
+
@doc_ids = {}
|
47
|
+
doc.xpath("//*[@id]").each do |x|
|
48
|
+
repeat_id_validate1(x)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
34
52
|
def bibitem_lookup(docxml)
|
35
53
|
@bibitem_lookup ||= docxml.xpath(ns("//references/bibitem"))
|
36
54
|
.each_with_object({}) do |b, m|
|
@@ -71,7 +89,6 @@ module IsoDoc
|
|
71
89
|
end
|
72
90
|
|
73
91
|
def block(docxml)
|
74
|
-
amend docxml
|
75
92
|
table docxml
|
76
93
|
figure docxml
|
77
94
|
sourcecode docxml
|
@@ -88,15 +105,18 @@ module IsoDoc
|
|
88
105
|
requirement docxml
|
89
106
|
recommendation docxml
|
90
107
|
requirement_render docxml
|
108
|
+
amend docxml
|
91
109
|
end
|
92
110
|
|
93
111
|
def inline(docxml)
|
94
112
|
bibitem_lookup(docxml) # feeds citeas
|
95
|
-
|
113
|
+
fmt_ref docxml # feeds citeas, xref, eref, origin, concept
|
114
|
+
citeas docxml # feeds xref, eref, origin, concept
|
96
115
|
xref docxml
|
97
116
|
eref docxml # feeds eref2link
|
98
117
|
origin docxml # feeds eref2link
|
99
|
-
quotesource docxml # feeds eref2link
|
118
|
+
#quotesource docxml # feeds eref2link
|
119
|
+
concept docxml
|
100
120
|
eref2link docxml
|
101
121
|
mathml docxml
|
102
122
|
ruby docxml
|
@@ -114,7 +134,7 @@ module IsoDoc
|
|
114
134
|
termdefinition docxml
|
115
135
|
designation docxml
|
116
136
|
termsource docxml
|
117
|
-
concept docxml
|
137
|
+
#concept docxml
|
118
138
|
related docxml
|
119
139
|
termcleanup docxml
|
120
140
|
end
|
data/lib/isodoc/version.rb
CHANGED
@@ -134,7 +134,7 @@ module IsoDoc
|
|
134
134
|
def formula_parse1(node, out)
|
135
135
|
out.div **attr_code(class: "formula") do |div|
|
136
136
|
div.p do |_p|
|
137
|
-
parse(node.at(ns("./stem")), div)
|
137
|
+
parse(node.at(ns("./fmt-stem")), div)
|
138
138
|
insert_tab(div, 1)
|
139
139
|
if lbl = node&.at(ns("./fmt-name"))&.text
|
140
140
|
div << lbl
|
@@ -124,6 +124,7 @@ module IsoDoc
|
|
124
124
|
|
125
125
|
def preface_name_anchors(clause, level, title)
|
126
126
|
xref = semx(clause, title, clause.name)
|
127
|
+
clause["id"] ||= "_#{UUIDTools::UUID.random_create}"
|
127
128
|
@anchors[clause["id"]] =
|
128
129
|
{ label: nil, level:,
|
129
130
|
xref:, title: nil,
|
@@ -187,6 +188,7 @@ module IsoDoc
|
|
187
188
|
xref = labelled_autonum(@labels["clause"], num)
|
188
189
|
label = num
|
189
190
|
c = clause_title(clause) and title = semx(clause, c, "title")
|
191
|
+
clause["id"] ||= "_#{UUIDTools::UUID.random_create}"
|
190
192
|
@anchors[clause["id"]] =
|
191
193
|
{ label:, xref:, title:, level:, type: "clause",
|
192
194
|
elem: @labels["clause"] }
|
@@ -207,10 +209,10 @@ module IsoDoc
|
|
207
209
|
label = num
|
208
210
|
level == 1 && clause.name == "annex" and
|
209
211
|
label = annex_name_lbl(clause, label)
|
210
|
-
xref = labelled_autonum(@labels["annex"], num)
|
211
212
|
c = clause_title(clause) and title = semx(clause, c, "title")
|
213
|
+
clause["id"] ||= "_#{UUIDTools::UUID.random_create}"
|
212
214
|
@anchors[clause["id"]] =
|
213
|
-
{ label:, xref
|
215
|
+
{ label:, xref: labelled_autonum(@labels["annex"], num), title:,
|
214
216
|
elem: @labels["annex"], type: "clause",
|
215
217
|
subtype: "annex", value: num.to_s, level: }
|
216
218
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isodoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: base64
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.5.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.5.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: relaton-render
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -291,19 +291,19 @@ dependencies:
|
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: 1.5.2
|
293
293
|
- !ruby/object:Gem::Dependency
|
294
|
-
name: sassc
|
294
|
+
name: sassc-embedded
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
296
296
|
requirements:
|
297
297
|
- - "~>"
|
298
298
|
- !ruby/object:Gem::Version
|
299
|
-
version:
|
299
|
+
version: '1'
|
300
300
|
type: :development
|
301
301
|
prerelease: false
|
302
302
|
version_requirements: !ruby/object:Gem::Requirement
|
303
303
|
requirements:
|
304
304
|
- - "~>"
|
305
305
|
- !ruby/object:Gem::Version
|
306
|
-
version:
|
306
|
+
version: '1'
|
307
307
|
- !ruby/object:Gem::Dependency
|
308
308
|
name: simplecov
|
309
309
|
requirement: !ruby/object:Gem::Requirement
|
@@ -375,8 +375,8 @@ files:
|
|
375
375
|
- lib/isodoc-yaml/i18n-ru.yaml
|
376
376
|
- lib/isodoc-yaml/i18n-zh-Hans.yaml
|
377
377
|
- lib/isodoc.rb
|
378
|
-
- lib/isodoc/base_style/all.css
|
379
378
|
- lib/isodoc/base_style/all.scss
|
379
|
+
- lib/isodoc/base_style/bands.css
|
380
380
|
- lib/isodoc/base_style/bands.scss
|
381
381
|
- lib/isodoc/base_style/blocks.css
|
382
382
|
- lib/isodoc/base_style/blocks.scss
|
@@ -1,368 +0,0 @@
|
|
1
|
-
@charset "UTF-8";
|
2
|
-
html, body, div, span, applet, object, iframe,
|
3
|
-
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
4
|
-
a, abbr, acronym, address, big, cite, code,
|
5
|
-
del, dfn, em, img, ins, kbd, q, s, samp,
|
6
|
-
small, strike, strong, sub, sup, tt, var,
|
7
|
-
b, u, i, center,
|
8
|
-
ol, ul, li,
|
9
|
-
fieldset, form, label, legend,
|
10
|
-
table, caption, tbody, tfoot, thead, tr, th, td,
|
11
|
-
article, aside, canvas, details, embed,
|
12
|
-
figure, figcaption, footer, header, hgroup,
|
13
|
-
menu, output, ruby, section, summary,
|
14
|
-
time, mark, audio, video {
|
15
|
-
margin: 0;
|
16
|
-
padding: 0; }
|
17
|
-
|
18
|
-
html, body, div, span, applet, object, iframe,
|
19
|
-
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
20
|
-
a, abbr, acronym, address, big, cite, code,
|
21
|
-
del, dfn, em, img, ins, kbd, q, s, samp,
|
22
|
-
small, strike, strong, sub, sup, tt, var,
|
23
|
-
b, u, i, center,
|
24
|
-
dl, dt, dd, ol, ul, li,
|
25
|
-
fieldset, form, label, legend,
|
26
|
-
table, caption, tbody, tfoot, thead, tr, th, td,
|
27
|
-
article, aside, canvas, details, embed,
|
28
|
-
figure, figcaption, footer, header, hgroup,
|
29
|
-
menu, nav, output, ruby, section, summary,
|
30
|
-
time, mark, audio, video {
|
31
|
-
border: 0;
|
32
|
-
font-size: 100%; }
|
33
|
-
|
34
|
-
html, body, div, span, applet, object, iframe,
|
35
|
-
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
36
|
-
a, abbr, acronym, address, big, cite, code,
|
37
|
-
del, dfn, em, img, ins, kbd, q, s, samp,
|
38
|
-
small, strike, strong, tt, var,
|
39
|
-
b, u, i, center,
|
40
|
-
dl, dd, ol, ul, li,
|
41
|
-
fieldset, form, label, legend,
|
42
|
-
table, caption, tbody, tfoot, thead, tr, th, td,
|
43
|
-
article, aside, canvas, details, embed,
|
44
|
-
figure, figcaption, footer, header, hgroup,
|
45
|
-
menu, nav, output, ruby, section, summary,
|
46
|
-
time, mark, audio, video {
|
47
|
-
vertical-align: baseline; }
|
48
|
-
|
49
|
-
html, body, div, span, applet, object, iframe,
|
50
|
-
p, blockquote,
|
51
|
-
a, abbr, acronym, address, big, cite,
|
52
|
-
del, dfn, em, img, ins, q, s,
|
53
|
-
small, strike, strong, sub, sup, var,
|
54
|
-
b, u, i, center,
|
55
|
-
dl, dt, dd, ol, ul, li,
|
56
|
-
fieldset, form, label, legend,
|
57
|
-
table, caption, tbody, tfoot, thead, tr, th, td,
|
58
|
-
article, aside, canvas, details, embed,
|
59
|
-
figure, figcaption, footer, header, hgroup,
|
60
|
-
menu, nav, output, ruby, section, summary,
|
61
|
-
time, mark, audio, video {
|
62
|
-
font-family: {{bodyfont}}; }
|
63
|
-
|
64
|
-
code, pre, tt, kbd, samp {
|
65
|
-
font-family: {{monospacefont}};
|
66
|
-
font-variant-ligatures: none; }
|
67
|
-
|
68
|
-
code *, pre *, tt *, kbd *, samp * {
|
69
|
-
font-family: {{monospacefont}} !important;
|
70
|
-
font-variant-ligatures: none; }
|
71
|
-
|
72
|
-
p code, dt code, li code, label code, legend code, caption code, th code, td code,
|
73
|
-
p tt, dt tt, li tt, label tt, legend tt, caption tt, th tt, td tt,
|
74
|
-
p kbd, dt kbd, li kbd, label kbd, legend kbd, caption kbd, th kbd, td kbd,
|
75
|
-
p samp, dt samp, li samp, label samp, legend samp, caption samp, th samp, td samp {
|
76
|
-
font-size: {{monospacefontsize}}; }
|
77
|
-
|
78
|
-
sub, sup {
|
79
|
-
font-size: 0.75em; }
|
80
|
-
|
81
|
-
article, aside, details, figcaption, figure,
|
82
|
-
footer, header, hgroup, menu, nav, section {
|
83
|
-
display: block; }
|
84
|
-
|
85
|
-
table {
|
86
|
-
border-collapse: collapse;
|
87
|
-
border-spacing: 0; }
|
88
|
-
|
89
|
-
h1, h2, h3, h4, h5, h6 {
|
90
|
-
font-family: {{headerfont}}; }
|
91
|
-
|
92
|
-
.h1, .h2, .h3, .h4, .h5, .h6 {
|
93
|
-
font-family: {{headerfont}}; }
|
94
|
-
|
95
|
-
blockquote, q {
|
96
|
-
quotes: none; }
|
97
|
-
blockquote::before, blockquote::after, q::before, q::after {
|
98
|
-
content: '';
|
99
|
-
content: none; }
|
100
|
-
|
101
|
-
.h2Annex {
|
102
|
-
font-family: {{headerfont}}; }
|
103
|
-
|
104
|
-
dl {
|
105
|
-
display: grid;
|
106
|
-
grid-template-columns: max-content auto; }
|
107
|
-
dl dt p, dl dd p {
|
108
|
-
margin-top: 0; }
|
109
|
-
dl dt {
|
110
|
-
grid-column-start: 1; }
|
111
|
-
dl dd {
|
112
|
-
grid-column-start: 2; }
|
113
|
-
|
114
|
-
b, strong {
|
115
|
-
font-weight: bold; }
|
116
|
-
|
117
|
-
div.document-stage-band, div.document-type-band {
|
118
|
-
background-color: #333333; }
|
119
|
-
|
120
|
-
a.FootnoteRef + a.FootnoteRef::before {
|
121
|
-
content: ", ";
|
122
|
-
vertical-align: super; }
|
123
|
-
|
124
|
-
a.TableFootnoteRef + a.TableFootnoteRef::before {
|
125
|
-
content: ", ";
|
126
|
-
vertical-align: super; }
|
127
|
-
|
128
|
-
a.TableFootnoteRef, span.TableFootnoteRef,
|
129
|
-
a.FootnoteRef, span.FootnoteRef {
|
130
|
-
vertical-align: super; }
|
131
|
-
|
132
|
-
.addition {
|
133
|
-
color: blue; }
|
134
|
-
|
135
|
-
.deletion {
|
136
|
-
color: red;
|
137
|
-
text-decoration: line-through; }
|
138
|
-
|
139
|
-
ruby {
|
140
|
-
ruby-position: over;
|
141
|
-
-webkit-ruby-position: before; }
|
142
|
-
|
143
|
-
ruby ruby {
|
144
|
-
ruby-position: under;
|
145
|
-
-webkit-ruby-position: after; }
|
146
|
-
|
147
|
-
/* code highlighting with line numbers */
|
148
|
-
table.rouge-line-table td.rouge-gutter {
|
149
|
-
-moz-user-select: none;
|
150
|
-
-ms-user-select: none;
|
151
|
-
-webkit-user-select: none;
|
152
|
-
user-select: none;
|
153
|
-
padding-right: 1em; }
|
154
|
-
|
155
|
-
table.rouge-line-table td.rouge-code {
|
156
|
-
-moz-user-select: all;
|
157
|
-
-ms-user-select: all;
|
158
|
-
-webkit-user-select: all;
|
159
|
-
user-select: all; }
|
160
|
-
|
161
|
-
table.rouge-line-table,
|
162
|
-
table.rouge-line-table th,
|
163
|
-
table.rouge-line-table td {
|
164
|
-
width: auto;
|
165
|
-
border: none;
|
166
|
-
margin: 0;
|
167
|
-
padding: 0;
|
168
|
-
font-size: 100%; }
|
169
|
-
|
170
|
-
table.rouge-line-table pre {
|
171
|
-
margin: 0;
|
172
|
-
padding: 0;
|
173
|
-
overflow-x: visible;
|
174
|
-
font-size: 100%; }
|
175
|
-
|
176
|
-
/* header § links */
|
177
|
-
a.header {
|
178
|
-
color: inherit;
|
179
|
-
text-decoration: none; }
|
180
|
-
|
181
|
-
a.header:hover {
|
182
|
-
color: #a53221 !important;
|
183
|
-
background: inherit;
|
184
|
-
box-shadow: none; }
|
185
|
-
|
186
|
-
a.header:visited {
|
187
|
-
color: inherit;
|
188
|
-
text-decoration: none; }
|
189
|
-
|
190
|
-
a.anchor {
|
191
|
-
position: absolute;
|
192
|
-
z-index: 1001;
|
193
|
-
width: 1.5ex;
|
194
|
-
margin-left: -1.5ex;
|
195
|
-
display: block;
|
196
|
-
text-decoration: none !important;
|
197
|
-
visibility: hidden;
|
198
|
-
text-align: center;
|
199
|
-
font-weight: 400; }
|
200
|
-
|
201
|
-
a.anchor::before {
|
202
|
-
content: "\00A7";
|
203
|
-
font-size: .85em;
|
204
|
-
display: block;
|
205
|
-
padding-top: .1em; }
|
206
|
-
|
207
|
-
a.anchor:hover {
|
208
|
-
color: #a53221;
|
209
|
-
background: inherit;
|
210
|
-
box-shadow: none; }
|
211
|
-
|
212
|
-
h1 > a.anchor:hover,
|
213
|
-
h2 > a.anchor:hover,
|
214
|
-
h3 > a.anchor:hover,
|
215
|
-
h4 > a.anchor:hover,
|
216
|
-
h5 > a.anchor:hover,
|
217
|
-
h6 > a.anchor:hover,
|
218
|
-
.inline-header > a.anchor:hover,
|
219
|
-
h1:hover > a.anchor,
|
220
|
-
h2:hover > a.anchor,
|
221
|
-
h3:hover > a.anchor,
|
222
|
-
h4:hover > a.anchor,
|
223
|
-
h5:hover > a.anchor,
|
224
|
-
h6:hover > a.anchor,
|
225
|
-
.inline-header:hover > a.anchor {
|
226
|
-
visibility: visible; }
|
227
|
-
|
228
|
-
/* collapsible snippets: collapsible before hidable */
|
229
|
-
.hidable {
|
230
|
-
max-height: 0;
|
231
|
-
overflow: hidden;
|
232
|
-
transition: max-height 0.2s ease-out; }
|
233
|
-
|
234
|
-
.collapsible {
|
235
|
-
background-color: #777;
|
236
|
-
color: white;
|
237
|
-
cursor: pointer;
|
238
|
-
padding: 3px 0;
|
239
|
-
margin: 0;
|
240
|
-
width: 100%;
|
241
|
-
border: none;
|
242
|
-
text-align: left;
|
243
|
-
outline: none;
|
244
|
-
font-size: 15px; }
|
245
|
-
|
246
|
-
.active, .collapsible:hover {
|
247
|
-
background-color: #555; }
|
248
|
-
|
249
|
-
.collapsible:after {
|
250
|
-
content: '\25bc';
|
251
|
-
color: white;
|
252
|
-
font-weight: bold;
|
253
|
-
float: right;
|
254
|
-
margin-left: 12px;
|
255
|
-
margin-right: 12px; }
|
256
|
-
|
257
|
-
.active:after {
|
258
|
-
content: "\25b2"; }
|
259
|
-
|
260
|
-
/* collapsible: */
|
261
|
-
.collapsible + .hidable {
|
262
|
-
margin-top: 0; }
|
263
|
-
|
264
|
-
.collapsible:not(.active) + .hidable {
|
265
|
-
overflow: hidden;
|
266
|
-
padding: 0; }
|
267
|
-
|
268
|
-
#standard-band {
|
269
|
-
background-color: #0AC442; }
|
270
|
-
|
271
|
-
#standard {
|
272
|
-
border-bottom: solid 3px #0AC442; }
|
273
|
-
|
274
|
-
#directive-band {
|
275
|
-
background-color: #540D6E; }
|
276
|
-
|
277
|
-
#directive {
|
278
|
-
border-bottom: solid 3px #540D6E; }
|
279
|
-
|
280
|
-
#guide-band {
|
281
|
-
background-color: #D183C9; }
|
282
|
-
|
283
|
-
#guide {
|
284
|
-
border-bottom: solid 3px #D183C9; }
|
285
|
-
|
286
|
-
#specification-band {
|
287
|
-
background-color: #65AFFF; }
|
288
|
-
|
289
|
-
#specification {
|
290
|
-
border-bottom: solid 3px #65AFFF; }
|
291
|
-
|
292
|
-
#report-band {
|
293
|
-
background-color: #3A405A; }
|
294
|
-
|
295
|
-
#report {
|
296
|
-
border-bottom: solid 3px #3A405A; }
|
297
|
-
|
298
|
-
#amendment-band {
|
299
|
-
background-color: #F26430; }
|
300
|
-
|
301
|
-
#amendment {
|
302
|
-
border-bottom: solid 3px #F26430; }
|
303
|
-
|
304
|
-
#corrigendum-band {
|
305
|
-
background-color: #C84630; }
|
306
|
-
|
307
|
-
#corrigendum {
|
308
|
-
border-bottom: solid 3px #C84630; }
|
309
|
-
|
310
|
-
#administrative-band {
|
311
|
-
background-color: #BFAE48; }
|
312
|
-
|
313
|
-
#administrative {
|
314
|
-
border-bottom: solid 3px #BFAE48; }
|
315
|
-
|
316
|
-
#advisory-band {
|
317
|
-
background-color: #BD9391; }
|
318
|
-
|
319
|
-
#advisory {
|
320
|
-
border-bottom: solid 3px #BD9391; }
|
321
|
-
|
322
|
-
#proposal-band {
|
323
|
-
background-color: #39A0ED; }
|
324
|
-
|
325
|
-
#proposal {
|
326
|
-
border-bottom: solid 3px #39A0ED; }
|
327
|
-
|
328
|
-
#working-draft-band {
|
329
|
-
background-color: #2D7393; }
|
330
|
-
|
331
|
-
#working-draft {
|
332
|
-
border-bottom: solid 3px #2D7393; }
|
333
|
-
|
334
|
-
#committee-draft-band {
|
335
|
-
background-color: #2A6B7C; }
|
336
|
-
|
337
|
-
#committee-draft {
|
338
|
-
border-bottom: solid 3px #2A6B7C; }
|
339
|
-
|
340
|
-
#draft-standard-band {
|
341
|
-
background-color: #1C7F7A; }
|
342
|
-
|
343
|
-
#draft-standard {
|
344
|
-
border-bottom: solid 3px #1C7F7A; }
|
345
|
-
|
346
|
-
#final-draft-band {
|
347
|
-
background-color: #53C170; }
|
348
|
-
|
349
|
-
#final-draft {
|
350
|
-
border-bottom: solid 3px #53C170; }
|
351
|
-
|
352
|
-
#published-band {
|
353
|
-
background-color: #069E2D; }
|
354
|
-
|
355
|
-
#published {
|
356
|
-
border-bottom: solid 3px #069E2D; }
|
357
|
-
|
358
|
-
#withdrawn-band {
|
359
|
-
background-color: #004E64; }
|
360
|
-
|
361
|
-
#withdrawn {
|
362
|
-
border-bottom: solid 3px #004E64; }
|
363
|
-
|
364
|
-
#cancelled-band {
|
365
|
-
background-color: #2E382E; }
|
366
|
-
|
367
|
-
#cancelled {
|
368
|
-
border-bottom: solid 3px #2E382E; }
|