metanorma-standoc 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6821b17f6ce6a902c1413023414907d3fca23e9831c8f30eb2b9239577481e2
4
- data.tar.gz: 88ab1712fe03b4f927240dd6237fe353353dd8cbd46f3a62f602b91493d93535
3
+ metadata.gz: a5ab9cbdae658ec4088c0670d2ce1a117799a9325dbb8b8aa24e59b44e94e24c
4
+ data.tar.gz: da30d4d7b276b67e2363643e8ae1296a352bc4acee0ef9f2727da00ad276b3cc
5
5
  SHA512:
6
- metadata.gz: ff45bc86d56ac270f2a91dcbd3473b91f4051466aea45cc8c0c5af607241dbebc9f54e7628bee5009a05b5d59704940312c64a8fa274c922dbcb4cc0d3a66280
7
- data.tar.gz: 636e2808978f3f227ce50906b47180d3d96baf4fa667166a086be67cc1a5310b240f0c5dede99715faea6f99b8124739a1ab6a75a9784e6a5f90827c15595b4e
6
+ metadata.gz: e8600c60d56d27820da72dbc7259db4e3a91a3e362a4cefa0a5497b545076dab93277e87c5a0368f3037249ed79b5421e92300a8847bcf7c5bdcaca2392a3eab
7
+ data.tar.gz: 216bdaa7621b5b722f65a7d86eabbeaf65788df7f135927d04044838c6db31d50999155de829df6e57f5563a4f201121f36cde9c9c023a9af546019ab65d848e
data/Gemfile CHANGED
@@ -10,4 +10,3 @@ if File.exist? 'Gemfile.devel'
10
10
  eval File.read('Gemfile.devel'), nil, 'Gemfile.devel' # rubocop:disable Security/Eval
11
11
  end
12
12
 
13
- gem "reline", "~> 0.2.8.pre.11"
@@ -243,59 +243,65 @@ body {
243
243
  /*
244
244
  2. Responsive navigation layout
245
245
  */
246
- #toc {
246
+ #toc, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) {
247
247
  font-family: {{bodyfont}};
248
248
  font-weight: 400; }
249
- #toc ul {
249
+ #toc ul, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) ul {
250
250
  margin: 0;
251
251
  padding: 0;
252
252
  list-style: none; }
253
- #toc ul li a {
253
+ #toc ul li a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) ul li a {
254
254
  padding: 5px 10px; }
255
- #toc ul a {
255
+ #toc ul a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) ul a {
256
256
  color: #485094;
257
257
  text-decoration: none;
258
258
  display: block; }
259
- #toc ul a:hover {
259
+ #toc ul a:hover, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) ul a:hover {
260
260
  box-shadow: none;
261
261
  color: #485094; }
262
- #toc .h2 {
262
+ #toc .h2, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .h2 {
263
263
  padding-left: 30px; }
264
- #toc .h3 {
264
+ #toc .h3, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .h3 {
265
265
  padding-left: 50px; }
266
- #toc .toc-active, #toc li:hover {
266
+ #toc .toc-active, #toc li:hover, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) li:hover {
267
267
  background: #C70039;
268
268
  box-shadow: inset -5px 0px 10px -5px #C70039 !important; }
269
- #toc .toc-active a, #toc li:hover a {
269
+ #toc .toc-active a, #toc li:hover a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) li:hover a {
270
270
  color: #485094; }
271
271
  @media print {
272
- #toc .toc-active, #toc li:hover {
272
+ #toc .toc-active, #toc li:hover, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) li:hover {
273
273
  background: white;
274
274
  box-shadow: none !important; }
275
- #toc .toc-active a {
275
+ #toc .toc-active a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active a {
276
276
  color: #485094; }
277
- #toc li:hover a {
277
+ #toc li:hover a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) li:hover a {
278
278
  color: black; } }
279
279
  @media screen and (max-width: 768px) {
280
- #toc {
280
+ #toc, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) {
281
281
  padding: 0 1.5em;
282
282
  overflow: visible; } }
283
- #toc .toc-active a {
283
+ #toc .toc-active a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active a {
284
284
  color: white; }
285
285
  #toc .toc-active,
286
- #toc li:hover {
286
+ #toc li:hover, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active,
287
+ #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) li:hover {
287
288
  box-shadow: none !important; }
288
289
  #toc .toc-active a,
289
- #toc li:hover a {
290
+ #toc li:hover a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active a,
291
+ #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) li:hover a {
290
292
  color: white;
291
293
  background: none;
292
294
  box-shadow: none; }
293
- #toc li a {
295
+ #toc li a, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) li a {
294
296
  text-transform: uppercase; }
295
- #toc ul a:hover {
297
+ #toc ul a:hover, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) ul a:hover {
296
298
  box-shadow: none;
297
299
  color: white; }
298
300
 
301
+ #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) {
302
+ margin-top: 0;
303
+ margin-bottom: 0; }
304
+
299
305
  @media screen and (min-width: 768px) {
300
306
  nav {
301
307
  position: fixed;
@@ -349,7 +355,7 @@ body {
349
355
  display: none; }
350
356
  h1.toc-contents {
351
357
  margin-top: 1em; }
352
- ul#toc-list {
358
+ ul#toc-list, ul#toc-list > :is(.h1, .h2, .h3, .h4, .h5, .h6) {
353
359
  padding: 0;
354
360
  margin: 0; } }
355
361
 
@@ -48,7 +48,7 @@ body {
48
48
  2. Responsive navigation layout
49
49
  */
50
50
 
51
- #toc {
51
+ #toc, #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) {
52
52
  @include toc(#485094, #C70039, #485094);
53
53
  @include sidebarToc();
54
54
 
@@ -79,6 +79,11 @@ body {
79
79
  }
80
80
  }
81
81
 
82
+ #toc > ul > :is(.h1, .h2, .h3, .h4, .h5, .h6) {
83
+ margin-top: 0;
84
+ margin-bottom: 0;
85
+ }
86
+
82
87
  nav {
83
88
  @include sidebarNav(#f7f7f7, 323px, 45px);
84
89
  }
@@ -100,7 +105,7 @@ nav {
100
105
  margin-top: 1em;
101
106
  }
102
107
 
103
- ul#toc-list {
108
+ ul#toc-list, ul#toc-list > :is(.h1, .h2, .h3, .h4, .h5, .h6) {
104
109
  padding: 0;
105
110
  margin: 0;
106
111
  }
@@ -66,6 +66,7 @@ module Metanorma
66
66
  @htmltoclevels = node.attr("htmltoclevels")
67
67
  @doctoclevels = node.attr("doctoclevels")
68
68
  @toclevels = node.attr("toclevels")
69
+ @metadata_attrs = metadata_attrs(node)
69
70
  end
70
71
 
71
72
  def document(node)
@@ -135,6 +136,19 @@ module Metanorma
135
136
  end
136
137
  end
137
138
 
139
+ def metadata_attrs(node)
140
+ node.attributes.each_with_object([]) do |(k, v), ret|
141
+ %w(presentation semantic).each do |t|
142
+ next unless /^#{t}-metadata-/.match?(k)
143
+
144
+ k = k.sub(/^#{t}-metadata-/, "")
145
+ csv_split(v, ",")&.each do |c|
146
+ ret << "<#{t}-metadata><#{k}>#{c}</#{k}></#{t}-metadata>"
147
+ end
148
+ end
149
+ end.join
150
+ end
151
+
138
152
  private
139
153
 
140
154
  def outputdir(node)
@@ -63,6 +63,7 @@ module Metanorma
63
63
  svgmap_cleanup(xmldoc)
64
64
  boilerplate_cleanup(xmldoc)
65
65
  toc_cleanup(xmldoc)
66
+ metadata_cleanup(xmldoc)
66
67
  smartquotes_cleanup(xmldoc)
67
68
  variant_cleanup(xmldoc)
68
69
  para_cleanup(xmldoc)
@@ -135,12 +136,22 @@ module Metanorma
135
136
 
136
137
  def variant_space_cleanup(xmldoc)
137
138
  xmldoc.xpath("//*[variant]").each do |c|
138
- if c&.next&.text? && c&.next&.next&.name == "variant"
139
+ next if c.next.nil? || c.next.next.nil?
140
+
141
+ if c.next.text? && c.next.next.name == "variant"
139
142
  c.next.text.gsub(/\s/, "").empty? and
140
143
  c.next.remove
141
144
  end
142
145
  end
143
146
  end
147
+
148
+ def metadata_cleanup(xmldoc)
149
+ return if @metadata_attrs.nil? || @metadata_attrs.empty?
150
+
151
+ ins = xmldoc.at("//misc-container") ||
152
+ xmldoc.at("//bibdata").after("<misc-container/>").next_element
153
+ ins << @metadata_attrs
154
+ end
144
155
  end
145
156
  end
146
157
  end
@@ -30,6 +30,7 @@ module Metanorma
30
30
  preprocessor Metanorma::Plugin::Lutaml::LutamlUmlDatamodelDescriptionPreprocessor
31
31
  inline_macro Metanorma::Standoc::PreferredTermInlineMacro
32
32
  inline_macro Metanorma::Standoc::AltTermInlineMacro
33
+ inline_macro Metanorma::Standoc::AdmittedTermInlineMacro
33
34
  inline_macro Metanorma::Standoc::DeprecatedTermInlineMacro
34
35
  inline_macro Metanorma::Standoc::RelatedTermInlineMacro
35
36
  inline_macro Metanorma::Standoc::DomainTermInlineMacro
@@ -27,6 +27,19 @@ module Metanorma
27
27
  end
28
28
  end
29
29
 
30
+ class AdmittedTermInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor
31
+ use_dsl
32
+ named :admitted
33
+ parse_content_as :text
34
+ using_format :short
35
+
36
+ def process(parent, _target, attrs)
37
+ out = Asciidoctor::Inline.new(parent, :quoted,
38
+ attrs["text"]).convert
39
+ %{<admitted><expression><name>#{out}</name></expression></admitted>}
40
+ end
41
+ end
42
+
30
43
  class DeprecatedTermInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor
31
44
  use_dsl
32
45
  named :deprecated
@@ -19,6 +19,6 @@ module Metanorma
19
19
  end
20
20
 
21
21
  module Standoc
22
- VERSION = "2.0.0".freeze
22
+ VERSION = "2.0.1".freeze
23
23
  end
24
24
  end