asciidoctor-revealjs 4.1.0 → 5.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +11 -1350
  3. data/asciidoctor-revealjs.gemspec +0 -2
  4. data/examples/auto-animate-code.adoc +47 -0
  5. data/examples/auto-animate.adoc +351 -0
  6. data/examples/favicon.adoc +13 -0
  7. data/examples/mathjax-cdn.adoc +1 -1
  8. data/examples/mathjax.adoc +1 -1
  9. data/examples/revealjs-custom-theme.adoc +1 -1
  10. data/examples/revealjs-plugin-activation.adoc +3 -2
  11. data/examples/revealjs-plugins/chalkboard/README.md +94 -61
  12. data/examples/revealjs-plugins/chalkboard/img/boardmarker-black.png +0 -0
  13. data/examples/revealjs-plugins/chalkboard/img/boardmarker-blue.png +0 -0
  14. data/examples/revealjs-plugins/chalkboard/img/boardmarker-green.png +0 -0
  15. data/examples/revealjs-plugins/chalkboard/img/boardmarker-orange.png +0 -0
  16. data/examples/revealjs-plugins/chalkboard/img/boardmarker-purple.png +0 -0
  17. data/examples/revealjs-plugins/chalkboard/img/boardmarker-red.png +0 -0
  18. data/examples/revealjs-plugins/chalkboard/img/boardmarker-yellow.png +0 -0
  19. data/examples/revealjs-plugins/chalkboard/img/chalk-blue.png +0 -0
  20. data/examples/revealjs-plugins/chalkboard/img/chalk-green.png +0 -0
  21. data/examples/revealjs-plugins/chalkboard/img/chalk-orange.png +0 -0
  22. data/examples/revealjs-plugins/chalkboard/img/chalk-purple.png +0 -0
  23. data/examples/revealjs-plugins/chalkboard/img/chalk-red.png +0 -0
  24. data/examples/revealjs-plugins/chalkboard/img/{chalk.png → chalk-white.png} +0 -0
  25. data/examples/revealjs-plugins/chalkboard/img/chalk-yellow.png +0 -0
  26. data/examples/revealjs-plugins/chalkboard/plugin.js +1836 -0
  27. data/examples/revealjs-plugins/chalkboard/style.css +38 -0
  28. data/examples/revealjs-plugins/{reveal.js-menu → menu}/LICENSE +1 -1
  29. data/examples/revealjs-plugins/menu/README.md +368 -0
  30. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/LICENSE.txt +0 -0
  31. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/all.css +0 -0
  32. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/brands.css +0 -0
  33. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/fontawesome.css +0 -0
  34. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/regular.css +0 -0
  35. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/solid.css +0 -0
  36. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/svg-with-js.css +0 -0
  37. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/v4-shims.css +0 -0
  38. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/css/v4-shims.min.css +0 -0
  39. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-brands-400.eot +0 -0
  40. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-brands-400.svg +0 -0
  41. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-brands-400.ttf +0 -0
  42. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-brands-400.woff +0 -0
  43. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-brands-400.woff2 +0 -0
  44. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-regular-400.eot +0 -0
  45. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-regular-400.svg +0 -0
  46. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-regular-400.ttf +0 -0
  47. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-regular-400.woff +0 -0
  48. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-regular-400.woff2 +0 -0
  49. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-solid-900.eot +0 -0
  50. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-solid-900.svg +0 -0
  51. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-solid-900.ttf +0 -0
  52. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-solid-900.woff +0 -0
  53. data/examples/revealjs-plugins/{reveal.js-menu → menu}/font-awesome/webfonts/fa-solid-900.woff2 +0 -0
  54. data/examples/revealjs-plugins/{reveal.js-menu → menu}/menu.css +116 -115
  55. data/examples/revealjs-plugins/menu/menu.esm.js +1 -0
  56. data/examples/revealjs-plugins/menu/menu.js +1 -0
  57. data/examples/revealjs-plugins/menu/plugin.js +1252 -0
  58. data/examples/revealjs-plugins-docinfo-footer.html +20 -0
  59. data/examples/revealjs-plugins.adoc +2 -3
  60. data/examples/search-plugin.adoc +26 -0
  61. data/examples/source-rouge.adoc +1 -1
  62. data/examples/text-formatting.adoc +34 -0
  63. data/lib/asciidoctor-revealjs/converter.rb +1029 -966
  64. data/lib/asciidoctor-revealjs/highlightjs.rb +155 -14
  65. data/lib/asciidoctor-revealjs/version.rb +1 -1
  66. data/templates/asciidoctor-compatibility.css +26 -1
  67. data/templates/document.html.slim +28 -44
  68. data/templates/helpers.rb +83 -9
  69. data/templates/inline_quoted.html.slim +2 -2
  70. data/templates/listing.html.slim +2 -1
  71. data/templates/section.html.slim +7 -1
  72. data/templates/title_slide.html.slim +1 -2
  73. metadata +57 -69
  74. data/examples/revealjs-plugins/chalkboard/chalkboard.js +0 -1288
  75. data/examples/revealjs-plugins/chalkboard/img/boardmarker.png +0 -0
  76. data/examples/revealjs-plugins/reveal.js-menu/CONTRIBUTING.md +0 -9
  77. data/examples/revealjs-plugins/reveal.js-menu/README.md +0 -334
  78. data/examples/revealjs-plugins/reveal.js-menu/bower.json +0 -21
  79. data/examples/revealjs-plugins/reveal.js-menu/menu.js +0 -949
  80. data/examples/revealjs-plugins/reveal.js-menu/package.json +0 -22
  81. data/examples/revealjs-plugins-conf.js +0 -10
  82. data/examples/revealjs-plugins.js +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11cc66c73a1f861c19a473d05d8115f88cf6e6badc6592a3092ea7c914eb30e6
4
- data.tar.gz: 4c2818c6eba8696ea7f9ae22c697dd03257046c8e515330a35022270e41ab08d
3
+ metadata.gz: fdeb1f9054a161047716d88efda5122bb5120ffc4d2b5a90f41268f43ac2feb0
4
+ data.tar.gz: 61ed20fac5c11e490bcb46f7f96fa15533b61000d756fbb6c2e25bd9ebf8f4a4
5
5
  SHA512:
6
- metadata.gz: 66f874b6d97190b783b1cbd532e266f0405d242dc73ef37850ad38d7d65eac549de1ec70e61be54a8763e1102b9b97dcca001081376726bfe8372f4bd8129f7b
7
- data.tar.gz: 6e62f8b90751a485a9dbd196905233b2c8cb16863d274f24088b1b61b6b79331c4d9c46a617123b920f2b9602b234c00fd13c367314c5a2bf902a76f4be8d82e
6
+ metadata.gz: 18116406b4e8d883a2ed2963f001511207243867d74682946489da038728aa34f4a63e916df05e91f19099d272a75fa73130ffbc378dad651d063fbd4b810351
7
+ data.tar.gz: ccc6f80acb0e7bbf51c1eb93ad483ae086e4300204be676769091b43e9cfac45efeb98b93578b763aa4e21376f7970dfb338a5506df8aac2f4f8992f50b7b324
data/README.adoc CHANGED
@@ -15,1374 +15,35 @@ ifdef::env-github[]
15
15
  :tip-caption: :bulb:
16
16
  :warning-caption: :warning:
17
17
  endif::[]
18
- :uri-project-repo: https://github.com/asciidoctor/asciidoctor-reveal.js
19
- :uri-asciidoctor: https://github.com/asciidoctor/asciidoctor
20
- :uri-asciidoctorjs: https://github.com/asciidoctor/asciidoctor.js
21
- :uri-revealjs-home: https://revealjs.com
22
- :uri-revealjs-gh: https://github.com/hakimel/reveal.js/blob/v3.9
23
- :uri-revealjs-doc: {uri-revealjs-gh}/README.md
24
- :uri-nodejs-download: https://nodejs.org/en/download/
25
- :showcasedir: showcase
18
+ :url-project-repo: https://github.com/asciidoctor/asciidoctor-reveal.js
19
+ :url-asciidoctor: https://github.com/asciidoctor/asciidoctor
20
+ :url-asciidoctorjs: https://github.com/asciidoctor/asciidoctor.js
21
+ :url-revealjs-home: https://revealjs.com
22
+ :url-documentation-site: https://docs.asciidoctor.org/reveal.js-converter/latest/
26
23
 
27
24
  ifdef::env-github[]
28
25
  image:https://travis-ci.org/asciidoctor/asciidoctor-reveal.js.svg?branch=master[Build Status,link=https://travis-ci.org/asciidoctor/asciidoctor-reveal.js]
29
26
  image:http://img.shields.io/gem/v/asciidoctor-revealjs.svg[gem, link=https://rubygems.org/gems/asciidoctor-revealjs]
30
27
  image:http://img.shields.io/npm/v/@asciidoctor/reveal.js.svg[npm, link=https://www.npmjs.org/package/@asciidoctor/reveal.js]
28
+ image:https://api.netlify.com/api/v1/badges/facd68e7-9337-4b83-bcac-7262720a6915/deploy-status[Netlify Status, link=https://app.netlify.com/sites/asciidoctor-revealjs-examples/deploys]
31
29
  endif::[]
32
30
 
33
31
  // IMPORTANT: Changes made to this description should be sync'ed with the readme field in package.json.
34
- {uri-project-repo}[Asciidoctor reveal.js] is a converter for {uri-asciidoctor}[Asciidoctor] and {uri-asciidoctorjs}[Asciidoctor.js] that transforms an AsciiDoc document into an HTML5 presentation designed to be executed by the {uri-revealjs-home}[reveal.js] presentation framework.
32
+ {url-project-repo}[Asciidoctor reveal.js] is a converter for {url-asciidoctor}[Asciidoctor] and {url-asciidoctorjs}[Asciidoctor.js] that transforms an AsciiDoc document into an HTML5 presentation designed to be executed by the {url-revealjs-home}[reveal.js] presentation framework.
35
33
 
36
- TIP: Want to see some example presentations, see <<Showcase Presentations>>
37
-
38
- There are four main technology stacks that can convert AsciiDoc into HTML5 / reveal.js:
39
-
40
- * Asciidoctor / Ruby / Bundler (See <<Ruby Setup>>)
41
- * Asciidoctor.js / JavaScript (Node.js) / npm (See <<Node / JavaScript Setup>>)
42
- * Standalone Executable (See <<Standalone Executable>>)
43
- * AsciidoctorJ / JVM / Maven (See https://github.com/asciidoctor/asciidoctorj-reveal.js[this project])
44
-
45
- ifeval::['{branch}' == 'master']
46
- NOTE: You're viewing the documentation for an upcoming release.
47
- If you're looking for the documentation for the current release or an older one, please click on the appropriate link below: +
48
- {uri-project-repo}/tree/v4.0.0#readme[4.0.1] (latest from 4.x series)
49
- &hybull;
50
- {uri-project-repo}/tree/v3.1.0#readme[3.1.0] (latest from 3.x series)
51
- &hybull;
52
- {uri-project-repo}/tree/reveal.js-2.x#readme[Unversioned pre-release] (compatible with reveal.js 2.x)
53
- endif::[]
54
-
55
-
56
- == Ruby Setup
57
-
58
- NOTE: To ensure repeatability, we recommend that you manage your presentation projects using http://bundler.io/[bundler].
59
-
60
- === Prerequisites
61
-
62
- . Install http://bundler.io/[bundler] (if not already installed) using your system's package manager or with:
63
-
64
- $ gem install bundler
65
-
66
- . If you're using RVM, make sure you switch away from any gemset:
67
-
68
- $ rvm use default
69
- +
70
- or
71
- +
72
- $ rvm use system
73
-
74
-
75
- === Install
76
-
77
- NOTE: These instructions should be repeated for every presentation project.
78
-
79
- . Create project directory
80
-
81
- $ mkdir my-awesome-presentation
82
- $ cd my-awesome-presentation
83
-
84
- . Create a file named `Gemfile` with the following content:
85
- +
86
- [source,ruby]
87
- ----
88
- source 'https://rubygems.org'
89
-
90
- gem 'asciidoctor-revealjs' # latest released version
91
- ----
92
- +
93
- NOTE: For some reason, when you use the system Ruby on Fedora, you also have to add the json gem to the Gemfile.
94
- +
95
- . Install the gems into the project
96
-
97
- $ bundle config --local github.https true
98
- $ bundle --path=.bundle/gems --binstubs=.bundle/.bin
99
-
100
- . Optional: Copy or clone reveal.js presentation framework.
101
- Allows you to modify themes or view slides offline.
102
-
103
- $ git clone -b 3.9.2 --depth 1 https://github.com/hakimel/reveal.js.git
104
-
105
-
106
- === Rendering the AsciiDoc into slides
107
-
108
- . Create content in a file (*.adoc, *.ad, etc.).
109
- See examples in <<Syntax Examples>> section to get started.
110
-
111
- . Generate HTML presentation from the AsciiDoc source
112
-
113
- $ bundle exec asciidoctor-revealjs \
114
- -a revealjsdir=https://cdn.jsdelivr.net/npm/reveal.js@3.9.2 CONTENT_FILE.adoc
115
-
116
- . If you did the optional step of having a local reveal.js clone you can
117
- convert AsciiDoc source with
118
-
119
- $ bundle exec asciidoctor-revealjs CONTENT_FILE.adoc
120
-
121
- TIP: If you are using https://pages.github.com/[GitHub Pages], plan ahead by keeping your source files on `master` branch and all output files on the `gh-pages` branch.
122
-
123
- === Features Unique to the Ruby CLI
124
-
125
- Starting with 4.0.0 you can specify a set of custom templates to use instead of the ones provided by this project.
126
- This can help you achieve even more concise AsciiDoc syntax and integration with reveal.js at the cost of more maintenance.
127
-
128
- To use it, add the following dependencies to your `Gemfile`:
129
-
130
- gem 'tilt', '~>2.0'
131
- gem 'slim', '~>4.0'
132
-
133
- Then install the dependencies with:
134
-
135
- $ bundle install
136
-
137
- The feature is activated with the `--template-dir` or `-T` option:
138
-
139
- $ bundle exec asciidoctor-revealjs -T templates/ CONTENT_FILE.adoc
140
-
141
- Any individual template file not provided in the directory specified on the command-line will fall back to the template provided by your version of Asciidoctor reveal.js.
142
- Refer to our https://github.com/asciidoctor/asciidoctor-reveal.js/tree/master/templates[templates] for inspiration.
143
-
144
- This feature hasn't been ported to the JavaScript CLI (and API) or the standalone executables.
145
-
146
-
147
- == Node / JavaScript Setup
148
-
149
- === Prerequisites
150
-
151
- First you must install and configure {uri-nodejs-download}[Node] on your machine.
152
-
153
- [[node-install]]
154
- === Install
155
-
156
- We recommend to install the dependencies in a project directory, such as the directory where your AsciiDoc presentations are stored.
157
- If you don't have a `package.json` file in your project directory, you can create one to eliminate warnings during the installation using:
158
-
159
- $ npm init -y
160
-
161
- You can now install the dependencies:
162
-
163
- $ npm i --save asciidoctor@^2.0 @asciidoctor/reveal.js
164
-
165
- === Convert AsciiDoc into slides
166
-
167
- Once the dependencies are installed, verify that the `asciidoctor-revealjs` command is available.
168
- On Linux and macOS, open a terminal and type:
169
-
170
- $ npx asciidoctor-revealjs --version
171
-
172
- On Windows, open PowerShell and type:
173
-
174
- $ .\node_modules\.bin\asciidoctor-revealjs.cmd --version
175
-
176
- The command should report the Asciidoctor CLI version in the terminal:
177
-
178
- [source,console]
179
- ----
180
- Asciidoctor.js 2.0.3 (Asciidoctor 2.0.9) [https://asciidoctor.org]
181
- Runtime Environment (node v10.15.1 on linux)
182
- CLI version 2.0.1
183
- ----
184
-
185
- If you don't have an existing presentation, you can create a sample presentation named [.path]_presentation.adoc_:
186
-
187
- .presentation.adoc
188
- [source,asciidoc]
189
- ----
190
- = Title Slide
191
-
192
- == Slide One
193
-
194
- * Foo
195
- * Bar
196
- * World
197
-
198
- ----
199
-
200
- To convert the sample presentation into slides, open a terminal and type:
201
-
202
- $ npx asciidoctor-revealjs presentation.adoc
203
-
204
- On windows, open PowerShell and type:
205
-
206
- $ .\node_modules\.bin\asciidoctor-revealjs.cmd presentation.adoc
207
-
208
- The above command will generate a file named [.path]_presentation.html_.
209
- You can open this file in a browser.
210
-
211
- ==== Using the JavaScript API
212
-
213
- Alternatively, you can use the JavaScript API to register the converter and convert a document:
214
-
215
- .convert-slides.js
216
- [source,javascript]
217
- ----
218
- // Load Asciidoctor.js and the reveal.js converter
219
- var asciidoctor = require('@asciidoctor/core')()
220
- var asciidoctorRevealjs = require('@asciidoctor/reveal.js')
221
- asciidoctorRevealjs.register()
222
-
223
- // Convert the document 'presentation.adoc' using the reveal.js converter
224
- var options = { safe: 'safe', backend: 'revealjs' }
225
- asciidoctor.convertFile('presentation.adoc', options) // <1>
226
- ----
227
- <1> Creates a file named `presentation.html` (in the directory where command is run)
228
-
229
- To execute the script, open a terminal and type:
230
-
231
- $ node convert-slides.js
232
-
233
- You can open the `presentation.html` file in your browser and enjoy!
234
-
235
-
236
- == Standalone Executable
237
-
238
- Pre-built binary packages can be downloaded from our {uri-project-repo}/releases[GitHub release page].
239
- We provide them for Windows 64-bit, Linux 64-bit and macOS 64-bit.
240
- Open an issue if your platform isn't supported.
241
- The executables are built using the <<Node / JavaScript Setup,Node / JavaScript>> toolchain.
242
-
243
- === Install
244
-
245
- * {uri-project-repo}/releases[Download the executable] for your platform and make it executable with `chmod` or using the files properties' user interface.
246
- * Copy or clone the reveal.js presentation framework in the directory where you will build your slidedeck.
247
- Here we do a shallow clone of the repo:
248
-
249
- $ git clone -b 3.9.2 --depth 1 https://github.com/hakimel/reveal.js.git
250
-
251
- === Convert AsciiDoc into slides
252
-
253
- Open a terminal where the executable is and type:
254
-
255
- $ ./asciidoctor-revealjs --version
256
-
257
- The command should report the Asciidoctor reveal.js and Asciidoctor CLI version in the terminal:
258
-
259
- [source,console]
260
- ----
261
- Asciidoctor reveal.js 3.0.1 using Asciidoctor.js 2.0.3 (Asciidoctor 2.0.9) [https://asciidoctor.org]
262
- Runtime Environment (node v12.13.1 on linux)
263
- CLI version 3.1.0
264
- ----
265
-
266
- If you don't have an existing presentation, you can create a sample presentation named [.path]_presentation.adoc_:
267
-
268
- .presentation.adoc
269
- [source,asciidoc]
270
- ----
271
- = Title Slide
272
- :revealjsdir: reveal.js
273
-
274
- == Slide One
275
-
276
- * Foo
277
- * Bar
278
- * World
279
-
280
- ----
281
-
282
- To convert the sample presentation into slides, open a terminal and type:
283
-
284
- $ ./asciidoctor-revealjs presentation.adoc
285
-
286
- The above command will generate a file named [.path]_presentation.html_.
287
- You can open this file in a browser.
288
-
289
-
290
- == Syntax Examples
291
-
292
- Let's see some examples of `revealjs` backend features.
293
- Additional examples can be found in the AsciiDoc files (.adoc) in `examples/`.
294
-
295
- === Basic presentation with speaker notes
296
-
297
- [source, asciidoc]
298
- ----
299
- = Title Slide
300
-
301
- == Slide One
302
-
303
- * Foo
304
- * Bar
305
- * World
306
-
307
- == Slide Two
308
-
309
- A Great Story
310
-
311
- [.notes]
312
- --
313
- * tell anecdote
314
- * make a point
315
- --
316
- ----
317
-
318
- In previous snippet we are creating a slide titled Slide One with bullets and another one titled Slide Two with centered text (reveal.js`' default behavior) with {uri-revealjs-doc}#speaker-notes[speaker notes].
319
- Other syntax exists to create speaker notes, see `examples/speaker-notes.adoc`.
320
-
321
- Starting with Reveal.js 3.5 speaker notes supports configurable layouts:
322
- image:https://cloud.githubusercontent.com/assets/629429/21808439/b941eb52-d743-11e6-9936-44ef80c60580.gif[]
323
-
324
- Speaker notes are opened by pressing `s`.
325
- With Reveal.js 3.5 they require a webserver to work.
326
- This limitation is not present in 3.6.
327
- You can get a Web server running quickly with:
328
-
329
- ruby -run -e httpd . -p 5000 -b 127.0.0.1
330
-
331
- Then use your browser to navigate to the URL \http://localhost:5000.
332
-
333
- === Slides without titles
334
-
335
- There are a few ways to have no titles on slides.
336
-
337
- * Setting your title to `!`
338
- * Adding the `notitle` option to your slide
339
- * Adding the `conceal` option to your slide
340
-
341
- ifeval::[{safe-mode-level} >= 20]
342
- See <<examples/concealed-slide-titles.adoc#,concealed-slide-titles.adoc>>.
343
- endif::[]
344
- ifeval::[{safe-mode-level} < 20]
345
- Here is an example of the three techniques in action:
346
-
347
- .concealed-slide-titles.adoc
348
- [source,asciidoc]
349
- ....
350
- include::examples/concealed-slide-titles.adoc[lines=5..-1]
351
- ....
352
- endif::[]
353
-
354
- NOTE: `conceal` and `notitle` have the advantage that the slide still has an id so it can be linked to.
355
-
356
- IMPORTANT: Like the first page of an AsciiDoc document, the first slide is handled differently.
357
- To hide the whole slide use the `:notitle:` http://asciidoctor.org/docs/user-manual/#header-summary[document attribute].
358
- To achieve the effect of hiding only the first slide's title, combine the `:notitle:` attribute on the first slide and use `[%notitle]` on the second slide which will, in effect, be your first slide now.
359
-
360
-
361
- === Background Colors
362
-
363
- Background colors for slides can be specified by two means: a classic one and one using AsciiDoc roles.
364
- See <<examples/background-color.adoc#,background-color.adoc>> for more examples.
365
-
366
- ==== Using AsciiDoc Roles
367
-
368
- Using roles respects the AsciiDoc philosophy of separation of content and presentation.
369
- Colors are to be defined by CSS and the <<customcss,`:customcss:` attribute>> need to be used to specify the CSS file to load.
370
- To avoid clashing with existing reveal.js themes or CSS, a specific CSS class called `background` is expected to be present.
371
- Here is an example:
372
-
373
-
374
- [source, asciidoc]
375
- ----
376
- = Title
377
- :customcss: my-css.css
378
-
379
- [.red.background]
380
- == Slide One
381
-
382
- Is very red
383
- ----
384
-
385
- .my-css.css
386
- [source, css]
387
- ----
388
- section.red.background {
389
- background-color: red;
390
- }
391
- ----
392
-
393
- NOTE: The `canvas` keyword can be used instead of `background` for the same effect.
394
-
395
- ==== Classic
396
-
397
- [source, asciidoc]
398
- ----
399
- [background-color="yellow"]
400
- == Slide Three
401
-
402
- Is very yellow
403
- ----
404
-
405
- Slide Three applies the attribute {uri-revealjs-doc}#slide-backgrounds[data-background-color] to the `reveal.js` <section> tag.
406
- Anything accepted by CSS color formats works.
407
-
408
-
409
- === Background images
410
-
411
- [source, asciidoc]
412
- ----
413
- [%notitle]
414
- == Grand Announcement
415
-
416
- image::cover.jpg[background, size=cover]
417
- ----
418
-
419
- This will put `cover.jpg` as the slide's background image.
420
- It sets reveal.js`' `data-background-image` attribute.
421
- The `size` attribute is also supported.
422
- See the {uri-revealjs-doc}#image-backgrounds[relevant reveal.js documentation] for details.
423
-
424
- NOTE: Background images file names are now relative to the `:imagesdir:` attribute if set.
425
-
426
- NOTE: The `canvas` keyword can be used instead of `background` for the same effect.
427
-
428
- [source, asciidoc]
429
- ----
430
- [%notitle]
431
- == The Great Goat
432
-
433
- image::https://upload.wikimedia.org/wikipedia/commons/b/b2/Hausziege_04.jpg[canvas,size=contain]
434
- ----
435
-
436
- As you can see, you can use a URL to specify your image resource too.
437
-
438
-
439
- [#background_videos]
440
- === Background videos
441
-
442
- A background video for a slide can be specified using the `background-video` element attribute.
443
-
444
- [source, asciidoc]
445
- ----
446
- [background-video="https://my.video/file.mp4",background-video-loop=true,background-video-muted=true]
447
- == Nice background!
448
- ----
449
-
450
- For convenience `background-video-loop` and `background-video-muted` attributes are mapped to `loop` and `muted` options which can be specified with `options="loop,muted"`.
451
-
452
- For example:
453
-
454
- [source, asciidoc]
455
- ----
456
- [background-video="https://my.video/file.mp4",options="loop,muted"]
457
- == Nice background!
458
- ----
459
-
460
- See {uri-revealjs-doc}#video-backgrounds[the relevant reveal.js documentation] for details.
461
- Note that the `data-` prefix is not required in asciidoc files.
462
-
463
-
464
- === Background iframes
465
-
466
- The background can be replaced with anything a browser can render in an iframe using the `background-iframe` reveal.js feature.
467
-
468
- [source, asciidoc]
469
- ----
470
- [%notitle,background-iframe="https://www.youtube.com/embed/LaApqL4QjH8?rel=0&start=3&enablejsapi=1&autoplay=1&loop=1&controls=0&modestbranding=1"]
471
- == a youtube video
472
- ----
473
-
474
- See {uri-revealjs-doc}#iframe-backgrounds[the relevant reveal.js documentation] for details.
475
-
476
-
477
- === Slide Transitions
478
-
479
- [source, asciidoc]
480
- ----
481
- [transition=zoom, %notitle]
482
- == Zoom zoom
483
-
484
- This slide will override the presentation transition and zoom!
485
-
486
- [transition-speed=fast, %notitle]
487
- == Speed
488
-
489
- Choose from three transition speeds: default, fast or slow!
490
- ----
491
-
492
- See {uri-revealjs-doc}#slide-transitions[the relevant reveal.js documentation] for details.
493
-
494
-
495
- === Fragments
496
-
497
- [source, asciidoc]
498
- ----
499
- == Slide Four
500
-
501
- [%step]
502
- * this
503
- * is
504
- * revealed
505
- * gradually
506
- ----
507
-
508
- Slide Four has bullets that are revealed one after the other.
509
- This is what `reveal.js` calls {uri-revealjs-home}/fragments[fragments].
510
- Applying the step option or role on a list (`[%step]` or `[.step]`) will do the trick.
511
- Here is {uri-revealjs-doc}#fragments[the relevant reveal.js
512
- documentation] on the topic.
513
- Note that only `fade-in` is supported for lists at the moment.
514
-
515
-
516
- === Stretch class attribute
517
-
518
- Reveal.js supports a special class that will give all available screen space to an HTML node.
519
- This class element is named `stretch`.
520
-
521
- Sometimes it's desirable to have an element, like an image or video, stretch to consume as much space as possible within a given slide.
522
-
523
- To apply that class to block simply use asciidoctor's class assignment:
524
-
525
- [.stretch]
526
-
527
- See {uri-revealjs-doc}#stretching-elements[reveal.js documentation on stretching elements].
528
-
529
-
530
- === Videos
531
-
532
- In addition to <<Background videos,background videos>>, videos can be inserted directly into slides.
533
- The syntax is the standard http://asciidoctor.org/docs/user-manual/#video[asciidoc video block macro] syntax.
534
-
535
- [source, asciidoc]
536
- ----
537
- == Trains, we love trains!
538
-
539
- video::kZH9JtPBq7k[youtube, start=34, options=autoplay]
540
- ----
541
-
542
- By default videos are given as much space as possible.
543
- To override that behavior use the `width` and `height` named attributes.
544
-
545
-
546
- === Syntax highlighting
547
-
548
- reveal.js is well integrated with https://highlightjs.org/[Highlight.js] for syntax highlighting.
549
- Asciidoctor reveal.js supports that.
550
- You can activate Highlight.js syntax highlighting (disabled by default) by setting the `source-highlighter` document attribute as follows:
551
-
552
- [source, asciidoc]
553
- ----
554
- = Presentation Title
555
- // [...] other document attributes
556
- :source-highlighter: highlightjs
557
- ----
558
-
559
- [NOTE]
560
- ====
561
- By default, we are using a prebuilt version of Highlight.js with 34 commonly used languages hosted on https://cdnjs.com/[cdnjs].
562
- You can load additionnal languages using the `:highlightjs-languages:` attribute:
563
-
564
- ```
565
- // load yaml and scilab languages
566
- :highlightjs-languages: yaml, scilab
567
- ```
568
-
569
- You can also load Highlight.js from a custom base directory (or remote URL) using the `:highlightjsdir:` attribute:
570
-
571
- ```
572
- // load from a local path
573
- :highlightjsdir: highlight
574
- // load from jsdelivr CDN
575
- //:highlightjsdir: https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build
576
- ====
577
-
578
- Once enabled, you can write code blocks as usual:
579
-
580
- [source, asciidoc]
581
- ....
582
- == Slide Five
583
-
584
- Uses highlighted code
585
-
586
- [source, python]
587
- ----
588
- print "Hello World"
589
- ----
590
- ....
591
-
592
- By default `[source]` blocks and blocks delimited by `----` will be highlighted.
593
- An explicit `[listing]` block will not be highlighted.
594
- `highlight.js` does language auto-detection but using the `language="..."` attribute will hint the highlighter.
595
- For example this will highlight this source code as Perl:
596
-
597
- [source, asciidoc]
598
- ....
599
- == Slide Five
600
-
601
- [source,perl]
602
- ----
603
- print "$0: hello world\n"
604
- ----
605
- ....
606
-
607
- [NOTE]
608
- Alternatively, you can use http://rouge.jneen.net/[Rouge], http://coderay.rubychan.de[Coderay] or http://pygments.org[Pygments] as syntax highlighters,
609
- if you are using the Asciidoctor/Ruby/Bundler toolchain (not Asciidoctor.js/JavaScript/npm).
610
- Check the `examples/` directory for examples and notes about what needs to be done for them to work.
611
- They are considered unsupported by the asciidoctor-reveal.js project.
612
-
613
-
614
- === Vertical slides
615
-
616
- [source, asciidoc]
617
- ....
618
- == Slide Six
619
-
620
- Top slide
621
-
622
- === Slide Six.One
623
-
624
- This is a vertical subslide
625
- ....
626
-
627
- Slide Six uses the vertical slide feature of `reveal.js`.
628
- Slide Six.One will be rendered vertically below Slide Six.
629
- Here is {uri-revealjs-doc}#markup[the relevant reveal.js
630
- documentation] on that topic.
631
-
632
- === Columns layout
633
-
634
- Inspired by https://bulma.io/[Bulma], Asciidoctor reveal.js supports columns layout out-of-the-box:
635
-
636
- [source, asciidoc]
637
- ....
638
- [.columns]
639
- == 2 columns
640
-
641
- [.column]
642
- --
643
- * **Edgar Allen Poe**
644
- * Sheri S. Tepper
645
- * Bill Bryson
646
- --
647
-
648
- [.column]
649
- --
650
- Edgar Allan Poe (/poʊ/; born Edgar Poe; January 19, 1809 – October 7, 1849) was an American writer, editor, and literary critic.
651
- --
652
- ....
653
-
654
- If you do not specify a size, each column will have an equal width, no matter the number of columns.
655
-
656
- [source, asciidoc]
657
- ....
658
- [.columns]
659
- == 3 columns
660
-
661
- [.column]
662
- * Java
663
- * **Kotlin**
664
-
665
- [.column]
666
- * Node
667
- * **Deno**
668
-
669
- [.column]
670
- * Ruby
671
- * **Crystal**
672
- ....
673
-
674
- If you want to change the size of a single column, you can use one of the following classes:
675
-
676
- * `is-three-quarters`
677
- * `is-two-thirds`
678
- * `is-half`
679
- * `is-one-third`
680
- * `is-one-quarter`
681
- * `is-full`
682
-
683
- The other columns will fill up the remaining space automatically. +
684
- You can use the following multiples of 20% as well:
685
-
686
- * `is-four-fifths`
687
- * `is-three-fifths`
688
- * `is-two-fifths`
689
- * `is-one-fifth`
690
-
691
- [source, asciidoc]
692
- ....
693
- [.columns]
694
- == Columns with size
695
-
696
- [.column.is-one-third]
697
- --
698
- * **Kotlin**
699
- * Java
700
- * Scala
701
- --
702
-
703
- [.column]
704
- --
705
- Programming language for Android, mobile cross-platform
706
- and web development, server-side, native,
707
- and data science. Open source forever Github.
708
- --
709
- ....
710
-
711
- The vertical alignment of columns defaults to top aligned.
712
- Content can be centered by adding the `is-vcentered` class to the slide.
713
-
714
- [source, asciidoc]
715
- ....
716
- [.columns.is-vcentered]
717
- == Columns Vertically Centered
718
-
719
- [.column]
720
- --
721
- * Few
722
- * Bullets
723
- * Here
724
- --
725
-
726
- [.column]
727
- image::large-image.png[]
728
- ....
729
-
730
- Text alignment of columns is also supported.
731
- Text content on individual columns can be aligned with `has-text-left`, `has-text-right` and `has-text-justified` CSS classes.
732
-
733
- [source, asciidoc]
734
- ....
735
- [.columns]
736
- == Column Text Alignment
737
-
738
- [.column.has-text-left]
739
- --
740
- Something Short
741
-
742
- Something So Long That We Need It Aligned
743
- --
744
-
745
- [.column.has-text-justified]
746
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
747
-
748
- [.column.has-text-right]
749
- --
750
- Something Short
751
-
752
- Something So Long That We Need It Aligned
753
- --
754
- ....
755
-
756
-
757
- === Asciidoctor reveal.js specific roles
758
-
759
- Roles are usually applied with the following syntax where the `important-text` CSS class would be applied to the slide title in the generated HTML:
760
-
761
- [source, asciidoc]
762
- ....
763
- [.important-text]
764
- == Slide Title
765
-
766
- * Some
767
- * Information
768
- ....
769
-
770
- Or
771
-
772
- [source, asciidoc]
773
- ....
774
- [role="important-text"]
775
- == Slide Title
776
-
777
- * Some
778
- * Information
779
- ....
780
-
781
- See https://asciidoctor.org/docs/user-manual/#role[Asciidoctor's documentation] for more details.
782
-
783
- .Image specific note
784
- In addition to the https://asciidoctor.org/docs/user-manual/\#positioning-attributes[existing attributes] to position images, roles can be used as well. However, the shorthand syntax (.) doesn't work in the image macro arguments but must be used above with the angle bracket syntax.
785
- See <<examples/images.adoc#,images.adoc>> for examples.
786
-
787
- Here is a list of supported roles:
788
-
789
- right:: Will apply a `float: right` style to the affected block
790
-
791
-
792
- === Asciidoctor reveal.js specific attributes
793
-
794
- ==== iFrame Preview Overlay
795
-
796
- The reveal.js feature activated by a global `previewLinks: true` configuration or by adding the `data-preview-link` HTML attribute to `<a>` tags can be activated by using special AsciiDoc attributes.
797
-
798
- On links use the `preview=true` attribute, on images use the `link_preview=true` attribute and globally you can set `:revealjs_previewlinks:` attribute.
799
-
800
- See <<examples/links.adoc#,links.adoc>> and <<examples/links-preview.adoc#,links-preview.adoc>> for examples.
801
-
802
-
803
- === Title slide customization
804
-
805
- The title slide is customized via Asciidoc attributes.
806
- These are the global variable assigned at the top of a document under the lead
807
- title that look like this: `:name: value`.
808
-
809
- This converter supports changing the color, image, video, iframe and
810
- transitions of the title slide.
811
-
812
- Read {uri-revealjs-doc}#slide-backgrounds[the relevant reveal.js documentation] to understand what attributes need to be set.
813
- Keep in mind that for title slides you must replace `data-` with `title-slide-`.
814
-
815
- ifeval::[{safe-mode-level} >= 20]
816
- See <<examples/title-slide-image.adoc#,title-slide-image.adoc>>.
817
- endif::[]
818
- ifeval::[{safe-mode-level} < 20]
819
- Here is an example:
820
-
821
- .title-slide-image.adoc
822
- [source,asciidoc]
823
- ....
824
- include::examples/title-slide-image.adoc[lines=5..-1]
825
- ....
826
- endif::[]
827
-
828
- The title slide is also added a `title` CSS class to help with template customization.
829
-
830
- === Content meant for multiple converters
831
-
832
- Some content can be created with both slides and book in mind.
833
-
834
- To mark slides split points you can use preprocessor conditionals combined
835
- with a backend declaration.
836
- Breaking points are set using slides with no title `=== !` wrapped in a
837
- conditional: `ifdef::backend-revealjs[=== !]`.
838
- In the end, the whole document has to be compiled with the backend option:
839
- `-b revealjs`
840
-
841
- For example:
842
-
843
- [source, asciidoc]
844
- ----
845
- == Main section
846
-
847
- === Sub Section
848
-
849
- Small +
850
- Multiline +
851
- intro
852
-
853
- . very
854
- . long
855
- . list
856
- . of
857
- . items
858
-
859
- \ifdef::backend-revealjs[=== !]
860
-
861
- Some overview diagram
862
-
863
- \ifdef::backend-revealjs[=== !]
864
-
865
- Detailed view diagram
866
- ----
867
-
868
-
869
- [[customcss]]
870
- === CSS override
871
-
872
- If you use the `:customcss:` document attribute, a CSS file of the name given in the attribute is added to the list of CSS resources loaded by the rendered HTML.
873
- Doing so, you can then easily override specific elements of your theme per presentation.
874
-
875
- For example, to do proper position-independent text placement of a title slide with a specific background you can use:
876
-
877
- [source, css]
878
- ----
879
- .reveal section.title h1 {
880
- margin-top: 2.3em;
881
- }
882
-
883
- .reveal section.title small {
884
- margin-top: 15.3em;
885
- font-weight: bold;
886
- color: white;
887
- }
888
- ----
889
-
890
- If the `:customcss:` attribute value is empty then `asciidoctor-revealjs.css` is the CSS resource that the presentation is linked to.
891
-
892
-
893
- === Slide state
894
-
895
- Reveal.js supports a {uri-revealjs-doc}#slide-states[data-state] tag that can be added on slides which gets rendered into `<section>` tags.
896
- In AsciiDoc the `data-state` can be applied to a slide by adding a state attribute to a section like this:
897
-
898
- [source, asciidoc]
899
- ----
900
- [state=topic]
901
- == Epic Topic
902
- ----
903
-
904
- That state can be queried from JavaScript or used in CSS to apply further customization to your slide deck.
905
- For example, by combining this feature with the <<CSS override>> one, you can alter fonts for specific pages with this CSS:
906
-
907
- [source, css]
908
- ----
909
- @import 'https://fonts.googleapis.com/css?family=Baloo+Bhai';
910
-
911
- section[data-state="topic"] h2 {
912
- font-family: 'Baloo Bhai', cursive;
913
- font-size: 4em;
914
- }
915
- ----
916
-
917
- === Admonitions
918
-
919
- Asciidoctor font-based http://asciidoctor.org/docs/user-manual/#admonition[admonitions] are supported.
920
- Make sure to add the following attribute to your document:
921
-
922
- [source, asciidoc]
923
- ----
924
- :icons: font
925
- ----
926
-
927
- Here is an example slide:
928
-
929
- [source, asciidoc]
930
- ----
931
- == But first
932
-
933
- WARNING: This presentation is dangerous!
934
- ----
935
-
936
- Here are details about Asciidoctor's http://asciidoctor.org/docs/user-manual/#admonition-icons[Admonition icons] support.
937
-
938
- === Supplemental Content with Docinfo
939
- // Originally from https://github.com/asciidoctor/asciidoctor-bespoke#supplemental-content
940
-
941
- It's possible to inject supplemental content into the output document using http://asciidoctor.org/docs/user-manual/#docinfo-file[docinfo files].
942
- This core feature of AsciiDoc has been adapted to work with the reveal.js converter.
943
-
944
- Currently, there are three insertion locations for docinfo content in a reveal.js document:
945
-
946
- head:: content is inserted after the last child of the `<head>` element
947
- header:: content is inserted before the first child of the `<div class="slides">` element (before the slides)
948
- footer:: content is inserted after the last child of the `<div class="slides">` element (after the slides)
949
-
950
- The content you want to insert goes into a sibling file of the slide deck document with the following filename patterns:
951
-
952
- head:: `docinfo-revealjs.html`
953
- header:: `docinfo-header-revealjs.html`
954
- footer:: `docinfo-footer-revealjs.html`
955
-
956
- For example, let's say you want to embed a tweet into your slide deck.
957
- You might inject the shared embedding JavaScript using a footer docinfo file:
958
-
959
- .src/docinfo-footer-revealjs.html
960
- [source,html]
961
- ----
962
- <script src="https://platform.twitter.com/widgets.js"></script>
963
- ----
964
-
965
- You then need to set the following document attribute in the AsciiDoc header:
966
-
967
- ----
968
- :docinfo: shared
969
- ----
970
-
971
- When this attribute is defined, the converter will automatically read the docinfo file(s) and insert the contents into the specified location in the output document.
972
-
973
-
974
- == Reveal.js Options
975
-
976
- Some attributes can be set at the top of the document that are specific to the `reveal.js` converter.
977
- They use the same name as in the `reveal.js` project except that they are prepended by `revealjs_` and case doesn't matter.
978
- They are applied in the link:templates/document.html.slim[document template].
979
-
980
- NOTE: Default settings are based on `reveal.js` default settings.
981
-
982
- [cols="1m,1,2"]
983
- |===
984
- |Attribute |Value(s) |Description
985
-
986
- |:revealjs_theme:
987
- |beige, *black*, league, night, serif, simple, sky, solarized, white
988
- |Chooses one of reveal.js`' {uri-revealjs-doc}#theming[built-in themes].
989
-
990
- |:revealjs_customtheme:
991
- |<file\|URL>
992
- |Overrides CSS with given file or URL.
993
- Default is disabled.
994
-
995
- |:highlightjs-theme:
996
- |<file\|URL>
997
- |Overrides https://highlightjs.org[highlight.js] CSS style with given file or URL.
998
- Default is built-in [path]_lib/css/zenburn.css_.
999
-
1000
- |:revealjsdir:
1001
- |<file\|URL>
1002
- |Overrides reveal.js directory.
1003
- Example: ../reveal.js or
1004
- https://cdn.jsdelivr.net/npm/reveal.js@3.9.2.
1005
- Default is `reveal.js/` unless in a Node.js environment where it is `node_modules/reveal.js/`.
1006
-
1007
- |:revealjs_controls:
1008
- |*true*, false
1009
- |Display presentation control arrows
1010
-
1011
- |:revealjs_controlsTutorial:
1012
- |*true*, false
1013
- |Help the user learn the controls by providing hints, for example by bouncing the down arrow when they first encounter a vertical slide
1014
-
1015
- |:revealjs_controlsLayout:
1016
- |edges, *bottom-right*
1017
- |Determines where controls appear, "edges" or "bottom-right"
1018
-
1019
- |:revealjs_controlsBackArrows:
1020
- |*faded*, hidden, visible
1021
- |Visibility rule for backwards navigation arrows; "faded", "hidden" or "visible"
1022
-
1023
- |:revealjs_progress:
1024
- |*true*, false
1025
- |Display a presentation progress bar.
1026
-
1027
- |:revealjs_slideNumber:
1028
- |true, *false*, h.v, h/v, c, c/t
1029
- a|Display the page number of the current slide.
1030
- *true* will display the slide number with default formatting.
1031
- Additional formatting is available:
1032
-
1033
- h.v:: horizontal . vertical slide number (default)
1034
- h/v:: horizontal / vertical slide number
1035
- c:: flattened slide number
1036
- c/t:: flattened slide number / total slides
1037
-
1038
- |:revealjs_showSlideNumber:
1039
- |*all*, speaker, print
1040
- a|Control which views the slide number displays on using the "showSlideNumber" value:
1041
-
1042
- all:: show on all views (default)
1043
- speaker:: only show slide numbers on speaker notes view
1044
- print:: only show slide numbers when printing to PDF
1045
-
1046
- |:revealjs_hash:
1047
- |true, *false*
1048
- |Add the current slide number to the URL hash so that reloading the page/copying the URL will return you to the same slide
1049
-
1050
- |:revealjs_history:
1051
- |true, *false*
1052
- |Push each slide change to the browser history. Implies `hash: true`
1053
-
1054
- |:revealjs_keyboard:
1055
- |*true*, false
1056
- |Enable keyboard shortcuts for navigation.
1057
-
1058
- |:revealjs_overview:
1059
- |*true*, false
1060
- |Enable the slide overview mode.
1061
-
1062
- |:revealjs_touch:
1063
- |*true*, false
1064
- |Enables touch navigation on devices with touch input.
1065
-
1066
- |:revealjs_center:
1067
- |*true*, false
1068
- |Vertical centering of slides.
1069
-
1070
- |:revealjs_loop:
1071
- |true, *false*
1072
- |Loop the presentation.
1073
-
1074
- |:revealjs_rtl:
1075
- |true, *false*
1076
- |Change the presentation direction to be RTL.
1077
-
1078
- |:revealjs_navigationMode:
1079
- |*default*, linear, grid
1080
- |See {uri-revealjs-doc}#navigation-mode for details
1081
-
1082
- |:revealjs_shuffle:
1083
- |true, *false*
1084
- |Randomizes the order of slides each time the presentation loads
1085
-
1086
- |:revealjs_fragments:
1087
- |*true*, false
1088
- |Turns fragments on and off globally.
1089
-
1090
- |:revealjs_fragmentInURL:
1091
- |true, *false*
1092
- |Flags whether to include the current fragment in the URL, so that reloading brings you to the same fragment position
1093
-
1094
- |:revealjs_embedded:
1095
- |true, *false*
1096
- |Flags if the presentation is running in an embedded mode (i.e., contained within a limited portion of the screen).
1097
-
1098
- |:revealjs_help:
1099
- |*true*, false
1100
- |Flags if we should show a help overlay when the questionmark key is pressed
1101
-
1102
- |:revealjs_showNotes:
1103
- |*true*, false
1104
- |Flags if speaker notes should be visible to all viewers
1105
-
1106
- |:revealjs_autoPlayMedia:
1107
- |*null*, true, false
1108
- a|Global override for autolaying embedded media (video/audio/iframe)
1109
-
1110
- null:: Media will only autoplay if data-autoplay is present
1111
- true:: All media will autoplay, regardless of individual setting
1112
- false:: No media will autoplay, regardless of individual setting
1113
-
1114
- |:revealjs_preloadIframes:
1115
- |*null*, true, false
1116
- a|Global override for preloading lazy-loaded iframes
1117
-
1118
- null:: Iframes with `data-src` AND `data-preload` will be loaded when within the `viewDistance`, iframes with only `data-src` will be loaded when visible
1119
- true:: All iframes with `data-src` will be loaded when within the `viewDistance`
1120
- false:: All iframes with `data-src` will be loaded only when visible
1121
-
1122
- |:revealjs_autoSlide:
1123
- |<integer>
1124
- |Delay in milliseconds between automatically proceeding to the next slide.
1125
- Disabled when set to *0* (the default).
1126
- This value can be overwritten by using a `data-autoslide` attribute on your slides.
1127
-
1128
- |:revealjs_autoSlideStoppable:
1129
- |*true*, false
1130
- |Stop auto-sliding after user input.
1131
-
1132
- |:revealjs_autoSlideMethod:
1133
- |*Reveal.navigateNext*
1134
- |Use this method for navigation when auto-sliding
1135
-
1136
- |:revealjs_defaultTiming:
1137
- |<integer>
1138
- |Specify the average time in seconds that you think you will spend presenting each slide.
1139
- This is used to show a pacing timer in the speaker view.
1140
- Defaults to *120*
1141
-
1142
- |:revealjs_totalTime:
1143
- |<integer>
1144
- |Specify the total time in seconds that is available to present.
1145
- If this is set to a nonzero value, the pacing timer will work out the time available for each slide, instead of using the defaultTiming value.
1146
- Defaults to *0*
1147
-
1148
- |:revealjs_minimumTimePerSlide:
1149
- |<integer>
1150
- |Specify the minimum amount of time you want to allot to each slide, if using the totalTime calculation method.
1151
- If the automated time allocation causes slide pacing to fall below this threshold, then you will see an alert in the speaker notes window.
1152
- Defaults to *0*.
1153
-
1154
- |:revealjs_mouseWheel:
1155
- |true, *false*
1156
- |Enable slide navigation via mouse wheel.
1157
-
1158
- |:revealjs_hideInactiveCursor:
1159
- |*true*, false
1160
- |Hide cursor if inactive
1161
-
1162
- |:revealjs_hideCursorTime:
1163
- |<integer>
1164
- |Time before the cursor is hidden (in ms).
1165
- Defaults to *5000*.
1166
-
1167
- |:revealjs_hideAddressBar:
1168
- |*true*, false
1169
- |Hides the address bar on mobile devices.
1170
-
1171
- |:revealjs_previewLinks:
1172
- |true, *false*
1173
- |Opens links in an iframe preview overlay.
1174
- Add the `preview=true` attribute on links or `link_preview=true` attribute on images to customize each link individually.
1175
-
1176
- |:revealjs_transition:
1177
- |none, fade, *slide*, convex, concave, zoom
1178
- |Transition style.
1179
-
1180
- |:revealjs_transitionSpeed:
1181
- |*default*, fast, slow
1182
- |Transition speed.
1183
-
1184
- |:revealjs_backgroundTransition:
1185
- |none, *fade*, slide, convex, concave, zoom
1186
- |Transition style for full page slide backgrounds.
1187
-
1188
- |:revealjs_viewDistance:
1189
- |<integer>
1190
- |Number of slides away from the current that are visible.
1191
- Default: *3*.
1192
-
1193
- |:revealjs_mobileViewDistance:
1194
- |<integer>
1195
- |Number of slides away from the current that are visible on mobile devices.
1196
- It is advisable to set this to a lower number than viewDistance in order to save resources.
1197
- Default *3*.
1198
-
1199
- |:revealjs_parallaxBackgroundImage:
1200
- |<file\|URL>
1201
- |Parallax background image.
1202
- Defaults to none
1203
-
1204
- |:revealjs_parallaxBackgroundSize:
1205
- |<CSS size syntax>
1206
- |Parallax background size (accepts any CSS syntax).
1207
- Defaults to none
1208
-
1209
- |:revealjs_parallaxBackgroundHorizontal:
1210
- |<Number of pixels>
1211
- a|Number of pixels to move the parallax background per slide
1212
-
1213
- - Calculated automatically unless specified
1214
- - Set to 0 to disable movement along an axis
1215
-
1216
- |:revealjs_parallaxBackgroundVertical:
1217
- |<Number of pixels>
1218
- a|Number of pixels to move the parallax background per slide
1219
-
1220
- - Calculated automatically unless specified
1221
- - Set to 0 to disable movement along an axis
1222
-
1223
- |:revealjs_display:
1224
- |<a valid CSS display mode>
1225
- |The display mode that will be used to show slides.
1226
- Defaults to *block*
1227
-
1228
- |:revealjs_width:
1229
- |<pixels\|percentage unit>
1230
- | Independent from the values, the aspect ratio will be preserved
1231
- when scaled to fit different resolutions. Defaults to *960*
1232
-
1233
- |:revealjs_height:
1234
- |<pixels\|percentage unit>
1235
- | See `:revealjs_width:`. Defaults to *700*
1236
-
1237
- |:revealjs_margin:
1238
- |<percentage value>
1239
- | Factor of the display size that should remain empty around the content. Defaults to *0.1*
1240
-
1241
- |:revealjs_pdfseparatefragments:
1242
- |*true*, false
1243
- |In PDF export, put each fragment on a separate page.
1244
- Defaults to *true*
1245
-
1246
- |:revealjs_pdfmaxpagesperslide:
1247
- |<integer>
1248
- |In PDF export, when a slide does not fit on a single page, maximum number of pages.
1249
- Defaults to *1*
1250
-
1251
- |===
1252
-
1253
- If you want to build a custom theme or customize an existing one you should
1254
- look at the
1255
- {uri-revealjs-gh}/css/theme/README.md[reveal.js
1256
- theme documentation] and use the `revealjs_customtheme` AsciiDoc attribute to
1257
- activate it.
1258
-
1259
-
1260
- === PDF Export
1261
-
1262
- Follow {uri-revealjs-doc}#pdf-export[reveal.js' documentation] for PDF export.
1263
- We would add that we have successfully used PDF export without the requirement of a Web server.
1264
-
1265
-
1266
- === Default plugins
1267
-
1268
- By default, generated presentations will have the following reveal.js plugins enabled:
1269
-
1270
- * plugin/zoom-js/zoom.js
1271
- * plugin/notes/notes.js
1272
-
1273
- All these plugins are part of the reveal.js distribution.
1274
-
1275
- To enable or disable a built-in plugin, it is possible to set the `revealjs_plugin_[plugin name]` attribute to `enable` or `disable`.
1276
-
1277
- For example, to disable all the default plugins set the following document attributes:
1278
-
1279
- ----
1280
- :revealjs_plugin_zoom: disabled
1281
- :revealjs_plugin_notes: disabled
1282
- ----
1283
-
1284
-
1285
- === Additional plugins
1286
-
1287
- Additional reveal.js plugins can be installed and activated using AsciiDoc attributes and external javascript files.
1288
-
1289
- . Extract the plugin files in a directory
1290
- . Create a JavaScript file that will contain the JavaScript statements to load the plugin (only one required even if you are using several plugins)
1291
- . Add a `:revealjs_plugins:` attribute to point to that JavaScript file
1292
- . (Optional) Add a `:revealjs_plugins_configuration:` attribute to point to a JavaScript file that configures the plugins you use
1293
-
1294
- Looking at the example provided in the repository will provide guidance: link:examples/revealjs-plugins.adoc[AsciiDoc source], link:examples/revealjs-plugins.js[Plugin Loader], link:examples/revealjs-plugins-conf.js[Plugin Configuration].
1295
-
1296
- Read {uri-revealjs-doc}#dependencies[the relevant reveal.js documentation] to understand more about reveal.js plugins.
1297
- A {uri-revealjs-gh}/wiki/Plugins,-Tools-and-Hardware[list of existing reveal.js plugins] is also maintained upstream.
1298
-
1299
-
1300
- == Minimum Requirements
1301
-
1302
- Our requirements are expressed in our packages and by our dependencies.
1303
- Basically, all you need is the package manager of the flavor of Asciidoctor reveal.js you are interested to run:
1304
-
1305
- * With Ruby / Bundler: A https://www.ruby-lang.org/en/downloads/[recent Ruby] and https://bundler.io/[Bundler]
1306
- * With JavaScript (Node.js) / npm: a https://nodejs.org/en/download/[recent Node.js] environment
1307
-
1308
- If you need more details about our dependencies check out Asciidoctor dependencies:
1309
-
1310
- * With Ruby / Bundler: https://github.com/asciidoctor/asciidoctor/tree/v2.0.10#requirements[Asciidoctor] 2.0.10
1311
- * With JavaScript (Node.js) / NPM: https://github.com/asciidoctor/asciidoctor.js/blob/v2.0.3/packages/core/package.json[Asciidoctor.js] 2.0.3
1312
-
1313
-
1314
- [[revealjs-compatibility-matrix]]
1315
- == reveal.js Compatibility Matrix
1316
-
1317
- We try as much as possible to be compatible with a broad range of reveal.js versions.
1318
- However, changes made by that project sometimes forces us to drop compatibility with older reveal.js releases.
1319
- This table tracks this compatibility.
1320
-
1321
- |===
1322
- |Asciidoctor reveal.js version |reveal.js version
1323
-
1324
- |4.x
1325
- |3.9 - 3.8
1326
-
1327
- |3.x, 2.x, 1.x
1328
- |3.7 - 3.0
1329
-
1330
- |Unversioned releases
1331
- |2.x
1332
- |===
1333
-
1334
-
1335
- [[asciidoctorjs-compatibility-matrix]]
1336
- == Asciidoctor.js Compatibility Matrix
1337
-
1338
- NOTE: This section is intended only for more advanced users who combine extensions or maintain slide decks over many releases and need to update their dependencies.
1339
-
1340
- Due to our Ruby to JavaScript conversion process, published npm packages have strict requirements with which version of Asciidoctor.js they are compatible with.
1341
- This table tracks this compatibility.
1342
-
1343
- |===
1344
- |Asciidoctor-reveal.js version |Asciidoctor.js version
1345
-
1346
- |3.x
1347
- |2.x
1348
-
1349
- |2.x
1350
- |1.5.9
1351
-
1352
- |1.1.x
1353
- |1.5.6-preview.4
1354
- |===
1355
-
1356
- Be aware that it is always possible to recompile the converter into JavaScript from source so compatibility can be created by anyone if needed.
1357
- More details on that topic can be found link:HACKING.adoc#node-binary-compatibility[in the development guide].
1358
-
1359
-
1360
- == Showcase Presentations
1361
-
1362
- === Power Catchup -- Everything Practical and Important in Java 9 to 13
1363
-
1364
- A smooth presentation, featuring video backgrounds, slide transitions, code and callout examples and the use of notes.
1365
-
1366
- https://bentolor.github.io/java9to13/[Presentation] and https://github.com/bentolor/java9to13[source]
1367
-
1368
- ==== Screenshots
1369
-
1370
- image:{showcasedir}/java9to13_4.png[width=200,link=./{showcasedir}/java9to13_4.png] image:{showcasedir}/java9to13_1.jpg[width=200,link={showcasedir}/java9to13_1.jpg]
1371
-
1372
- image:{showcasedir}/java9to13_2.jpg[width=200,link={showcasedir}/java9to13_2.jpg]
1373
- image:{showcasedir}/java9to13_3.png[width=200,link={showcasedir}/java9to13_3.png]
34
+ == Documentation
1374
35
 
36
+ If you want to learn more about Asciidoctor reveal.js, please read the {url-documentation-site}[documentation].
1375
37
 
1376
38
  == Contributing
1377
39
 
1378
40
  Interested in contributing?
1379
41
  We are interested!
1380
- Developer-focused documentation is link:HACKING.adoc[over here].
1381
-
42
+ Developer-focused documentation is {url-documentation-site}/project/hacking[over here].
1382
43
 
1383
44
  == Copyright and Licensing
1384
45
 
1385
46
  Copyright (C) 2012-2020 {authors} and the Asciidoctor Project.
1386
47
  Free use of this software is granted under the terms of the MIT License.
1387
48
 
1388
- ifdef::env-github,env-browser[See the <<LICENSE#,LICENSE>> file for details.]
49
+ See the xref:LICENSE.adoc[LICENSE] file for details.