asciidoctor-revealjs 3.1.0 → 4.1.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +328 -55
  3. data/Rakefile +30 -7
  4. data/asciidoctor-revealjs.gemspec +5 -3
  5. data/examples/a11y-dark.css +99 -0
  6. data/examples/autoslide.adoc +22 -0
  7. data/examples/custom-layout.adoc +10 -0
  8. data/examples/data-attributes.adoc +245 -0
  9. data/examples/docinfo-footer-revealjs.html +10 -0
  10. data/examples/docinfo-revealjs.html +7 -0
  11. data/examples/font-awesome-specific-version.adoc +11 -0
  12. data/examples/font-awesome.adoc +18 -3
  13. data/examples/font-awesome.css +3 -0
  14. data/examples/footnotes.adoc +46 -0
  15. data/examples/fragments.adoc +44 -0
  16. data/examples/fragments.css +18 -0
  17. data/examples/grid-layout-3x2.adoc +50 -0
  18. data/examples/grid-layout-docinfo-revealjs.html +11 -0
  19. data/examples/grid-layout.adoc +194 -0
  20. data/examples/history-hash.adoc +19 -0
  21. data/examples/history-regression-tests.adoc +0 -5
  22. data/examples/history.adoc +4 -4
  23. data/examples/images/asciidoctor-logo.svg +102 -0
  24. data/examples/images/cute-cat-1.jpg +0 -0
  25. data/examples/images/cute-cat-2.jpg +0 -0
  26. data/examples/images/cute-cat-3.jpg +0 -0
  27. data/examples/images/flock-of-seagulls_daniel-simion.mp3 +0 -0
  28. data/examples/issue-grid-layout-images.adoc +25 -0
  29. data/examples/level-sectnums.adoc +24 -0
  30. data/examples/links-preview.adoc +32 -0
  31. data/examples/links.adoc +39 -0
  32. data/examples/mathjax-cdn.adoc +21 -0
  33. data/examples/mathjax.adoc +20 -0
  34. data/examples/release-4.0.adoc +192 -0
  35. data/examples/release-4.0.css +23 -0
  36. data/examples/release-4.1.adoc +133 -0
  37. data/examples/release-4.1.css +50 -0
  38. data/examples/revealjs-custom-theme.adoc +10 -0
  39. data/examples/source-coderay.adoc +15 -0
  40. data/examples/source-emphasis.adoc +128 -0
  41. data/examples/source-highlightjs-html.adoc +1 -1
  42. data/examples/source-highlightjs-languages.adoc +27 -0
  43. data/examples/source-highlightjs.adoc +85 -2
  44. data/examples/source-pygments.adoc +12 -0
  45. data/examples/source-rouge-docinfo.html +8 -0
  46. data/examples/source-rouge.adoc +18 -0
  47. data/examples/steps.adoc +87 -0
  48. data/examples/text-alignments.adoc +44 -0
  49. data/examples/video.adoc +30 -8
  50. data/examples/with-docinfo-shared.adoc +13 -0
  51. data/lib/asciidoctor-revealjs/converter.rb +1053 -770
  52. data/lib/asciidoctor-revealjs/highlightjs.rb +333 -2
  53. data/lib/asciidoctor-revealjs/version.rb +1 -1
  54. data/templates/admonition.html.slim +1 -1
  55. data/templates/asciidoctor-compatibility.css +390 -0
  56. data/templates/audio.html.slim +1 -1
  57. data/templates/colist.html.slim +1 -1
  58. data/templates/dlist.html.slim +3 -3
  59. data/templates/document.html.slim +76 -60
  60. data/templates/example.html.slim +1 -1
  61. data/templates/helpers.rb +170 -5
  62. data/templates/image.html.slim +3 -3
  63. data/templates/inline_anchor.html.slim +6 -4
  64. data/templates/inline_button.html.slim +2 -1
  65. data/templates/inline_footnote.html.slim +11 -4
  66. data/templates/inline_image.html.slim +5 -8
  67. data/templates/inline_kbd.html.slim +3 -2
  68. data/templates/inline_menu.html.slim +4 -3
  69. data/templates/inline_quoted.html.slim +13 -21
  70. data/templates/listing.html.slim +15 -10
  71. data/templates/literal.html.slim +1 -1
  72. data/templates/olist.html.slim +2 -2
  73. data/templates/open.html.slim +3 -3
  74. data/templates/paragraph.html.slim +1 -1
  75. data/templates/quote.html.slim +1 -1
  76. data/templates/section.html.slim +51 -43
  77. data/templates/sidebar.html.slim +1 -1
  78. data/templates/stem.html.slim +1 -1
  79. data/templates/stretch_nested_elements.js.slim +65 -0
  80. data/templates/table.html.slim +3 -2
  81. data/templates/title_slide.html.slim +28 -0
  82. data/templates/ulist.html.slim +3 -3
  83. data/templates/verse.html.slim +1 -1
  84. data/templates/video.html.slim +14 -8
  85. metadata +79 -16
  86. data/CHANGELOG.adoc +0 -456
  87. data/HACKING.adoc +0 -404
  88. data/examples/revealjs-features.adoc +0 -23
  89. data/templates/asciidoctor_revealjs.css.slim +0 -59
@@ -30,3 +30,15 @@ fn main() {
30
30
  println!("Hello World!");
31
31
  }
32
32
  ----
33
+
34
+ == Pygments Features
35
+
36
+ [source,ruby,highlight="1..2,4..5"]
37
+ ----
38
+ ORDERED_LIST_KEYWORDS = {
39
+ 'loweralpha' => 'a',
40
+ 'lowerroman' => 'i',
41
+ 'upperalpha' => 'A',
42
+ 'upperroman' => 'I',
43
+ }
44
+ ----
@@ -0,0 +1,8 @@
1
+ <style>
2
+ pre.rouge .hll {
3
+ background-color: #ffc;
4
+ }
5
+ pre.rouge .hll * {
6
+ background-color: initial;
7
+ }
8
+ </style>
@@ -6,6 +6,7 @@
6
6
  :icons: font
7
7
  :source-highlighter: rouge
8
8
  :rouge-style: monokai
9
+ :docinfo: private
9
10
 
10
11
  == Requirements
11
12
 
@@ -39,3 +40,20 @@ fn main() {
39
40
  println!("Hello stretched World!");
40
41
  }
41
42
  ----
43
+
44
+ == Rouge Features
45
+
46
+ // TODO missing `hll` class from styles provided Asciidoctor for rouge
47
+ // TODO linenums feature affects listing size
48
+
49
+ This is broken see `TODO` in this source
50
+
51
+ [source,ruby,highlight=2..4]
52
+ ----
53
+ ORDERED_LIST_KEYWORDS = {
54
+ 'loweralpha' => 'a',
55
+ 'lowerroman' => 'i',
56
+ 'upperalpha' => 'A',
57
+ 'upperroman' => 'I',
58
+ }
59
+ ----
@@ -0,0 +1,87 @@
1
+ // .steps
2
+ // :include: //div[@class="slides"]
3
+ // :header_footer:
4
+ = Steps
5
+ :revealjs_hash: true
6
+ :revealjs_autoSlide: 2000
7
+
8
+ == Unordered List
9
+
10
+ [%step]
11
+ * Edgar Allan Poe
12
+ * Sheri S. Tepper
13
+ * Bill Bryson
14
+
15
+ == Ordered List
16
+
17
+ [%step]
18
+ . Protons
19
+ . Electrons
20
+ . Neutrons
21
+
22
+ == Paragraphs With Style
23
+
24
+ [.highlight-blue%step]
25
+ blue
26
+
27
+ [%step]
28
+ white
29
+
30
+ [.highlight-red%step]
31
+ red
32
+
33
+ == Admonition Order
34
+
35
+ [TIP,step=3]
36
+ Finally, a pro tip...
37
+
38
+ [WARNING,step=1]
39
+ First, watch out for...
40
+
41
+ [IMPORTANT.fade-up,step=2]
42
+ Second, don't forget...
43
+
44
+ == Inline Images
45
+ :imagesdir: images
46
+
47
+ image:cute-cat-1.jpg[cute-cat-laying,step=3]
48
+ image:cute-cat-2.jpg[cute-cat-yawning,step=1]
49
+ image:cute-cat-3.jpg[cute-cat-melting,step=2]
50
+
51
+ == Image Blocks
52
+
53
+ image::cute-cat-1.jpg[cute-cat-laying,height="100px",step=]
54
+
55
+ image::cute-cat-2.jpg[cute-cat-yawning,height="100px",step=]
56
+
57
+ image::cute-cat-3.jpg[cute-cat-melting,height="100px",step=]
58
+
59
+ == Lists
60
+
61
+ [%step]
62
+ --
63
+ .First
64
+ * a
65
+ * b
66
+ * c
67
+ --
68
+
69
+ [%step]
70
+ --
71
+ .Second
72
+ [%step]
73
+ * d
74
+ * e
75
+ * f
76
+ --
77
+
78
+ == Inline Phrases
79
+
80
+ The [.step.highlight-red]#greatest glory in living# lies not in never falling,
81
+ but in [.step.highlight-red]#rising every time we fall#.
82
+
83
+ == Inside a List
84
+
85
+ . [.step]#Protons#
86
+ . [.step]#Electrons#
87
+ . [.step]#Neutrons#
@@ -0,0 +1,44 @@
1
+ = Text Alignments
2
+
3
+ == Default
4
+
5
+ This is the default (boring) alignment!
6
+
7
+ == Center
8
+
9
+ [.text-center]
10
+ This text is centered.
11
+
12
+ == Left
13
+
14
+ [.text-left]
15
+ This text is left-aligned.
16
+
17
+ == Right
18
+
19
+ [.text-right]
20
+ This text is right-aligned.
21
+
22
+ == Justified
23
+
24
+ [.text-justify]
25
+ This text is justified.
26
+
27
+ [.text-right]
28
+ == Title is Right-Aligned
29
+
30
+ Content too!
31
+
32
+ == Back to Normal!
33
+
34
+ Content too!
35
+
36
+ [.text-left]
37
+ == Title is Left-Aligned
38
+
39
+ Content too!
40
+
41
+ [.text-center]
42
+ == Title is Centered
43
+
44
+ Content too!
@@ -3,30 +3,52 @@
3
3
  // :include: //div[@class="slides"]
4
4
  // :header_footer:
5
5
  = Video tests
6
+ :revealjs_hash: true
7
+ :imagesdir: images/
6
8
 
7
- == Auto-sized
9
+ == YouTube Auto-sized
10
+
11
+ video::kZH9JtPBq7k[youtube, start=34]
12
+
13
+ == YouTube Auto-sized Auto-starts
8
14
 
9
15
  video::kZH9JtPBq7k[youtube, start=34, options=autoplay]
10
- //video::kZH9JtPBq7k[youtube, start=34, height=600, width=800, options=autoplay]
11
16
 
12
17
  [%notitle]
13
- == Auto-sized notitle
18
+ == YouTube Auto-sized notitle
14
19
 
15
20
  video::kZH9JtPBq7k[youtube, start=34, options=autoplay]
16
21
 
22
+ [.notes]
23
+ --
24
+ This video is auto-sized!
25
+ --
26
+
27
+ == Remote Video File Auto-sized
28
+
29
+ video::https://s3.amazonaws.com/static.slid.es/site/homepage/v1/homepage-video-editor.webm[]
30
+
17
31
  [%notitle,background-iframe="https://www.youtube.com/embed/LaApqL4QjH8?rel=0&start=3&enablejsapi=1&autoplay=1&loop=1&controls=0&modestbranding=1"]
18
- == background
32
+ == background video at URL
19
33
 
20
34
  [%notitle,background-video="https://s3.amazonaws.com/static.slid.es/site/homepage/v1/homepage-video-editor.mp4,https://s3.amazonaws.com/static.slid.es/site/homepage/v1/homepage-video-editor.webm",background-video-loop=true,background-video-muted=true]
21
- == video file, named attributes
35
+ == background video at URL with named attributes
22
36
 
23
37
  [background-video="https://s3.amazonaws.com/static.slid.es/site/homepage/v1/homepage-video-editor.mp4,https://s3.amazonaws.com/static.slid.es/site/homepage/v1/homepage-video-editor.webm",options="loop,muted,notitle"]
38
+ == background video at URL with options
39
+
40
+ // Download this file and put in examples/images/ for this to be visible
41
+ // https://github.com/obilodeau/asciidoctor-assets/blob/master/videos/synthwave.mp4
42
+ [%notitle,background-video="synthwave.mp4",background-video-loop=true,background-video-muted=true]
43
+ == background video file with named attributes
44
+
45
+ // Download this file and put in examples/images/ for this to be visible
46
+ // https://github.com/obilodeau/asciidoctor-assets/blob/master/videos/synthwave.mp4
24
47
  == video file, options
25
48
 
49
+ video::synthwave.mp4[options="autoplay,loop"]
50
+
26
51
 
27
52
  == vimeo autostart
28
53
 
29
54
  video::44878206[vimeo, options=autoplay]
30
-
31
- // data-autoplay is not supported on vimeo videos
32
- // upstream: https://github.com/hakimel/reveal.js/issues/388
@@ -0,0 +1,13 @@
1
+ // .docinfo-shared
2
+ // Demonstration of docinfo attribute and we provide only head and footer values
3
+ // :include: //head/*[last()] | //div[@class="slides"]/*[last()]
4
+ // :header_footer:
5
+ = Docinfo shared
6
+ :docinfo: shared
7
+
8
+ == Tweet
9
+
10
+ // placeholder
11
+ [#tweet]
12
+ --
13
+ --
@@ -31,6 +31,23 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
31
31
  val && val != 'false' && val.to_s != '0' || false
32
32
  end
33
33
 
34
+ # bool_data_attr
35
+ # If the AsciiDoc attribute doesn't exist, no HTML attribute is added
36
+ # If the AsciiDoc attribute exist and is a true value, HTML attribute is enabled (bool)
37
+ # If the AsciiDoc attribute exist and is a false value, HTML attribute is a false string
38
+ # Ex: a feature is enabled globally but can be disabled using a data- attribute on individual items
39
+ # :revealjs_previewlinks: True
40
+ # then link::example.com[Link text, preview=false]
41
+ # Here the template must have data-preview-link="false" not just no data-preview-link attribute
42
+ def bool_data_attr val
43
+ return false unless attr?(val)
44
+ if attr(val).downcase == 'false' || attr(val) == '0'
45
+ 'false'
46
+ else
47
+ true
48
+ end
49
+ end
50
+
34
51
  # false needs to be verbatim everything else is a string.
35
52
  # Calling side isn't responsible for quoting so we are doing it here
36
53
  def to_valid_slidenumber val
@@ -62,25 +79,52 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
62
79
  # @yield The block of Slim/HTML code within the tag (optional).
63
80
  # @return [String] a rendered HTML element.
64
81
  #
65
-
66
82
  def html_tag(name, attributes = {}, content = nil)
67
83
  attrs = attributes.inject([]) do |attrs, (k, v)|
68
- next attrs if !v || v.nil_or_empty?
84
+ next attrs unless v && (v == true || !v.nil_or_empty?)
69
85
  v = v.compact.join(' ') if v.is_a? Array
70
86
  attrs << (v == true ? k : %(#{k}="#{v}"))
71
87
  end
72
88
  attrs_str = attrs.empty? ? '' : ' ' + attrs.join(' ')
73
89
 
74
-
75
90
  if VOID_ELEMENTS.include? name.to_s
76
91
  %(<#{name}#{attrs_str}>)
77
92
  else
78
- content ||= yield if block_given?
93
+ content ||= (yield if block_given?)
79
94
  %(<#{name}#{attrs_str}>#{content}</#{name}>)
80
95
  end
81
96
  end
82
97
 
83
98
 
99
+ #
100
+ # Extracts data- attributes from the attributes.
101
+ # @param attributes [Hash] (default: {})
102
+ # @return [Hash] a Hash that contains only data- attributes
103
+ #
104
+ def data_attrs(attributes)
105
+ # key can be an Integer (for positional attributes)
106
+ attributes.map { |key, value| (key == 'step') ? ['data-fragment-index', value] : [key, value] }
107
+ .to_h
108
+ .select { |key, _| key.to_s.start_with?('data-') }
109
+ end
110
+
111
+
112
+ #
113
+ # Wrap an inline text in a <span> element if the node contains a role, an id or data- attributes.
114
+ # @param content [#to_s] the content; +nil+ to call the block. (default: nil).
115
+ # @return [String] the content or the content wrapped in a <span> element as string
116
+ #
117
+ def inline_text_container(content = nil)
118
+ data_attrs = data_attrs(@attributes)
119
+ classes = [role, ('fragment' if (option? :step) || (attr? 'step') || (roles.include? 'step'))].compact
120
+ if !roles.empty? || !data_attrs.empty? || !@id.nil?
121
+ html_tag('span', { :id => @id, :class => classes }.merge(data_attrs), (content || (yield if block_given?)))
122
+ else
123
+ content || (yield if block_given?)
124
+ end
125
+ end
126
+
127
+
84
128
  ##
85
129
  # Returns corrected section level.
86
130
  #
@@ -91,6 +135,52 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
91
135
  @_section_level ||= (sec.level == 0 && sec.special) ? 1 : sec.level
92
136
  end
93
137
 
138
+ ##
139
+ # Display footnotes per slide
140
+ #
141
+ @@slide_footnotes = {}
142
+ @@section_footnotes = {}
143
+
144
+ def slide_footnote(footnote)
145
+ footnote_parent = footnote.parent
146
+ # footnotes declared on the section title are processed during the parsing/substitution.
147
+ # as a result, we need to store them to display them on the right slide/section
148
+ if footnote_parent.instance_of?(::Asciidoctor::Section)
149
+ footnote_parent_object_id = footnote_parent.object_id
150
+ section_footnotes = (@@section_footnotes[footnote_parent_object_id] || [])
151
+ footnote_index = section_footnotes.length + 1
152
+ attributes = footnote.attributes.merge({ 'index' => footnote_index })
153
+ inline_footnote = Asciidoctor::Inline.new(footnote_parent, footnote.context, footnote.text, :attributes => attributes)
154
+ section_footnotes << Asciidoctor::Document::Footnote.new(inline_footnote.attr(:index), inline_footnote.id, inline_footnote.text)
155
+ @@section_footnotes[footnote_parent_object_id] = section_footnotes
156
+ inline_footnote
157
+ else
158
+ parent = footnote.parent
159
+ until parent == nil || parent.instance_of?(::Asciidoctor::Section)
160
+ parent = parent.parent
161
+ end
162
+ # check if there is any footnote attached on the section title
163
+ section_footnotes = parent != nil ? @@section_footnotes[parent.object_id] || [] : []
164
+ initial_index = footnote.attr(:index)
165
+ # reset the footnote numbering to 1 on each slide
166
+ # make sure that if a footnote is used more than once it will use the same index/number
167
+ slide_index = (existing_footnote = @@slide_footnotes[initial_index]) ? existing_footnote.index : @@slide_footnotes.length + section_footnotes.length + 1
168
+ attributes = footnote.attributes.merge({ 'index' => slide_index })
169
+ inline_footnote = Asciidoctor::Inline.new(footnote_parent, footnote.context, footnote.text, :attributes => attributes)
170
+ @@slide_footnotes[initial_index] = Asciidoctor::Document::Footnote.new(inline_footnote.attr(:index), inline_footnote.id, inline_footnote.text)
171
+ inline_footnote
172
+ end
173
+ end
174
+
175
+ def clear_slide_footnotes
176
+ @@slide_footnotes = {}
177
+ end
178
+
179
+ def slide_footnotes(section)
180
+ section_object_id = section.object_id
181
+ section_footnotes = @@section_footnotes[section_object_id] || []
182
+ section_footnotes + @@slide_footnotes.values
183
+ end
94
184
 
95
185
  ##
96
186
  # Returns the captioned section's title, optionally numbered.
@@ -108,6 +198,20 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
108
198
  end
109
199
  end
110
200
 
201
+ def revealjs_dependencies(document, node, revealjsdir)
202
+ dependencies = []
203
+ dependencies << "{ src: '#{revealjsdir}/plugin/zoom-js/zoom.js', async: true }" unless (node.attr? 'revealjs_plugin_zoom', 'disabled')
204
+ dependencies << "{ src: '#{revealjsdir}/plugin/notes/notes.js', async: true }" unless (node.attr? 'revealjs_plugin_notes', 'disabled')
205
+ dependencies << "{ src: '#{revealjsdir}/plugin/markdown/marked.js', async: true }" if (node.attr? 'revealjs_plugin_marked', 'enabled')
206
+ dependencies << "{ src: '#{revealjsdir}/plugin/markdown/markdown.js', async: true }" if (node.attr? 'revealjs_plugin_markdown', 'enabled')
207
+ if (node.attr? 'revealjs_plugins') &&
208
+ !(revealjs_plugins_file = (node.attr 'revealjs_plugins', '').strip).empty? &&
209
+ !(revealjs_plugins_content = (File.read revealjs_plugins_file).strip).empty?
210
+ dependencies << revealjs_plugins_content
211
+ end
212
+ dependencies.join(",\n ")
213
+ end
214
+
111
215
 
112
216
  # Between delimiters (--) is code taken from asciidoctor-bespoke 1.0.0.alpha.1
113
217
  # Licensed under MIT, Copyright (C) 2015-2016 Dan Allen and the Asciidoctor Project
@@ -120,8 +224,69 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
120
224
  def resolve_content
121
225
  @content_model == :simple ? %(<p>#{content}</p>) : content
122
226
  end
123
- #--
124
227
 
228
+ # Capture nested template content and register it with the specified key, to
229
+ # be executed at a later time.
230
+ #
231
+ # This method must be invoked using the control code directive (i.e., -). By
232
+ # using a control code directive, the block is set up to append the result
233
+ # directly to the output buffer. (Integrations often hide the distinction
234
+ # between a control code directive and an output directive in this context).
235
+ #
236
+ # key - The Symbol under which to save the template block.
237
+ # opts - A Hash of options to control processing (default: {}):
238
+ # * :append - A Boolean that indicates whether to append this block
239
+ # to others registered with this key (default: false).
240
+ # * :content - String content to be used if template content is not
241
+ # provided (optional).
242
+ # block - The template content (in Slim template syntax).
243
+ #
244
+ # Examples
245
+ #
246
+ # - content_for :body
247
+ # p content
248
+ # - content_for :body, append: true
249
+ # p more content
250
+ #
251
+ # Returns nothing.
252
+ def content_for key, opts = {}, &block
253
+ @content = {} unless defined? @content
254
+ (opts[:append] ? (@content[key] ||= []) : (@content[key] = [])) << (block_given? ? block : lambda { opts[:content] })
255
+ nil
256
+ end
257
+
258
+ # Checks whether deferred template content has been registered for the specified key.
259
+ #
260
+ # key - The Symbol under which to look for saved template blocks.
261
+ #
262
+ # Returns a Boolean indicating whether content has been registered for this key.
263
+ def content_for? key
264
+ (defined? @content) && (@content.key? key)
265
+ end
266
+
267
+ # Evaluates the deferred template content registered with the specified key.
268
+ #
269
+ # When the corresponding content_for method is invoked using a control code
270
+ # directive, the block is set up to append the result to the output buffer
271
+ # directly.
272
+ #
273
+ # key - The Symbol under which to look for template blocks to yield.
274
+ # opts - A Hash of options to control processing (default: {}):
275
+ # * :drain - A Boolean indicating whether to drain the key of blocks
276
+ # after calling them (default: true).
277
+ #
278
+ # Examples
279
+ #
280
+ # - yield_content :body
281
+ #
282
+ # Returns nothing (assuming the content has been captured in the context of control code).
283
+ def yield_content key, opts = {}
284
+ if (defined? @content) && (blks = (opts.fetch :drain, true) ? (@content.delete key) : @content[key])
285
+ blks.map {|b| b.call }.join
286
+ end
287
+ nil
288
+ end
289
+ #--
125
290
  end
126
291
 
127
292
  # More custom functions can be added in another namespace if required
@@ -144,6 +309,7 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
144
309
  basebackend "html" if respond_to? :basebackend
145
310
  outfilesuffix ".html" if respond_to? :outfilesuffix
146
311
  filetype "html" if respond_to? :filetype
312
+ supports_templates if respond_to? :supports_templates
147
313
 
148
314
  delegate_backend = (opts[:delegate_backend] || "html5").to_s
149
315
  factory = ::Asciidoctor::Converter::Factory
@@ -158,6 +324,7 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
158
324
 
159
325
  def convert(node, transform = nil, opts = {})
160
326
  transform ||= node.node_name
327
+ opts ||= {}
161
328
  converter = respond_to?(transform) ? self : @delegate_converter
162
329
 
163
330
  if opts.empty?
@@ -167,14 +334,18 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
167
334
  end
168
335
  end
169
336
 
337
+ def handles?(transform)
338
+ respond_to?("convert_#{transform}") || respond_to?(transform)
339
+ end
340
+
170
341
  #----------------- Begin of generated transformation methods -----------------#
171
342
 
172
343
 
173
- def toc(node, opts = {})
344
+ def stretch_nested_elements(node, opts = {})
174
345
  node.extend(Helpers)
175
346
  node.instance_eval do
176
347
  converter.set_local_variables(binding, opts) unless opts.empty?
177
- _buf = '';
348
+ _buf = ''; _buf << ("<script>var dom = {};\ndom.slides = document.querySelector('.reveal .slides');\n\nfunction getRemainingHeight(element, slideElement, height) {\n height = height || 0;\n if (element) {\n var newHeight, oldHeight = element.style.height;\n // Change the .stretch element height to 0 in order find the height of all\n // the other elements\n element.style.height = '0px';\n // In Overview mode, the parent (.slide) height is set of 700px.\n // Restore it temporarily to its natural height.\n slideElement.style.height = 'auto';\n newHeight = height - slideElement.offsetHeight;\n // Restore the old height, just in case\n element.style.height = oldHeight + 'px';\n // Clear the parent (.slide) height. .removeProperty works in IE9+\n slideElement.style.removeProperty('height');\n return newHeight;\n }\n return height;\n}\n\nfunction layoutSlideContents(width, height) {\n // Handle sizing of elements with the 'stretch' class\n toArray(dom.slides.querySelectorAll('section .stretch')).forEach(function (element) {\n // Determine how much vertical space we can use\n var limit = 5; // hard limit\n var parent = element.parentNode;\n while (parent.nodeName !== 'SECTION' && limit > 0) {\n parent = parent.parentNode;\n limit--;\n }\n if (limit === 0) {\n // unable to find parent, aborting!\n return;\n }\n var remainingHeight = getRemainingHeight(element, parent, height);\n // Consider the aspect ratio of media elements\n if (/(img|video)/gi.test(element.nodeName)) {\n var nw = element.naturalWidth || element.videoWidth, nh = element.naturalHeight || element.videoHeight;\n var es = Math.min(width / nw, remainingHeight / nh);\n element.style.width = (nw * es) + 'px';\n element.style.height = (nh * es) + 'px';\n } else {\n element.style.width = width + 'px';\n element.style.height = remainingHeight + 'px';\n }\n });\n}\n\nfunction toArray(o) {\n return Array.prototype.slice.call(o);\n}\n\nReveal.addEventListener('slidechanged', function () {\n layoutSlideContents(".freeze);
178
349
  ;
179
350
  ;
180
351
  ;
@@ -187,198 +358,264 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
187
358
  ;
188
359
  ;
189
360
  ;
190
- ; _buf << ("<div id=\"toc\"".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = (document.attr 'toc-class', 'toc'); if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _buf << ("><div id=\"toctitle\">".freeze);
191
- ; _buf << (((document.attr 'toc-title')).to_s);
192
- ; _buf << ("</div>".freeze);
193
- ; _buf << ((converter.convert document, 'outline').to_s);
194
- ; _buf << ("</div>".freeze); _buf
195
- end
196
- end
197
-
198
- def page_break(node, opts = {})
199
- node.extend(Helpers)
200
- node.instance_eval do
201
- converter.set_local_variables(binding, opts) unless opts.empty?
202
- _buf = ''; _buf << ("<div style=\"page-break-after: always;\"></div>".freeze);
361
+ ;
362
+ ;
363
+ ;
364
+ ;
365
+ ;
366
+ ;
367
+ ;
368
+ ;
369
+ ;
370
+ ;
371
+ ;
372
+ ;
373
+ ;
374
+ ;
375
+ ;
376
+ ;
377
+ ;
378
+ ;
379
+ ;
380
+ ;
381
+ ;
382
+ ;
383
+ ;
384
+ ;
385
+ ;
386
+ ;
387
+ ;
388
+ ;
389
+ ;
390
+ ;
391
+ ;
392
+ ;
393
+ ;
394
+ ;
395
+ ;
396
+ ;
397
+ ;
398
+ ;
399
+ ;
400
+ ;
401
+ ;
402
+ ;
403
+ ;
404
+ ;
405
+ ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (", ".freeze); _buf << ((attr 'revealjs_height', 700).to_s); _buf << (")\n});\nReveal.addEventListener('ready', function () {\n layoutSlideContents(".freeze);
406
+ ;
407
+ ;
408
+ ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (", ".freeze); _buf << ((attr 'revealjs_height', 700).to_s); _buf << (")\n});\nReveal.addEventListener('resize', function () {\n layoutSlideContents(".freeze);
409
+ ;
410
+ ;
411
+ ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (", ".freeze); _buf << ((attr 'revealjs_height', 700).to_s); _buf << (")\n});</script>".freeze);
412
+ ;
203
413
  ; _buf
204
414
  end
205
415
  end
206
416
 
207
- def open(node, opts = {})
417
+ def sidebar(node, opts = {})
208
418
  node.extend(Helpers)
209
419
  node.instance_eval do
210
420
  converter.set_local_variables(binding, opts) unless opts.empty?
211
- _buf = ''; if @style == 'abstract';
212
- ; if @parent == @document && @document.doctype == 'book';
213
- ; puts 'asciidoctor: WARNING: abstract block cannot be used in a document without a title when doctype is book. Excluding block content.';
214
- ; else;
215
- ; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "quoteblock"; _temple_html_attributemerger1[1] = "abstract"; _temple_html_attributemerger1[2] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[2] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[2] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[2]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
216
- ; if title?;
217
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
218
- ; _buf << ("</div>".freeze); end; _buf << ("<blockquote>".freeze); _buf << ((content).to_s);
219
- ; _buf << ("</blockquote></div>".freeze); end; elsif @style == 'partintro' && (@level != 0 || @parent.context != :section || @document.doctype != 'book');
220
- ; puts 'asciidoctor: ERROR: partintro block can only be used when doctype is book and it\'s a child of a book part. Excluding block content.';
221
- ; else;
222
- ; if (has_role? 'aside') or (has_role? 'speaker') or (has_role? 'notes');
421
+ _buf = ''; if (has_role? 'aside') or (has_role? 'speaker') or (has_role? 'notes');
223
422
  ; _buf << ("<aside class=\"notes\">".freeze); _buf << ((resolve_content).to_s);
224
423
  ; _buf << ("</aside>".freeze);
225
424
  ; else;
226
- ; _buf << ("<div".freeze); _temple_html_attributeremover2 = ''; _temple_html_attributemerger2 = []; _temple_html_attributemerger2[0] = "openblock"; _temple_html_attributemerger2[1] = ''; _slim_codeattributes3 = [(@style != 'open' ? @style : nil),role]; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributemerger2[1] << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributemerger2[1] << ((_slim_codeattributes3).to_s); end; _temple_html_attributemerger2[1]; _temple_html_attributeremover2 << ((_temple_html_attributemerger2.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _slim_codeattributes4 = @id; if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
425
+ ; _slim_controls1 = html_tag('div', { :id => @id, :class => ['sidebarblock', role, ('fragment' if (option? :step) || (has_role? 'step') || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
426
+ ; _slim_controls2 << ("<div class=\"content\">".freeze);
227
427
  ; if title?;
228
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
229
- ; _buf << ("</div>".freeze); end; _buf << ("<div class=\"content\">".freeze); _buf << ((content).to_s);
230
- ; _buf << ("</div></div>".freeze); end; end; _buf
428
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
429
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ((content).to_s);
430
+ ; _slim_controls2 << ("</div>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); end; _buf
231
431
  end
232
432
  end
233
433
 
234
- def paragraph(node, opts = {})
434
+ def ulist(node, opts = {})
235
435
  node.extend(Helpers)
236
436
  node.instance_eval do
237
437
  converter.set_local_variables(binding, opts) unless opts.empty?
238
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "paragraph"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
438
+ _buf = ''; if (checklist = (option? :checklist) ? 'checklist' : nil);
439
+ ; if option? :interactive;
440
+ ; marker_checked = '<input type="checkbox" data-item-complete="1" checked>';
441
+ ; marker_unchecked = '<input type="checkbox" data-item-complete="0">';
442
+ ; else;
443
+ ; if @document.attr? :icons, 'font';
444
+ ; marker_checked = '<i class="icon-check"></i>';
445
+ ; marker_unchecked = '<i class="icon-check-empty"></i>';
446
+ ; else;
447
+ ;
448
+ ; marker_checked = '<input type="checkbox" data-item-complete="1" checked disabled>';
449
+ ; marker_unchecked = '<input type="checkbox" data-item-complete="0" disabled>';
450
+ ; end; end; end; _slim_controls1 = html_tag('div', { :id => @id, :class => ['ulist', checklist, @style, role] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
239
451
  ; if title?;
240
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
241
- ; _buf << ("</div>".freeze); end; if has_role? 'small';
242
- ; _buf << ("<small>".freeze); _buf << ((content).to_s);
243
- ; _buf << ("</small>".freeze); else;
244
- ; _buf << ("<p>".freeze); _buf << ((content).to_s);
245
- ; _buf << ("</p>".freeze); end; _buf << ("</div>".freeze); _buf
452
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
453
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<ul".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = (checklist || @style); if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover1).to_s); _slim_controls2 << ("\"".freeze); end; _slim_controls2 << (">".freeze);
454
+ ; items.each do |item|;
455
+ ; _slim_controls2 << ("<li".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes2 = ('fragment' if (option? :step) || (has_role? 'step') || (attr? 'step')); if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes2.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes2).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover2).to_s); _slim_controls2 << ("\"".freeze); end; _slim_controls2 << ("><p>".freeze);
456
+ ;
457
+ ; if checklist && (item.attr? :checkbox);
458
+ ; _slim_controls2 << ((%(#{(item.attr? :checked) ? marker_checked : marker_unchecked}#{item.text})).to_s);
459
+ ; else;
460
+ ; _slim_controls2 << ((item.text).to_s);
461
+ ; end; _slim_controls2 << ("</p>".freeze); if item.blocks?;
462
+ ; _slim_controls2 << ((item.content).to_s);
463
+ ; end; _slim_controls2 << ("</li>".freeze); end; _slim_controls2 << ("</ul>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
246
464
  end
247
465
  end
248
466
 
249
- def verse(node, opts = {})
467
+ def stem(node, opts = {})
250
468
  node.extend(Helpers)
251
469
  node.instance_eval do
252
470
  converter.set_local_variables(binding, opts) unless opts.empty?
253
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "verseblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
471
+ _buf = ''; open, close = Asciidoctor::BLOCK_MATH_DELIMITERS[@style.to_sym];
472
+ ; equation = content.strip;
473
+ ; if (@subs.nil? || @subs.empty?) && !(attr? 'subs');
474
+ ; equation = sub_specialcharacters equation;
475
+ ; end; unless (equation.start_with? open) && (equation.end_with? close);
476
+ ; equation = %(#{open}#{equation}#{close});
477
+ ; end; _slim_controls1 = html_tag('div', { :id => @id, :class => ['stemblock', role, ('fragment' if (option? :step) || (has_role? 'step') || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
254
478
  ; if title?;
255
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
256
- ; _buf << ("</div>".freeze); end; _buf << ("<pre class=\"content\">".freeze); _buf << ((content).to_s);
257
- ; _buf << ("</pre>".freeze); attribution = (attr? :attribution) ? (attr :attribution) : nil;
258
- ; citetitle = (attr? :citetitle) ? (attr :citetitle) : nil;
259
- ; if attribution || citetitle;
260
- ; _buf << ("<div class=\"attribution\">".freeze);
261
- ; if citetitle;
262
- ; _buf << ("<cite>".freeze); _buf << ((citetitle).to_s);
263
- ; _buf << ("</cite>".freeze); end; if attribution;
264
- ; if citetitle;
265
- ; _buf << ("<br>".freeze);
266
- ; end; _buf << ("&#8212; ".freeze); _buf << ((attribution).to_s);
267
- ; end; _buf << ("</div>".freeze); end; _buf << ("</div>".freeze); _buf
479
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
480
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<div class=\"content\">".freeze); _slim_controls2 << ((equation).to_s);
481
+ ; _slim_controls2 << ("</div>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
268
482
  end
269
483
  end
270
484
 
271
- def dlist(node, opts = {})
485
+ def olist(node, opts = {})
272
486
  node.extend(Helpers)
273
487
  node.instance_eval do
274
488
  converter.set_local_variables(binding, opts) unless opts.empty?
275
- _buf = ''; case @style;
276
- ; when 'qanda';
277
- ; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "qlist"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = ['qanda',role]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
278
- ; if title?;
279
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
280
- ; _buf << ("</div>".freeze); end; _buf << ("<ol>".freeze);
281
- ; items.each do |questions, answer|;
282
- ; _buf << ("<li>".freeze);
283
- ; [*questions].each do |question|;
284
- ; _buf << ("<p><em>".freeze); _buf << ((question.text).to_s);
285
- ; _buf << ("</em></p>".freeze); end; unless answer.nil?;
286
- ; if answer.text?;
287
- ; _buf << ("<p>".freeze); _buf << ((answer.text).to_s);
288
- ; _buf << ("</p>".freeze); end; if answer.blocks?;
289
- ; _buf << ((answer.content).to_s);
290
- ; end; end; _buf << ("</li>".freeze); end; _buf << ("</ol></div>".freeze); when 'horizontal';
291
- ; _buf << ("<div".freeze); _temple_html_attributeremover2 = ''; _temple_html_attributemerger2 = []; _temple_html_attributemerger2[0] = "hdlist"; _temple_html_attributemerger2[1] = ''; _slim_codeattributes3 = role; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributemerger2[1] << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributemerger2[1] << ((_slim_codeattributes3).to_s); end; _temple_html_attributemerger2[1]; _temple_html_attributeremover2 << ((_temple_html_attributemerger2.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _slim_codeattributes4 = @id; if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
292
- ; if title?;
293
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
294
- ; _buf << ("</div>".freeze); end; _buf << ("<table>".freeze);
295
- ; if (attr? :labelwidth) || (attr? :itemwidth);
296
- ; _buf << ("<colgroup><col".freeze);
297
- ; _slim_codeattributes5 = ((attr? :labelwidth) ? %(width:#{(attr :labelwidth).chomp '%'}%;) : nil); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" style".freeze); else; _buf << (" style=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _buf << ("><col".freeze);
298
- ; _slim_codeattributes6 = ((attr? :itemwidth) ? %(width:#{(attr :itemwidth).chomp '%'}%;) : nil); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" style".freeze); else; _buf << (" style=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << ("></colgroup>".freeze);
299
- ; end; items.each do |terms, dd|;
300
- ; _buf << ("<tr><td".freeze);
301
- ; _temple_html_attributeremover3 = ''; _slim_codeattributes7 = ['hdlist1',('strong' if option? 'strong')]; if Array === _slim_codeattributes7; _slim_codeattributes7 = _slim_codeattributes7.flatten; _slim_codeattributes7.map!(&:to_s); _slim_codeattributes7.reject!(&:empty?); _temple_html_attributeremover3 << ((_slim_codeattributes7.join(" ")).to_s); else; _temple_html_attributeremover3 << ((_slim_codeattributes7).to_s); end; _temple_html_attributeremover3; if !_temple_html_attributeremover3.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover3).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze);
302
- ; terms = [*terms];
303
- ; last_term = terms.last;
304
- ; terms.each do |dt|;
305
- ; _buf << ((dt.text).to_s);
306
- ; if dt != last_term;
307
- ; _buf << ("<br>".freeze);
308
- ; end; end; _buf << ("</td><td class=\"hdlist2\">".freeze);
309
- ; unless dd.nil?;
310
- ; if dd.text?;
311
- ; _buf << ("<p>".freeze); _buf << ((dd.text).to_s);
312
- ; _buf << ("</p>".freeze); end; if dd.blocks?;
313
- ; _buf << ((dd.content).to_s);
314
- ; end; end; _buf << ("</td></tr>".freeze); end; _buf << ("</table></div>".freeze); else;
315
- ; _buf << ("<div".freeze); _temple_html_attributeremover4 = ''; _temple_html_attributemerger3 = []; _temple_html_attributemerger3[0] = "dlist"; _temple_html_attributemerger3[1] = ''; _slim_codeattributes8 = [@style,role]; if Array === _slim_codeattributes8; _slim_codeattributes8 = _slim_codeattributes8.flatten; _slim_codeattributes8.map!(&:to_s); _slim_codeattributes8.reject!(&:empty?); _temple_html_attributemerger3[1] << ((_slim_codeattributes8.join(" ")).to_s); else; _temple_html_attributemerger3[1] << ((_slim_codeattributes8).to_s); end; _temple_html_attributemerger3[1]; _temple_html_attributeremover4 << ((_temple_html_attributemerger3.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover4; if !_temple_html_attributeremover4.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover4).to_s); _buf << ("\"".freeze); end; _slim_codeattributes9 = @id; if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
489
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => @id, :class => ['olist', @style, role] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
316
490
  ; if title?;
317
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
318
- ; _buf << ("</div>".freeze); end; _buf << ("<dl>".freeze);
319
- ; items.each do |terms, dd|;
320
- ; [*terms].each do |dt|;
321
- ; _buf << ("<dt".freeze); _temple_html_attributeremover5 = ''; _slim_codeattributes10 = ('hdlist1' unless @style); if Array === _slim_codeattributes10; _slim_codeattributes10 = _slim_codeattributes10.flatten; _slim_codeattributes10.map!(&:to_s); _slim_codeattributes10.reject!(&:empty?); _temple_html_attributeremover5 << ((_slim_codeattributes10.join(" ")).to_s); else; _temple_html_attributeremover5 << ((_slim_codeattributes10).to_s); end; _temple_html_attributeremover5; if !_temple_html_attributeremover5.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover5).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((dt.text).to_s);
322
- ; _buf << ("</dt>".freeze); end; unless dd.nil?;
323
- ; _buf << ("<dd>".freeze);
324
- ; if dd.text?;
325
- ; _buf << ("<p>".freeze); _buf << ((dd.text).to_s);
326
- ; _buf << ("</p>".freeze); end; if dd.blocks?;
327
- ; _buf << ((dd.content).to_s);
328
- ; end; _buf << ("</dd>".freeze); end; end; _buf << ("</dl></div>".freeze); end; _buf
491
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
492
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<ol".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = @style; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover1).to_s); _slim_controls2 << ("\"".freeze); end; _slim_codeattributes2 = (attr :start); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" start".freeze); else; _slim_controls2 << (" start=\"".freeze); _slim_controls2 << ((_slim_codeattributes2).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes3 = list_marker_keyword; if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" type".freeze); else; _slim_controls2 << (" type=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">".freeze);
493
+ ; items.each do |item|;
494
+ ; _slim_controls2 << ("<li".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes4 = ('fragment' if (option? :step) || (has_role? 'step') || (attr? 'step')); if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes4.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes4).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover2).to_s); _slim_controls2 << ("\"".freeze); end; _slim_controls2 << ("><p>".freeze);
495
+ ; _slim_controls2 << ((item.text).to_s);
496
+ ; _slim_controls2 << ("</p>".freeze); if item.blocks?;
497
+ ; _slim_controls2 << ((item.content).to_s);
498
+ ; end; _slim_controls2 << ("</li>".freeze); end; _slim_controls2 << ("</ol>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
329
499
  end
330
500
  end
331
501
 
332
- def inline_footnote(node, opts = {})
502
+ def colist(node, opts = {})
333
503
  node.extend(Helpers)
334
504
  node.instance_eval do
335
505
  converter.set_local_variables(binding, opts) unless opts.empty?
336
- _buf = ''; if @type == :xref;
337
- ; _buf << ("<span class=\"footnoteref\">[<a class=\"footnote\" href=\"#_footnote_".freeze);
338
- ; _buf << ((attr :index).to_s); _buf << ("\" title=\"View footnote.\">".freeze); _buf << ((attr :index).to_s); _buf << ("</a>]</span>".freeze);
339
- ; else;
340
- ; _buf << ("<span class=\"footnote\"".freeze); _slim_codeattributes1 = ("_footnote_#{@id}" if @id); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << (">[<a id=\"_footnoteref_".freeze);
341
- ; _buf << ((attr :index).to_s); _buf << ("\" class=\"footnote\" href=\"#_footnote_".freeze); _buf << ((attr :index).to_s); _buf << ("\" title=\"View footnote.\">".freeze); _buf << ((attr :index).to_s); _buf << ("</a>]</span>".freeze);
342
- ; end; _buf
506
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => @id, :class => ['colist', @style, role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
507
+ ; if title?;
508
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
509
+ ; _slim_controls2 << ("</div>".freeze); end; if @document.attr? :icons;
510
+ ; font_icons = @document.attr? :icons, 'font';
511
+ ; _slim_controls2 << ("<table>".freeze);
512
+ ; items.each_with_index do |item, i|;
513
+ ; num = i + 1;
514
+ ; _slim_controls2 << ("<tr><td>".freeze);
515
+ ;
516
+ ; if font_icons;
517
+ ; _slim_controls2 << ("<i class=\"conum\"".freeze); _slim_codeattributes1 = num; if _slim_codeattributes1; if _slim_codeattributes1 == true; _slim_controls2 << (" data-value".freeze); else; _slim_controls2 << (" data-value=\"".freeze); _slim_controls2 << ((_slim_codeattributes1).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></i><b>".freeze);
518
+ ; _slim_controls2 << ((num).to_s);
519
+ ; _slim_controls2 << ("</b>".freeze); else;
520
+ ; _slim_controls2 << ("<img".freeze); _slim_codeattributes2 = icon_uri("callouts/#{num}"); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes2).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes3 = num; if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" alt".freeze); else; _slim_controls2 << (" alt=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">".freeze);
521
+ ; end; _slim_controls2 << ("</td><td>".freeze); _slim_controls2 << ((item.text).to_s);
522
+ ; _slim_controls2 << ("</td></tr>".freeze); end; _slim_controls2 << ("</table>".freeze); else;
523
+ ; _slim_controls2 << ("<ol>".freeze);
524
+ ; items.each do |item|;
525
+ ; _slim_controls2 << ("<li><p>".freeze); _slim_controls2 << ((item.text).to_s);
526
+ ; _slim_controls2 << ("</p></li>".freeze); end; _slim_controls2 << ("</ol>".freeze); end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
343
527
  end
344
528
  end
345
529
 
346
- def asciidoctor_revealjs(node, opts = {})
530
+ def document(node, opts = {})
347
531
  node.extend(Helpers)
348
532
  node.instance_eval do
349
533
  converter.set_local_variables(binding, opts) unless opts.empty?
350
- _buf = ''; _buf << ("<!--This CSS is generated by the Asciidoctor-Reveal.js converter to further integrate AsciiDoc's existing semantic with Reveal.js--><style type=\"text/css\">.reveal div.right {\n float: right;\n}\n\n.reveal .listingblock.stretch > .content {\n height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre {\n height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre > code {\n height: 100%;\n max-height: 100%;\n}\n\n/* tables */\ntable{border-collapse:collapse;border-spacing:0}\ntable{margin-bottom:1.25em;border:solid 1px #dedede}\ntable thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;text-align:left}\ntable tr th,table tr td{padding:.5625em .625em;font-size:inherit}\ntable thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}\ntd.tableblock>.content{margin-bottom:1.25em}\ntd.tableblock>.content>:last-child{margin-bottom:-1.25em}\ntable.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}\ntable.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}\ntable.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}\ntable.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}\ntable.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}\ntable.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}\ntable.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}\ntable.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}\ntable.frame-all{border-width:1px}\ntable.frame-sides{border-width:0 1px}\ntable.frame-topbot,table.frame-ends{border-width:1px 0}\n.reveal table th.halign-left,.reveal table td.halign-left{text-align:left}\n.reveal table th.halign-right,.reveal table td.halign-right{text-align:right}\n.reveal table th.halign-center,.reveal table td.halign-center{text-align:center}\n.reveal table th.valign-top,.reveal table td.valign-top{vertical-align:top}\n.reveal table th.valign-bottom,.reveal table td.valign-bottom{vertical-align:bottom}\n.reveal table th.valign-middle,.reveal table td.valign-middle{vertical-align:middle}\ntable thead th,table tfoot th{font-weight:bold}\ntbody tr th{display:table-cell;line-height:1.6}\ntbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{font-weight:bold}\nthead{display:table-header-group}\n\n.reveal table.grid-none th,.reveal table.grid-none td{border-bottom:0!important}\n\n/* callouts */\n.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:50%;border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:\"Open Sans\",\"DejaVu Sans\",sans-serif;font-style:normal;font-weight:bold}\n.conum[data-value] *{color:#fff!important}\n.conum[data-value]+b{display:none}\n.conum[data-value]::after{content:attr(data-value)}\npre .conum[data-value]{position:relative;top:-.125em}\nb.conum *{color:inherit!important}\n.conum:not([data-value]):empty{display:none}</style>".freeze);
534
+ _buf = ''; _buf << ("<!DOCTYPE html><html".freeze);
535
+ ; _slim_codeattributes1 = (attr :lang, 'en' unless attr? :nolang); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" lang".freeze); else; _buf << (" lang=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << ("><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui\"><title>".freeze);
351
536
  ;
352
537
  ;
353
538
  ;
354
539
  ;
540
+ ; _buf << (((doctitle sanitize: true, use_fallback: true)).to_s);
355
541
  ;
542
+ ; _buf << ("</title>".freeze); if RUBY_ENGINE == 'opal' && JAVASCRIPT_PLATFORM == 'node';
543
+ ; revealjsdir = (attr :revealjsdir, 'node_modules/reveal.js');
544
+ ; else;
545
+ ; revealjsdir = (attr :revealjsdir, 'reveal.js');
546
+ ; end; unless (asset_uri_scheme = (attr 'asset-uri-scheme', 'https')).empty?;
547
+ ; asset_uri_scheme = %(#{asset_uri_scheme}:);
548
+ ; end; cdn_base = %(#{asset_uri_scheme}//cdnjs.cloudflare.com/ajax/libs);
549
+ ; [:description, :keywords, :author, :copyright].each do |key|;
550
+ ; if attr? key;
551
+ ; _buf << ("<meta".freeze); _slim_codeattributes2 = key; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" name".freeze); else; _buf << (" name=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = (attr key); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" content".freeze); else; _buf << (" content=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
552
+ ; end; end; linkcss = (attr? 'linkcss');
553
+ ; _buf << ("<link rel=\"stylesheet\" href=\"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/css/reset.css\"><link rel=\"stylesheet\" href=\"".freeze);
554
+ ; _buf << ((revealjsdir).to_s); _buf << ("/css/reveal.css\"><link rel=\"stylesheet\"".freeze);
356
555
  ;
357
556
  ;
557
+ ; _slim_codeattributes4 = (attr :revealjs_customtheme, %(#{revealjsdir}/css/theme/#{attr 'revealjs_theme', 'black'}.css)); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << (" id=\"theme\"><!--This CSS is generated by the Asciidoctor reveal.js converter to further integrate AsciiDoc's existing semantic with reveal.js--><style type=\"text/css\">.reveal div.right {\n float: right\n}\n\n/* listing block */\n.reveal .listingblock.stretch > .content {\n height: 100%\n}\n\n.reveal .listingblock.stretch > .content > pre {\n height: 100%\n}\n\n.reveal .listingblock.stretch > .content > pre > code {\n height: 100%;\n max-height: 100%\n}\n\n/* tables */\ntable {\n border-collapse: collapse;\n border-spacing: 0\n}\n\ntable {\n margin-bottom: 1.25em;\n border: solid 1px #dedede\n}\n\ntable thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td {\n padding: .5em .625em .625em;\n font-size: inherit;\n text-align: left\n}\n\ntable tr th, table tr td {\n padding: .5625em .625em;\n font-size: inherit\n}\n\ntable thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td {\n display: table-cell;\n line-height: 1.6\n}\n\ntd.tableblock > .content {\n margin-bottom: 1.25em\n}\n\ntd.tableblock > .content > :last-child {\n margin-bottom: -1.25em\n}\n\ntable.tableblock, th.tableblock, td.tableblock {\n border: 0 solid #dedede\n}\n\ntable.grid-all > thead > tr > .tableblock, table.grid-all > tbody > tr > .tableblock {\n border-width: 0 1px 1px 0\n}\n\ntable.grid-all > tfoot > tr > .tableblock {\n border-width: 1px 1px 0 0\n}\n\ntable.grid-cols > * > tr > .tableblock {\n border-width: 0 1px 0 0\n}\n\ntable.grid-rows > thead > tr > .tableblock, table.grid-rows > tbody > tr > .tableblock {\n border-width: 0 0 1px\n}\n\ntable.grid-rows > tfoot > tr > .tableblock {\n border-width: 1px 0 0\n}\n\ntable.grid-all > * > tr > .tableblock:last-child, table.grid-cols > * > tr > .tableblock:last-child {\n border-right-width: 0\n}\n\ntable.grid-all > tbody > tr:last-child > .tableblock, table.grid-all > thead:last-child > tr > .tableblock, table.grid-rows > tbody > tr:last-child > .tableblock, table.grid-rows > thead:last-child > tr > .tableblock {\n border-bottom-width: 0\n}\n\ntable.frame-all {\n border-width: 1px\n}\n\ntable.frame-sides {\n border-width: 0 1px\n}\n\ntable.frame-topbot, table.frame-ends {\n border-width: 1px 0\n}\n\n.reveal table th.halign-left, .reveal table td.halign-left {\n text-align: left\n}\n\n.reveal table th.halign-right, .reveal table td.halign-right {\n text-align: right\n}\n\n.reveal table th.halign-center, .reveal table td.halign-center {\n text-align: center\n}\n\n.reveal table th.valign-top, .reveal table td.valign-top {\n vertical-align: top\n}\n\n.reveal table th.valign-bottom, .reveal table td.valign-bottom {\n vertical-align: bottom\n}\n\n.reveal table th.valign-middle, .reveal table td.valign-middle {\n vertical-align: middle\n}\n\ntable thead th, table tfoot th {\n font-weight: bold\n}\n\ntbody tr th {\n display: table-cell;\n line-height: 1.6\n}\n\ntbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p {\n font-weight: bold\n}\n\nthead {\n display: table-header-group\n}\n\n.reveal table.grid-none th, .reveal table.grid-none td {\n border-bottom: 0 !important\n}\n\n/* kbd macro */\nkbd {\n font-family: \"Droid Sans Mono\", \"DejaVu Sans Mono\", monospace;\n display: inline-block;\n color: rgba(0, 0, 0, .8);\n font-size: .65em;\n line-height: 1.45;\n background: #f7f7f7;\n border: 1px solid #ccc;\n -webkit-border-radius: 3px;\n border-radius: 3px;\n -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, .2), 0 0 0 .1em white inset;\n box-shadow: 0 1px 0 rgba(0, 0, 0, .2), 0 0 0 .1em #fff inset;\n margin: 0 .15em;\n padding: .2em .5em;\n vertical-align: middle;\n position: relative;\n top: -.1em;\n white-space: nowrap\n}\n\n.keyseq kbd:first-child {\n margin-left: 0\n}\n\n.keyseq kbd:last-child {\n margin-right: 0\n}\n\n/* callouts */\n.conum[data-value] {\n display: inline-block;\n color: #fff !important;\n background: rgba(0, 0, 0, .8);\n -webkit-border-radius: 50%;\n border-radius: 50%;\n text-align: center;\n font-size: .75em;\n width: 1.67em;\n height: 1.67em;\n line-height: 1.67em;\n font-family: \"Open Sans\", \"DejaVu Sans\", sans-serif;\n font-style: normal;\n font-weight: bold\n}\n\n.conum[data-value] * {\n color: #fff !important\n}\n\n.conum[data-value] + b {\n display: none\n}\n\n.conum[data-value]:after {\n content: attr(data-value)\n}\n\npre .conum[data-value] {\n position: relative;\n top: -.125em\n}\n\nb.conum * {\n color: inherit !important\n}\n\n.conum:not([data-value]):empty {\n display: none\n}\n\n/* Callout list */\n.hdlist > table, .colist > table {\n border: 0;\n background: none\n}\n\n.hdlist > table > tbody > tr, .colist > table > tbody > tr {\n background: none\n}\n\ntd.hdlist1, td.hdlist2 {\n vertical-align: top;\n padding: 0 .625em\n}\n\ntd.hdlist1 {\n font-weight: bold;\n padding-bottom: 1.25em\n}\n\n/* Disabled from Asciidoctor CSS because it caused callout list to go under the\n * source listing when .stretch is applied (see #335)\n * .literalblock+.colist,.listingblock+.colist{margin-top:-.5em} */\n.colist td:not([class]):first-child {\n padding: .4em .75em 0;\n line-height: 1;\n vertical-align: top\n}\n\n.colist td:not([class]):first-child img {\n max-width: none\n}\n\n.colist td:not([class]):last-child {\n padding: .25em 0\n}\n\n/* Override Asciidoctor CSS that causes issues with reveal.js features */\n.reveal .hljs table {\n border: 0\n}\n\n/* Callout list rows would have a bottom border with some reveal.js themes (see #335) */\n.reveal .colist > table th, .reveal .colist > table td {\n border-bottom: 0\n}\n\n/* Fixes line height with Highlight.js source listing when linenums enabled (see #331) */\n.reveal .hljs table thead tr th, .reveal .hljs table tfoot tr th, .reveal .hljs table tbody tr td, .reveal .hljs table tr td, .reveal .hljs table tfoot tr td {\n line-height: inherit\n}\n\n/* Columns layout */\n.columns .slide-content {\n display: flex;\n}\n\n.columns.wrap .slide-content {\n flex-wrap: wrap;\n}\n\n.columns.is-vcentered .slide-content {\n align-items: center;\n}\n\n.columns .slide-content > .column {\n display: block;\n flex-basis: 0;\n flex-grow: 1;\n flex-shrink: 1;\n}\n\n.columns .slide-content > .column > * {\n padding: .75rem;\n}\n\n/* See #353 */\n.columns.wrap .slide-content > .column {\n flex-basis: auto;\n}\n\n.columns .slide-content > .column.is-full {\n flex: none;\n width: 100%;\n}\n\n.columns .slide-content > .column.is-four-fifths {\n flex: none;\n width: 80%;\n}\n\n.columns .slide-content > .column.is-three-quarters {\n flex: none;\n width: 75%;\n}\n\n.columns .slide-content > .column.is-two-thirds {\n flex: none;\n width: 66.6666%;\n}\n\n.columns .slide-content > .column.is-three-fifths {\n flex: none;\n width: 60%;\n}\n\n.columns .slide-content > .column.is-half {\n flex: none;\n width: 50%;\n}\n\n.columns .slide-content > .column.is-two-fifths {\n flex: none;\n width: 40%;\n}\n\n.columns .slide-content > .column.is-one-third {\n flex: none;\n width: 33.3333%;\n}\n\n.columns .slide-content > .column.is-one-quarter {\n flex: none;\n width: 25%;\n}\n\n.columns .slide-content > .column.is-one-fifth {\n flex: none;\n width: 20%;\n}\n\n.columns .slide-content > .column.has-text-left {\n text-align: left;\n}\n\n.columns .slide-content > .column.has-text-justified {\n text-align: justify;\n}\n\n.columns .slide-content > .column.has-text-right {\n text-align: right;\n}\n\n.columns .slide-content > .column.has-text-left {\n text-align: left;\n}\n\n.columns .slide-content > .column.has-text-justified {\n text-align: justify;\n}\n\n.columns .slide-content > .column.has-text-right {\n text-align: right;\n}\n\n.text-left {\n text-align: left !important\n}\n\n.text-right {\n text-align: right !important\n}\n\n.text-center {\n text-align: center !important\n}\n\n.text-justify {\n text-align: justify !important\n}\n\n.footnotes {\n border-top: 1px solid rgba(0, 0, 0, 0.2);\n padding: 0.5em 0 0 0;\n font-size: 0.65em;\n margin-top: 4em;\n}\n</style>".freeze);
358
558
  ;
359
559
  ;
360
560
  ;
561
+ ; if attr? :icons, 'font';
361
562
  ;
563
+ ; if attr? 'iconfont-remote';
564
+ ; if (iconfont_cdn = (attr 'iconfont-cdn'));
565
+ ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes5 = iconfont_cdn; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
566
+ ; else;
362
567
  ;
568
+ ; font_awesome_version = (attr 'font-awesome-version', '5.15.1');
569
+ ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes6 = %(#{cdn_base}/font-awesome/#{font_awesome_version}/css/all.min.css); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << ("><link rel=\"stylesheet\"".freeze);
570
+ ; _slim_codeattributes7 = %(#{cdn_base}/font-awesome/#{font_awesome_version}/css/v4-shims.min.css); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
571
+ ; end; else;
572
+ ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes8 = (normalize_web_path %(#{attr 'iconfont-name', 'font-awesome'}.css), (attr 'stylesdir', ''), false); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
573
+ ; end; end; if attr? :stem;
574
+ ; eqnums_val = (attr 'eqnums', 'none');
575
+ ; eqnums_val = 'AMS' if eqnums_val == '';
576
+ ; eqnums_opt = %( equationNumbers: { autoNumber: "#{eqnums_val}" } );
577
+ ; mathjaxdir = (attr 'mathjaxdir', "#{cdn_base}/mathjax/2.7.6");
578
+ ; _buf << ("<script type=\"text/x-mathjax-config\">MathJax.Hub.Config({\ntex2jax: {\n inlineMath: [".freeze);
363
579
  ;
364
580
  ;
581
+ ; _buf << ((Asciidoctor::INLINE_MATH_DELIMITERS[:latexmath].to_s).to_s); _buf << ("],\n displayMath: [".freeze);
582
+ ; _buf << ((Asciidoctor::BLOCK_MATH_DELIMITERS[:latexmath].to_s).to_s); _buf << ("],\n ignoreClass: \"nostem|nolatexmath\"\n},\nasciimath2jax: {\n delimiters: [".freeze);
365
583
  ;
366
584
  ;
367
585
  ;
586
+ ; _buf << ((Asciidoctor::BLOCK_MATH_DELIMITERS[:asciimath].to_s).to_s); _buf << ("],\n ignoreClass: \"nostem|noasciimath\"\n},\nTeX: {".freeze);
368
587
  ;
369
588
  ;
589
+ ; _buf << ((eqnums_opt).to_s); _buf << ("}\n});</script><script src=\"".freeze);
370
590
  ;
591
+ ; _buf << ((mathjaxdir).to_s); _buf << ("/MathJax.js?config=TeX-MML-AM_HTMLorMML\"></script>".freeze);
371
592
  ;
593
+ ; end; syntax_hl = self.syntax_highlighter;
594
+ ; if syntax_hl && (syntax_hl.docinfo? :head);
595
+ ; _buf << ((syntax_hl.docinfo :head, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/').to_s);
372
596
  ;
597
+ ; end; _buf << ("<!--Printing and PDF exports--><script>var link = document.createElement( 'link' );\nlink.rel = 'stylesheet';\nlink.type = 'text/css';\nlink.href = window.location.search.match( /print-pdf/gi ) ? \"".freeze);
373
598
  ;
374
599
  ;
375
600
  ;
376
601
  ;
602
+ ; _buf << ((revealjsdir).to_s); _buf << ("/css/print/pdf.css\" : \"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/css/print/paper.css\";\ndocument.getElementsByTagName( 'head' )[0].appendChild( link );</script>".freeze);
377
603
  ;
378
604
  ;
605
+ ; if attr? :customcss;
606
+ ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes9 = ((customcss = attr :customcss).empty? ? 'asciidoctor-revealjs.css' : customcss); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
607
+ ; end; unless (_docinfo = docinfo :head, '-revealjs.html').empty?;
608
+ ; _buf << ((_docinfo).to_s);
609
+ ; end; _buf << ("</head><body><div class=\"reveal\"><div class=\"slides\">".freeze);
379
610
  ;
380
611
  ;
381
612
  ;
613
+ ; unless noheader;
614
+ ; unless (_docinfo = docinfo :header, '-revealjs.html').empty?;
615
+ ; _buf << ((_docinfo).to_s);
616
+ ; end; if header?;
617
+ ; bg_image = (attr? 'title-slide-background-image') ? (image_uri(attr 'title-slide-background-image')) : nil;
618
+ ; bg_video = (attr? 'title-slide-background-video') ? (media_uri(attr 'title-slide-background-video')) : nil;
382
619
  ;
383
620
  ;
384
621
  ;
@@ -394,206 +631,22 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
394
631
  ;
395
632
  ;
396
633
  ;
397
- ;
398
- ;
399
- ;
400
- ;
401
- ;
402
- ;
403
- ;
404
- ;
405
- ;
406
- ;
407
- ;
408
- ;
409
- ; _buf
410
- end
411
- end
412
-
413
- def image(node, opts = {})
414
- node.extend(Helpers)
415
- node.instance_eval do
416
- converter.set_local_variables(binding, opts) unless opts.empty?
417
- _buf = ''; width = (attr? :width) ? (attr :width) : nil;
418
- ; height = (attr? :height) ? (attr :height) : nil;
419
- ;
420
- ;
421
- ;
422
- ;
423
- ;
424
- ;
425
- ; if (has_role? 'stretch') && !((attr? :width) || (attr? :height));
426
- ; height = "100%";
427
- ;
428
- ; end; unless attributes[1] == 'background' || attributes[1] == 'canvas';
429
- ;
430
- ; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "imageblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = roles; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = [("text-align: #{attr :align}" if attr? :align),("float: #{attr :float}" if attr? :float)].compact.join('; '); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" style".freeze); else; _buf << (" style=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
431
- ; if attr? :link;
432
- ; _buf << ("<a class=\"image\"".freeze); _slim_codeattributes4 = (attr :link); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << ("><img".freeze);
433
- ; _slim_codeattributes5 = image_uri(attr :target); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = (attr :alt); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes7 = (width); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" width".freeze); else; _buf << (" width=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes8 = (height); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" height".freeze); else; _buf << (" height=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes9 = ((attr? :background) ? "background: #{attr :background}" : nil); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" style".freeze); else; _buf << (" style=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _buf << ("></a>".freeze);
434
- ; else;
435
- ; _buf << ("<img".freeze); _slim_codeattributes10 = image_uri(attr :target); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = (attr :alt); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (width); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" width".freeze); else; _buf << (" width=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = (height); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" height".freeze); else; _buf << (" height=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = ((attr? :background) ? "background: #{attr :background}" : nil); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" style".freeze); else; _buf << (" style=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
436
- ; end; _buf << ("</div>".freeze); if title?;
437
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((captioned_title).to_s);
438
- ; _buf << ("</div>".freeze); end; end; _buf
439
- end
440
- end
441
-
442
- def inline_break(node, opts = {})
443
- node.extend(Helpers)
444
- node.instance_eval do
445
- converter.set_local_variables(binding, opts) unless opts.empty?
446
- _buf = ''; _buf << ((@text).to_s);
447
- ; _buf << ("<br>".freeze);
448
- ; _buf
449
- end
450
- end
451
-
452
- def preamble(node, opts = {})
453
- node.extend(Helpers)
454
- node.instance_eval do
455
- converter.set_local_variables(binding, opts) unless opts.empty?
456
- _buf = '';
457
- ;
458
- ; _buf
459
- end
460
- end
461
-
462
- def thematic_break(node, opts = {})
463
- node.extend(Helpers)
464
- node.instance_eval do
465
- converter.set_local_variables(binding, opts) unless opts.empty?
466
- _buf = ''; _buf << ("<hr>".freeze);
467
- ; _buf
468
- end
469
- end
470
-
471
- def quote(node, opts = {})
472
- node.extend(Helpers)
473
- node.instance_eval do
474
- converter.set_local_variables(binding, opts) unless opts.empty?
475
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "quoteblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
476
- ; if title?;
477
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
478
- ; _buf << ("</div>".freeze); end; _buf << ("<blockquote>".freeze); _buf << ((content).to_s);
479
- ; _buf << ("</blockquote>".freeze); attribution = (attr? :attribution) ? (attr :attribution) : nil;
480
- ; citetitle = (attr? :citetitle) ? (attr :citetitle) : nil;
481
- ; if attribution || citetitle;
482
- ; _buf << ("<div class=\"attribution\">".freeze);
483
- ; if citetitle;
484
- ; _buf << ("<cite>".freeze); _buf << ((citetitle).to_s);
485
- ; _buf << ("</cite>".freeze); end; if attribution;
486
- ; if citetitle;
487
- ; _buf << ("<br>".freeze);
488
- ; end; _buf << ("&#8212; ".freeze); _buf << ((attribution).to_s);
489
- ; end; _buf << ("</div>".freeze); end; _buf << ("</div>".freeze); _buf
490
- end
491
- end
492
-
493
- def inline_indexterm(node, opts = {})
494
- node.extend(Helpers)
495
- node.instance_eval do
496
- converter.set_local_variables(binding, opts) unless opts.empty?
497
- _buf = ''; if @type == :visible;
498
- ; _buf << ((@text).to_s);
499
- ; end; _buf
500
- end
501
- end
502
-
503
- def pass(node, opts = {})
504
- node.extend(Helpers)
505
- node.instance_eval do
506
- converter.set_local_variables(binding, opts) unless opts.empty?
507
- _buf = ''; _buf << ((content).to_s);
508
- ; _buf
509
- end
510
- end
511
-
512
- def table(node, opts = {})
513
- node.extend(Helpers)
514
- node.instance_eval do
515
- converter.set_local_variables(binding, opts) unless opts.empty?
516
- _buf = '';
517
- ; _buf << ("<table".freeze); _slim_codeattributes1 = @id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover1 = ''; _slim_codeattributes2 = ['tableblock',"frame-#{attr :frame, 'all'}","grid-#{attr :grid, 'all'}",role]; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes2.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes2).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes3 = [("width:#{attr :tablepcwidth}%" unless option? 'autowidth'),("float:#{attr :float}" if attr? :float)].compact.join('; '); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" style".freeze); else; _buf << (" style=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
518
- ; if title?;
519
- ; _buf << ("<caption class=\"title\">".freeze); _buf << ((captioned_title).to_s);
520
- ; _buf << ("</caption>".freeze); end; unless (attr :rowcount).zero?;
521
- ; _buf << ("<colgroup>".freeze);
522
- ; if option? 'autowidth';
523
- ; @columns.each do;
524
- ; _buf << ("<col>".freeze);
525
- ; end; else;
526
- ; @columns.each do |col|;
527
- ; _buf << ("<col style=\"width:".freeze); _buf << ((col.attr :colpcwidth).to_s); _buf << ("%\">".freeze);
528
- ; end; end; _buf << ("</colgroup>".freeze); [:head, :foot, :body].select {|tblsec| !@rows[tblsec].empty? }.each do |tblsec|;
529
- ;
530
- ; _buf << ("<t".freeze); _buf << ((tblsec).to_s); _buf << (">".freeze);
531
- ; @rows[tblsec].each do |row|;
532
- ; _buf << ("<tr>".freeze);
533
- ; row.each do |cell|;
534
- ;
535
- ; if tblsec == :head;
536
- ; cell_content = cell.text;
537
- ; else;
538
- ; case cell.style;
539
- ; when :literal;
540
- ; cell_content = cell.text;
541
- ; else;
542
- ; cell_content = cell.content;
543
- ; end; end; _slim_controls1 = html_tag(tblsec == :head || cell.style == :header ? 'th' : 'td',
544
- :class=>['tableblock', "halign-#{cell.attr :halign}", "valign-#{cell.attr :valign}"],
545
- :colspan=>cell.colspan, :rowspan=>cell.rowspan,
546
- :style=>((@document.attr? :cellbgcolor) ? %(background-color:#{@document.attr :cellbgcolor};) : nil)) do; _slim_controls2 = '';
547
- ; if tblsec == :head;
548
- ; _slim_controls2 << ((cell_content).to_s);
549
- ; else;
550
- ; case cell.style;
551
- ; when :asciidoc;
552
- ; _slim_controls2 << ("<div>".freeze); _slim_controls2 << ((cell_content).to_s);
553
- ; _slim_controls2 << ("</div>".freeze); when :literal;
554
- ; _slim_controls2 << ("<div class=\"literal\"><pre>".freeze); _slim_controls2 << ((cell_content).to_s);
555
- ; _slim_controls2 << ("</pre></div>".freeze); when :header;
556
- ; cell_content.each do |text|;
557
- ; _slim_controls2 << ("<p class=\"tableblock header\">".freeze); _slim_controls2 << ((text).to_s);
558
- ; _slim_controls2 << ("</p>".freeze); end; else;
559
- ; cell_content.each do |text|;
560
- ; _slim_controls2 << ("<p class=\"tableblock\">".freeze); _slim_controls2 << ((text).to_s);
561
- ; _slim_controls2 << ("</p>".freeze); end; end; end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); end; _buf << ("</tr>".freeze); end; end; end; _buf << ("</table>".freeze); _buf
562
- end
563
- end
564
-
565
- def document(node, opts = {})
566
- node.extend(Helpers)
567
- node.instance_eval do
568
- converter.set_local_variables(binding, opts) unless opts.empty?
569
- _buf = ''; _buf << ("<!DOCTYPE html><html".freeze);
570
- ; _slim_codeattributes1 = (attr :lang, 'en' unless attr? :nolang); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" lang".freeze); else; _buf << (" lang=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << ("><head><meta charset=\"utf-8\">".freeze);
571
- ;
572
- ;
573
- ; if RUBY_ENGINE == 'opal' && JAVASCRIPT_PLATFORM == 'node';
574
- ; revealjsdir = (attr :revealjsdir, 'node_modules/reveal.js');
575
- ; else;
576
- ; revealjsdir = (attr :revealjsdir, 'reveal.js');
577
- ; end; unless (asset_uri_scheme = (attr 'asset-uri-scheme', 'https')).empty?;
578
- ; asset_uri_scheme = %(#{asset_uri_scheme}:);
579
- ; end; cdn_base = %(#{asset_uri_scheme}//cdnjs.cloudflare.com/ajax/libs);
580
- ; [:description, :keywords, :author, :copyright].each do |key|;
581
- ; if attr? key;
582
- ; _buf << ("<meta".freeze); _slim_codeattributes2 = key; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" name".freeze); else; _buf << (" name=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = (attr key); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" content".freeze); else; _buf << (" content=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
583
- ; end; end; linkcss = (attr? 'linkcss');
584
- ; _buf << ("<title>".freeze); _buf << (((doctitle sanitize: true, use_fallback: true)).to_s);
585
- ; _buf << ("</title><meta content=\"yes\" name=\"apple-mobile-web-app-capable\"><meta content=\"black-translucent\" name=\"apple-mobile-web-app-status-bar-style\"><meta content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui\" name=\"viewport\"><link href=\"".freeze);
586
- ;
587
- ;
588
- ; _buf << ((revealjsdir).to_s); _buf << ("/css/reveal.css\" rel=\"stylesheet\">".freeze);
589
- ;
590
- ; if attr? :revealjs_customtheme;
591
- ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes4 = (attr :revealjs_customtheme); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << (" id=\"theme\">".freeze);
592
- ; else;
593
- ; _buf << ("<link rel=\"stylesheet\" href=\"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/css/theme/".freeze); _buf << ((attr 'revealjs_theme', 'black').to_s); _buf << (".css\" id=\"theme\">".freeze);
594
- ; end; _buf << ("<!--This CSS is generated by the Asciidoctor-Reveal.js converter to further integrate AsciiDoc's existing semantic with Reveal.js--><style type=\"text/css\">.reveal div.right {\n float: right;\n}\n\n.reveal .listingblock.stretch > .content {\n height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre {\n height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre > code {\n height: 100%;\n max-height: 100%;\n}\n\n/* tables */\ntable{border-collapse:collapse;border-spacing:0}\ntable{margin-bottom:1.25em;border:solid 1px #dedede}\ntable thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;text-align:left}\ntable tr th,table tr td{padding:.5625em .625em;font-size:inherit}\ntable thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}\ntd.tableblock>.content{margin-bottom:1.25em}\ntd.tableblock>.content>:last-child{margin-bottom:-1.25em}\ntable.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}\ntable.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}\ntable.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}\ntable.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}\ntable.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}\ntable.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}\ntable.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}\ntable.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}\ntable.frame-all{border-width:1px}\ntable.frame-sides{border-width:0 1px}\ntable.frame-topbot,table.frame-ends{border-width:1px 0}\n.reveal table th.halign-left,.reveal table td.halign-left{text-align:left}\n.reveal table th.halign-right,.reveal table td.halign-right{text-align:right}\n.reveal table th.halign-center,.reveal table td.halign-center{text-align:center}\n.reveal table th.valign-top,.reveal table td.valign-top{vertical-align:top}\n.reveal table th.valign-bottom,.reveal table td.valign-bottom{vertical-align:bottom}\n.reveal table th.valign-middle,.reveal table td.valign-middle{vertical-align:middle}\ntable thead th,table tfoot th{font-weight:bold}\ntbody tr th{display:table-cell;line-height:1.6}\ntbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{font-weight:bold}\nthead{display:table-header-group}\n\n.reveal table.grid-none th,.reveal table.grid-none td{border-bottom:0!important}\n\n/* callouts */\n.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:50%;border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:\"Open Sans\",\"DejaVu Sans\",sans-serif;font-style:normal;font-weight:bold}\n.conum[data-value] *{color:#fff!important}\n.conum[data-value]+b{display:none}\n.conum[data-value]::after{content:attr(data-value)}\npre .conum[data-value]{position:relative;top:-.125em}\nb.conum *{color:inherit!important}\n.conum:not([data-value]):empty{display:none}</style>".freeze);
595
- ;
596
- ;
634
+ ; _buf << ("<section".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "title"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes10 = role; if Array === _slim_codeattributes10; _slim_codeattributes10 = _slim_codeattributes10.flatten; _slim_codeattributes10.map!(&:to_s); _slim_codeattributes10.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes10.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes10).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _buf << (" data-state=\"title\"".freeze); _slim_codeattributes11 = (attr 'title-slide-transition'); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (attr 'title-slide-transition-speed'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = (attr 'title-slide-background'); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-background".freeze); else; _buf << (" data-background=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = (attr 'title-slide-background-size'); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = bg_image; if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = bg_video; if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes17 = (attr 'title-slide-background-video-loop'); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes18 = (attr 'title-slide-background-video-muted'); if _slim_codeattributes18; if _slim_codeattributes18 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes18).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes19 = (attr 'title-slide-background-opacity'); if _slim_codeattributes19; if _slim_codeattributes19 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes19).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes20 = (attr 'title-slide-background-iframe'); if _slim_codeattributes20; if _slim_codeattributes20 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes20).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes21 = (attr 'title-slide-background-color'); if _slim_codeattributes21; if _slim_codeattributes21 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes21).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes22 = (attr 'title-slide-background-repeat'); if _slim_codeattributes22; if _slim_codeattributes22 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes22).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes23 = (attr 'title-slide-background-position'); if _slim_codeattributes23; if _slim_codeattributes23 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes23).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes24 = (attr 'title-slide-background-transition'); if _slim_codeattributes24; if _slim_codeattributes24 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes24).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
635
+ ; if (_title_obj = doctitle partition: true, use_fallback: true).subtitle?;
636
+ ; _buf << ("<h1>".freeze); _buf << ((slice_text _title_obj.title, (_slice = header.option? :slice)).to_s);
637
+ ; _buf << ("</h1><h2>".freeze); _buf << ((slice_text _title_obj.subtitle, _slice).to_s);
638
+ ; _buf << ("</h2>".freeze); else;
639
+ ; _buf << ("<h1>".freeze); _buf << ((@header.title).to_s);
640
+ ; _buf << ("</h1>".freeze); end; preamble = @document.find_by context: :preamble;
641
+ ; unless preamble.nil? or preamble.length == 0;
642
+ ; _buf << ("<div class=\"preamble\">".freeze); _buf << ((preamble.pop.content).to_s);
643
+ ; _buf << ("</div>".freeze); end; unless author.nil?;
644
+ ; _buf << ("<p class=\"author\"><small>".freeze); _buf << ((author).to_s);
645
+ ; _buf << ("</small></p>".freeze); end; _buf << ("</section>".freeze);
646
+ ; end; end; _buf << ((content).to_s);
647
+ ; unless (_docinfo = docinfo :footer, '-revealjs.html').empty?;
648
+ ; _buf << ((_docinfo).to_s);
649
+ ; end; _buf << ("</div></div><script src=\"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/js/reveal.js\"></script><script>Array.prototype.slice.call(document.querySelectorAll('.slides section')).forEach(function(slide) {\n if (slide.getAttribute('data-background-color')) return;\n // user needs to explicitly say he wants CSS color to override otherwise we might break custom css or theme (#226)\n if (!(slide.classList.contains('canvas') || slide.classList.contains('background'))) return;\n var bgColor = getComputedStyle(slide).backgroundColor;\n if (bgColor !== 'rgba(0, 0, 0, 0)' && bgColor !== 'transparent') {\n slide.setAttribute('data-background-color', bgColor);\n slide.style.backgroundColor = 'transparent';\n }\n});\n\n// More info about config & dependencies:\n// - https://github.com/hakimel/reveal.js#configuration\n// - https://github.com/hakimel/reveal.js#dependencies\nReveal.initialize({\n // Display presentation control arrows\n controls: ".freeze);
597
650
  ;
598
651
  ;
599
652
  ;
@@ -612,260 +665,221 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
612
665
  ;
613
666
  ;
614
667
  ;
668
+ ; _buf << ((to_boolean(attr 'revealjs_controls', true)).to_s); _buf << (",\n // Help the user learn the controls by providing hints, for example by\n // bouncing the down arrow when they first encounter a vertical slide\n controlsTutorial: ".freeze);
615
669
  ;
616
670
  ;
671
+ ; _buf << ((to_boolean(attr 'revealjs_controlstutorial', true)).to_s); _buf << (",\n // Determines where controls appear, \"edges\" or \"bottom-right\"\n controlsLayout: '".freeze);
617
672
  ;
673
+ ; _buf << ((attr 'revealjs_controlslayout', 'bottom-right').to_s); _buf << ("',\n // Visibility rule for backwards navigation arrows; \"faded\", \"hidden\"\n // or \"visible\"\n controlsBackArrows: '".freeze);
618
674
  ;
619
675
  ;
676
+ ; _buf << ((attr 'revealjs_controlsbackarrows', 'faded').to_s); _buf << ("',\n // Display a presentation progress bar\n progress: ".freeze);
620
677
  ;
678
+ ; _buf << ((to_boolean(attr 'revealjs_progress', true)).to_s); _buf << (",\n // Display the page number of the current slide\n slideNumber: ".freeze);
621
679
  ;
680
+ ; _buf << ((to_valid_slidenumber(attr 'revealjs_slidenumber', false)).to_s); _buf << (",\n // Control which views the slide number displays on\n showSlideNumber: '".freeze);
622
681
  ;
682
+ ; _buf << ((attr 'revealjs_showslidenumber', 'all').to_s); _buf << ("',\n // Add the current slide number to the URL hash so that reloading the\n // page/copying the URL will return you to the same slide\n hash: ".freeze);
623
683
  ;
624
684
  ;
685
+ ; _buf << ((to_boolean(attr 'revealjs_hash', false)).to_s); _buf << (",\n // Push each slide change to the browser history. Implies `hash: true`\n history: ".freeze);
625
686
  ;
687
+ ; _buf << ((to_boolean(attr 'revealjs_history', false)).to_s); _buf << (",\n // Enable keyboard shortcuts for navigation\n keyboard: ".freeze);
626
688
  ;
689
+ ; _buf << ((to_boolean(attr 'revealjs_keyboard', true)).to_s); _buf << (",\n // Enable the slide overview mode\n overview: ".freeze);
627
690
  ;
691
+ ; _buf << ((to_boolean(attr 'revealjs_overview', true)).to_s); _buf << (",\n // Disables the default reveal.js slide layout so that you can use custom CSS layout\n disableLayout: ".freeze);
628
692
  ;
693
+ ; _buf << ((to_boolean(attr 'revealjs_disablelayout', false)).to_s); _buf << (",\n // Vertical centering of slides\n center: ".freeze);
629
694
  ;
695
+ ; _buf << ((to_boolean(attr 'revealjs_center', true)).to_s); _buf << (",\n // Enables touch navigation on devices with touch input\n touch: ".freeze);
630
696
  ;
697
+ ; _buf << ((to_boolean(attr 'revealjs_touch', true)).to_s); _buf << (",\n // Loop the presentation\n loop: ".freeze);
631
698
  ;
699
+ ; _buf << ((to_boolean(attr 'revealjs_loop', false)).to_s); _buf << (",\n // Change the presentation direction to be RTL\n rtl: ".freeze);
632
700
  ;
701
+ ; _buf << ((to_boolean(attr 'revealjs_rtl', false)).to_s); _buf << (",\n // See https://github.com/hakimel/reveal.js/#navigation-mode\n navigationMode: '".freeze);
633
702
  ;
703
+ ; _buf << ((attr 'revealjs_navigationmode', 'default').to_s); _buf << ("',\n // Randomizes the order of slides each time the presentation loads\n shuffle: ".freeze);
634
704
  ;
705
+ ; _buf << ((to_boolean(attr 'revealjs_shuffle', false)).to_s); _buf << (",\n // Turns fragments on and off globally\n fragments: ".freeze);
635
706
  ;
707
+ ; _buf << ((to_boolean(attr 'revealjs_fragments', true)).to_s); _buf << (",\n // Flags whether to include the current fragment in the URL,\n // so that reloading brings you to the same fragment position\n fragmentInURL: ".freeze);
636
708
  ;
637
709
  ;
710
+ ; _buf << ((to_boolean(attr 'revealjs_fragmentinurl', false)).to_s); _buf << (",\n // Flags if the presentation is running in an embedded mode,\n // i.e. contained within a limited portion of the screen\n embedded: ".freeze);
638
711
  ;
639
712
  ;
713
+ ; _buf << ((to_boolean(attr 'revealjs_embedded', false)).to_s); _buf << (",\n // Flags if we should show a help overlay when the questionmark\n // key is pressed\n help: ".freeze);
640
714
  ;
641
715
  ;
716
+ ; _buf << ((to_boolean(attr 'revealjs_help', true)).to_s); _buf << (",\n // Flags if speaker notes should be visible to all viewers\n showNotes: ".freeze);
642
717
  ;
718
+ ; _buf << ((to_boolean(attr 'revealjs_shownotes', false)).to_s); _buf << (",\n // Global override for autolaying embedded media (video/audio/iframe)\n // - null: Media will only autoplay if data-autoplay is present\n // - true: All media will autoplay, regardless of individual setting\n // - false: No media will autoplay, regardless of individual setting\n autoPlayMedia: ".freeze);
643
719
  ;
644
720
  ;
645
721
  ;
646
722
  ;
723
+ ; _buf << ((attr 'revealjs_autoplaymedia', 'null').to_s); _buf << (",\n // Global override for preloading lazy-loaded iframes\n // - null: Iframes with data-src AND data-preload will be loaded when within\n // the viewDistance, iframes with only data-src will be loaded when visible\n // - true: All iframes with data-src will be loaded when within the viewDistance\n // - false: All iframes with data-src will be loaded only when visible\n preloadIframes: ".freeze);
647
724
  ;
648
725
  ;
649
726
  ;
650
727
  ;
651
728
  ;
729
+ ; _buf << ((attr 'revealjs_preloadiframes', 'null').to_s); _buf << (",\n // Number of milliseconds between automatically proceeding to the\n // next slide, disabled when set to 0, this value can be overwritten\n // by using a data-autoslide attribute on your slides\n autoSlide: ".freeze);
652
730
  ;
653
731
  ;
654
- ; if attr? :icons, 'font';
655
732
  ;
656
- ; if attr? 'iconfont-remote';
657
- ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes5 = (attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/5.12.0-1/css/all.min.css)); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _buf << ("><link rel=\"stylesheet\"".freeze);
658
- ; _slim_codeattributes6 = (attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/5.12.0-1/css/v4-shims.min.css)); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
659
- ; else;
660
- ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes7 = (normalize_web_path %(#{attr 'iconfont-name', 'font-awesome'}.css), (attr 'stylesdir', ''), false); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
661
- ; end; end; if attr? :stem;
662
- ; eqnums_val = (attr 'eqnums', 'none');
663
- ; eqnums_val = 'AMS' if eqnums_val == '';
664
- ; eqnums_opt = %( equationNumbers: { autoNumber: "#{eqnums_val}" } );
665
- ; _buf << ("<script type=\"text/x-mathjax-config\">MathJax.Hub.Config({\ntex2jax: {\n inlineMath: [".freeze);
733
+ ; _buf << ((attr 'revealjs_autoslide', 0).to_s); _buf << (",\n // Stop auto-sliding after user input\n autoSlideStoppable: ".freeze);
666
734
  ;
735
+ ; _buf << ((to_boolean(attr 'revealjs_autoslidestoppable', true)).to_s); _buf << (",\n // Use this method for navigation when auto-sliding\n autoSlideMethod: ".freeze);
667
736
  ;
668
- ; _buf << ((Asciidoctor::INLINE_MATH_DELIMITERS[:latexmath].to_s).to_s); _buf << ("],\n displayMath: [".freeze);
669
- ; _buf << ((Asciidoctor::BLOCK_MATH_DELIMITERS[:latexmath].to_s).to_s); _buf << ("],\n ignoreClass: \"nostem|nolatexmath\"\n},\nasciimath2jax: {\n delimiters: [".freeze);
737
+ ; _buf << ((attr 'revealjs_autoslidemethod', 'Reveal.navigateNext').to_s); _buf << (",\n // Specify the average time in seconds that you think you will spend\n // presenting each slide. This is used to show a pacing timer in the\n // speaker view\n defaultTiming: ".freeze);
670
738
  ;
671
739
  ;
672
740
  ;
673
- ; _buf << ((Asciidoctor::BLOCK_MATH_DELIMITERS[:asciimath].to_s).to_s); _buf << ("],\n ignoreClass: \"nostem|noasciimath\"\n},\nTeX: {".freeze);
741
+ ; _buf << ((attr 'revealjs_defaulttiming', 120).to_s); _buf << (",\n // Specify the total time in seconds that is available to\n // present. If this is set to a nonzero value, the pacing\n // timer will work out the time available for each slide,\n // instead of using the defaultTiming value\n totalTime: ".freeze);
674
742
  ;
675
743
  ;
676
- ; _buf << ((eqnums_opt).to_s); _buf << ("}\n});</script><script src=\"".freeze);
677
744
  ;
678
- ; _buf << ((cdn_base).to_s); _buf << ("/mathjax/2.4.0/MathJax.js?config=TeX-MML-AM_HTMLorMML\"></script>".freeze);
679
745
  ;
680
- ; end; syntax_hl = self.syntax_highlighter;
681
- ; if syntax_hl && (syntax_hl.docinfo? :head);
682
- ; _buf << ((syntax_hl.docinfo :head, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/').to_s);
746
+ ; _buf << ((attr 'revealjs_totaltime', 0).to_s); _buf << (",\n // Specify the minimum amount of time you want to allot to\n // each slide, if using the totalTime calculation method. If\n // the automated time allocation causes slide pacing to fall\n // below this threshold, then you will see an alert in the\n // speaker notes window\n minimumTimePerSlide: ".freeze);
683
747
  ;
684
- ; end; _buf << ("<script>var link = document.createElement( 'link' );\nlink.rel = 'stylesheet';\nlink.type = 'text/css';\nlink.href = window.location.search.match( /print-pdf/gi ) ? \"".freeze);
685
748
  ;
686
749
  ;
687
750
  ;
688
- ; _buf << ((revealjsdir).to_s); _buf << ("/css/print/pdf.css\" : \"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/css/print/paper.css\";\ndocument.getElementsByTagName( 'head' )[0].appendChild( link );</script><!--[if lt IE 9]><script src=\"".freeze);
689
751
  ;
752
+ ; _buf << ((attr 'revealjs_minimumtimeperslide', 0).to_s); _buf << (",\n // Enable slide navigation via mouse wheel\n mouseWheel: ".freeze);
690
753
  ;
691
- ; _buf << ((revealjsdir).to_s); _buf << ("/lib/js/html5shiv.js\"></script><![endif]-->".freeze);
692
- ; unless (docinfo_content = docinfo :header, '.html').empty?;
693
- ; _buf << ((docinfo_content).to_s);
694
- ; end; if attr? :customcss;
695
- ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes8 = ((customcss = attr :customcss).empty? ? 'asciidoctor-revealjs.css' : customcss); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
696
- ; end; _buf << ("</head><body><div class=\"reveal\"><div class=\"slides\">".freeze);
754
+ ; _buf << ((to_boolean(attr 'revealjs_mousewheel', false)).to_s); _buf << (",\n // Hide cursor if inactive\n hideInactiveCursor: ".freeze);
697
755
  ;
756
+ ; _buf << ((to_boolean(attr 'revealjs_hideinactivecursor', true)).to_s); _buf << (",\n // Time before the cursor is hidden (in ms)\n hideCursorTime: ".freeze);
698
757
  ;
758
+ ; _buf << ((attr 'revealjs_hidecursortime', 5000).to_s); _buf << (",\n // Hides the address bar on mobile devices\n hideAddressBar: ".freeze);
699
759
  ;
700
- ; unless notitle || !has_header?;
701
- ; bg_image = (attr? 'title-slide-background-image') ? (image_uri(attr 'title-slide-background-image')) : nil;
702
- ; bg_video = (attr? 'title-slide-background-video') ? (media_uri(attr 'title-slide-background-video')) : nil;
760
+ ; _buf << ((to_boolean(attr 'revealjs_hideaddressbar', true)).to_s); _buf << (",\n // Opens links in an iframe preview overlay\n // Add `data-preview-link` and `data-preview-link=\"false\"` to customise each link\n // individually\n previewLinks: ".freeze);
703
761
  ;
704
762
  ;
705
763
  ;
764
+ ; _buf << ((to_boolean(attr 'revealjs_previewlinks', false)).to_s); _buf << (",\n // Transition style (e.g., none, fade, slide, convex, concave, zoom)\n transition: '".freeze);
706
765
  ;
766
+ ; _buf << ((attr 'revealjs_transition', 'slide').to_s); _buf << ("',\n // Transition speed (e.g., default, fast, slow)\n transitionSpeed: '".freeze);
707
767
  ;
768
+ ; _buf << ((attr 'revealjs_transitionspeed', 'default').to_s); _buf << ("',\n // Transition style for full page slide backgrounds (e.g., none, fade, slide, convex, concave, zoom)\n backgroundTransition: '".freeze);
708
769
  ;
770
+ ; _buf << ((attr 'revealjs_backgroundtransition', 'fade').to_s); _buf << ("',\n // Number of slides away from the current that are visible\n viewDistance: ".freeze);
709
771
  ;
772
+ ; _buf << ((attr 'revealjs_viewdistance', 3).to_s); _buf << (",\n // Number of slides away from the current that are visible on mobile\n // devices. It is advisable to set this to a lower number than\n // viewDistance in order to save resources.\n mobileViewDistance: ".freeze);
710
773
  ;
711
774
  ;
712
775
  ;
776
+ ; _buf << ((attr 'revealjs_mobileviewdistance', 3).to_s); _buf << (",\n // Parallax background image (e.g., \"'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'\")\n parallaxBackgroundImage: '".freeze);
713
777
  ;
778
+ ; _buf << ((attr 'revealjs_parallaxbackgroundimage', '').to_s); _buf << ("',\n // Parallax background size in CSS syntax (e.g., \"2100px 900px\")\n parallaxBackgroundSize: '".freeze);
714
779
  ;
780
+ ; _buf << ((attr 'revealjs_parallaxbackgroundsize', '').to_s); _buf << ("',\n // Number of pixels to move the parallax background per slide\n // - Calculated automatically unless specified\n // - Set to 0 to disable movement along an axis\n parallaxBackgroundHorizontal: ".freeze);
715
781
  ;
716
782
  ;
717
783
  ;
718
- ; _buf << ("<section".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "title"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes9 = role; if Array === _slim_codeattributes9; _slim_codeattributes9 = _slim_codeattributes9.flatten; _slim_codeattributes9.map!(&:to_s); _slim_codeattributes9.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes9.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes9).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _buf << (" data-state=\"title\"".freeze); _slim_codeattributes10 = (attr 'title-slide-transition'); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = (attr 'title-slide-transition-speed'); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (attr 'title-slide-background'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" data-background".freeze); else; _buf << (" data-background=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = (attr 'title-slide-background-size'); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = bg_image; if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = bg_video; if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = (attr 'title-slide-background-video-loop'); if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes17 = (attr 'title-slide-background-video-muted'); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes18 = (attr "background-opacity"); if _slim_codeattributes18; if _slim_codeattributes18 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes18).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes19 = (attr 'title-slide-background-iframe'); if _slim_codeattributes19; if _slim_codeattributes19 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes19).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes20 = (attr 'title-slide-background-color'); if _slim_codeattributes20; if _slim_codeattributes20 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes20).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes21 = (attr 'title-slide-background-repeat'); if _slim_codeattributes21; if _slim_codeattributes21 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes21).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes22 = (attr 'title-slide-background-position'); if _slim_codeattributes22; if _slim_codeattributes22 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes22).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes23 = (attr 'title-slide-background-transition'); if _slim_codeattributes23; if _slim_codeattributes23 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes23).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
719
- ; if (_title_obj = doctitle partition: true, use_fallback: true).subtitle?;
720
- ; _buf << ("<h1>".freeze); _buf << ((slice_text _title_obj.title, (_slice = header.option? :slice)).to_s);
721
- ; _buf << ("</h1><h2>".freeze); _buf << ((slice_text _title_obj.subtitle, _slice).to_s);
722
- ; _buf << ("</h2>".freeze); else;
723
- ; _buf << ("<h1>".freeze); _buf << ((@header.title).to_s);
724
- ; _buf << ("</h1>".freeze); end; preamble = @document.find_by context: :preamble;
725
- ; unless preamble.nil? or preamble.length == 0;
726
- ; _buf << ("<div class=\"preamble\">".freeze); _buf << ((preamble.pop.content).to_s);
727
- ; _buf << ("</div>".freeze); end; unless author.nil?;
728
- ; _buf << ("<p class=\"author\"><small>".freeze); _buf << ((author).to_s);
729
- ; _buf << ("</small></p>".freeze); end; _buf << ("</section>".freeze); end; _buf << ((content).to_s);
730
- ; _buf << ("</div></div><script src=\"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/lib/js/head.min.js\"></script><script src=\"".freeze);
731
- ; _buf << ((revealjsdir).to_s); _buf << ("/js/reveal.js\"></script><script>Array.prototype.slice.call(document.querySelectorAll('.slides section')).forEach(function(slide) {\n if (slide.getAttribute('data-background-color')) return;\n // user needs to explicitly say he wants CSS color to override otherwise we might break custom css or theme (#226)\n if (!(slide.classList.contains('canvas') || slide.classList.contains('background'))) return;\n var bgColor = getComputedStyle(slide).backgroundColor;\n if (bgColor !== 'rgba(0, 0, 0, 0)' && bgColor !== 'transparent') {\n slide.setAttribute('data-background-color', bgColor);\n slide.style.backgroundColor = 'transparent';\n }\n})\n\n// See https://github.com/hakimel/reveal.js#configuration for a full list of configuration options\nReveal.initialize({\n // Display presentation control arrows\n controls: ".freeze);
784
+ ; _buf << ((attr 'revealjs_parallaxbackgroundhorizontal', 'null').to_s); _buf << (",\n parallaxBackgroundVertical: ".freeze);
785
+ ; _buf << ((attr 'revealjs_parallaxbackgroundvertical', 'null').to_s); _buf << (",\n // The display mode that will be used to show slides\n display: '".freeze);
732
786
  ;
787
+ ; _buf << ((attr 'revealjs_display', 'block').to_s); _buf << ("',\n\n // The \"normal\" size of the presentation, aspect ratio will be preserved\n // when the presentation is scaled to fit different resolutions. Can be\n // specified using percentage units.\n width: ".freeze);
733
788
  ;
734
789
  ;
735
790
  ;
736
791
  ;
792
+ ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (",\n height: ".freeze);
793
+ ; _buf << ((attr 'revealjs_height', 700).to_s); _buf << (",\n\n // Factor of the display size that should remain empty around the content\n margin: ".freeze);
737
794
  ;
738
795
  ;
796
+ ; _buf << ((attr 'revealjs_margin', 0.1).to_s); _buf << (",\n\n // Bounds for smallest/largest possible scale to apply to content\n minScale: ".freeze);
739
797
  ;
740
798
  ;
799
+ ; _buf << ((attr 'revealjs_minscale', 0.2).to_s); _buf << (",\n maxScale: ".freeze);
800
+ ; _buf << ((attr 'revealjs_maxscale', 1.5).to_s); _buf << (",\n\n // PDF Export Options\n // Put each fragment on a separate page\n pdfSeparateFragments: ".freeze);
741
801
  ;
742
802
  ;
743
803
  ;
804
+ ; _buf << ((to_boolean(attr 'revealjs_pdfseparatefragments', true)).to_s); _buf << (",\n // For slides that do not fit on a page, max number of pages\n pdfMaxPagesPerSlide: ".freeze);
744
805
  ;
806
+ ; _buf << ((attr 'revealjs_pdfmaxpagesperslide', 1).to_s); _buf << (",\n\n // Optional libraries used to extend on reveal.js\n dependencies: [\n ".freeze);
745
807
  ;
746
808
  ;
747
- ; _buf << ((to_boolean(attr 'revealjs_controls', true)).to_s); _buf << (",\n // Help the user learn the controls by providing hints, for example by\n // bouncing the down arrow when they first encounter a vertical slide\n controlsTutorial: ".freeze);
748
809
  ;
810
+ ; _buf << ((revealjs_dependencies(document, self, revealjsdir)).to_s);
811
+ ; _buf << ("\n ],\n\n ".freeze);
749
812
  ;
750
- ; _buf << ((to_boolean(attr 'revealjs_controlstutorial', true)).to_s); _buf << (",\n // Determines where controls appear, \"edges\" or \"bottom-right\"\n controlsLayout: '".freeze);
813
+ ; _buf << (((attr? 'revealjs_plugins_configuration') ? File.read(attr('revealjs_plugins_configuration', '')) : "").to_s);
814
+ ; _buf << ("\n\n});</script><script>var dom = {};\ndom.slides = document.querySelector('.reveal .slides');\n\nfunction getRemainingHeight(element, slideElement, height) {\n height = height || 0;\n if (element) {\n var newHeight, oldHeight = element.style.height;\n // Change the .stretch element height to 0 in order find the height of all\n // the other elements\n element.style.height = '0px';\n // In Overview mode, the parent (.slide) height is set of 700px.\n // Restore it temporarily to its natural height.\n slideElement.style.height = 'auto';\n newHeight = height - slideElement.offsetHeight;\n // Restore the old height, just in case\n element.style.height = oldHeight + 'px';\n // Clear the parent (.slide) height. .removeProperty works in IE9+\n slideElement.style.removeProperty('height');\n return newHeight;\n }\n return height;\n}\n\nfunction layoutSlideContents(width, height) {\n // Handle sizing of elements with the 'stretch' class\n toArray(dom.slides.querySelectorAll('section .stretch')).forEach(function (element) {\n // Determine how much vertical space we can use\n var limit = 5; // hard limit\n var parent = element.parentNode;\n while (parent.nodeName !== 'SECTION' && limit > 0) {\n parent = parent.parentNode;\n limit--;\n }\n if (limit === 0) {\n // unable to find parent, aborting!\n return;\n }\n var remainingHeight = getRemainingHeight(element, parent, height);\n // Consider the aspect ratio of media elements\n if (/(img|video)/gi.test(element.nodeName)) {\n var nw = element.naturalWidth || element.videoWidth, nh = element.naturalHeight || element.videoHeight;\n var es = Math.min(width / nw, remainingHeight / nh);\n element.style.width = (nw * es) + 'px';\n element.style.height = (nh * es) + 'px';\n } else {\n element.style.width = width + 'px';\n element.style.height = remainingHeight + 'px';\n }\n });\n}\n\nfunction toArray(o) {\n return Array.prototype.slice.call(o);\n}\n\nReveal.addEventListener('slidechanged', function () {\n layoutSlideContents(".freeze);
751
815
  ;
752
- ; _buf << ((attr 'revealjs_controlslayout', 'bottom-right').to_s); _buf << ("',\n // Visibility rule for backwards navigation arrows; \"faded\", \"hidden\"\n // or \"visible\"\n controlsBackArrows: '".freeze);
753
816
  ;
754
817
  ;
755
- ; _buf << ((attr 'revealjs_controlsbackarrows', 'faded').to_s); _buf << ("',\n // Display a presentation progress bar\n progress: ".freeze);
756
818
  ;
757
- ; _buf << ((to_boolean(attr 'revealjs_progress', true)).to_s); _buf << (",\n // Display the page number of the current slide\n slideNumber: ".freeze);
758
819
  ;
759
- ; _buf << ((to_valid_slidenumber(attr 'revealjs_slidenumber', false)).to_s); _buf << (",\n // Control which views the slide number displays on\n showSlideNumber: '".freeze);
760
820
  ;
761
- ; _buf << ((attr 'revealjs_showslidenumber', 'all').to_s); _buf << ("',\n // Push each slide change to the browser history\n history: ".freeze);
762
821
  ;
763
- ; _buf << ((to_boolean(attr 'revealjs_history', false)).to_s); _buf << (",\n // Enable keyboard shortcuts for navigation\n keyboard: ".freeze);
764
822
  ;
765
- ; _buf << ((to_boolean(attr 'revealjs_keyboard', true)).to_s); _buf << (",\n // Enable the slide overview mode\n overview: ".freeze);
766
823
  ;
767
- ; _buf << ((to_boolean(attr 'revealjs_overview', true)).to_s); _buf << (",\n // Vertical centering of slides\n center: ".freeze);
768
824
  ;
769
- ; _buf << ((to_boolean(attr 'revealjs_center', true)).to_s); _buf << (",\n // Enables touch navigation on devices with touch input\n touch: ".freeze);
770
825
  ;
771
- ; _buf << ((to_boolean(attr 'revealjs_touch', true)).to_s); _buf << (",\n // Loop the presentation\n loop: ".freeze);
772
826
  ;
773
- ; _buf << ((to_boolean(attr 'revealjs_loop', false)).to_s); _buf << (",\n // Change the presentation direction to be RTL\n rtl: ".freeze);
774
827
  ;
775
- ; _buf << ((to_boolean(attr 'revealjs_rtl', false)).to_s); _buf << (",\n // Randomizes the order of slides each time the presentation loads\n shuffle: ".freeze);
776
828
  ;
777
- ; _buf << ((to_boolean(attr 'revealjs_shuffle', false)).to_s); _buf << (",\n // Turns fragments on and off globally\n fragments: ".freeze);
778
829
  ;
779
- ; _buf << ((to_boolean(attr 'revealjs_fragments', true)).to_s); _buf << (",\n // Flags whether to include the current fragment in the URL,\n // so that reloading brings you to the same fragment position\n fragmentInURL: ".freeze);
780
830
  ;
781
831
  ;
782
- ; _buf << ((to_boolean(attr 'revealjs_fragmentinurl', false)).to_s); _buf << (",\n // Flags if the presentation is running in an embedded mode,\n // i.e. contained within a limited portion of the screen\n embedded: ".freeze);
783
832
  ;
784
833
  ;
785
- ; _buf << ((to_boolean(attr 'revealjs_embedded', false)).to_s); _buf << (",\n // Flags if we should show a help overlay when the questionmark\n // key is pressed\n help: ".freeze);
786
834
  ;
787
835
  ;
788
- ; _buf << ((to_boolean(attr 'revealjs_help', true)).to_s); _buf << (",\n // Flags if speaker notes should be visible to all viewers\n showNotes: ".freeze);
789
836
  ;
790
- ; _buf << ((to_boolean(attr 'revealjs_shownotes', false)).to_s); _buf << (",\n // Global override for autolaying embedded media (video/audio/iframe)\n // - null: Media will only autoplay if data-autoplay is present\n // - true: All media will autoplay, regardless of individual setting\n // - false: No media will autoplay, regardless of individual setting\n autoPlayMedia: ".freeze);
791
837
  ;
792
838
  ;
793
839
  ;
794
840
  ;
795
- ; _buf << ((attr 'revealjs_autoplaymedia', 'null').to_s); _buf << (",\n // Number of milliseconds between automatically proceeding to the\n // next slide, disabled when set to 0, this value can be overwritten\n // by using a data-autoslide attribute on your slides\n autoSlide: ".freeze);
796
841
  ;
797
842
  ;
798
843
  ;
799
- ; _buf << ((attr 'revealjs_autoslide', 0).to_s); _buf << (",\n // Stop auto-sliding after user input\n autoSlideStoppable: ".freeze);
800
844
  ;
801
- ; _buf << ((to_boolean(attr 'revealjs_autoslidestoppable', true)).to_s); _buf << (",\n // Use this method for navigation when auto-sliding\n autoSlideMethod: ".freeze);
802
845
  ;
803
- ; _buf << ((attr 'revealjs_autoslidemethod', 'Reveal.navigateNext').to_s); _buf << (",\n // Specify the average time in seconds that you think you will spend\n // presenting each slide. This is used to show a pacing timer in the\n // speaker view\n defaultTiming: ".freeze);
804
846
  ;
805
847
  ;
806
848
  ;
807
- ; _buf << ((attr 'revealjs_defaulttiming', 120).to_s); _buf << (",\n // Enable slide navigation via mouse wheel\n mouseWheel: ".freeze);
808
849
  ;
809
- ; _buf << ((to_boolean(attr 'revealjs_mousewheel', false)).to_s); _buf << (",\n // Hides the address bar on mobile devices\n hideAddressBar: ".freeze);
810
850
  ;
811
- ; _buf << ((to_boolean(attr 'revealjs_hideaddressbar', true)).to_s); _buf << (",\n // Opens links in an iframe preview overlay\n // Add `data-preview-link` and `data-preview-link=\"false\"` to customise each link\n // individually\n previewLinks: ".freeze);
812
851
  ;
813
852
  ;
814
853
  ;
815
- ; _buf << ((to_boolean(attr 'revealjs_previewlinks', false)).to_s); _buf << (",\n // Transition style (e.g., none, fade, slide, convex, concave, zoom)\n transition: '".freeze);
816
854
  ;
817
- ; _buf << ((attr 'revealjs_transition', 'slide').to_s); _buf << ("',\n // Transition speed (e.g., default, fast, slow)\n transitionSpeed: '".freeze);
818
855
  ;
819
- ; _buf << ((attr 'revealjs_transitionspeed', 'default').to_s); _buf << ("',\n // Transition style for full page slide backgrounds (e.g., none, fade, slide, convex, concave, zoom)\n backgroundTransition: '".freeze);
820
856
  ;
821
- ; _buf << ((attr 'revealjs_backgroundtransition', 'fade').to_s); _buf << ("',\n // Number of slides away from the current that are visible\n viewDistance: ".freeze);
822
857
  ;
823
- ; _buf << ((attr 'revealjs_viewdistance', 3).to_s); _buf << (",\n // Parallax background image (e.g., \"'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'\")\n parallaxBackgroundImage: '".freeze);
824
858
  ;
825
- ; _buf << ((attr 'revealjs_parallaxbackgroundimage', '').to_s); _buf << ("',\n // Parallax background size in CSS syntax (e.g., \"2100px 900px\")\n parallaxBackgroundSize: '".freeze);
826
859
  ;
827
- ; _buf << ((attr 'revealjs_parallaxbackgroundsize', '').to_s); _buf << ("',\n // Number of pixels to move the parallax background per slide\n // - Calculated automatically unless specified\n // - Set to 0 to disable movement along an axis\n parallaxBackgroundHorizontal: ".freeze);
828
860
  ;
829
861
  ;
830
862
  ;
831
- ; _buf << ((attr 'revealjs_parallaxbackgroundhorizontal', 'null').to_s); _buf << (",\n parallaxBackgroundVertical: ".freeze);
832
- ; _buf << ((attr 'revealjs_parallaxbackgroundvertical', 'null').to_s); _buf << (",\n // The display mode that will be used to show slides\n display: '".freeze);
833
863
  ;
834
- ; _buf << ((attr 'revealjs_display', 'block').to_s); _buf << ("',\n\n // The \"normal\" size of the presentation, aspect ratio will be preserved\n // when the presentation is scaled to fit different resolutions. Can be\n // specified using percentage units.\n width: ".freeze);
835
864
  ;
836
865
  ;
837
866
  ;
838
867
  ;
839
- ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (",\n height: ".freeze);
840
- ; _buf << ((attr 'revealjs_height', 700).to_s); _buf << (",\n\n // Factor of the display size that should remain empty around the content\n margin: ".freeze);
841
868
  ;
842
869
  ;
843
- ; _buf << ((attr 'revealjs_margin', 0.1).to_s); _buf << (",\n\n // Bounds for smallest/largest possible scale to apply to content\n minScale: ".freeze);
844
870
  ;
845
871
  ;
846
- ; _buf << ((attr 'revealjs_minscale', 0.2).to_s); _buf << (",\n maxScale: ".freeze);
847
- ; _buf << ((attr 'revealjs_maxscale', 1.5).to_s); _buf << (",\n\n // PDF Export Options\n // Put each fragment on a separate page\n pdfSeparateFragments: ".freeze);
848
872
  ;
849
873
  ;
850
874
  ;
851
- ; _buf << ((to_boolean(attr 'revealjs_pdfseparatefragments', true)).to_s); _buf << (",\n // For slides that do not fit on a page, max number of pages\n pdfMaxPagesPerSlide: ".freeze);
875
+ ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (", ".freeze); _buf << ((attr 'revealjs_height', 700).to_s); _buf << (")\n});\nReveal.addEventListener('ready', function () {\n layoutSlideContents(".freeze);
852
876
  ;
853
- ; _buf << ((attr 'revealjs_pdfmaxpagesperslide', 1).to_s); _buf << (",\n\n // Optional libraries used to extend on reveal.js\n dependencies: [\n { src: '".freeze);
854
877
  ;
878
+ ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (", ".freeze); _buf << ((attr 'revealjs_height', 700).to_s); _buf << (")\n});\nReveal.addEventListener('resize', function () {\n layoutSlideContents(".freeze);
855
879
  ;
856
880
  ;
857
- ; _buf << ((revealjsdir).to_s); _buf << ("/lib/js/classList.js', condition: function() { return !document.body.classList; } },\n ".freeze);
858
- ; _buf << (((document.attr? 'source-highlighter', 'highlightjs') ? "{ src: '#{revealjsdir}/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }," : nil).to_s);
859
- ; _buf << ("\n ".freeze); _buf << (((attr? 'revealjs_plugin_zoom', 'disabled') ? "" : "{ src: '#{revealjsdir}/plugin/zoom-js/zoom.js', async: true }," ).to_s);
860
- ; _buf << ("\n ".freeze); _buf << (((attr? 'revealjs_plugin_notes', 'disabled') ? "" : "{ src: '#{revealjsdir}/plugin/notes/notes.js', async: true }," ).to_s);
861
- ; _buf << ("\n ".freeze); _buf << (((attr? 'revealjs_plugin_marked', 'enabled') ? "{ src: '#{revealjsdir}/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }," : "" ).to_s);
862
- ; _buf << ("\n ".freeze); _buf << (((attr? 'revealjs_plugin_markdown', 'enabled') ? "{ src: '#{revealjsdir}/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }," : "" ).to_s);
863
- ; _buf << ("\n ".freeze); _buf << (((attr? 'revealjs_plugin_pdf', 'enabled') ? "{ src: '#{revealjsdir}/plugin/print-pdf/print-pdf.js', async: true }," : "" ).to_s);
864
- ; _buf << ("\n ".freeze); _buf << (((attr? 'revealjs_plugins') ? File.read(attr('revealjs_plugins', '')) : "").to_s);
865
- ; _buf << ("\n ],\n\n ".freeze);
881
+ ; _buf << ((attr 'revealjs_width', 960).to_s); _buf << (", ".freeze); _buf << ((attr 'revealjs_height', 700).to_s); _buf << (")\n});</script>".freeze);
866
882
  ;
867
- ; _buf << (((attr? 'revealjs_plugins_configuration') ? File.read(attr('revealjs_plugins_configuration', '')) : "").to_s);
868
- ; _buf << ("\n\n});</script>".freeze);
869
883
  ;
870
884
  ; if syntax_hl && (syntax_hl.docinfo? :footer);
871
885
  ; _buf << ((syntax_hl.docinfo :footer, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/').to_s);
@@ -876,59 +890,72 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
876
890
  end
877
891
  end
878
892
 
879
- def inline_callout(node, opts = {})
893
+ def thematic_break(node, opts = {})
880
894
  node.extend(Helpers)
881
895
  node.instance_eval do
882
896
  converter.set_local_variables(binding, opts) unless opts.empty?
883
- _buf = ''; if @document.attr? :icons, 'font';
884
- ; _buf << ("<i class=\"conum\"".freeze); _slim_codeattributes1 = @text; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" data-value".freeze); else; _buf << (" data-value=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << ("></i><b>".freeze);
885
- ; _buf << (("(#{@text})").to_s);
886
- ; _buf << ("</b>".freeze); elsif @document.attr? :icons;
887
- ; _buf << ("<img".freeze); _slim_codeattributes2 = icon_uri("callouts/#{@text}"); if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = @text; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
888
- ; else;
889
- ; _buf << ("<b>".freeze); _buf << (("(#{@text})").to_s);
890
- ; _buf << ("</b>".freeze); end; _buf
897
+ _buf = ''; _buf << ("<hr>".freeze);
898
+ ; _buf
891
899
  end
892
900
  end
893
901
 
894
- def notes(node, opts = {})
902
+ def inline_quoted(node, opts = {})
895
903
  node.extend(Helpers)
896
904
  node.instance_eval do
897
905
  converter.set_local_variables(binding, opts) unless opts.empty?
898
- _buf = ''; _buf << ("<aside class=\"notes\">".freeze); _buf << ((resolve_content).to_s);
899
- ; _buf << ("</aside>".freeze); _buf
906
+ _buf = ''; quote_tags = { emphasis: 'em', strong: 'strong', monospaced: 'code', superscript: 'sup', subscript: 'sup' };
907
+ ; if (quote_tag = quote_tags[@type]);
908
+ ; _buf << ((html_tag(quote_tag, { :id => @id, :class => [role, ('fragment' if (option? :step) || (attr? 'step'))].compact }.merge(data_attrs(@attributes)), @text)).to_s);
909
+ ; else;
910
+ ; case @type;
911
+ ; when :double;
912
+ ; inline_text_container("&#8220;#{@text}&#8221;");
913
+ ; when :single;
914
+ ; _buf << ((inline_text_container("&#8216;#{@text}&#8217;")).to_s);
915
+ ; when :asciimath, :latexmath;
916
+ ; open, close = Asciidoctor::INLINE_MATH_DELIMITERS[@type];
917
+ ; _buf << ((inline_text_container("#{open}#{@text}#{close}")).to_s);
918
+ ; else;
919
+ ; _buf << ((inline_text_container(@text)).to_s);
920
+ ; end; end; _buf
900
921
  end
901
922
  end
902
923
 
903
- def inline_image(node, opts = {})
924
+ def outline(node, opts = {})
904
925
  node.extend(Helpers)
905
926
  node.instance_eval do
906
927
  converter.set_local_variables(binding, opts) unless opts.empty?
907
- _buf = ''; _buf << ("<span".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = [@type,role]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = ("float: #{attr :float}" if attr? :float); if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" style".freeze); else; _buf << (" style=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
908
- ; if @type == 'icon' && (@document.attr? :icons, 'font');
909
- ; style_class = ["fa fa-#{@target}"];
910
- ; style_class << "fa-#{attr :size}" if attr? :size;
911
- ; style_class << "fa-rotate-#{attr :rotate}" if attr? :rotate;
912
- ; style_class << "fa-flip-#{attr :flip}" if attr? :flip;
913
- ; if attr? :link;
914
- ; _buf << ("<a class=\"image\"".freeze); _slim_codeattributes3 = (attr :link); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes4 = (attr :window); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" target".freeze); else; _buf << (" target=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << ("><i".freeze);
915
- ; _temple_html_attributeremover2 = ''; _slim_codeattributes5 = style_class; if Array === _slim_codeattributes5; _slim_codeattributes5 = _slim_codeattributes5.flatten; _slim_codeattributes5.map!(&:to_s); _slim_codeattributes5.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes5.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes5).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _slim_codeattributes6 = (attr :title); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" title".freeze); else; _buf << (" title=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << ("></i></a>".freeze);
916
- ; else;
917
- ; _buf << ("<i".freeze); _temple_html_attributeremover3 = ''; _slim_codeattributes7 = style_class; if Array === _slim_codeattributes7; _slim_codeattributes7 = _slim_codeattributes7.flatten; _slim_codeattributes7.map!(&:to_s); _slim_codeattributes7.reject!(&:empty?); _temple_html_attributeremover3 << ((_slim_codeattributes7.join(" ")).to_s); else; _temple_html_attributeremover3 << ((_slim_codeattributes7).to_s); end; _temple_html_attributeremover3; if !_temple_html_attributeremover3.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover3).to_s); _buf << ("\"".freeze); end; _slim_codeattributes8 = (attr :title); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" title".freeze); else; _buf << (" title=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _buf << ("></i>".freeze);
918
- ; end; elsif @type == 'icon' && !(@document.attr? :icons);
919
- ; if attr? :link;
920
- ; _buf << ("<a class=\"image\"".freeze); _slim_codeattributes9 = (attr :link); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes10 = (attr :window); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" target".freeze); else; _buf << (" target=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _buf << (">[".freeze);
921
- ; _buf << ((attr :alt).to_s); _buf << ("]</a>".freeze);
922
- ; else;
923
- ; _buf << ("[".freeze); _buf << ((attr :alt).to_s); _buf << ("]".freeze);
924
- ; end; else;
925
- ; src = (@type == 'icon' ? (icon_uri @target) : (image_uri @target));
926
- ; if attr? :link;
927
- ; _buf << ("<a class=\"image\"".freeze); _slim_codeattributes11 = (attr :link); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (attr :window); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" target".freeze); else; _buf << (" target=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _buf << ("><img".freeze);
928
- ; _slim_codeattributes13 = src; if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = (attr :alt); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = (attr :width); if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" width".freeze); else; _buf << (" width=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = (attr :height); if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" height".freeze); else; _buf << (" height=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes17 = (attr :title); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" title".freeze); else; _buf << (" title=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _buf << ("></a>".freeze);
929
- ; else;
930
- ; _buf << ("<img".freeze); _slim_codeattributes18 = src; if _slim_codeattributes18; if _slim_codeattributes18 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes18).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes19 = (attr :alt); if _slim_codeattributes19; if _slim_codeattributes19 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes19).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes20 = (attr :width); if _slim_codeattributes20; if _slim_codeattributes20 == true; _buf << (" width".freeze); else; _buf << (" width=\"".freeze); _buf << ((_slim_codeattributes20).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes21 = (attr :height); if _slim_codeattributes21; if _slim_codeattributes21 == true; _buf << (" height".freeze); else; _buf << (" height=\"".freeze); _buf << ((_slim_codeattributes21).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes22 = (attr :title); if _slim_codeattributes22; if _slim_codeattributes22 == true; _buf << (" title".freeze); else; _buf << (" title=\"".freeze); _buf << ((_slim_codeattributes22).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
931
- ; end; end; _buf << ("</span>".freeze); _buf
928
+ _buf = ''; unless sections.empty?;
929
+ ; toclevels ||= (document.attr 'toclevels', DEFAULT_TOCLEVELS).to_i;
930
+ ; slevel = section_level sections.first;
931
+ ; _buf << ("<ol class=\"sectlevel".freeze); _buf << ((slevel).to_s); _buf << ("\">".freeze);
932
+ ; sections.each do |sec|;
933
+ ; _buf << ("<li><a href=\"#".freeze);
934
+ ; _buf << ((sec.id).to_s); _buf << ("\">".freeze); _buf << ((section_title sec).to_s);
935
+ ; _buf << ("</a>".freeze); if (sec.level < toclevels) && (child_toc = converter.convert sec, 'outline');
936
+ ; _buf << ((child_toc).to_s);
937
+ ; end; _buf << ("</li>".freeze); end; _buf << ("</ol>".freeze); end; _buf
938
+ end
939
+ end
940
+
941
+ def inline_footnote(node, opts = {})
942
+ node.extend(Helpers)
943
+ node.instance_eval do
944
+ converter.set_local_variables(binding, opts) unless opts.empty?
945
+ _buf = ''; footnote = slide_footnote(self);
946
+ ; index = footnote.attr(:index);
947
+ ; id = footnote.id;
948
+ ; if @type == :xref;
949
+ ; _slim_controls1 = html_tag('sup', { :class => ['footnoteref'] }.merge(data_attrs(footnote.attributes))) do; _slim_controls2 = '';
950
+ ; _slim_controls2 << ("[<span class=\"footnote\" title=\"View footnote.\">".freeze);
951
+ ; _slim_controls2 << ((index).to_s);
952
+ ; _slim_controls2 << ("</span>]".freeze);
953
+ ; _slim_controls2; end; _buf << ((_slim_controls1).to_s); else;
954
+ ; _slim_controls3 = html_tag('sup', { :id => ("_footnote_#{id}" if id), :class => ['footnote'] }.merge(data_attrs(footnote.attributes))) do; _slim_controls4 = '';
955
+ ; _slim_controls4 << ("[<span class=\"footnote\" title=\"View footnote.\">".freeze);
956
+ ; _slim_controls4 << ((index).to_s);
957
+ ; _slim_controls4 << ("</span>]".freeze);
958
+ ; _slim_controls4; end; _buf << ((_slim_controls3).to_s); end; _buf
932
959
  end
933
960
  end
934
961
 
@@ -942,22 +969,24 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
942
969
  ; width = (attr? :width) ? (attr :width) : "100%";
943
970
  ; height = (attr? :height) ? (attr :height) : "100%";
944
971
  ;
945
- ; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "videoblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = [@style,role,(no_stretch ? nil : "stretch")]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
972
+ ; _slim_controls1 = html_tag('div', { :id => @id, :class => ['videoblock', @style, role, (no_stretch ? nil : 'stretch'), ('fragment' if (option? :step) || (has_role? 'step') || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
946
973
  ; if title?;
947
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((captioned_title).to_s);
948
- ; _buf << ("</div>".freeze); end; case attr :poster;
974
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((captioned_title).to_s);
975
+ ; _slim_controls2 << ("</div>".freeze); end; case attr :poster;
949
976
  ; when 'vimeo';
950
977
  ; unless (asset_uri_scheme = (attr :asset_uri_scheme, 'https')).empty?;
951
978
  ; asset_uri_scheme = %(#{asset_uri_scheme}:);
952
979
  ; end; start_anchor = (attr? :start) ? "#at=#{attr :start}" : nil;
953
- ; delimiter = '?';
954
- ; loop_param = (option? 'loop') ? "#{delimiter}loop=1" : nil;
955
- ; src = %(#{asset_uri_scheme}//player.vimeo.com/video/#{attr :target}#{start_anchor}#{loop_param});
980
+ ; delimiter = ['?'];
981
+ ; loop_param = (option? 'loop') ? %(#{delimiter.pop || '&amp;'}loop=1) : '';
982
+ ; muted_param = (option? 'muted') ? %(#{delimiter.pop || '&amp;'}muted=1) : '';
983
+ ; src = %(#{asset_uri_scheme}//player.vimeo.com/video/#{attr :target}#{loop_param}#{muted_param}#{start_anchor});
984
+ ;
956
985
  ;
957
986
  ;
958
- ; _buf << ("<iframe".freeze); _slim_codeattributes3 = (width); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" width".freeze); else; _buf << (" width=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes4 = (height); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" height".freeze); else; _buf << (" height=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = src; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = 0; if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" frameborder".freeze); else; _buf << (" frameborder=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << (" webkitAllowFullScreen mozallowfullscreen allowFullScreen".freeze); _slim_codeattributes7 = (option? 'autoplay'); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" data-autoplay".freeze); else; _buf << (" data-autoplay=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _buf << ("></iframe>".freeze);
959
987
  ;
960
988
  ;
989
+ ; _slim_controls2 << ("<iframe".freeze); _slim_codeattributes1 = (width); if _slim_codeattributes1; if _slim_codeattributes1 == true; _slim_controls2 << (" width".freeze); else; _slim_controls2 << (" width=\"".freeze); _slim_controls2 << ((_slim_codeattributes1).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes2 = (height); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" height".freeze); else; _slim_controls2 << (" height=\"".freeze); _slim_controls2 << ((_slim_codeattributes2).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes3 = src; if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes4 = 0; if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" frameborder".freeze); else; _slim_controls2 << (" frameborder=\"".freeze); _slim_controls2 << ((_slim_codeattributes4).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (" webkitAllowFullScreen mozallowfullscreen allowFullScreen".freeze); _slim_codeattributes5 = (option? 'autoplay'); if _slim_codeattributes5; if _slim_codeattributes5 == true; _slim_controls2 << (" data-autoplay".freeze); else; _slim_controls2 << (" data-autoplay=\"".freeze); _slim_controls2 << ((_slim_codeattributes5).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes6 = ((option? 'autoplay') ? "autoplay" : nil); if _slim_codeattributes6; if _slim_codeattributes6 == true; _slim_controls2 << (" allow".freeze); else; _slim_controls2 << (" allow=\"".freeze); _slim_controls2 << ((_slim_codeattributes6).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></iframe>".freeze);
961
990
  ; when 'youtube';
962
991
  ; unless (asset_uri_scheme = (attr :asset_uri_scheme, 'https')).empty?;
963
992
  ; asset_uri_scheme = %(#{asset_uri_scheme}:);
@@ -965,30 +994,417 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
965
994
  ; params << "start=#{attr :start}" if attr? :start;
966
995
  ; params << "end=#{attr :end}" if attr? :end;
967
996
  ; params << "loop=1" if option? 'loop';
997
+ ; params << "mute=1" if option? 'muted';
968
998
  ; params << "controls=0" if option? 'nocontrols';
969
999
  ; src = %(#{asset_uri_scheme}//www.youtube.com/embed/#{attr :target}?#{params * '&amp;'});
970
1000
  ;
971
1001
  ;
972
- ; _buf << ("<iframe".freeze); _slim_codeattributes8 = (width); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" width".freeze); else; _buf << (" width=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes9 = (height); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" height".freeze); else; _buf << (" height=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes10 = src; if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = 0; if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" frameborder".freeze); else; _buf << (" frameborder=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = !(option? 'nofullscreen'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" allowfullscreen".freeze); else; _buf << (" allowfullscreen=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = (option? 'autoplay'); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-autoplay".freeze); else; _buf << (" data-autoplay=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _buf << ("></iframe>".freeze);
1002
+ ;
1003
+ ;
1004
+ ;
1005
+ ; _slim_controls2 << ("<iframe".freeze); _slim_codeattributes7 = (width); if _slim_codeattributes7; if _slim_codeattributes7 == true; _slim_controls2 << (" width".freeze); else; _slim_controls2 << (" width=\"".freeze); _slim_controls2 << ((_slim_codeattributes7).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes8 = (height); if _slim_codeattributes8; if _slim_codeattributes8 == true; _slim_controls2 << (" height".freeze); else; _slim_controls2 << (" height=\"".freeze); _slim_controls2 << ((_slim_codeattributes8).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes9 = src; if _slim_codeattributes9; if _slim_codeattributes9 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes9).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes10 = 0; if _slim_codeattributes10; if _slim_codeattributes10 == true; _slim_controls2 << (" frameborder".freeze); else; _slim_controls2 << (" frameborder=\"".freeze); _slim_controls2 << ((_slim_codeattributes10).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes11 = !(option? 'nofullscreen'); if _slim_codeattributes11; if _slim_codeattributes11 == true; _slim_controls2 << (" allowfullscreen".freeze); else; _slim_controls2 << (" allowfullscreen=\"".freeze); _slim_controls2 << ((_slim_codeattributes11).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes12 = (option? 'autoplay'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _slim_controls2 << (" data-autoplay".freeze); else; _slim_controls2 << (" data-autoplay=\"".freeze); _slim_controls2 << ((_slim_codeattributes12).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes13 = ((option? 'autoplay') ? "autoplay" : nil); if _slim_codeattributes13; if _slim_codeattributes13 == true; _slim_controls2 << (" allow".freeze); else; _slim_controls2 << (" allow=\"".freeze); _slim_controls2 << ((_slim_codeattributes13).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></iframe>".freeze);
973
1006
  ; else;
974
1007
  ;
975
1008
  ;
976
1009
  ;
977
- ; _buf << ("<video".freeze); _slim_codeattributes14 = media_uri(attr :target); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = (width); if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" width".freeze); else; _buf << (" width=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = (height); if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" height".freeze); else; _buf << (" height=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes17 = ((attr :poster) ? media_uri(attr :poster) : nil); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" poster".freeze); else; _buf << (" poster=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes18 = (option? 'autoplay'); if _slim_codeattributes18; if _slim_codeattributes18 == true; _buf << (" data-autoplay".freeze); else; _buf << (" data-autoplay=\"".freeze); _buf << ((_slim_codeattributes18).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes19 = !(option? 'nocontrols'); if _slim_codeattributes19; if _slim_codeattributes19 == true; _buf << (" controls".freeze); else; _buf << (" controls=\"".freeze); _buf << ((_slim_codeattributes19).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes20 = (option? 'loop'); if _slim_codeattributes20; if _slim_codeattributes20 == true; _buf << (" loop".freeze); else; _buf << (" loop=\"".freeze); _buf << ((_slim_codeattributes20).to_s); _buf << ("\"".freeze); end; end; _buf << (">Your browser does not support the video tag.</video>".freeze);
1010
+ ; _slim_controls2 << ("<video".freeze); _slim_codeattributes14 = media_uri(attr :target); if _slim_codeattributes14; if _slim_codeattributes14 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes14).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes15 = (width); if _slim_codeattributes15; if _slim_codeattributes15 == true; _slim_controls2 << (" width".freeze); else; _slim_controls2 << (" width=\"".freeze); _slim_controls2 << ((_slim_codeattributes15).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes16 = (height); if _slim_codeattributes16; if _slim_codeattributes16 == true; _slim_controls2 << (" height".freeze); else; _slim_controls2 << (" height=\"".freeze); _slim_controls2 << ((_slim_codeattributes16).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes17 = ((attr :poster) ? media_uri(attr :poster) : nil); if _slim_codeattributes17; if _slim_codeattributes17 == true; _slim_controls2 << (" poster".freeze); else; _slim_controls2 << (" poster=\"".freeze); _slim_controls2 << ((_slim_codeattributes17).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes18 = (option? 'autoplay'); if _slim_codeattributes18; if _slim_codeattributes18 == true; _slim_controls2 << (" data-autoplay".freeze); else; _slim_controls2 << (" data-autoplay=\"".freeze); _slim_controls2 << ((_slim_codeattributes18).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes19 = !(option? 'nocontrols'); if _slim_codeattributes19; if _slim_codeattributes19 == true; _slim_controls2 << (" controls".freeze); else; _slim_controls2 << (" controls=\"".freeze); _slim_controls2 << ((_slim_codeattributes19).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes20 = (option? 'loop'); if _slim_codeattributes20; if _slim_codeattributes20 == true; _slim_controls2 << (" loop".freeze); else; _slim_controls2 << (" loop=\"".freeze); _slim_controls2 << ((_slim_codeattributes20).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">Your browser does not support the video tag.</video>".freeze);
1011
+ ;
1012
+ ; end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1013
+ end
1014
+ end
1015
+
1016
+ def dlist(node, opts = {})
1017
+ node.extend(Helpers)
1018
+ node.instance_eval do
1019
+ converter.set_local_variables(binding, opts) unless opts.empty?
1020
+ _buf = ''; case @style;
1021
+ ; when 'qanda';
1022
+ ; _slim_controls1 = html_tag('div', { :id => @id, :class => ['qlist', @style, role] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1023
+ ; if title?;
1024
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
1025
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<ol>".freeze);
1026
+ ; items.each do |questions, answer|;
1027
+ ; _slim_controls2 << ("<li>".freeze);
1028
+ ; [*questions].each do |question|;
1029
+ ; _slim_controls2 << ("<p><em>".freeze); _slim_controls2 << ((question.text).to_s);
1030
+ ; _slim_controls2 << ("</em></p>".freeze); end; unless answer.nil?;
1031
+ ; if answer.text?;
1032
+ ; _slim_controls2 << ("<p>".freeze); _slim_controls2 << ((answer.text).to_s);
1033
+ ; _slim_controls2 << ("</p>".freeze); end; if answer.blocks?;
1034
+ ; _slim_controls2 << ((answer.content).to_s);
1035
+ ; end; end; _slim_controls2 << ("</li>".freeze); end; _slim_controls2 << ("</ol>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); when 'horizontal';
1036
+ ; _slim_controls3 = html_tag('div', { :id => @id, :class => ['hdlist', role] }.merge(data_attrs(@attributes))) do; _slim_controls4 = '';
1037
+ ; if title?;
1038
+ ; _slim_controls4 << ("<div class=\"title\">".freeze); _slim_controls4 << ((title).to_s);
1039
+ ; _slim_controls4 << ("</div>".freeze); end; _slim_controls4 << ("<table>".freeze);
1040
+ ; if (attr? :labelwidth) || (attr? :itemwidth);
1041
+ ; _slim_controls4 << ("<colgroup><col".freeze);
1042
+ ; _slim_codeattributes1 = ((attr? :labelwidth) ? %(width:#{(attr :labelwidth).chomp '%'}%;) : nil); if _slim_codeattributes1; if _slim_codeattributes1 == true; _slim_controls4 << (" style".freeze); else; _slim_controls4 << (" style=\"".freeze); _slim_controls4 << ((_slim_codeattributes1).to_s); _slim_controls4 << ("\"".freeze); end; end; _slim_controls4 << ("><col".freeze);
1043
+ ; _slim_codeattributes2 = ((attr? :itemwidth) ? %(width:#{(attr :itemwidth).chomp '%'}%;) : nil); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls4 << (" style".freeze); else; _slim_controls4 << (" style=\"".freeze); _slim_controls4 << ((_slim_codeattributes2).to_s); _slim_controls4 << ("\"".freeze); end; end; _slim_controls4 << ("></colgroup>".freeze);
1044
+ ; end; items.each do |terms, dd|;
1045
+ ; _slim_controls4 << ("<tr><td".freeze);
1046
+ ; _temple_html_attributeremover1 = ''; _slim_codeattributes3 = ['hdlist1',('strong' if option? 'strong')]; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes3).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _slim_controls4 << (" class=\"".freeze); _slim_controls4 << ((_temple_html_attributeremover1).to_s); _slim_controls4 << ("\"".freeze); end; _slim_controls4 << (">".freeze);
1047
+ ; terms = [*terms];
1048
+ ; last_term = terms.last;
1049
+ ; terms.each do |dt|;
1050
+ ; _slim_controls4 << ((dt.text).to_s);
1051
+ ; if dt != last_term;
1052
+ ; _slim_controls4 << ("<br>".freeze);
1053
+ ; end; end; _slim_controls4 << ("</td><td class=\"hdlist2\">".freeze);
1054
+ ; unless dd.nil?;
1055
+ ; if dd.text?;
1056
+ ; _slim_controls4 << ("<p>".freeze); _slim_controls4 << ((dd.text).to_s);
1057
+ ; _slim_controls4 << ("</p>".freeze); end; if dd.blocks?;
1058
+ ; _slim_controls4 << ((dd.content).to_s);
1059
+ ; end; end; _slim_controls4 << ("</td></tr>".freeze); end; _slim_controls4 << ("</table>".freeze); _slim_controls4; end; _buf << ((_slim_controls3).to_s); else;
1060
+ ; _slim_controls5 = html_tag('div', { :id => @id, :class => ['dlist', @style, role] }.merge(data_attrs(@attributes))) do; _slim_controls6 = '';
1061
+ ; if title?;
1062
+ ; _slim_controls6 << ("<div class=\"title\">".freeze); _slim_controls6 << ((title).to_s);
1063
+ ; _slim_controls6 << ("</div>".freeze); end; _slim_controls6 << ("<dl>".freeze);
1064
+ ; items.each do |terms, dd|;
1065
+ ; [*terms].each do |dt|;
1066
+ ; _slim_controls6 << ("<dt".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes4 = ('hdlist1' unless @style); if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes4.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes4).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _slim_controls6 << (" class=\"".freeze); _slim_controls6 << ((_temple_html_attributeremover2).to_s); _slim_controls6 << ("\"".freeze); end; _slim_controls6 << (">".freeze); _slim_controls6 << ((dt.text).to_s);
1067
+ ; _slim_controls6 << ("</dt>".freeze); end; unless dd.nil?;
1068
+ ; _slim_controls6 << ("<dd>".freeze);
1069
+ ; if dd.text?;
1070
+ ; _slim_controls6 << ("<p>".freeze); _slim_controls6 << ((dd.text).to_s);
1071
+ ; _slim_controls6 << ("</p>".freeze); end; if dd.blocks?;
1072
+ ; _slim_controls6 << ((dd.content).to_s);
1073
+ ; end; _slim_controls6 << ("</dd>".freeze); end; end; _slim_controls6 << ("</dl>".freeze); _slim_controls6; end; _buf << ((_slim_controls5).to_s); end; _buf
1074
+ end
1075
+ end
1076
+
1077
+ def pass(node, opts = {})
1078
+ node.extend(Helpers)
1079
+ node.instance_eval do
1080
+ converter.set_local_variables(binding, opts) unless opts.empty?
1081
+ _buf = ''; _buf << ((content).to_s);
1082
+ ; _buf
1083
+ end
1084
+ end
1085
+
1086
+ def title_slide(node, opts = {})
1087
+ node.extend(Helpers)
1088
+ node.instance_eval do
1089
+ converter.set_local_variables(binding, opts) unless opts.empty?
1090
+ _buf = ''; bg_image = (attr? 'title-slide-background-image') ? (image_uri(attr 'title-slide-background-image')) : nil;
1091
+ ; bg_video = (attr? 'title-slide-background-video') ? (media_uri(attr 'title-slide-background-video')) : nil;
1092
+ ;
1093
+ ;
1094
+ ;
1095
+ ;
1096
+ ;
1097
+ ;
1098
+ ;
1099
+ ;
1100
+ ;
1101
+ ;
1102
+ ;
1103
+ ;
1104
+ ;
1105
+ ;
1106
+ ;
1107
+ ; _buf << ("<section".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "title"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _buf << (" data-state=\"title\"".freeze); _slim_codeattributes2 = (attr 'title-slide-transition'); if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = (attr 'title-slide-transition-speed'); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes4 = (attr 'title-slide-background'); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" data-background".freeze); else; _buf << (" data-background=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = (attr 'title-slide-background-size'); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = bg_image; if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes7 = bg_video; if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes8 = (attr 'title-slide-background-video-loop'); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes9 = (attr 'title-slide-background-video-muted'); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes10 = (attr 'title-slide-background-opacity'); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = (attr 'title-slide-background-iframe'); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (attr 'title-slide-background-color'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = (attr 'title-slide-background-repeat'); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = (attr 'title-slide-background-position'); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = (attr 'title-slide-background-transition'); if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1108
+ ; if (_title_obj = doctitle partition: true, use_fallback: true).subtitle?;
1109
+ ; _buf << ("<h1>".freeze); _buf << ((slice_text _title_obj.title, (_slice = header.option? :slice)).to_s);
1110
+ ; _buf << ("</h1><h2>".freeze); _buf << ((slice_text _title_obj.subtitle, _slice).to_s);
1111
+ ; _buf << ("</h2>".freeze); else;
1112
+ ; _buf << ("<h1>".freeze); _buf << ((@header.title).to_s);
1113
+ ; _buf << ("</h1>".freeze); end; preamble = @document.find_by context: :preamble;
1114
+ ; unless preamble.nil? or preamble.length == 0;
1115
+ ; _buf << ("<div class=\"preamble\">".freeze); _buf << ((preamble.pop.content).to_s);
1116
+ ; _buf << ("</div>".freeze); end; unless author.nil?;
1117
+ ; _buf << ("<p class=\"author\"><small>".freeze); _buf << ((author).to_s);
1118
+ ; _buf << ("</small></p>".freeze); end; _buf << ("</section>".freeze); _buf
1119
+ end
1120
+ end
1121
+
1122
+ def inline_kbd(node, opts = {})
1123
+ node.extend(Helpers)
1124
+ node.instance_eval do
1125
+ converter.set_local_variables(binding, opts) unless opts.empty?
1126
+ _buf = ''; if (keys = attr 'keys').size == 1;
1127
+ ; _slim_controls1 = html_tag('kbd', data_attrs(@attributes)) do; _slim_controls2 = '';
1128
+ ; _slim_controls2 << ((keys.first).to_s);
1129
+ ; _slim_controls2; end; _buf << ((_slim_controls1).to_s); else;
1130
+ ; _slim_controls3 = html_tag('span', { :class => ['keyseq'] }.merge(data_attrs(@attributes))) do; _slim_controls4 = '';
1131
+ ; keys.each_with_index do |key, idx|;
1132
+ ; unless idx.zero?;
1133
+ ; _slim_controls4 << ("+".freeze);
1134
+ ; end; _slim_controls4 << ("<kbd>".freeze); _slim_controls4 << ((key).to_s);
1135
+ ; _slim_controls4 << ("</kbd>".freeze); end; _slim_controls4; end; _buf << ((_slim_controls3).to_s); end; _buf
1136
+ end
1137
+ end
1138
+
1139
+ def verse(node, opts = {})
1140
+ node.extend(Helpers)
1141
+ node.instance_eval do
1142
+ converter.set_local_variables(binding, opts) unless opts.empty?
1143
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => @id, :class => ['verseblock', role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1144
+ ; if title?;
1145
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
1146
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<pre class=\"content\">".freeze); _slim_controls2 << ((content).to_s);
1147
+ ; _slim_controls2 << ("</pre>".freeze); attribution = (attr? :attribution) ? (attr :attribution) : nil;
1148
+ ; citetitle = (attr? :citetitle) ? (attr :citetitle) : nil;
1149
+ ; if attribution || citetitle;
1150
+ ; _slim_controls2 << ("<div class=\"attribution\">".freeze);
1151
+ ; if citetitle;
1152
+ ; _slim_controls2 << ("<cite>".freeze); _slim_controls2 << ((citetitle).to_s);
1153
+ ; _slim_controls2 << ("</cite>".freeze); end; if attribution;
1154
+ ; if citetitle;
1155
+ ; _slim_controls2 << ("<br>".freeze);
1156
+ ; end; _slim_controls2 << ("&#8212; ".freeze); _slim_controls2 << ((attribution).to_s);
1157
+ ; end; _slim_controls2 << ("</div>".freeze); end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1158
+ end
1159
+ end
1160
+
1161
+ def literal(node, opts = {})
1162
+ node.extend(Helpers)
1163
+ node.instance_eval do
1164
+ converter.set_local_variables(binding, opts) unless opts.empty?
1165
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => id, :class => ['literalblock', role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1166
+ ; if title?;
1167
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
1168
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<div class=\"content\"><pre".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = (!(@document.attr? :prewrap) || (option? 'nowrap') ? 'nowrap' : nil); if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover1).to_s); _slim_controls2 << ("\"".freeze); end; _slim_controls2 << (">".freeze); _slim_controls2 << ((content).to_s);
1169
+ ; _slim_controls2 << ("</pre></div>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1170
+ end
1171
+ end
1172
+
1173
+ def toc(node, opts = {})
1174
+ node.extend(Helpers)
1175
+ node.instance_eval do
1176
+ converter.set_local_variables(binding, opts) unless opts.empty?
1177
+ _buf = '';
1178
+ ;
1179
+ ;
1180
+ ;
1181
+ ;
1182
+ ;
1183
+ ;
978
1184
  ;
979
- ; end; _buf << ("</div>".freeze); _buf
1185
+ ;
1186
+ ;
1187
+ ;
1188
+ ;
1189
+ ;
1190
+ ; _buf << ("<div id=\"toc\"".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = (document.attr 'toc-class', 'toc'); if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _buf << ("><div id=\"toctitle\">".freeze);
1191
+ ; _buf << (((document.attr 'toc-title')).to_s);
1192
+ ; _buf << ("</div>".freeze);
1193
+ ; _buf << ((converter.convert document, 'outline').to_s);
1194
+ ; _buf << ("</div>".freeze); _buf
1195
+ end
1196
+ end
1197
+
1198
+ def notes(node, opts = {})
1199
+ node.extend(Helpers)
1200
+ node.instance_eval do
1201
+ converter.set_local_variables(binding, opts) unless opts.empty?
1202
+ _buf = ''; _buf << ("<aside class=\"notes\">".freeze); _buf << ((resolve_content).to_s);
1203
+ ; _buf << ("</aside>".freeze); _buf
1204
+ end
1205
+ end
1206
+
1207
+ def quote(node, opts = {})
1208
+ node.extend(Helpers)
1209
+ node.instance_eval do
1210
+ converter.set_local_variables(binding, opts) unless opts.empty?
1211
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => @id, :class => ['quoteblock', role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1212
+ ; if title?;
1213
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
1214
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<blockquote>".freeze); _slim_controls2 << ((content).to_s);
1215
+ ; _slim_controls2 << ("</blockquote>".freeze); attribution = (attr? :attribution) ? (attr :attribution) : nil;
1216
+ ; citetitle = (attr? :citetitle) ? (attr :citetitle) : nil;
1217
+ ; if attribution || citetitle;
1218
+ ; _slim_controls2 << ("<div class=\"attribution\">".freeze);
1219
+ ; if citetitle;
1220
+ ; _slim_controls2 << ("<cite>".freeze); _slim_controls2 << ((citetitle).to_s);
1221
+ ; _slim_controls2 << ("</cite>".freeze); end; if attribution;
1222
+ ; if citetitle;
1223
+ ; _slim_controls2 << ("<br>".freeze);
1224
+ ; end; _slim_controls2 << ("&#8212; ".freeze); _slim_controls2 << ((attribution).to_s);
1225
+ ; end; _slim_controls2 << ("</div>".freeze); end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1226
+ end
1227
+ end
1228
+
1229
+ def example(node, opts = {})
1230
+ node.extend(Helpers)
1231
+ node.instance_eval do
1232
+ converter.set_local_variables(binding, opts) unless opts.empty?
1233
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => @id, :class => ['exampleblock', role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1234
+ ; if title?;
1235
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((captioned_title).to_s);
1236
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<div class=\"content\">".freeze); _slim_controls2 << ((content).to_s);
1237
+ ; _slim_controls2 << ("</div>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1238
+ end
1239
+ end
1240
+
1241
+ def inline_menu(node, opts = {})
1242
+ node.extend(Helpers)
1243
+ node.instance_eval do
1244
+ converter.set_local_variables(binding, opts) unless opts.empty?
1245
+ _buf = ''; menu = attr 'menu';
1246
+ ; menuitem = attr 'menuitem';
1247
+ ; if !(submenus = attr 'submenus').empty?;
1248
+ ; _slim_controls1 = html_tag('span', { :class => ['menuseq'] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1249
+ ; _slim_controls2 << ("<span class=\"menu\">".freeze); _slim_controls2 << ((menu).to_s);
1250
+ ; _slim_controls2 << ("</span>&#160;&#9656;&#32;".freeze);
1251
+ ; _slim_controls2 << ((submenus.map {|submenu| %(<span class="submenu">#{submenu}</span>&#160;&#9656;&#32;) }.join).to_s);
1252
+ ; _slim_controls2 << ("<span class=\"menuitem\">".freeze); _slim_controls2 << ((menuitem).to_s);
1253
+ ; _slim_controls2 << ("</span>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); elsif !menuitem.nil?;
1254
+ ; _slim_controls3 = html_tag('span', { :class => ['menuseq'] }.merge(data_attrs(@attributes))) do; _slim_controls4 = '';
1255
+ ; _slim_controls4 << ("<span class=\"menu\">".freeze); _slim_controls4 << ((menu).to_s);
1256
+ ; _slim_controls4 << ("</span>&#160;&#9656;&#32;<span class=\"menuitem\">".freeze);
1257
+ ; _slim_controls4 << ((menuitem).to_s);
1258
+ ; _slim_controls4 << ("</span>".freeze); _slim_controls4; end; _buf << ((_slim_controls3).to_s); else;
1259
+ ; _slim_controls5 = html_tag('span', { :class => ['menu'] }.merge(data_attrs(@attributes))) do; _slim_controls6 = '';
1260
+ ; _slim_controls6 << ((menu).to_s);
1261
+ ; _slim_controls6; end; _buf << ((_slim_controls5).to_s); end; _buf
1262
+ end
1263
+ end
1264
+
1265
+ def page_break(node, opts = {})
1266
+ node.extend(Helpers)
1267
+ node.instance_eval do
1268
+ converter.set_local_variables(binding, opts) unless opts.empty?
1269
+ _buf = ''; _buf << ("<div style=\"page-break-after: always;\"></div>".freeze);
1270
+ ; _buf
1271
+ end
1272
+ end
1273
+
1274
+ def ruler(node, opts = {})
1275
+ node.extend(Helpers)
1276
+ node.instance_eval do
1277
+ converter.set_local_variables(binding, opts) unless opts.empty?
1278
+ _buf = ''; _buf << ("<hr>".freeze);
1279
+ ; _buf
1280
+ end
1281
+ end
1282
+
1283
+ def embedded(node, opts = {})
1284
+ node.extend(Helpers)
1285
+ node.instance_eval do
1286
+ converter.set_local_variables(binding, opts) unless opts.empty?
1287
+ _buf = ''; unless notitle || !has_header?;
1288
+ ; _buf << ("<h1".freeze); _slim_codeattributes1 = @id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); _buf << ((@header.title).to_s);
1289
+ ; _buf << ("</h1>".freeze); end; _buf << ((content).to_s);
1290
+ ; unless !footnotes? || attr?(:nofootnotes);
1291
+ ; _buf << ("<div id=\"footnotes\"><hr>".freeze);
1292
+ ;
1293
+ ; footnotes.each do |fn|;
1294
+ ; _buf << ("<div class=\"footnote\" id=\"_footnote_".freeze); _buf << ((fn.index).to_s); _buf << ("\"><a href=\"#_footnoteref_".freeze);
1295
+ ; _buf << ((fn.index).to_s); _buf << ("\">".freeze); _buf << ((fn.index).to_s); _buf << ("</a>. ".freeze); _buf << ((fn.text).to_s);
1296
+ ; _buf << ("</div>".freeze); end; _buf << ("</div>".freeze); end; _buf
1297
+ end
1298
+ end
1299
+
1300
+ def table(node, opts = {})
1301
+ node.extend(Helpers)
1302
+ node.instance_eval do
1303
+ converter.set_local_variables(binding, opts) unless opts.empty?
1304
+ _buf = ''; classes = ['tableblock', "frame-#{attr :frame, 'all'}", "grid-#{attr :grid, 'all'}", role, ('fragment' if (option? :step) || (attr? 'step'))];
1305
+ ; styles = [("width:#{attr :tablepcwidth}%" unless option? 'autowidth'), ("float:#{attr :float}" if attr? :float)].compact.join('; ');
1306
+ ; _slim_controls1 = html_tag('table', { :id => @id, :class => classes, :style => styles }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1307
+ ; if title?;
1308
+ ; _slim_controls2 << ("<caption class=\"title\">".freeze); _slim_controls2 << ((captioned_title).to_s);
1309
+ ; _slim_controls2 << ("</caption>".freeze); end; unless (attr :rowcount).zero?;
1310
+ ; _slim_controls2 << ("<colgroup>".freeze);
1311
+ ; if option? 'autowidth';
1312
+ ; @columns.each do;
1313
+ ; _slim_controls2 << ("<col>".freeze);
1314
+ ; end; else;
1315
+ ; @columns.each do |col|;
1316
+ ; _slim_controls2 << ("<col style=\"width:".freeze); _slim_controls2 << ((col.attr :colpcwidth).to_s); _slim_controls2 << ("%\">".freeze);
1317
+ ; end; end; _slim_controls2 << ("</colgroup>".freeze); [:head, :foot, :body].select {|tblsec| !@rows[tblsec].empty? }.each do |tblsec|;
1318
+ ;
1319
+ ; _slim_controls2 << ("<t".freeze); _slim_controls2 << ((tblsec).to_s); _slim_controls2 << (">".freeze);
1320
+ ; @rows[tblsec].each do |row|;
1321
+ ; _slim_controls2 << ("<tr>".freeze);
1322
+ ; row.each do |cell|;
1323
+ ;
1324
+ ; if tblsec == :head;
1325
+ ; cell_content = cell.text;
1326
+ ; else;
1327
+ ; case cell.style;
1328
+ ; when :literal;
1329
+ ; cell_content = cell.text;
1330
+ ; else;
1331
+ ; cell_content = cell.content;
1332
+ ; end; end; _slim_controls3 = html_tag(tblsec == :head || cell.style == :header ? 'th' : 'td',
1333
+ :class=>['tableblock', "halign-#{cell.attr :halign}", "valign-#{cell.attr :valign}"],
1334
+ :colspan=>cell.colspan, :rowspan=>cell.rowspan,
1335
+ :style=>((@document.attr? :cellbgcolor) ? %(background-color:#{@document.attr :cellbgcolor};) : nil)) do; _slim_controls4 = '';
1336
+ ; if tblsec == :head;
1337
+ ; _slim_controls4 << ((cell_content).to_s);
1338
+ ; else;
1339
+ ; case cell.style;
1340
+ ; when :asciidoc;
1341
+ ; _slim_controls4 << ("<div>".freeze); _slim_controls4 << ((cell_content).to_s);
1342
+ ; _slim_controls4 << ("</div>".freeze); when :literal;
1343
+ ; _slim_controls4 << ("<div class=\"literal\"><pre>".freeze); _slim_controls4 << ((cell_content).to_s);
1344
+ ; _slim_controls4 << ("</pre></div>".freeze); when :header;
1345
+ ; cell_content.each do |text|;
1346
+ ; _slim_controls4 << ("<p class=\"tableblock header\">".freeze); _slim_controls4 << ((text).to_s);
1347
+ ; _slim_controls4 << ("</p>".freeze); end; else;
1348
+ ; cell_content.each do |text|;
1349
+ ; _slim_controls4 << ("<p class=\"tableblock\">".freeze); _slim_controls4 << ((text).to_s);
1350
+ ; _slim_controls4 << ("</p>".freeze); end; end; end; _slim_controls4; end; _slim_controls2 << ((_slim_controls3).to_s); end; _slim_controls2 << ("</tr>".freeze); end; end; end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1351
+ end
1352
+ end
1353
+
1354
+ def listing(node, opts = {})
1355
+ node.extend(Helpers)
1356
+ node.instance_eval do
1357
+ converter.set_local_variables(binding, opts) unless opts.empty?
1358
+ _buf = ''; nowrap = (option? 'nowrap') || !(document.attr? 'prewrap');
1359
+ ; if @style == 'source';
1360
+ ; syntax_hl = document.syntax_highlighter;
1361
+ ; lang = attr :language;
1362
+ ; if syntax_hl;
1363
+ ; doc_attrs = document.attributes;
1364
+ ; css_mode = (doc_attrs[%(#{syntax_hl.name}-css)] || :class).to_sym;
1365
+ ; style = doc_attrs[%(#{syntax_hl.name}-style)];
1366
+ ; opts = syntax_hl.highlight? ? { css_mode: css_mode, style: style } : {};
1367
+ ; opts[:nowrap] = nowrap;
1368
+ ; end; end; _slim_controls1 = html_tag('div', { :id => id, :class => ['listingblock', role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1369
+ ; if title?;
1370
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((captioned_title).to_s);
1371
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<div class=\"content\">".freeze);
1372
+ ; if syntax_hl;
1373
+ ; _slim_controls2 << (((syntax_hl.format self, lang, opts)).to_s);
1374
+ ; else;
1375
+ ; if @style == 'source';
1376
+ ; _slim_controls2 << ("<pre".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = ['highlight', ('nowrap' if nowrap)]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover1).to_s); _slim_controls2 << ("\"".freeze); end; _slim_controls2 << ("><code".freeze);
1377
+ ; _temple_html_attributeremover2 = ''; _slim_codeattributes2 = [("language-#{lang}" if lang)]; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes2.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes2).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover2).to_s); _slim_controls2 << ("\"".freeze); end; _slim_codeattributes3 = ("#{lang}" if lang); if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" data-lang".freeze); else; _slim_controls2 << (" data-lang=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">".freeze);
1378
+ ; _slim_controls2 << ((content || '').to_s);
1379
+ ; _slim_controls2 << ("</code></pre>".freeze); else;
1380
+ ; _slim_controls2 << ("<pre".freeze); _temple_html_attributeremover3 = ''; _slim_codeattributes4 = [('nowrap' if nowrap)]; if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover3 << ((_slim_codeattributes4.join(" ")).to_s); else; _temple_html_attributeremover3 << ((_slim_codeattributes4).to_s); end; _temple_html_attributeremover3; if !_temple_html_attributeremover3.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover3).to_s); _slim_controls2 << ("\"".freeze); end; _slim_controls2 << (">".freeze);
1381
+ ; _slim_controls2 << ((content || '').to_s);
1382
+ ; _slim_controls2 << ("</pre>".freeze); end; end; _slim_controls2 << ("</div>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1383
+ end
1384
+ end
1385
+
1386
+ def inline_callout(node, opts = {})
1387
+ node.extend(Helpers)
1388
+ node.instance_eval do
1389
+ converter.set_local_variables(binding, opts) unless opts.empty?
1390
+ _buf = ''; if @document.attr? :icons, 'font';
1391
+ ; _buf << ("<i class=\"conum\"".freeze); _slim_codeattributes1 = @text; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" data-value".freeze); else; _buf << (" data-value=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << ("></i><b>".freeze);
1392
+ ; _buf << (("(#{@text})").to_s);
1393
+ ; _buf << ("</b>".freeze); elsif @document.attr? :icons;
1394
+ ; _buf << ("<img".freeze); _slim_codeattributes2 = icon_uri("callouts/#{@text}"); if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = @text; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1395
+ ; else;
1396
+ ; _buf << ("<b>".freeze); _buf << (("(#{@text})").to_s);
1397
+ ; _buf << ("</b>".freeze); end; _buf
980
1398
  end
981
1399
  end
982
1400
 
983
- def literal(node, opts = {})
1401
+ def inline_indexterm(node, opts = {})
984
1402
  node.extend(Helpers)
985
1403
  node.instance_eval do
986
1404
  converter.set_local_variables(binding, opts) unless opts.empty?
987
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "literalblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
988
- ; if title?;
989
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
990
- ; _buf << ("</div>".freeze); end; _buf << ("<div class=\"content\"><pre".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes3 = (!(@document.attr? :prewrap) || (option? 'nowrap') ? 'nowrap' : nil); if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes3).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((content).to_s);
991
- ; _buf << ("</pre></div></div>".freeze); _buf
1405
+ _buf = ''; if @type == :visible;
1406
+ ; _buf << ((@text).to_s);
1407
+ ; end; _buf
992
1408
  end
993
1409
  end
994
1410
 
@@ -1002,97 +1418,114 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
1002
1418
  end
1003
1419
  end
1004
1420
 
1005
- def embedded(node, opts = {})
1421
+ def inline_anchor(node, opts = {})
1006
1422
  node.extend(Helpers)
1007
1423
  node.instance_eval do
1008
1424
  converter.set_local_variables(binding, opts) unless opts.empty?
1009
- _buf = ''; unless notitle || !has_header?;
1010
- ; _buf << ("<h1".freeze); _slim_codeattributes1 = @id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); _buf << ((@header.title).to_s);
1011
- ; _buf << ("</h1>".freeze); end; _buf << ((content).to_s);
1012
- ; unless !footnotes? || attr?(:nofootnotes);
1013
- ; _buf << ("<div id=\"footnotes\"><hr>".freeze);
1014
- ;
1015
- ; footnotes.each do |fn|;
1016
- ; _buf << ("<div class=\"footnote\" id=\"_footnote_".freeze); _buf << ((fn.index).to_s); _buf << ("\"><a href=\"#_footnoteref_".freeze);
1017
- ; _buf << ((fn.index).to_s); _buf << ("\">".freeze); _buf << ((fn.index).to_s); _buf << ("</a>. ".freeze); _buf << ((fn.text).to_s);
1018
- ; _buf << ("</div>".freeze); end; _buf << ("</div>".freeze); end; _buf
1425
+ _buf = ''; case @type;
1426
+ ; when :xref;
1427
+ ; refid = (attr :refid) || @target;
1428
+ ; _slim_controls1 = html_tag('a', { :href => @target, :class => [role, ('fragment' if (option? :step) || (attr? 'step'))].compact }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1429
+ ; _slim_controls2 << (((@text || @document.references[:ids].fetch(refid, "[#{refid}]")).tr_s("\n", ' ')).to_s);
1430
+ ; _slim_controls2; end; _buf << ((_slim_controls1).to_s); when :ref;
1431
+ ; _buf << ((html_tag('a', { :id => @target }.merge(data_attrs(@attributes)))).to_s);
1432
+ ; when :bibref;
1433
+ ; _buf << ((html_tag('a', { :id => @target }.merge(data_attrs(@attributes)))).to_s);
1434
+ ; _buf << ("[".freeze); _buf << ((@target).to_s); _buf << ("]".freeze);
1435
+ ; else;
1436
+ ; _slim_controls3 = html_tag('a', { :href => @target, :class => [role, ('fragment' if (option? :step) || (attr? 'step'))].compact, :target => (attr :window), 'data-preview-link' => (bool_data_attr :preview) }.merge(data_attrs(@attributes))) do; _slim_controls4 = '';
1437
+ ; _slim_controls4 << ((@text).to_s);
1438
+ ; _slim_controls4; end; _buf << ((_slim_controls3).to_s); end; _buf
1019
1439
  end
1020
1440
  end
1021
1441
 
1022
- def sidebar(node, opts = {})
1442
+ def inline_break(node, opts = {})
1023
1443
  node.extend(Helpers)
1024
1444
  node.instance_eval do
1025
1445
  converter.set_local_variables(binding, opts) unless opts.empty?
1026
- _buf = ''; if (has_role? 'aside') or (has_role? 'speaker') or (has_role? 'notes');
1027
- ; _buf << ("<aside class=\"notes\">".freeze); _buf << ((resolve_content).to_s);
1028
- ; _buf << ("</aside>".freeze);
1029
- ; else;
1030
- ; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "sidebarblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << ("><div class=\"content\">".freeze);
1031
- ;
1446
+ _buf = ''; _buf << ((@text).to_s);
1447
+ ; _buf << ("<br>".freeze);
1448
+ ; _buf
1449
+ end
1450
+ end
1451
+
1452
+ def paragraph(node, opts = {})
1453
+ node.extend(Helpers)
1454
+ node.instance_eval do
1455
+ converter.set_local_variables(binding, opts) unless opts.empty?
1456
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => @id, :class => ['paragraph', role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1032
1457
  ; if title?;
1033
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
1034
- ; _buf << ("</div>".freeze); end; _buf << ((content).to_s);
1035
- ; _buf << ("</div></div>".freeze); end; _buf
1458
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
1459
+ ; _slim_controls2 << ("</div>".freeze); end; if has_role? 'small';
1460
+ ; _slim_controls2 << ("<small>".freeze); _slim_controls2 << ((content).to_s);
1461
+ ; _slim_controls2 << ("</small>".freeze); else;
1462
+ ; _slim_controls2 << ("<p>".freeze); _slim_controls2 << ((content).to_s);
1463
+ ; _slim_controls2 << ("</p>".freeze); end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1036
1464
  end
1037
1465
  end
1038
1466
 
1039
- def outline(node, opts = {})
1467
+ def admonition(node, opts = {})
1040
1468
  node.extend(Helpers)
1041
1469
  node.instance_eval do
1042
1470
  converter.set_local_variables(binding, opts) unless opts.empty?
1043
- _buf = ''; unless sections.empty?;
1044
- ; toclevels ||= (document.attr 'toclevels', DEFAULT_TOCLEVELS).to_i;
1045
- ; slevel = section_level sections.first;
1046
- ; _buf << ("<ol class=\"sectlevel".freeze); _buf << ((slevel).to_s); _buf << ("\">".freeze);
1047
- ; sections.each do |sec|;
1048
- ; _buf << ("<li><a href=\"#".freeze);
1049
- ; _buf << ((sec.id).to_s); _buf << ("\">".freeze); _buf << ((section_title sec).to_s);
1050
- ; _buf << ("</a>".freeze); if (sec.level < toclevels) && (child_toc = converter.convert sec, 'outline');
1051
- ; _buf << ((child_toc).to_s);
1052
- ; end; _buf << ("</li>".freeze); end; _buf << ("</ol>".freeze); end; _buf
1471
+ _buf = ''; if (has_role? 'aside') or (has_role? 'speaker') or (has_role? 'notes');
1472
+ ; _buf << ("<aside class=\"notes\">".freeze); _buf << ((resolve_content).to_s);
1473
+ ; _buf << ("</aside>".freeze);
1474
+ ; else;
1475
+ ; _slim_controls1 = html_tag('div', { :id => @id, :class => ['admonitionblock', (attr :name), role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1476
+ ; _slim_controls2 << ("<table><tr><td class=\"icon\">".freeze);
1477
+ ;
1478
+ ; if @document.attr? :icons, 'font';
1479
+ ; icon_mapping = Hash['caution', 'fire', 'important', 'exclamation-circle', 'note', 'info-circle', 'tip', 'lightbulb-o', 'warning', 'warning'];
1480
+ ; _slim_controls2 << ("<i".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = %(fa fa-#{icon_mapping[attr :name]}); if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover1).to_s); _slim_controls2 << ("\"".freeze); end; _slim_codeattributes2 = (attr :textlabel || @caption); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" title".freeze); else; _slim_controls2 << (" title=\"".freeze); _slim_controls2 << ((_slim_codeattributes2).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></i>".freeze);
1481
+ ; elsif @document.attr? :icons;
1482
+ ; _slim_controls2 << ("<img".freeze); _slim_codeattributes3 = icon_uri(attr :name); if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes4 = @caption; if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" alt".freeze); else; _slim_controls2 << (" alt=\"".freeze); _slim_controls2 << ((_slim_codeattributes4).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">".freeze);
1483
+ ; else;
1484
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << (((attr :textlabel) || @caption).to_s);
1485
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("</td><td class=\"content\">".freeze);
1486
+ ; if title?;
1487
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
1488
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ((content).to_s);
1489
+ ; _slim_controls2 << ("</td></tr></table>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); end; _buf
1053
1490
  end
1054
1491
  end
1055
1492
 
1056
- def listing(node, opts = {})
1493
+ def image(node, opts = {})
1057
1494
  node.extend(Helpers)
1058
1495
  node.instance_eval do
1059
1496
  converter.set_local_variables(binding, opts) unless opts.empty?
1060
- _buf = ''; nowrap = (option? 'nowrap') || !(document.attr? 'prewrap');
1061
- ; syntax_hl = document.syntax_highlighter;
1062
- ; if @style == 'source';
1063
- ; lang = attr :language;
1064
- ; if syntax_hl;
1065
- ; doc_attrs = document.attributes;
1066
- ; css_mode = (doc_attrs[%(#{syntax_hl.name}-css)] || :class).to_sym;
1067
- ; style = doc_attrs[%(#{syntax_hl.name}-style)];
1068
- ; opts = syntax_hl.highlight? ? { css_mode: css_mode, style: style } : {};
1069
- ; opts[:nowrap] = nowrap;
1497
+ _buf = ''; width = (attr? :width) ? (attr :width) : nil;
1498
+ ; height = (attr? :height) ? (attr :height) : nil;
1499
+ ;
1500
+ ;
1501
+ ;
1502
+ ;
1503
+ ;
1504
+ ;
1505
+ ; if (has_role? 'stretch') && !((attr? :width) || (attr? :height));
1506
+ ; height = "100%";
1507
+ ;
1508
+ ; end; unless attributes[1] == 'background' || attributes[1] == 'canvas';
1509
+ ; inline_style = [("text-align: #{attr :align}" if attr? :align),("float: #{attr :float}" if attr? :float)].compact.join('; ');
1510
+ ; _slim_controls1 = html_tag('div', { :id => @id, :class => ['imageblock', role, ('fragment' if (option? :step) || (attr? 'step'))], :style => inline_style }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1511
+ ; if attr? :link;
1512
+ ; _slim_controls2 << ("<a class=\"image\"".freeze); _slim_codeattributes1 = (attr :link); if _slim_codeattributes1; if _slim_codeattributes1 == true; _slim_controls2 << (" href".freeze); else; _slim_controls2 << (" href=\"".freeze); _slim_controls2 << ((_slim_codeattributes1).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes2 = (attr :window); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" target".freeze); else; _slim_controls2 << (" target=\"".freeze); _slim_controls2 << ((_slim_codeattributes2).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes3 = (bool_data_attr :link_preview); if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" data-preview-link".freeze); else; _slim_controls2 << (" data-preview-link=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("><img".freeze);
1513
+ ; _slim_codeattributes4 = image_uri(attr :target); if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes4).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes5 = (attr :alt); if _slim_codeattributes5; if _slim_codeattributes5 == true; _slim_controls2 << (" alt".freeze); else; _slim_controls2 << (" alt=\"".freeze); _slim_controls2 << ((_slim_codeattributes5).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes6 = (width); if _slim_codeattributes6; if _slim_codeattributes6 == true; _slim_controls2 << (" width".freeze); else; _slim_controls2 << (" width=\"".freeze); _slim_controls2 << ((_slim_codeattributes6).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes7 = (height); if _slim_codeattributes7; if _slim_codeattributes7 == true; _slim_controls2 << (" height".freeze); else; _slim_controls2 << (" height=\"".freeze); _slim_controls2 << ((_slim_codeattributes7).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes8 = ((attr? :background) ? "background: #{attr :background}" : nil); if _slim_codeattributes8; if _slim_codeattributes8 == true; _slim_controls2 << (" style".freeze); else; _slim_controls2 << (" style=\"".freeze); _slim_controls2 << ((_slim_codeattributes8).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></a>".freeze);
1070
1514
  ; else;
1071
- ; pre_open = %(<pre class="highlight#{nowrap ? ' nowrap' : ''}"><code#{lang ? %[ class="language-#{lang}" data-lang="#{lang}"] : ''}>);
1072
- ; pre_close = '</code></pre>';
1073
- ; end; else;
1074
- ; pre_open = %(<pre#{nowrap ? ' class="nowrap"' : ''}>);
1075
- ; pre_close = '</pre>';
1076
- ; end; id_attribute = id ? %( id="#{id}") : '';
1077
- ; title_element = title? ? %(<div class="title">#{captioned_title}</div>\n) : '';
1078
- ; _buf << ((%(<div#{id_attribute} class="listingblock#{(role = self.role) ? " #{role}" : ''}">#{title_element}<div class="content">#{syntax_hl ? (syntax_hl.format self, lang, opts) : pre_open + (content || '') + pre_close}</div></div>)).to_s);
1079
- ; _buf
1515
+ ; _slim_controls2 << ("<img".freeze); _slim_codeattributes9 = image_uri(attr :target); if _slim_codeattributes9; if _slim_codeattributes9 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes9).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes10 = (attr :alt); if _slim_codeattributes10; if _slim_codeattributes10 == true; _slim_controls2 << (" alt".freeze); else; _slim_controls2 << (" alt=\"".freeze); _slim_controls2 << ((_slim_codeattributes10).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes11 = (width); if _slim_codeattributes11; if _slim_codeattributes11 == true; _slim_controls2 << (" width".freeze); else; _slim_controls2 << (" width=\"".freeze); _slim_controls2 << ((_slim_codeattributes11).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes12 = (height); if _slim_codeattributes12; if _slim_codeattributes12 == true; _slim_controls2 << (" height".freeze); else; _slim_controls2 << (" height=\"".freeze); _slim_controls2 << ((_slim_codeattributes12).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes13 = ((attr? :background) ? "background: #{attr :background}" : nil); if _slim_codeattributes13; if _slim_codeattributes13 == true; _slim_controls2 << (" style".freeze); else; _slim_controls2 << (" style=\"".freeze); _slim_controls2 << ((_slim_codeattributes13).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">".freeze);
1516
+ ; end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); if title?;
1517
+ ; _buf << ("<div class=\"title\">".freeze); _buf << ((captioned_title).to_s);
1518
+ ; _buf << ("</div>".freeze); end; end; _buf
1080
1519
  end
1081
1520
  end
1082
1521
 
1083
- def inline_kbd(node, opts = {})
1522
+ def preamble(node, opts = {})
1084
1523
  node.extend(Helpers)
1085
1524
  node.instance_eval do
1086
1525
  converter.set_local_variables(binding, opts) unless opts.empty?
1087
- _buf = ''; if (keys = attr 'keys').size == 1;
1088
- ; _buf << ("<kbd>".freeze); _buf << ((keys.first).to_s);
1089
- ; _buf << ("</kbd>".freeze); else;
1090
- ; _buf << ("<span class=\"keyseq\">".freeze);
1091
- ; keys.each_with_index do |key, idx|;
1092
- ; unless idx.zero?;
1093
- ; _buf << ("+".freeze);
1094
- ; end; _buf << ("<kbd>".freeze); _buf << ((key).to_s);
1095
- ; _buf << ("</kbd>".freeze); end; _buf << ("</span>".freeze); end; _buf
1526
+ _buf = '';
1527
+ ;
1528
+ ; _buf
1096
1529
  end
1097
1530
  end
1098
1531
 
@@ -1132,13 +1565,23 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
1132
1565
  ; end; if attr? 'background-image';
1133
1566
  ; data_background_image = image_uri(attr 'background-image');
1134
1567
  ;
1568
+ ; end; if attr? 'background-video';
1569
+ ; data_background_video = media_uri(attr 'background-video');
1570
+ ;
1135
1571
  ; end; if attr? 'background-color';
1136
1572
  ; data_background_color = attr 'background-color';
1137
1573
  ;
1574
+ ; end; parent_section_with_vertical_slides = @level == 1 && !vertical_slides.empty?;
1138
1575
  ;
1576
+ ; content_for :footnotes do;
1577
+ ; slide_footnotes = slide_footnotes(self);
1578
+ ; if document.footnotes? && !(parent.attr? 'nofootnotes') && !slide_footnotes.empty?;
1579
+ ; _buf << ("<div class=\"footnotes\">".freeze);
1580
+ ; slide_footnotes.each do |footnote|;
1581
+ ; _buf << ("<div class=\"footnote\">".freeze);
1582
+ ; _buf << (("#{footnote.index}. #{footnote.text}").to_s);
1139
1583
  ;
1140
- ; end; if @level == 1 && !vertical_slides.empty?;
1141
- ; _buf << ("<section><section".freeze);
1584
+ ; _buf << ("</div>".freeze); end; _buf << ("</div>".freeze); end; end; content_for :section do;
1142
1585
  ;
1143
1586
  ;
1144
1587
  ;
@@ -1155,13 +1598,30 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
1155
1598
  ;
1156
1599
  ;
1157
1600
  ;
1158
- ; _slim_codeattributes1 = (titleless ? nil : id); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover1 = ''; _slim_codeattributes2 = roles; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes2.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes2).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes3 = (attr 'transition'); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes4 = (attr 'transition-speed'); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = data_background_color; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = data_background_image; if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes7 = (data_background_size || attr('background-size')); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes8 = (data_background_repeat || attr('background-repeat')); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes9 = (data_background_transition || attr('background-transition')); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes10 = (data_background_position || attr('background-position')); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = (attr "background-iframe"); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (attr "background-video"); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = ((attr? 'background-video-loop') || (option? 'loop')); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = ((attr? 'background-video-muted') || (option? 'muted')); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = (attr "background-opacity"); if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = (attr 'state'); if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" data-state".freeze); else; _buf << (" data-state=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1159
- ;
1601
+ ; _buf << ("<section".freeze); _slim_codeattributes1 = (titleless ? nil : id); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover1 = ''; _slim_codeattributes2 = roles; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes2.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes2).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes3 = (attr 'transition'); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes4 = (attr 'transition-speed'); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = data_background_color; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = data_background_image; if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes7 = (data_background_size || attr('background-size')); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes8 = (data_background_repeat || attr('background-repeat')); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes9 = (data_background_transition || attr('background-transition')); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes10 = (data_background_position || attr('background-position')); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = (attr "background-iframe"); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = data_background_video; if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = ((attr? 'background-video-loop') || (option? 'loop')); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = ((attr? 'background-video-muted') || (option? 'muted')); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = (attr "background-opacity"); if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = (attr "autoslide"); if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" data-autoslide".freeze); else; _buf << (" data-autoslide=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes17 = (attr 'state'); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" data-state".freeze); else; _buf << (" data-state=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1160
1602
  ; unless hide_title;
1161
- ; _buf << ("<h2>".freeze); _buf << ((title).to_s);
1162
- ; _buf << ("</h2>".freeze); end; (blocks - vertical_slides).each do |block|;
1603
+ ; _buf << ("<h2>".freeze); _buf << ((section_title).to_s);
1604
+ ; _buf << ("</h2>".freeze); end; if parent_section_with_vertical_slides;
1605
+ ; unless (_blocks = blocks - vertical_slides).empty?;
1606
+ ; _buf << ("<div class=\"slide-content\">".freeze);
1607
+ ; _blocks.each do |block|;
1163
1608
  ; _buf << ((block.convert).to_s);
1164
- ; end; _buf << ("</section>".freeze); vertical_slides.each do |subsection|;
1609
+ ; end; _buf << ("</div>".freeze); end; yield_content :footnotes;
1610
+ ;
1611
+ ; else;
1612
+ ; unless (_content = content.chomp).empty?;
1613
+ ; _buf << ("<div class=\"slide-content\">".freeze);
1614
+ ; _buf << ((_content).to_s);
1615
+ ; _buf << ("</div>".freeze); end; yield_content :footnotes;
1616
+ ;
1617
+ ; end; clear_slide_footnotes;
1618
+ ;
1619
+ ; _buf << ("</section>".freeze);
1620
+ ;
1621
+ ; end; if parent_section_with_vertical_slides;
1622
+ ; _buf << ("<section>".freeze);
1623
+ ; yield_content :section;
1624
+ ; vertical_slides.each do |subsection|;
1165
1625
  ; _buf << ((subsection.convert).to_s);
1166
1626
  ;
1167
1627
  ; end; _buf << ("</section>".freeze);
@@ -1171,265 +1631,88 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base
1171
1631
  ; _slim_htag_filter1 = ((@level)).to_s; _buf << ("<h".freeze); _buf << ((_slim_htag_filter1).to_s); _buf << (">".freeze); _buf << ((title).to_s);
1172
1632
  ; _buf << ("</h".freeze); _buf << ((_slim_htag_filter1).to_s); _buf << (">".freeze); _buf << ((content.chomp).to_s);
1173
1633
  ; else;
1174
- ;
1175
- ;
1176
- ;
1177
- ;
1178
- ;
1179
- ;
1180
- ;
1181
- ;
1182
- ;
1183
- ;
1184
- ;
1185
- ;
1186
- ;
1187
- ;
1188
- ;
1189
- ; _buf << ("<section".freeze); _slim_codeattributes17 = (titleless ? nil : id); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover2 = ''; _slim_codeattributes18 = roles; if Array === _slim_codeattributes18; _slim_codeattributes18 = _slim_codeattributes18.flatten; _slim_codeattributes18.map!(&:to_s); _slim_codeattributes18.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes18.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes18).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _slim_codeattributes19 = (attr 'transition'); if _slim_codeattributes19; if _slim_codeattributes19 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes19).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes20 = (attr 'transition-speed'); if _slim_codeattributes20; if _slim_codeattributes20 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes20).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes21 = data_background_color; if _slim_codeattributes21; if _slim_codeattributes21 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes21).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes22 = data_background_image; if _slim_codeattributes22; if _slim_codeattributes22 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes22).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes23 = (data_background_size || attr('background-size')); if _slim_codeattributes23; if _slim_codeattributes23 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes23).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes24 = (data_background_repeat || attr('background-repeat')); if _slim_codeattributes24; if _slim_codeattributes24 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes24).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes25 = (data_background_transition || attr('background-transition')); if _slim_codeattributes25; if _slim_codeattributes25 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes25).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes26 = (data_background_position || attr('background-position')); if _slim_codeattributes26; if _slim_codeattributes26 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes26).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes27 = (attr "background-iframe"); if _slim_codeattributes27; if _slim_codeattributes27 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes27).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes28 = (attr "background-video"); if _slim_codeattributes28; if _slim_codeattributes28 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes28).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes29 = ((attr? 'background-video-loop') || (option? 'loop')); if _slim_codeattributes29; if _slim_codeattributes29 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes29).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes30 = ((attr? 'background-video-muted') || (option? 'muted')); if _slim_codeattributes30; if _slim_codeattributes30 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes30).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes31 = (attr "background-opacity"); if _slim_codeattributes31; if _slim_codeattributes31 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes31).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes32 = (attr 'state'); if _slim_codeattributes32; if _slim_codeattributes32 == true; _buf << (" data-state".freeze); else; _buf << (" data-state=\"".freeze); _buf << ((_slim_codeattributes32).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1190
- ;
1191
- ; unless hide_title;
1192
- ; _buf << ("<h2>".freeze); _buf << ((title).to_s);
1193
- ; _buf << ("</h2>".freeze); end; _buf << ((content.chomp).to_s);
1194
- ; _buf << ("</section>".freeze); end; end; _buf
1195
- end
1196
- end
1197
-
1198
- def example(node, opts = {})
1199
- node.extend(Helpers)
1200
- node.instance_eval do
1201
- converter.set_local_variables(binding, opts) unless opts.empty?
1202
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "exampleblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1203
- ; if title?;
1204
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((captioned_title).to_s);
1205
- ; _buf << ("</div>".freeze); end; _buf << ("<div class=\"content\">".freeze); _buf << ((content).to_s);
1206
- ; _buf << ("</div></div>".freeze); _buf
1207
- end
1208
- end
1209
-
1210
- def inline_button(node, opts = {})
1211
- node.extend(Helpers)
1212
- node.instance_eval do
1213
- converter.set_local_variables(binding, opts) unless opts.empty?
1214
- _buf = ''; _buf << ("<b class=\"button\">".freeze); _buf << ((@text).to_s);
1215
- ; _buf << ("</b>".freeze); _buf
1216
- end
1217
- end
1218
-
1219
- def inline_menu(node, opts = {})
1220
- node.extend(Helpers)
1221
- node.instance_eval do
1222
- converter.set_local_variables(binding, opts) unless opts.empty?
1223
- _buf = ''; menu = attr 'menu';
1224
- ; menuitem = attr 'menuitem';
1225
- ; if !(submenus = attr 'submenus').empty?;
1226
- ; _buf << ("<span class=\"menuseq\"><span class=\"menu\">".freeze);
1227
- ; _buf << ((menu).to_s);
1228
- ; _buf << ("</span>&#160;&#9656;&#32;".freeze);
1229
- ; _buf << ((submenus.map {|submenu| %(<span class="submenu">#{submenu}</span>&#160;&#9656;&#32;) }.join).to_s);
1230
- ; _buf << ("<span class=\"menuitem\">".freeze); _buf << ((menuitem).to_s);
1231
- ; _buf << ("</span></span>".freeze); elsif !menuitem.nil?;
1232
- ; _buf << ("<span class=\"menuseq\"><span class=\"menu\">".freeze);
1233
- ; _buf << ((menu).to_s);
1234
- ; _buf << ("</span>&#160;&#9656;&#32;<span class=\"menuitem\">".freeze);
1235
- ; _buf << ((menuitem).to_s);
1236
- ; _buf << ("</span></span>".freeze); else;
1237
- ; _buf << ("<span class=\"menu\">".freeze); _buf << ((menu).to_s);
1238
- ; _buf << ("</span>".freeze); end; _buf
1239
- end
1240
- end
1241
-
1242
- def audio(node, opts = {})
1243
- node.extend(Helpers)
1244
- node.instance_eval do
1245
- converter.set_local_variables(binding, opts) unless opts.empty?
1246
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "audioblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = [@style,role]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1247
- ; if title?;
1248
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((captioned_title).to_s);
1249
- ; _buf << ("</div>".freeze); end; _buf << ("<div class=\"content\"><audio".freeze);
1250
- ; _slim_codeattributes3 = media_uri(attr :target); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes4 = (option? 'autoplay'); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" autoplay".freeze); else; _buf << (" autoplay=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = !(option? 'nocontrols'); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" controls".freeze); else; _buf << (" controls=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = (option? 'loop'); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" loop".freeze); else; _buf << (" loop=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << (">Your browser does not support the audio tag.</audio></div></div>".freeze);
1251
- ;
1252
- ; _buf
1253
- end
1254
- end
1255
-
1256
- def stem(node, opts = {})
1257
- node.extend(Helpers)
1258
- node.instance_eval do
1259
- converter.set_local_variables(binding, opts) unless opts.empty?
1260
- _buf = ''; open, close = Asciidoctor::BLOCK_MATH_DELIMITERS[@style.to_sym];
1261
- ; equation = content.strip;
1262
- ; if (@subs.nil? || @subs.empty?) && !(attr? 'subs');
1263
- ; equation = sub_specialcharacters equation;
1264
- ; end; unless (equation.start_with? open) && (equation.end_with? close);
1265
- ; equation = %(#{open}#{equation}#{close});
1266
- ; end; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "stemblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = role; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1267
- ; if title?;
1268
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
1269
- ; _buf << ("</div>".freeze); end; _buf << ("<div class=\"content\">".freeze); _buf << ((equation).to_s);
1270
- ; _buf << ("</div></div>".freeze); _buf
1634
+ ; yield_content :section;
1635
+ ; end; end; _buf
1271
1636
  end
1272
1637
  end
1273
1638
 
1274
- def olist(node, opts = {})
1639
+ def open(node, opts = {})
1275
1640
  node.extend(Helpers)
1276
1641
  node.instance_eval do
1277
1642
  converter.set_local_variables(binding, opts) unless opts.empty?
1278
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "olist"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = [@style,role]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1643
+ _buf = ''; if @style == 'abstract';
1644
+ ; if @parent == @document && @document.doctype == 'book';
1645
+ ; puts 'asciidoctor: WARNING: abstract block cannot be used in a document without a title when doctype is book. Excluding block content.';
1646
+ ; else;
1647
+ ; _slim_controls1 = html_tag('div', { :id => @id, :class => ['quoteblock', 'abstract', role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1279
1648
  ; if title?;
1280
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
1281
- ; _buf << ("</div>".freeze); end; _buf << ("<ol".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes3 = @style; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes3).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _slim_codeattributes4 = (attr :start); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" start".freeze); else; _buf << (" start=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = list_marker_keyword; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" type".freeze); else; _buf << (" type=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1282
- ; items.each do |item|;
1283
- ; _buf << ("<li".freeze); _temple_html_attributeremover3 = ''; _slim_codeattributes6 = ('fragment' if (option? :step) or (has_role? 'step')); if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover3 << ((_slim_codeattributes6.join(" ")).to_s); else; _temple_html_attributeremover3 << ((_slim_codeattributes6).to_s); end; _temple_html_attributeremover3; if !_temple_html_attributeremover3.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover3).to_s); _buf << ("\"".freeze); end; _buf << ("><p>".freeze);
1284
- ; _buf << ((item.text).to_s);
1285
- ; _buf << ("</p>".freeze); if item.blocks?;
1286
- ; _buf << ((item.content).to_s);
1287
- ; end; _buf << ("</li>".freeze); end; _buf << ("</ol></div>".freeze); _buf
1288
- end
1289
- end
1290
-
1291
- def inline_anchor(node, opts = {})
1292
- node.extend(Helpers)
1293
- node.instance_eval do
1294
- converter.set_local_variables(binding, opts) unless opts.empty?
1295
- _buf = ''; case @type;
1296
- ; when :xref;
1297
- ; refid = (attr :refid) || @target;
1298
- ; _buf << ("<a".freeze); _slim_codeattributes1 = @target; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); _buf << (((@text || @document.references[:ids].fetch(refid, "[#{refid}]")).tr_s("\n", ' ')).to_s);
1299
- ; _buf << ("</a>".freeze); when :ref;
1300
- ; _buf << ("<a".freeze); _slim_codeattributes2 = @target; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << ("></a>".freeze);
1301
- ; when :bibref;
1302
- ; _buf << ("<a".freeze); _slim_codeattributes3 = @target; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << ("></a>[".freeze);
1303
- ; _buf << ((@target).to_s); _buf << ("]".freeze);
1649
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((title).to_s);
1650
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<blockquote>".freeze); _slim_controls2 << ((content).to_s);
1651
+ ; _slim_controls2 << ("</blockquote>".freeze); _slim_controls2; end; _buf << ((_slim_controls1).to_s); end; elsif @style == 'partintro' && (@level != 0 || @parent.context != :section || @document.doctype != 'book');
1652
+ ; puts 'asciidoctor: ERROR: partintro block can only be used when doctype is book and it\'s a child of a book part. Excluding block content.';
1304
1653
  ; else;
1305
- ; _buf << ("<a".freeze); _slim_codeattributes4 = @target; if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover1 = ''; _slim_codeattributes5 = role; if Array === _slim_codeattributes5; _slim_codeattributes5 = _slim_codeattributes5.flatten; _slim_codeattributes5.map!(&:to_s); _slim_codeattributes5.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes5.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes5).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes6 = (attr :window); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" target".freeze); else; _buf << (" target=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); _buf << ((@text).to_s);
1306
- ; _buf << ("</a>".freeze); end; _buf
1307
- end
1308
- end
1309
-
1310
- def admonition(node, opts = {})
1311
- node.extend(Helpers)
1312
- node.instance_eval do
1313
- converter.set_local_variables(binding, opts) unless opts.empty?
1314
- _buf = ''; if (has_role? 'aside') or (has_role? 'speaker') or (has_role? 'notes');
1654
+ ; if (has_role? 'aside') or (has_role? 'speaker') or (has_role? 'notes');
1315
1655
  ; _buf << ("<aside class=\"notes\">".freeze); _buf << ((resolve_content).to_s);
1316
1656
  ; _buf << ("</aside>".freeze);
1317
1657
  ; else;
1318
- ; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "admonitionblock"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = [(attr :name),role]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << ("><table><tr><td class=\"icon\">".freeze);
1319
- ;
1320
- ;
1321
- ; if @document.attr? :icons, 'font';
1322
- ; icon_mapping = Hash['caution', 'fire', 'important', 'exclamation-circle', 'note', 'info-circle', 'tip', 'lightbulb-o', 'warning', 'warning'];
1323
- ; _buf << ("<i".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes3 = %(fa fa-#{icon_mapping[attr :name]}); if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes3).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _slim_codeattributes4 = (attr :textlabel || @caption); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" title".freeze); else; _buf << (" title=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << ("></i>".freeze);
1324
- ; elsif @document.attr? :icons;
1325
- ; _buf << ("<img".freeze); _slim_codeattributes5 = icon_uri(attr :name); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = @caption; if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1326
- ; else;
1327
- ; _buf << ("<div class=\"title\">".freeze); _buf << (((attr :textlabel) || @caption).to_s);
1328
- ; _buf << ("</div>".freeze); end; _buf << ("</td><td class=\"content\">".freeze);
1658
+ ; _slim_controls3 = html_tag('div', { :id => @id, :class => ['openblock', (@style != 'open' ? @style : nil), role, ('fragment' if (option? :step) || (attr? 'step'))] }.merge(data_attrs(@attributes))) do; _slim_controls4 = '';
1329
1659
  ; if title?;
1330
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
1331
- ; _buf << ("</div>".freeze); end; _buf << ((content).to_s);
1332
- ; _buf << ("</td></tr></table></div>".freeze); end; _buf
1660
+ ; _slim_controls4 << ("<div class=\"title\">".freeze); _slim_controls4 << ((title).to_s);
1661
+ ; _slim_controls4 << ("</div>".freeze); end; _slim_controls4 << ("<div class=\"content\">".freeze); _slim_controls4 << ((content).to_s);
1662
+ ; _slim_controls4 << ("</div>".freeze); _slim_controls4; end; _buf << ((_slim_controls3).to_s); end; end; _buf
1333
1663
  end
1334
1664
  end
1335
1665
 
1336
- def inline_quoted(node, opts = {})
1666
+ def inline_button(node, opts = {})
1337
1667
  node.extend(Helpers)
1338
1668
  node.instance_eval do
1339
1669
  converter.set_local_variables(binding, opts) unless opts.empty?
1340
- _buf = ''; unless @id.nil?;
1341
- ; _buf << ("<a".freeze); _slim_codeattributes1 = @id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _buf << ("></a>".freeze);
1342
- ; end; case @type;
1343
- ; when :emphasis;
1344
- ; _buf << ("<em".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes2 = role; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes2.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes2).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((@text).to_s);
1345
- ; _buf << ("</em>".freeze); when :strong;
1346
- ; _buf << ("<strong".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes3 = role; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes3).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((@text).to_s);
1347
- ; _buf << ("</strong>".freeze); when :monospaced;
1348
- ; _buf << ("<code".freeze); _temple_html_attributeremover3 = ''; _slim_codeattributes4 = role; if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover3 << ((_slim_codeattributes4.join(" ")).to_s); else; _temple_html_attributeremover3 << ((_slim_codeattributes4).to_s); end; _temple_html_attributeremover3; if !_temple_html_attributeremover3.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover3).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((@text).to_s);
1349
- ; _buf << ("</code>".freeze); when :superscript;
1350
- ; _buf << ("<sup".freeze); _temple_html_attributeremover4 = ''; _slim_codeattributes5 = role; if Array === _slim_codeattributes5; _slim_codeattributes5 = _slim_codeattributes5.flatten; _slim_codeattributes5.map!(&:to_s); _slim_codeattributes5.reject!(&:empty?); _temple_html_attributeremover4 << ((_slim_codeattributes5.join(" ")).to_s); else; _temple_html_attributeremover4 << ((_slim_codeattributes5).to_s); end; _temple_html_attributeremover4; if !_temple_html_attributeremover4.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover4).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((@text).to_s);
1351
- ; _buf << ("</sup>".freeze); when :subscript;
1352
- ; _buf << ("<sub".freeze); _temple_html_attributeremover5 = ''; _slim_codeattributes6 = role; if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover5 << ((_slim_codeattributes6.join(" ")).to_s); else; _temple_html_attributeremover5 << ((_slim_codeattributes6).to_s); end; _temple_html_attributeremover5; if !_temple_html_attributeremover5.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover5).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((@text).to_s);
1353
- ; _buf << ("</sub>".freeze); when :double;
1354
- ; _buf << ((role? ? %(<span class="#{role}">&#8220;#{@text}&#8221;</span>) : %(&#8220;#{@text}&#8221;)).to_s);
1355
- ; when :single;
1356
- ; _buf << ((role? ? %(<span class="#{role}">&#8216;#{@text}&#8217;</span>) : %(&#8216;#{@text}&#8217;)).to_s);
1357
- ; when :asciimath, :latexmath;
1358
- ; open, close = Asciidoctor::INLINE_MATH_DELIMITERS[@type];
1359
- ; _buf << ((open).to_s); _buf << ((@text).to_s); _buf << ((close).to_s);
1360
- ; else;
1361
- ; _buf << ((role? ? %(<span class="#{role}">#{@text}</span>) : @text).to_s);
1362
- ; end; _buf
1670
+ _buf = ''; _slim_controls1 = html_tag('b', { :class => ['button'] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1671
+ ; _slim_controls2 << ((@text).to_s);
1672
+ ; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1363
1673
  end
1364
1674
  end
1365
1675
 
1366
- def ulist(node, opts = {})
1676
+ def inline_image(node, opts = {})
1367
1677
  node.extend(Helpers)
1368
1678
  node.instance_eval do
1369
1679
  converter.set_local_variables(binding, opts) unless opts.empty?
1370
- _buf = ''; if (checklist = (option? :checklist) ? 'checklist' : nil);
1371
- ; if option? :interactive;
1372
- ; marker_checked = '<input type="checkbox" data-item-complete="1" checked>';
1373
- ; marker_unchecked = '<input type="checkbox" data-item-complete="0">';
1680
+ _buf = ''; _slim_controls1 = html_tag('span', { :class => [@type, role, ('fragment' if (option? :step) || (attr? 'step'))], :style => ("float: #{attr :float}" if attr? :float) }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1681
+ ; if @type == 'icon' && (@document.attr? :icons, 'font');
1682
+ ; style_class = [(attr :set, 'fa'), "fa-#{@target}", ("fa-#{attr :size}" if attr? :size), ("fa-rotate-#{attr :rotate}" if attr? :rotate), ("fa-flip-#{attr :flip}" if attr? :flip)];
1683
+ ; if attr? :link;
1684
+ ; _slim_controls2 << ("<a class=\"image\"".freeze); _slim_codeattributes1 = (attr :link); if _slim_codeattributes1; if _slim_codeattributes1 == true; _slim_controls2 << (" href".freeze); else; _slim_controls2 << (" href=\"".freeze); _slim_controls2 << ((_slim_codeattributes1).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes2 = (attr :window); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" target".freeze); else; _slim_controls2 << (" target=\"".freeze); _slim_controls2 << ((_slim_codeattributes2).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes3 = (bool_data_attr :link_preview); if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" data-preview-link".freeze); else; _slim_controls2 << (" data-preview-link=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("><i".freeze);
1685
+ ; _temple_html_attributeremover1 = ''; _slim_codeattributes4 = style_class; if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes4.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes4).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover1).to_s); _slim_controls2 << ("\"".freeze); end; _slim_codeattributes5 = (attr :title); if _slim_codeattributes5; if _slim_codeattributes5 == true; _slim_controls2 << (" title".freeze); else; _slim_controls2 << (" title=\"".freeze); _slim_controls2 << ((_slim_codeattributes5).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></i></a>".freeze);
1374
1686
  ; else;
1375
- ; if @document.attr? :icons, 'font';
1376
- ; marker_checked = '<i class="icon-check"></i>';
1377
- ; marker_unchecked = '<i class="icon-check-empty"></i>';
1687
+ ; _slim_controls2 << ("<i".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes6 = style_class; if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes6.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes6).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\"".freeze); _slim_controls2 << ((_temple_html_attributeremover2).to_s); _slim_controls2 << ("\"".freeze); end; _slim_codeattributes7 = (attr :title); if _slim_codeattributes7; if _slim_codeattributes7 == true; _slim_controls2 << (" title".freeze); else; _slim_controls2 << (" title=\"".freeze); _slim_controls2 << ((_slim_codeattributes7).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></i>".freeze);
1688
+ ; end; elsif @type == 'icon' && !(@document.attr? :icons);
1689
+ ; if attr? :link;
1690
+ ; _slim_controls2 << ("<a class=\"image\"".freeze); _slim_codeattributes8 = (attr :link); if _slim_codeattributes8; if _slim_codeattributes8 == true; _slim_controls2 << (" href".freeze); else; _slim_controls2 << (" href=\"".freeze); _slim_controls2 << ((_slim_codeattributes8).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes9 = (attr :window); if _slim_codeattributes9; if _slim_codeattributes9 == true; _slim_controls2 << (" target".freeze); else; _slim_controls2 << (" target=\"".freeze); _slim_controls2 << ((_slim_codeattributes9).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes10 = (bool_data_attr :link_preview); if _slim_codeattributes10; if _slim_codeattributes10 == true; _slim_controls2 << (" data-preview-link".freeze); else; _slim_controls2 << (" data-preview-link=\"".freeze); _slim_controls2 << ((_slim_codeattributes10).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">[".freeze);
1691
+ ; _slim_controls2 << ((attr :alt).to_s); _slim_controls2 << ("]</a>".freeze);
1378
1692
  ; else;
1379
- ;
1380
- ; marker_checked = '<input type="checkbox" data-item-complete="1" checked disabled>';
1381
- ; marker_unchecked = '<input type="checkbox" data-item-complete="0" disabled>';
1382
- ; end; end; end; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "ulist"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = [checklist,@style,role]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1383
- ; if title?;
1384
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
1385
- ; _buf << ("</div>".freeze); end; _buf << ("<ul".freeze); _temple_html_attributeremover2 = ''; _slim_codeattributes3 = (checklist || @style); if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes3.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes3).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze);
1386
- ; items.each do |item|;
1387
- ; _buf << ("<li".freeze); _temple_html_attributeremover3 = ''; _slim_codeattributes4 = ('fragment' if (option? :step) || (has_role? 'step')); if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover3 << ((_slim_codeattributes4.join(" ")).to_s); else; _temple_html_attributeremover3 << ((_slim_codeattributes4).to_s); end; _temple_html_attributeremover3; if !_temple_html_attributeremover3.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover3).to_s); _buf << ("\"".freeze); end; _buf << ("><p>".freeze);
1388
- ;
1389
- ; if checklist && (item.attr? :checkbox);
1390
- ; _buf << ((%(#{(item.attr? :checked) ? marker_checked : marker_unchecked}#{item.text})).to_s);
1693
+ ; _slim_controls2 << ("[".freeze); _slim_controls2 << ((attr :alt).to_s); _slim_controls2 << ("]".freeze);
1694
+ ; end; else;
1695
+ ; src = (@type == 'icon' ? (icon_uri @target) : (image_uri @target));
1696
+ ; if attr? :link;
1697
+ ; _slim_controls2 << ("<a class=\"image\"".freeze); _slim_codeattributes11 = (attr :link); if _slim_codeattributes11; if _slim_codeattributes11 == true; _slim_controls2 << (" href".freeze); else; _slim_controls2 << (" href=\"".freeze); _slim_controls2 << ((_slim_codeattributes11).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes12 = (attr :window); if _slim_codeattributes12; if _slim_codeattributes12 == true; _slim_controls2 << (" target".freeze); else; _slim_controls2 << (" target=\"".freeze); _slim_controls2 << ((_slim_codeattributes12).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes13 = (bool_data_attr :link_preview); if _slim_codeattributes13; if _slim_codeattributes13 == true; _slim_controls2 << (" data-preview-link".freeze); else; _slim_controls2 << (" data-preview-link=\"".freeze); _slim_controls2 << ((_slim_codeattributes13).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("><img".freeze);
1698
+ ; _slim_codeattributes14 = src; if _slim_codeattributes14; if _slim_codeattributes14 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes14).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes15 = (attr :alt); if _slim_codeattributes15; if _slim_codeattributes15 == true; _slim_controls2 << (" alt".freeze); else; _slim_controls2 << (" alt=\"".freeze); _slim_controls2 << ((_slim_codeattributes15).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes16 = (attr :width); if _slim_codeattributes16; if _slim_codeattributes16 == true; _slim_controls2 << (" width".freeze); else; _slim_controls2 << (" width=\"".freeze); _slim_controls2 << ((_slim_codeattributes16).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes17 = (attr :height); if _slim_codeattributes17; if _slim_codeattributes17 == true; _slim_controls2 << (" height".freeze); else; _slim_controls2 << (" height=\"".freeze); _slim_controls2 << ((_slim_codeattributes17).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes18 = (attr :title); if _slim_codeattributes18; if _slim_codeattributes18 == true; _slim_controls2 << (" title".freeze); else; _slim_controls2 << (" title=\"".freeze); _slim_controls2 << ((_slim_codeattributes18).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << ("></a>".freeze);
1391
1699
  ; else;
1392
- ; _buf << ((item.text).to_s);
1393
- ; end; _buf << ("</p>".freeze); if item.blocks?;
1394
- ; _buf << ((item.content).to_s);
1395
- ; end; _buf << ("</li>".freeze); end; _buf << ("</ul></div>".freeze); _buf
1700
+ ; _slim_controls2 << ("<img".freeze); _slim_codeattributes19 = src; if _slim_codeattributes19; if _slim_codeattributes19 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes19).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes20 = (attr :alt); if _slim_codeattributes20; if _slim_codeattributes20 == true; _slim_controls2 << (" alt".freeze); else; _slim_controls2 << (" alt=\"".freeze); _slim_controls2 << ((_slim_codeattributes20).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes21 = (attr :width); if _slim_codeattributes21; if _slim_codeattributes21 == true; _slim_controls2 << (" width".freeze); else; _slim_controls2 << (" width=\"".freeze); _slim_controls2 << ((_slim_codeattributes21).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes22 = (attr :height); if _slim_codeattributes22; if _slim_codeattributes22 == true; _slim_controls2 << (" height".freeze); else; _slim_controls2 << (" height=\"".freeze); _slim_controls2 << ((_slim_codeattributes22).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes23 = (attr :title); if _slim_codeattributes23; if _slim_codeattributes23 == true; _slim_controls2 << (" title".freeze); else; _slim_controls2 << (" title=\"".freeze); _slim_controls2 << ((_slim_codeattributes23).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">".freeze);
1701
+ ; end; end; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1396
1702
  end
1397
1703
  end
1398
1704
 
1399
- def ruler(node, opts = {})
1400
- node.extend(Helpers)
1401
- node.instance_eval do
1402
- converter.set_local_variables(binding, opts) unless opts.empty?
1403
- _buf = ''; _buf << ("<hr>".freeze);
1404
- ; _buf
1405
- end
1406
- end
1407
-
1408
- def colist(node, opts = {})
1705
+ def audio(node, opts = {})
1409
1706
  node.extend(Helpers)
1410
1707
  node.instance_eval do
1411
1708
  converter.set_local_variables(binding, opts) unless opts.empty?
1412
- _buf = ''; _buf << ("<div".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "colist"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes1 = [@style,role]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes1).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = @id; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1709
+ _buf = ''; _slim_controls1 = html_tag('div', { :id => @id, :class => ['audioblock', @style, role] }.merge(data_attrs(@attributes))) do; _slim_controls2 = '';
1413
1710
  ; if title?;
1414
- ; _buf << ("<div class=\"title\">".freeze); _buf << ((title).to_s);
1415
- ; _buf << ("</div>".freeze); end; if @document.attr? :icons;
1416
- ; font_icons = @document.attr? :icons, 'font';
1417
- ; _buf << ("<table>".freeze);
1418
- ; items.each_with_index do |item, i|;
1419
- ; num = i + 1;
1420
- ; _buf << ("<tr><td>".freeze);
1711
+ ; _slim_controls2 << ("<div class=\"title\">".freeze); _slim_controls2 << ((captioned_title).to_s);
1712
+ ; _slim_controls2 << ("</div>".freeze); end; _slim_controls2 << ("<div class=\"content\"><audio".freeze);
1713
+ ; _slim_codeattributes1 = media_uri(attr :target); if _slim_codeattributes1; if _slim_codeattributes1 == true; _slim_controls2 << (" src".freeze); else; _slim_controls2 << (" src=\"".freeze); _slim_controls2 << ((_slim_codeattributes1).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes2 = (option? 'autoplay'); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" autoplay".freeze); else; _slim_controls2 << (" autoplay=\"".freeze); _slim_controls2 << ((_slim_codeattributes2).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes3 = !(option? 'nocontrols'); if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" controls".freeze); else; _slim_controls2 << (" controls=\"".freeze); _slim_controls2 << ((_slim_codeattributes3).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_codeattributes4 = (option? 'loop'); if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" loop".freeze); else; _slim_controls2 << (" loop=\"".freeze); _slim_controls2 << ((_slim_codeattributes4).to_s); _slim_controls2 << ("\"".freeze); end; end; _slim_controls2 << (">Your browser does not support the audio tag.</audio></div>".freeze);
1421
1714
  ;
1422
- ; if font_icons;
1423
- ; _buf << ("<i class=\"conum\"".freeze); _slim_codeattributes3 = num; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" data-value".freeze); else; _buf << (" data-value=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << ("></i><b>".freeze);
1424
- ; _buf << ((num).to_s);
1425
- ; _buf << ("</b>".freeze); else;
1426
- ; _buf << ("<img".freeze); _slim_codeattributes4 = icon_uri("callouts/#{num}"); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" src".freeze); else; _buf << (" src=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = num; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" alt".freeze); else; _buf << (" alt=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze);
1427
- ; end; _buf << ("</td><td>".freeze); _buf << ((item.text).to_s);
1428
- ; _buf << ("</td></tr>".freeze); end; _buf << ("</table>".freeze); else;
1429
- ; _buf << ("<ol>".freeze);
1430
- ; items.each do |item|;
1431
- ; _buf << ("<li><p>".freeze); _buf << ((item.text).to_s);
1432
- ; _buf << ("</p></li>".freeze); end; _buf << ("</ol>".freeze); end; _buf << ("</div>".freeze); _buf
1715
+ ; _slim_controls2; end; _buf << ((_slim_controls1).to_s); _buf
1433
1716
  end
1434
1717
  end
1435
1718
  #------------------ End of generated transformation methods ------------------#