asciidoctor-revealjs 3.1.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +86 -0
- data/HACKING.adoc +18 -11
- data/README.adoc +260 -27
- data/Rakefile +12 -4
- data/asciidoctor-revealjs.gemspec +4 -2
- data/examples/docinfo-footer-revealjs.html +10 -0
- data/examples/docinfo-revealjs.html +7 -0
- data/examples/font-awesome.adoc +2 -1
- data/examples/font-awesome.css +3 -0
- data/examples/fragments.adoc +32 -0
- data/examples/fragments.css +18 -0
- data/examples/grid-layout-docinfo-revealjs.html +11 -0
- data/examples/grid-layout.adoc +174 -0
- data/examples/history-hash.adoc +19 -0
- data/examples/history-regression-tests.adoc +0 -5
- data/examples/history.adoc +4 -4
- data/examples/images/asciidoctor-logo.svg +102 -0
- data/examples/level-sectnums.adoc +24 -0
- data/examples/links-preview.adoc +32 -0
- data/examples/links.adoc +39 -0
- data/examples/release-4.0.adoc +195 -0
- data/examples/release-4.0.css +23 -0
- data/examples/source-coderay.adoc +15 -0
- data/examples/source-emphasis.adoc +128 -0
- data/examples/source-highlightjs-html.adoc +1 -1
- data/examples/source-highlightjs-languages.adoc +27 -0
- data/examples/source-highlightjs.adoc +85 -2
- data/examples/source-pygments.adoc +12 -0
- data/examples/source-rouge-docinfo.html +8 -0
- data/examples/source-rouge.adoc +18 -0
- data/examples/video.adoc +12 -3
- data/examples/with-docinfo-shared.adoc +13 -0
- data/lib/asciidoctor-revealjs/converter.rb +312 -136
- data/lib/asciidoctor-revealjs/highlightjs.rb +333 -2
- data/lib/asciidoctor-revealjs/version.rb +1 -1
- data/templates/asciidoctor-compatibility.css +141 -0
- data/templates/document.html.slim +64 -53
- data/templates/helpers.rb +93 -1
- data/templates/image.html.slim +1 -1
- data/templates/inline_anchor.html.slim +2 -1
- data/templates/inline_image.html.slim +3 -3
- data/templates/listing.html.slim +1 -1
- data/templates/section.html.slim +34 -43
- data/templates/stretch_nested_elements.js.slim +65 -0
- data/templates/title_slide.html.slim +28 -0
- metadata +55 -8
- data/examples/revealjs-features.adoc +0 -23
- data/templates/asciidoctor_revealjs.css.slim +0 -59
data/Rakefile
CHANGED
@@ -4,6 +4,7 @@ require 'asciidoctor'
|
|
4
4
|
require 'asciidoctor/doctest'
|
5
5
|
require 'colorize'
|
6
6
|
require 'tilt'
|
7
|
+
require 'rake/testtask'
|
7
8
|
|
8
9
|
CONVERTER_FILE = 'lib/asciidoctor-revealjs/converter.rb'
|
9
10
|
JS_FILE = 'build/asciidoctor-reveal.js'
|
@@ -17,8 +18,7 @@ end
|
|
17
18
|
namespace :build do
|
18
19
|
desc 'Compile Slim templates and generate converter.rb'
|
19
20
|
task :converter => 'clean' do
|
20
|
-
# NOTE:
|
21
|
-
# https://github.com/erniebrodeur/ruby-beautify/issues/45
|
21
|
+
# NOTE: use :pretty if you want to debug the generated code
|
22
22
|
build_converter :fast
|
23
23
|
end
|
24
24
|
|
@@ -40,7 +40,8 @@ namespace :build do
|
|
40
40
|
mkdir_p [File.dirname(JS_FILE), File.dirname(DIST_FILE)]
|
41
41
|
File.open(JS_FILE, 'w') do |file|
|
42
42
|
template = File.read('src/asciidoctor-revealjs.tmpl.js')
|
43
|
-
|
43
|
+
template['//OPAL-GENERATED-CODE//'] = builder.to_s
|
44
|
+
file << template
|
44
45
|
end
|
45
46
|
File.binwrite "#{JS_FILE}.map", builder.source_map
|
46
47
|
|
@@ -76,6 +77,7 @@ def build_converter(mode = :pretty)
|
|
76
77
|
basebackend: 'html',
|
77
78
|
outfilesuffix: '.html',
|
78
79
|
filetype: 'html',
|
80
|
+
supports_templates: true
|
79
81
|
},
|
80
82
|
delegate_backend: 'html5',
|
81
83
|
engine_opts: {
|
@@ -94,6 +96,11 @@ DocTest::RakeTasks.new do |t|
|
|
94
96
|
t.converter_opts = { backend_name: 'revealjs' }
|
95
97
|
end
|
96
98
|
|
99
|
+
Rake::TestTask.new(:test) do |t|
|
100
|
+
t.test_files = FileList['test/asciidoctor-revealjs/*_test.rb']
|
101
|
+
t.warning = false
|
102
|
+
end
|
103
|
+
|
97
104
|
task 'prepare-converter' do
|
98
105
|
# Run as an external process to ensure that it will not affect tests
|
99
106
|
# environment with extra loaded modules (especially slim).
|
@@ -132,7 +139,8 @@ namespace :examples do
|
|
132
139
|
end
|
133
140
|
end
|
134
141
|
|
142
|
+
task 'test' => 'doctest'
|
135
143
|
task 'doctest:test' => 'prepare-converter'
|
136
144
|
task 'doctest:generate' => 'prepare-converter'
|
137
145
|
# When no task specified, run test.
|
138
|
-
task :default => :
|
146
|
+
task :default => :test
|
@@ -36,13 +36,15 @@ Gem::Specification.new do |s|
|
|
36
36
|
|
37
37
|
s.add_development_dependency 'rake', '~> 13.0.0'
|
38
38
|
s.add_development_dependency 'asciidoctor-doctest', '= 2.0.0.beta.5'
|
39
|
-
s.add_development_dependency '
|
39
|
+
s.add_development_dependency 'minitest', '~> 5.14'
|
40
40
|
if RUBY_ENGINE != 'jruby'
|
41
|
+
s.add_development_dependency 'pry', '~> 0.12.0'
|
42
|
+
s.add_development_dependency 'irb'
|
41
43
|
s.add_development_dependency 'pry-byebug'
|
42
44
|
s.add_development_dependency 'pygments.rb'
|
43
45
|
end
|
44
46
|
s.add_development_dependency 'colorize'
|
45
|
-
s.add_development_dependency 'asciidoctor-templates-compiler', '~> 0.
|
47
|
+
s.add_development_dependency 'asciidoctor-templates-compiler', '~> 0.6.0'
|
46
48
|
s.add_development_dependency 'slim', '~> 3.0.6'
|
47
49
|
s.add_development_dependency 'slim-htag', '~> 0.1.0'
|
48
50
|
s.add_development_dependency 'rouge'
|
data/examples/font-awesome.adoc
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
// .revealjs-features
|
2
|
+
// This example tests some of reveal.js' fragments features
|
3
|
+
// :include: //body/script | //div[@class="slides"]
|
4
|
+
// :header_footer:
|
5
|
+
= Fragments
|
6
|
+
:revealjs_history: true
|
7
|
+
:revealjs_fragmentInURL: true
|
8
|
+
:customcss: fragments.css
|
9
|
+
|
10
|
+
== Fragments
|
11
|
+
|
12
|
+
[%step]
|
13
|
+
* Fragments
|
14
|
+
* Are a reveal.js feature
|
15
|
+
* Very familiar to Powerpoint users
|
16
|
+
|
17
|
+
== Fragments in URL
|
18
|
+
|
19
|
+
[%step]
|
20
|
+
* With reveal.js 3.6
|
21
|
+
* Fragments
|
22
|
+
* Can now be displayed in URLs
|
23
|
+
|
24
|
+
== Using data-fragment
|
25
|
+
|
26
|
+
[%step]
|
27
|
+
* You can now
|
28
|
+
* Do
|
29
|
+
* Fancy
|
30
|
+
* CSS Things
|
31
|
+
* With Fragments
|
32
|
+
* See `fragments.css`
|
@@ -0,0 +1,18 @@
|
|
1
|
+
@import 'https://fonts.googleapis.com/css?family=Baloo+Bhai';
|
2
|
+
|
3
|
+
section[data-fragment="2"] p {
|
4
|
+
font-family: 'Baloo Bhai', cursive;
|
5
|
+
}
|
6
|
+
|
7
|
+
section[data-fragment="3"] p {
|
8
|
+
color: black;
|
9
|
+
flex: 1;
|
10
|
+
font-size: 2em;
|
11
|
+
line-height: 1.2;
|
12
|
+
text-decoration: none;
|
13
|
+
background-image: linear-gradient(to right, yellow 0, yellow 100%);
|
14
|
+
background-position: 0 -0.1em;
|
15
|
+
background-size: 100% 100%;
|
16
|
+
background-repeat: no-repeat;
|
17
|
+
transition: background .5s;
|
18
|
+
}
|
@@ -0,0 +1,174 @@
|
|
1
|
+
// .grid-layout
|
2
|
+
// Testing our columns roles
|
3
|
+
// :include: //div[@class="slides"]
|
4
|
+
// :header_footer:
|
5
|
+
= Grid Layout
|
6
|
+
:docinfo: private
|
7
|
+
:source-highlighter: highlight.js
|
8
|
+
:highlightjs-languages: clojure,scala
|
9
|
+
:revealjs_hash: true
|
10
|
+
|
11
|
+
[.columns]
|
12
|
+
== 2 columns
|
13
|
+
|
14
|
+
[.column]
|
15
|
+
--
|
16
|
+
* **Edgar Allen Poe**
|
17
|
+
* Sheri S. Tepper
|
18
|
+
* Bill Bryson
|
19
|
+
--
|
20
|
+
|
21
|
+
[.column]
|
22
|
+
--
|
23
|
+
Edgar Allan Poe (/poʊ/; born Edgar Poe; January 19, 1809 – October 7, 1849) was an American writer, editor, and literary critic.
|
24
|
+
--
|
25
|
+
|
26
|
+
[.columns.wrap]
|
27
|
+
== Multi-columns with wrap
|
28
|
+
|
29
|
+
[.column]
|
30
|
+
--
|
31
|
+
.Kotlin
|
32
|
+
[source,kotlin]
|
33
|
+
----
|
34
|
+
fun main() {
|
35
|
+
println("Hello, World!")
|
36
|
+
}
|
37
|
+
----
|
38
|
+
--
|
39
|
+
|
40
|
+
[.column]
|
41
|
+
--
|
42
|
+
.Clojure
|
43
|
+
[source,clojure]
|
44
|
+
----
|
45
|
+
(defn -main [& args]
|
46
|
+
(println "Hello, World!"))
|
47
|
+
----
|
48
|
+
--
|
49
|
+
|
50
|
+
[.column]
|
51
|
+
--
|
52
|
+
.Scala
|
53
|
+
[source,scala]
|
54
|
+
----
|
55
|
+
object HelloWorld {
|
56
|
+
def main(args: Array[String]): Unit = {
|
57
|
+
println("Hello, world!")
|
58
|
+
}
|
59
|
+
}
|
60
|
+
----
|
61
|
+
--
|
62
|
+
|
63
|
+
[.columns]
|
64
|
+
== Columns with size
|
65
|
+
|
66
|
+
[.column.is-one-third]
|
67
|
+
--
|
68
|
+
* **Kotlin**
|
69
|
+
* Java
|
70
|
+
* Scala
|
71
|
+
--
|
72
|
+
|
73
|
+
[.column]
|
74
|
+
--
|
75
|
+
Programming language for Android, mobile cross-platform
|
76
|
+
and web development, server-side, native,
|
77
|
+
and data science. Open source forever Github.
|
78
|
+
--
|
79
|
+
|
80
|
+
[.columns]
|
81
|
+
== 3 columns
|
82
|
+
|
83
|
+
[.column]
|
84
|
+
* Java
|
85
|
+
* **Kotlin**
|
86
|
+
|
87
|
+
[.column]
|
88
|
+
* Node
|
89
|
+
* **Deno**
|
90
|
+
|
91
|
+
[.column]
|
92
|
+
* Ruby
|
93
|
+
* **Crystal**
|
94
|
+
|
95
|
+
|
96
|
+
[.columns.is-half.green.left]
|
97
|
+
== !
|
98
|
+
|
99
|
+
[.column.is-half]
|
100
|
+
* Java
|
101
|
+
* **Kotlin**
|
102
|
+
|
103
|
+
[.column.is-half]
|
104
|
+
* Ruby
|
105
|
+
* **Crystal**
|
106
|
+
|
107
|
+
== Languages
|
108
|
+
|
109
|
+
We will go over languages
|
110
|
+
|
111
|
+
[.columns]
|
112
|
+
=== Kotlin
|
113
|
+
|
114
|
+
[.column]
|
115
|
+
[source,kotlin]
|
116
|
+
----
|
117
|
+
fun main() {
|
118
|
+
println("Hello, World!")
|
119
|
+
}
|
120
|
+
----
|
121
|
+
|
122
|
+
[.column]
|
123
|
+
--
|
124
|
+
* Nice and compact
|
125
|
+
* Works well on Android
|
126
|
+
--
|
127
|
+
|
128
|
+
[.columns]
|
129
|
+
=== Clojure
|
130
|
+
|
131
|
+
[.column]
|
132
|
+
[source,clojure]
|
133
|
+
----
|
134
|
+
(defn -main [& args]
|
135
|
+
(println "Hello, World!"))
|
136
|
+
----
|
137
|
+
|
138
|
+
[.column]
|
139
|
+
--
|
140
|
+
* Lisp-like
|
141
|
+
* Few simple concepts
|
142
|
+
--
|
143
|
+
|
144
|
+
[.columns.is-vcentered]
|
145
|
+
== Vertically Centered Columns
|
146
|
+
|
147
|
+
[.column]
|
148
|
+
* Java
|
149
|
+
* **Kotlin**
|
150
|
+
|
151
|
+
[.column]
|
152
|
+
* Node
|
153
|
+
* **Deno**
|
154
|
+
|
155
|
+
[.column.is-half]
|
156
|
+
--
|
157
|
+
.Source
|
158
|
+
[source,asciidoc]
|
159
|
+
....
|
160
|
+
[.columns.is-vcentered]
|
161
|
+
== Vertically Aligned Columns
|
162
|
+
|
163
|
+
[.column]
|
164
|
+
* Java
|
165
|
+
* **Kotlin**
|
166
|
+
|
167
|
+
[.column]
|
168
|
+
* Node
|
169
|
+
* **Deno**
|
170
|
+
|
171
|
+
[.column.is-half]
|
172
|
+
[...]
|
173
|
+
....
|
174
|
+
--
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// .hash
|
2
|
+
// Enables reveal.js hash feature which is good to reload in-progress slides and doesn't push to browser history.
|
3
|
+
// :include: //body/script | //div[@class="slides"]
|
4
|
+
// :header_footer:
|
5
|
+
= No History
|
6
|
+
:backend: revealjs
|
7
|
+
:revealjs_hash: true
|
8
|
+
|
9
|
+
== First slide
|
10
|
+
|
11
|
+
This Deck
|
12
|
+
|
13
|
+
== Second slide
|
14
|
+
|
15
|
+
You can reload anytime
|
16
|
+
|
17
|
+
== Third slide
|
18
|
+
|
19
|
+
Yet browser history is not spammed
|
data/examples/history.adoc
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// .history
|
2
|
-
// Enables
|
2
|
+
// Enables reveal.js' browser history feature
|
3
3
|
// :include: //body/script | //div[@class="slides"]
|
4
4
|
// :header_footer:
|
5
5
|
= History
|
@@ -8,12 +8,12 @@
|
|
8
8
|
|
9
9
|
== First slide
|
10
10
|
|
11
|
-
|
11
|
+
This
|
12
12
|
|
13
13
|
== Second slide
|
14
14
|
|
15
|
-
|
15
|
+
Pushes
|
16
16
|
|
17
17
|
== Third slide
|
18
18
|
|
19
|
-
|
19
|
+
To Browser History Stack
|
@@ -0,0 +1,102 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
+
width="105.83333mm"
|
13
|
+
height="105.83333mm"
|
14
|
+
viewBox="0 0 105.83333 105.83333"
|
15
|
+
version="1.1"
|
16
|
+
id="svg3751"
|
17
|
+
inkscape:export-filename="/tmp/asciidoctor-logo-fill-color.png"
|
18
|
+
inkscape:export-xdpi="240"
|
19
|
+
inkscape:export-ydpi="240"
|
20
|
+
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">
|
21
|
+
<title
|
22
|
+
id="title4527">Asciidoctor</title>
|
23
|
+
<defs
|
24
|
+
id="defs3745" />
|
25
|
+
<sodipodi:namedview
|
26
|
+
id="base"
|
27
|
+
pagecolor="#ffffff"
|
28
|
+
bordercolor="#666666"
|
29
|
+
borderopacity="1.0"
|
30
|
+
inkscape:pageopacity="0.0"
|
31
|
+
inkscape:pageshadow="2"
|
32
|
+
inkscape:zoom="1.6245048"
|
33
|
+
inkscape:cx="-46.777153"
|
34
|
+
inkscape:cy="24.966208"
|
35
|
+
inkscape:document-units="mm"
|
36
|
+
inkscape:current-layer="layer1"
|
37
|
+
showgrid="false"
|
38
|
+
fit-margin-top="0"
|
39
|
+
fit-margin-left="0"
|
40
|
+
fit-margin-right="0"
|
41
|
+
fit-margin-bottom="0"
|
42
|
+
inkscape:window-width="3200"
|
43
|
+
inkscape:window-height="1658"
|
44
|
+
inkscape:window-x="0"
|
45
|
+
inkscape:window-y="68"
|
46
|
+
inkscape:window-maximized="1" />
|
47
|
+
<metadata
|
48
|
+
id="metadata3748">
|
49
|
+
<rdf:RDF>
|
50
|
+
<cc:Work
|
51
|
+
rdf:about="">
|
52
|
+
<dc:format>image/svg+xml</dc:format>
|
53
|
+
<dc:type
|
54
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
55
|
+
<dc:title>Asciidoctor</dc:title>
|
56
|
+
<dc:publisher>
|
57
|
+
<cc:Agent>
|
58
|
+
<dc:title>Asciidoctor</dc:title>
|
59
|
+
</cc:Agent>
|
60
|
+
</dc:publisher>
|
61
|
+
<dc:description>Asciidoctor project logo.</dc:description>
|
62
|
+
<dc:subject>
|
63
|
+
<rdf:Bag>
|
64
|
+
<rdf:li>AsciiDoc</rdf:li>
|
65
|
+
</rdf:Bag>
|
66
|
+
</dc:subject>
|
67
|
+
<dc:relation>https://asciidoctor.org</dc:relation>
|
68
|
+
</cc:Work>
|
69
|
+
</rdf:RDF>
|
70
|
+
</metadata>
|
71
|
+
<g
|
72
|
+
inkscape:label="Layer 1"
|
73
|
+
inkscape:groupmode="layer"
|
74
|
+
id="layer1"
|
75
|
+
transform="translate(-0.083335,-191.08337)">
|
76
|
+
<path
|
77
|
+
inkscape:connector-curvature="0"
|
78
|
+
id="path907"
|
79
|
+
d="m 26.240746,191.08337 c -14.436702,0 -26.157411,11.7201 -26.157411,26.15666 v 53.51951 c 0,14.43654 11.720957,26.15715 26.157411,26.15715 H 79.76025 c 14.436679,0 26.15641,-11.72061 26.15641,-26.15715 v -53.51951 c 0,-14.43656 -11.719488,-26.15666 -26.15641,-26.15666 z"
|
80
|
+
style="clip-rule:evenodd;fill:#e40046;fill-opacity:1;fill-rule:evenodd;stroke-width:0.24752024;stroke-linejoin:round;stroke-miterlimit:1.41420996" />
|
81
|
+
<path
|
82
|
+
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.46009064px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
83
|
+
d="m 55.70942,210.48548 a 2.2302684,2.2302684 0 0 0 -2.015517,1.37263 l -13.327365,32.05565 a 2.2302684,2.2302684 0 1 0 4.117839,1.71171 l 11.25217,-27.06706 23.600261,57.54395 a 2.2302684,2.2302684 0 1 0 4.125976,-1.69271 L 57.814455,211.86894 a 2.2302684,2.2302684 0 0 0 -2.105035,-1.38346 z"
|
84
|
+
id="path909"
|
85
|
+
inkscape:connector-curvature="0" />
|
86
|
+
<path
|
87
|
+
inkscape:connector-curvature="0"
|
88
|
+
id="path911"
|
89
|
+
d="m 36.817184,255.95416 a 2.2302685,2.2302685 0 0 0 -2.024151,1.40272 l -7.083967,17.04249 a 2.2302685,2.2302685 0 1 0 4.118502,1.71234 l 7.083967,-17.0425 a 2.2302685,2.2302685 0 0 0 -2.094351,-3.11505 z"
|
90
|
+
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.46009111px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1.5;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
91
|
+
<path
|
92
|
+
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.46009111px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
93
|
+
d="m 21.548721,254.55016 a 2.2302685,2.2302685 0 1 0 0,4.45963 h 25.754124 a 2.2302685,2.2302685 0 1 0 0,-4.45964 z"
|
94
|
+
id="path915"
|
95
|
+
inkscape:connector-curvature="0" />
|
96
|
+
<path
|
97
|
+
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.46009111px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
98
|
+
d="m 26.263348,243.9626 a 2.2302685,2.2302685 0 1 0 0,4.45962 h 25.751411 a 2.2302685,2.2302685 0 1 0 0,-4.45962 z"
|
99
|
+
id="path919"
|
100
|
+
inkscape:connector-curvature="0" />
|
101
|
+
</g>
|
102
|
+
</svg>
|