reveal-ck 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +10 -72
- data/bin/reveal-ck +12 -12
- data/lib/reveal-ck/builders/index_html.rb +26 -19
- data/lib/reveal-ck/config.rb +8 -37
- data/lib/reveal-ck/version.rb +1 -1
- data/reveal.js/Gruntfile.js +2 -2
- data/reveal.js/README.md +18 -1
- data/reveal.js/css/theme/README.md +3 -1
- data/reveal.js/js/reveal.js +4 -1
- data/reveal.js/js/reveal.min.js +2 -2
- data/reveal.js/plugin/multiplex/master.js +2 -1
- data/reveal.js/plugin/notes/notes.html +2 -2
- data/reveal.js/plugin/remotes/remotes.js +3 -3
- data/spec/data/config/full_config.yml +4 -0
- data/spec/data/config/partial_config.yml +1 -0
- data/spec/data/presentation/slides.rb +1 -1
- data/spec/data/presentation_dsl/dsl.rb +6 -6
- data/spec/lib/reveal-ck/builders/packaged_slides_spec.rb +3 -3
- data/spec/lib/reveal-ck/changers/slicer_spec.rb +2 -7
- data/spec/lib/reveal-ck/changers/splicer_spec.rb +3 -3
- data/spec/lib/reveal-ck/config_spec.rb +2 -2
- data/spec/lib/reveal-ck/presentation_spec.rb +16 -0
- data/spec/lib/reveal-ck/templates/finder_spec.rb +1 -1
- data/templates/image.slim +14 -3
- metadata +22 -36
- data/spec/data/config/full_config.toml +0 -7
- data/spec/data/config/partial_config.toml +0 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2M2YWMyN2IyODhkYTljMmFhZmNiYmZhM2I5YjBhZTNhN2I2ZjE2Zg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTQzNzBkODE4MjU3NjcyNWM5ZGU5MjEzYzE2NzZiODlmYTczNzQyMA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjgwYzZiZGJlNGNkNmFiNWJiMzk2ZTA0MDhhY2NiYTA1NWFiN2ViNDI3ZDQ1
|
10
|
+
ZjRkYzJlNThjOTkzOWY2MjIwZTcwZDE3NmE1NWZlZTgxY2FjMThhNjExM2Iw
|
11
|
+
MGMwM2VjMmRiOTI4YTI2MTcwYWYwY2FlNDk4NDBlNmEwMDc1NWQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZmY3MDc5MTNmZjRkY2ZmMTc5YmU1NzAwNzY2N2Y4Yzg3MDJiZjliNzE2NWI3
|
14
|
+
YjJlY2VlYjBmMDExNzg1YTdmYzUwZmZhZDU5OGEyYjNiNDY1MGZhMDM1YzFj
|
15
|
+
YTg2NGY3ODYyYzVhZTI3ODYwYjA5NDZhNGUyMjRiN2YyNjM4NzQ=
|
data/README.md
CHANGED
@@ -1,80 +1,18 @@
|
|
1
|
-
# reveal-ck:
|
1
|
+
# reveal-ck: Make Slides with Ruby
|
2
2
|
|
3
|
-
[![Build Status][travis
|
4
|
-
[![Code Climate][code-climate
|
3
|
+
[![Build Status][travis]](https://travis-ci.org/jedcn/reveal-ck)
|
4
|
+
[![Code Climate][code-climate]](https://codeclimate.com/github/jedcn/reveal-ck)
|
5
5
|
|
6
6
|
## Overview
|
7
7
|
|
8
|
-
This project
|
9
|
-
quickly author [reveal.js](http://lab.hakim.se/reveal-js/)
|
10
|
-
presentations.
|
8
|
+
This project lets you author slides with a Ruby toolset.
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
and how to get up and running with it.
|
10
|
+
You write in Haml or slim or Ruby, and you can easily make [slides that
|
11
|
+
look like this][reveal.js].
|
15
12
|
|
16
|
-
The hope is that you will be able to leverage all of the power,
|
17
|
-
beauty, and functionality that comes from reveal.js while focusing
|
18
|
-
entirely on the actual content and ideas you are trying to get across.
|
19
13
|
|
20
|
-
|
21
|
-
[this project that's got everything you need][github-jedcn-reveal-ck-template].
|
14
|
+
An introduction is available at http://jedcn.github.io/reveal-ck.
|
22
15
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
You can! For sure.
|
28
|
-
|
29
|
-
The whole reveal.js offering is great.
|
30
|
-
|
31
|
-
If reveal-ck's approach is too contrived or doesn't warrant the setup
|
32
|
-
time, skip it!
|
33
|
-
|
34
|
-
## Then.. why would anyone use reveal-ck?
|
35
|
-
|
36
|
-
The thought behind this project to help you focus on what *you* want
|
37
|
-
to say.
|
38
|
-
|
39
|
-
For me, focusing becomes easier and my thoughts clearer when I reduce
|
40
|
-
the list of slides to a single file (`slides.slim`, `slides.haml`, or
|
41
|
-
`slides.rb`). This file only contains the slide content that I am
|
42
|
-
presenting and there is minimal markup.
|
43
|
-
|
44
|
-
* If you look at the presentation in a browser, you can't scan all of
|
45
|
-
the slides at once. You need to visit them. If you're looking at a
|
46
|
-
single file, you can quickly scan through 30+ slides.
|
47
|
-
|
48
|
-
* If you look at the html behind the presentation (say, view source),
|
49
|
-
there's a bunch of stuff that is about making the magic happen:
|
50
|
-
styles, javascript, etc, and that distracts from your content.
|
51
|
-
|
52
|
-
* If you track your slides in a system like git, you can get
|
53
|
-
meaningful diffs between versions of a single file. This is slightly
|
54
|
-
easier than if you track the generated presentation.
|
55
|
-
|
56
|
-
In the end, [reveal.js][reveal-js], can make things pretty, but only
|
57
|
-
you can make a presentation that is worthwhile.
|
58
|
-
|
59
|
-
## Getting Started
|
60
|
-
|
61
|
-
You can author a set of slides by writing in a templating language,
|
62
|
-
such as [Slim][slim] or [Haml][haml], or you can build them
|
63
|
-
programmatically in ruby. Check out the
|
64
|
-
[getting started][reveal-ck-getting-started] instructions, and let me
|
65
|
-
know if you have any trouble.
|
66
|
-
|
67
|
-
## Development
|
68
|
-
|
69
|
-
If you are interested in hacking on reveal-ck, check out the
|
70
|
-
[development page][reveal-ck-development].
|
71
|
-
|
72
|
-
[code-climate-reveal-ck-badge]: https://codeclimate.com/github/jedcn/reveal-ck.png
|
73
|
-
[github-jedcn-reveal-ck-template]: http://github.com/jedcn/reveal-ck-template
|
74
|
-
[haml]: http://haml.info/
|
75
|
-
[jedcn-reveal-ck]: http://jedcn.com/posts/reveal-ck
|
76
|
-
[reveal-ck-development]: https://github.com/jedcn/reveal-ck/blob/master/doc/development.md
|
77
|
-
[reveal-ck-getting-started]: https://github.com/jedcn/reveal-ck/blob/master/doc/getting_started.md
|
78
|
-
[reveal-js]: http://lab.hakim.se/reveal-js
|
79
|
-
[slim]: http://slim-lang.com/
|
80
|
-
[travis-reveal-ck-badge]: https://travis-ci.org/jedcn/reveal-ck.png
|
16
|
+
[code-climate]: https://codeclimate.com/github/jedcn/reveal-ck.png
|
17
|
+
[travis]: https://travis-ci.org/jedcn/reveal-ck.png
|
18
|
+
[reveal.js]: http://lab.hakim.se/reveal-js
|
data/bin/reveal-ck
CHANGED
@@ -18,30 +18,30 @@ command :generate do |c|
|
|
18
18
|
c.desc 'The file containing your slides'
|
19
19
|
c.flag [:f, :file], default_value: default_file
|
20
20
|
|
21
|
-
c.action do |global_options,options,args|
|
21
|
+
c.action do |global_options, options, args|
|
22
22
|
slides_file = options[:file]
|
23
23
|
|
24
24
|
require 'rake' # for FileList
|
25
|
-
image_files = FileList[
|
25
|
+
image_files = FileList['images/**/*']
|
26
26
|
|
27
27
|
output_dir = 'slides'
|
28
28
|
|
29
29
|
presentation = RevealCK::Presentation.load slides_file
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
end
|
31
|
+
presentation
|
32
|
+
.merge_config({ file: 'config.yml' }) if File.exists?('config.yml')
|
34
33
|
|
35
|
-
builder =
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
34
|
+
builder =
|
35
|
+
RevealCK::Builders::PackagedSlides.new({
|
36
|
+
image_files: image_files,
|
37
|
+
output_dir: output_dir,
|
38
|
+
presentation: presentation
|
39
|
+
})
|
40
40
|
builder.build!
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
pre do |global,command,options,args|
|
44
|
+
pre do |global, command, options, args|
|
45
45
|
# Pre logic here
|
46
46
|
# Return true to proceed; false to abort and not call the
|
47
47
|
# chosen command
|
@@ -50,7 +50,7 @@ pre do |global,command,options,args|
|
|
50
50
|
true
|
51
51
|
end
|
52
52
|
|
53
|
-
post do |global,command,options,args|
|
53
|
+
post do |global, command, options, args|
|
54
54
|
# Post logic here
|
55
55
|
# Use skips_post before a command to skip this
|
56
56
|
# block on that command only
|
@@ -49,36 +49,43 @@ module RevealCK
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
|
53
|
+
def replace_task(args)
|
54
|
+
action = args[:action] || raise(':action is required')
|
55
|
+
old = args[:old] || raise(':old is required')
|
56
|
+
new = args[:new] || raise(':new is required')
|
57
|
+
file = args[:file] || raise(':file is required')
|
58
|
+
add_task action do
|
56
59
|
Changers::StringReplacer.replace! file, old: old, new: new
|
57
60
|
end
|
58
61
|
end
|
59
62
|
|
63
|
+
def replace_title(file, title)
|
64
|
+
replace_task action: 'Replacing the <title>',
|
65
|
+
file: file,
|
66
|
+
old: 'reveal.js - The HTML Presentation Framework',
|
67
|
+
new: title
|
68
|
+
end
|
69
|
+
|
60
70
|
def replace_author(file, author)
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
end
|
71
|
+
replace_task action: "Replacing the <meta name='author'>",
|
72
|
+
file: file,
|
73
|
+
old: 'name="author" content="Hakim El Hattab"',
|
74
|
+
new: 'name="author" content="' + author + '"'
|
66
75
|
end
|
67
76
|
|
68
77
|
def replace_theme(file, theme)
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
end
|
78
|
+
replace_task action: 'Replacing the core theme',
|
79
|
+
file: file,
|
80
|
+
old: 'href="css/theme/default.css" id="theme"',
|
81
|
+
new: 'href="css/theme/' + theme + '.css" id="theme"'
|
74
82
|
end
|
75
83
|
|
76
84
|
def replace_transition(file, transition)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
end
|
85
|
+
replace_task action: 'Replacing the core transition',
|
86
|
+
file: file,
|
87
|
+
old: "Reveal.getQueryHash().transition || 'default'",
|
88
|
+
new: "Reveal.getQueryHash().transition || '#{transition}'"
|
82
89
|
end
|
83
90
|
end
|
84
91
|
end
|
data/lib/reveal-ck/config.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'yaml'
|
2
2
|
|
3
3
|
module RevealCK
|
4
4
|
#
|
@@ -7,38 +7,24 @@ module RevealCK
|
|
7
7
|
#
|
8
8
|
module Config
|
9
9
|
|
10
|
+
attr_writer :author, :title, :theme, :transition
|
11
|
+
|
10
12
|
def author
|
11
13
|
@author || DEFAULTS['author']
|
12
14
|
end
|
13
15
|
|
14
|
-
def author=(author)
|
15
|
-
@author = author
|
16
|
-
end
|
17
|
-
|
18
16
|
def title
|
19
17
|
@title || DEFAULTS['title']
|
20
18
|
end
|
21
19
|
|
22
|
-
def title=(title)
|
23
|
-
@title = title
|
24
|
-
end
|
25
|
-
|
26
20
|
def theme
|
27
21
|
@theme || DEFAULTS['theme']
|
28
22
|
end
|
29
23
|
|
30
|
-
def theme=(theme)
|
31
|
-
@theme = theme
|
32
|
-
end
|
33
|
-
|
34
24
|
def transition
|
35
25
|
@transition || DEFAULTS['transition']
|
36
26
|
end
|
37
27
|
|
38
|
-
def transition=(transition)
|
39
|
-
@transition = transition
|
40
|
-
end
|
41
|
-
|
42
28
|
DEFAULTS = {
|
43
29
|
'title' => 'Slides',
|
44
30
|
'author' => '',
|
@@ -48,27 +34,12 @@ module RevealCK
|
|
48
34
|
|
49
35
|
def merge_config(args)
|
50
36
|
file = args[:file] || raise(':file is required')
|
51
|
-
config =
|
52
|
-
|
53
|
-
if config['author']
|
54
|
-
@author = config['author'] unless @author
|
55
|
-
end
|
56
|
-
|
57
|
-
if config['title']
|
58
|
-
@title = config['title'] unless @title
|
59
|
-
end
|
60
|
-
|
61
|
-
if config['presentation']
|
62
|
-
presentation = config['presentation']
|
63
|
-
if presentation['theme']
|
64
|
-
@theme = presentation['theme'] unless @theme
|
65
|
-
end
|
66
|
-
|
67
|
-
if presentation['transition']
|
68
|
-
@transition = presentation['transition'] unless @transition
|
69
|
-
end
|
70
|
-
end
|
37
|
+
config = YAML.load_file file
|
71
38
|
|
39
|
+
@author = @author || config['author']
|
40
|
+
@title = @title || config['title']
|
41
|
+
@theme = @theme || config['theme']
|
42
|
+
@transition = @transition || config['transition']
|
72
43
|
end
|
73
44
|
|
74
45
|
end
|
data/lib/reveal-ck/version.rb
CHANGED
data/reveal.js/Gruntfile.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* global module:false */
|
2
2
|
module.exports = function(grunt) {
|
3
|
-
|
3
|
+
var port = grunt.option('port') || 8000;
|
4
4
|
// Project configuration
|
5
5
|
grunt.initConfig({
|
6
6
|
pkg: grunt.file.readJSON('package.json'),
|
@@ -78,7 +78,7 @@ module.exports = function(grunt) {
|
|
78
78
|
connect: {
|
79
79
|
server: {
|
80
80
|
options: {
|
81
|
-
port:
|
81
|
+
port: port,
|
82
82
|
base: '.'
|
83
83
|
}
|
84
84
|
}
|
data/reveal.js/README.md
CHANGED
@@ -758,7 +758,7 @@ Some reveal.js features, like external markdown, require that presentations run
|
|
758
758
|
|
759
759
|
4. Clone the reveal.js repository
|
760
760
|
```
|
761
|
-
$ git clone
|
761
|
+
$ git clone https://github.com/hakimel/reveal.js.git
|
762
762
|
```
|
763
763
|
|
764
764
|
5. Navigate to the reveal.js folder
|
@@ -778,6 +778,8 @@ $ grunt serve
|
|
778
778
|
|
779
779
|
8. Open <http://localhost:8000> to view your presentation
|
780
780
|
|
781
|
+
You can change the port by using `grunt serve --port 8001`.
|
782
|
+
|
781
783
|
|
782
784
|
### Folder Structure
|
783
785
|
- **css/** Core styles without which the project does not function
|
@@ -786,6 +788,21 @@ $ grunt serve
|
|
786
788
|
- **lib/** All other third party assets (JavaScript, CSS, fonts)
|
787
789
|
|
788
790
|
|
791
|
+
### Contributing
|
792
|
+
|
793
|
+
Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**. If you are reporting a bug make sure to include information about which browser and operating system you are using as well as the necessary steps to reproduce the issue.
|
794
|
+
|
795
|
+
If you have personal support questions use [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js).
|
796
|
+
|
797
|
+
|
798
|
+
#### Pull requests
|
799
|
+
|
800
|
+
- Should follow the coding style of the file you work in, most importantly:
|
801
|
+
- Tabs to indent
|
802
|
+
- Single-quoted strings
|
803
|
+
- Should be made towards the **dev branch**
|
804
|
+
- Should be submitted from a feature/topic branch (not your master)
|
805
|
+
|
789
806
|
|
790
807
|
## License
|
791
808
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceding: https://github.com/hakimel/reveal.js#full-setup
|
4
4
|
|
5
|
-
|
5
|
+
You also need to install Ruby and then Sass (with `gem install sass`).
|
6
6
|
|
7
7
|
## Creating a Theme
|
8
8
|
|
@@ -21,3 +21,5 @@ This is where you override the default theme. Either by specifying variables (se
|
|
21
21
|
|
22
22
|
4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)**
|
23
23
|
The template theme file which will generate final CSS output based on the currently defined variables.
|
24
|
+
|
25
|
+
When you are done, run `grunt themes` to compile the Sass file to CSS and you are ready to use your new theme.
|
data/reveal.js/js/reveal.js
CHANGED
@@ -74,6 +74,9 @@ var Reveal = (function(){
|
|
74
74
|
// Apply a 3D roll to links on hover
|
75
75
|
rollingLinks: false,
|
76
76
|
|
77
|
+
// Hides the address bar on mobile devices
|
78
|
+
hideAddressBar: true,
|
79
|
+
|
77
80
|
// Opens links in an iframe preview overlay
|
78
81
|
previewLinks: false,
|
79
82
|
|
@@ -767,7 +770,7 @@ var Reveal = (function(){
|
|
767
770
|
*/
|
768
771
|
function hideAddressBar() {
|
769
772
|
|
770
|
-
if( isMobileDevice ) {
|
773
|
+
if( config.hideAddressBar && isMobileDevice ) {
|
771
774
|
// Events that should trigger the address bar to hide
|
772
775
|
window.addEventListener( 'load', removeAddressBar, false );
|
773
776
|
window.addEventListener( 'orientationchange', removeAddressBar, false );
|
data/reveal.js/js/reveal.min.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
/*!
|
2
|
-
* reveal.js 2.6.0-dev (2013-09-
|
2
|
+
* reveal.js 2.6.0-dev (2013-09-11, 21:54)
|
3
3
|
* http://lab.hakim.se/reveal-js
|
4
4
|
* MIT licensed
|
5
5
|
*
|
6
6
|
* Copyright (C) 2013 Hakim El Hattab, http://hakim.se
|
7
7
|
*/
|
8
|
-
var Reveal=function(){"use strict";function a(a){return b(),Kb||Jb?(window.addEventListener("load",C,!1),l(Qb,a),s(),c(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function b(){Jb="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,Kb="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,Lb=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function c(){function a(){c.length&&head.js.apply(null,c),d()}for(var b=[],c=[],e=0,f=Qb.dependencies.length;f>e;e++){var g=Qb.dependencies[e];(!g.condition||g.condition())&&(g.async?c.push(g.src):b.push(g.src),"function"==typeof g.callback&&head.ready(g.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],g.callback))}b.length?(head.ready(a),head.js.apply(null,b)):a()}function d(){f(),e(),i(),_(),setTimeout(function(){Vb.slides.classList.remove("no-transition"),Rb=!0,u("ready",{indexh:Fb,indexv:Gb,currentSlide:Ib})},1)}function e(){var a=m(document.querySelectorAll(Nb));a.forEach(function(a){var b=m(a.querySelectorAll("section"));b.forEach(function(a,b){b>0&&a.classList.add("future")})})}function f(){Vb.theme=document.querySelector("#theme"),Vb.wrapper=document.querySelector(".reveal"),Vb.slides=document.querySelector(".reveal .slides"),Vb.slides.classList.add("no-transition"),Vb.background=g(Vb.wrapper,"div","backgrounds",null),Vb.progress=g(Vb.wrapper,"div","progress","<span></span>"),Vb.progressbar=Vb.progress.querySelector("span"),g(Vb.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),g(Vb.wrapper,"div","state-background",null),g(Vb.wrapper,"div","pause-overlay",null),Vb.controls=document.querySelector(".reveal .controls"),Vb.controlsLeft=m(document.querySelectorAll(".navigate-left")),Vb.controlsRight=m(document.querySelectorAll(".navigate-right")),Vb.controlsUp=m(document.querySelectorAll(".navigate-up")),Vb.controlsDown=m(document.querySelectorAll(".navigate-down")),Vb.controlsPrev=m(document.querySelectorAll(".navigate-prev")),Vb.controlsNext=m(document.querySelectorAll(".navigate-next"))}function g(a,b,c,d){var e=a.querySelector("."+c);return e||(e=document.createElement(b),e.classList.add(c),null!==d&&(e.innerHTML=d),a.appendChild(e)),e}function h(){function a(a,b){var c={background:a.getAttribute("data-background"),backgroundSize:a.getAttribute("data-background-size"),backgroundImage:a.getAttribute("data-background-image"),backgroundColor:a.getAttribute("data-background-color"),backgroundRepeat:a.getAttribute("data-background-repeat"),backgroundPosition:a.getAttribute("data-background-position"),backgroundTransition:a.getAttribute("data-background-transition")},d=document.createElement("div");return d.className="slide-background",c.background&&(/^(http|file|\/\/)/gi.test(c.background)||/\.(png|jpg|jpeg|gif|bmp)$/gi.test(c.background)?d.style.backgroundImage="url("+c.background+")":d.style.background=c.background),c.backgroundSize&&(d.style.backgroundSize=c.backgroundSize),c.backgroundImage&&(d.style.backgroundImage='url("'+c.backgroundImage+'")'),c.backgroundColor&&(d.style.backgroundColor=c.backgroundColor),c.backgroundRepeat&&(d.style.backgroundRepeat=c.backgroundRepeat),c.backgroundPosition&&(d.style.backgroundPosition=c.backgroundPosition),c.backgroundTransition&&d.setAttribute("data-background-transition",c.backgroundTransition),b.appendChild(d),d}r()&&document.body.classList.add("print-pdf"),Vb.background.innerHTML="",Vb.background.classList.add("no-transition"),m(document.querySelectorAll(Nb)).forEach(function(b){var c;c=r()?a(b,b):a(b,Vb.background),m(b.querySelectorAll("section")).forEach(function(b){r()?a(b,b):a(b,c)})})}function i(a){if(Vb.wrapper.classList.remove(Qb.transition),"object"==typeof a&&l(Qb,a),Jb===!1&&(Qb.transition="linear"),Vb.wrapper.classList.add(Qb.transition),Vb.wrapper.setAttribute("data-transition-speed",Qb.transitionSpeed),Vb.wrapper.setAttribute("data-background-transition",Qb.backgroundTransition),Vb.controls.style.display=Qb.controls?"block":"none",Vb.progress.style.display=Qb.progress?"block":"none",Qb.rtl?Vb.wrapper.classList.add("rtl"):Vb.wrapper.classList.remove("rtl"),Qb.center?Vb.wrapper.classList.add("center"):Vb.wrapper.classList.remove("center"),Qb.mouseWheel?(document.addEventListener("DOMMouseScroll",tb,!1),document.addEventListener("mousewheel",tb,!1)):(document.removeEventListener("DOMMouseScroll",tb,!1),document.removeEventListener("mousewheel",tb,!1)),Qb.rollingLinks?v():w(),Qb.previewLinks?x():(y(),x("[data-preview-link]")),Qb.theme&&Vb.theme){var b=Vb.theme.getAttribute("href"),c=/[^\/]*?(?=\.css)/,d=b.match(c)[0];Qb.theme!==d&&(b=b.replace(c,Qb.theme),Vb.theme.setAttribute("href",b))}R()}function j(){_b=!0,window.addEventListener("hashchange",Bb,!1),window.addEventListener("resize",Cb,!1),Qb.touch&&(Vb.wrapper.addEventListener("touchstart",nb,!1),Vb.wrapper.addEventListener("touchmove",ob,!1),Vb.wrapper.addEventListener("touchend",pb,!1),window.navigator.msPointerEnabled&&(Vb.wrapper.addEventListener("MSPointerDown",qb,!1),Vb.wrapper.addEventListener("MSPointerMove",rb,!1),Vb.wrapper.addEventListener("MSPointerUp",sb,!1))),Qb.keyboard&&document.addEventListener("keydown",mb,!1),Qb.progress&&Vb.progress&&Vb.progress.addEventListener("click",ub,!1),["touchstart","click"].forEach(function(a){Vb.controlsLeft.forEach(function(b){b.addEventListener(a,vb,!1)}),Vb.controlsRight.forEach(function(b){b.addEventListener(a,wb,!1)}),Vb.controlsUp.forEach(function(b){b.addEventListener(a,xb,!1)}),Vb.controlsDown.forEach(function(b){b.addEventListener(a,yb,!1)}),Vb.controlsPrev.forEach(function(b){b.addEventListener(a,zb,!1)}),Vb.controlsNext.forEach(function(b){b.addEventListener(a,Ab,!1)})})}function k(){_b=!1,document.removeEventListener("keydown",mb,!1),window.removeEventListener("hashchange",Bb,!1),window.removeEventListener("resize",Cb,!1),Vb.wrapper.removeEventListener("touchstart",nb,!1),Vb.wrapper.removeEventListener("touchmove",ob,!1),Vb.wrapper.removeEventListener("touchend",pb,!1),window.navigator.msPointerEnabled&&(Vb.wrapper.removeEventListener("MSPointerDown",qb,!1),Vb.wrapper.removeEventListener("MSPointerMove",rb,!1),Vb.wrapper.removeEventListener("MSPointerUp",sb,!1)),Qb.progress&&Vb.progress&&Vb.progress.removeEventListener("click",ub,!1),["touchstart","click"].forEach(function(a){Vb.controlsLeft.forEach(function(b){b.removeEventListener(a,vb,!1)}),Vb.controlsRight.forEach(function(b){b.removeEventListener(a,wb,!1)}),Vb.controlsUp.forEach(function(b){b.removeEventListener(a,xb,!1)}),Vb.controlsDown.forEach(function(b){b.removeEventListener(a,yb,!1)}),Vb.controlsPrev.forEach(function(b){b.removeEventListener(a,zb,!1)}),Vb.controlsNext.forEach(function(b){b.removeEventListener(a,Ab,!1)})})}function l(a,b){for(var c in b)a[c]=b[c]}function m(a){return Array.prototype.slice.call(a)}function n(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function o(a,b){a.style.WebkitTransform=b,a.style.MozTransform=b,a.style.msTransform=b,a.style.OTransform=b,a.style.transform=b}function p(a){var b=0;if(a){var c=0;m(a.childNodes).forEach(function(a){"number"==typeof a.offsetTop&&a.style&&("absolute"===a.style.position&&(c+=1),b=Math.max(b,a.offsetTop+a.offsetHeight))}),0===c&&(b=a.offsetHeight)}return b}function q(a,b){if(b=b||0,a){var c=a.parentNode,d=c.childNodes;m(d).forEach(function(c){if("number"==typeof c.offsetHeight&&c!==a){var d=window.getComputedStyle(c),e=parseInt(d.marginTop,10),f=parseInt(d.marginBottom,10);b-=c.offsetHeight+e+f}});var e=window.getComputedStyle(a);b-=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10)}return b}function r(){return/print-pdf/gi.test(window.location.search)}function s(){Lb&&(window.addEventListener("load",t,!1),window.addEventListener("orientationchange",t,!1))}function t(){0!==window.orientation||/crios/gi.test(navigator.userAgent)?(document.documentElement.style.overflow="",document.body.style.height="100%"):(document.documentElement.style.overflow="scroll",document.body.style.height="120%"),setTimeout(function(){window.scrollTo(0,1)},10)}function u(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),l(c,b),Vb.wrapper.dispatchEvent(c)}function v(){if(Jb&&!("msPerspective"in document.body.style))for(var a=document.querySelectorAll(Mb+" a:not(.image)"),b=0,c=a.length;c>b;b++){var d=a[b];if(!(!d.textContent||d.querySelector("*")||d.className&&d.classList.contains(d,"roll"))){var e=document.createElement("span");e.setAttribute("data-title",d.text),e.innerHTML=d.innerHTML,d.classList.add("roll"),d.innerHTML="",d.appendChild(e)}}}function w(){for(var a=document.querySelectorAll(Mb+" a.roll"),b=0,c=a.length;c>b;b++){var d=a[b],e=d.querySelector("span");e&&(d.classList.remove("roll"),d.innerHTML=e.innerHTML)}}function x(a){var b=m(document.querySelectorAll(a?a:"a"));b.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.addEventListener("click",Eb,!1)})}function y(){var a=m(document.querySelectorAll("a"));a.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.removeEventListener("click",Eb,!1)})}function z(a){A(),Vb.preview=document.createElement("div"),Vb.preview.classList.add("preview-link-overlay"),Vb.wrapper.appendChild(Vb.preview),Vb.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+a+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+a+'"></iframe>',"</div>"].join(""),Vb.preview.querySelector("iframe").addEventListener("load",function(){Vb.preview.classList.add("loaded")},!1),Vb.preview.querySelector(".close").addEventListener("click",function(a){A(),a.preventDefault()},!1),Vb.preview.querySelector(".external").addEventListener("click",function(){A()},!1),setTimeout(function(){Vb.preview.classList.add("visible")},1)}function A(){Vb.preview&&(Vb.preview.setAttribute("src",""),Vb.preview.parentNode.removeChild(Vb.preview),Vb.preview=null)}function B(a){var b=m(a);return b.forEach(function(a,b){a.hasAttribute("data-fragment-index")||a.setAttribute("data-fragment-index",b)}),b.sort(function(a,b){return a.getAttribute("data-fragment-index")-b.getAttribute("data-fragment-index")}),b}function C(){if(Vb.wrapper&&!r()){var a=Vb.wrapper.offsetWidth,b=Vb.wrapper.offsetHeight;a-=b*Qb.margin,b-=b*Qb.margin;var c=Qb.width,d=Qb.height,e=20;D(Qb.width,Qb.height,e),"string"==typeof c&&/%$/.test(c)&&(c=parseInt(c,10)/100*a),"string"==typeof d&&/%$/.test(d)&&(d=parseInt(d,10)/100*b),Vb.slides.style.width=c+"px",Vb.slides.style.height=d+"px",Ub=Math.min(a/c,b/d),Ub=Math.max(Ub,Qb.minScale),Ub=Math.min(Ub,Qb.maxScale),"undefined"==typeof Vb.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?o(Vb.slides,"translate(-50%, -50%) scale("+Ub+") translate(50%, 50%)"):Vb.slides.style.zoom=Ub;for(var f=m(document.querySelectorAll(Mb)),g=0,h=f.length;h>g;g++){var i=f[g];"none"!==i.style.display&&(i.style.top=Qb.center?i.classList.contains("stack")?0:Math.max(-(p(i)/2)-e,-d/2)+"px":"")}U()}}function D(a,b,c){m(Vb.slides.querySelectorAll("section > .stretch")).forEach(function(d){var e=q(d,b-2*c);if(/(img|video)/gi.test(d.nodeName)){var f=d.naturalWidth||d.videoWidth,g=d.naturalHeight||d.videoHeight,h=Math.min(a/f,e/g);d.style.width=f*h+"px",d.style.height=g*h+"px"}else d.style.width=a+"px",d.style.height=e+"px"})}function E(a,b){"object"==typeof a&&"function"==typeof a.setAttribute&&a.setAttribute("data-previous-indexv",b||0)}function F(a){if("object"==typeof a&&"function"==typeof a.setAttribute&&a.classList.contains("stack")){var b=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(b)||0,10)}return 0}function G(){if(Qb.overview){fb();var a=Vb.wrapper.classList.contains("overview"),b=window.innerWidth<400?1e3:2500;Vb.wrapper.classList.add("overview"),Vb.wrapper.classList.remove("overview-deactivating"),clearTimeout(Zb),clearTimeout($b),Zb=setTimeout(function(){for(var c=document.querySelectorAll(Nb),d=0,e=c.length;e>d;d++){var f=c[d],g=Qb.rtl?-105:105;if(f.setAttribute("data-index-h",d),o(f,"translateZ(-"+b+"px) translate("+(d-Fb)*g+"%, 0%)"),f.classList.contains("stack"))for(var h=f.querySelectorAll("section"),i=0,j=h.length;j>i;i++){var k=d===Fb?Gb:F(f),l=h[i];l.setAttribute("data-index-h",d),l.setAttribute("data-index-v",i),o(l,"translate(0%, "+105*(i-k)+"%)"),l.addEventListener("click",Db,!0)}else f.addEventListener("click",Db,!0)}T(),C(),a||u("overviewshown",{indexh:Fb,indexv:Gb,currentSlide:Ib})},10)}}function H(){Qb.overview&&(clearTimeout(Zb),clearTimeout($b),Vb.wrapper.classList.remove("overview"),Vb.wrapper.classList.add("overview-deactivating"),$b=setTimeout(function(){Vb.wrapper.classList.remove("overview-deactivating")},1),m(document.querySelectorAll(Mb)).forEach(function(a){o(a,""),a.removeEventListener("click",Db,!0)}),Q(Fb,Gb),eb(),u("overviewhidden",{indexh:Fb,indexv:Gb,currentSlide:Ib}))}function I(a){"boolean"==typeof a?a?G():H():J()?H():G()}function J(){return Vb.wrapper.classList.contains("overview")}function K(a){return a=a?a:Ib,a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function L(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullscreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function M(){var a=Vb.wrapper.classList.contains("paused");fb(),Vb.wrapper.classList.add("paused"),a===!1&&u("paused")}function N(){var a=Vb.wrapper.classList.contains("paused");Vb.wrapper.classList.remove("paused"),eb(),a&&u("resumed")}function O(){P()?N():M()}function P(){return Vb.wrapper.classList.contains("paused")}function Q(a,b,c,d){Hb=Ib;var e=document.querySelectorAll(Nb);void 0===b&&(b=F(e[a])),Hb&&Hb.parentNode&&Hb.parentNode.classList.contains("stack")&&E(Hb.parentNode,Gb);var f=Tb.concat();Tb.length=0;var g=Fb||0,h=Gb||0;Fb=S(Nb,void 0===a?Fb:a),Gb=S(Ob,void 0===b?Gb:b),T(),C();a:for(var i=0,j=Tb.length;j>i;i++){for(var k=0;k<f.length;k++)if(f[k]===Tb[i]){f.splice(k,1);continue a}document.documentElement.classList.add(Tb[i]),u(Tb[i])}for(;f.length;)document.documentElement.classList.remove(f.pop());J()&&G();var l=e[Fb],n=l.querySelectorAll("section");if(Ib=n[Gb]||l,"undefined"!=typeof c){var o=B(Ib.querySelectorAll(".fragment"));m(o).forEach(function(a,b){c>b?a.classList.add("visible"):a.classList.remove("visible")})}var p=Fb!==g||Gb!==h;p?u("slidechanged",{indexh:Fb,indexv:Gb,previousSlide:Hb,currentSlide:Ib,origin:d}):Hb=null,Hb&&(Hb.classList.remove("present"),document.querySelector(Pb).classList.contains("present")&&setTimeout(function(){var a,b=m(document.querySelectorAll(Nb+".stack"));for(a in b)b[a]&&E(b[a],0)},0)),p&&($(Hb),Z(Ib)),V(),U(),W(),ab()}function R(){k(),j(),C(),Sb=Qb.autoSlide,eb(),h(),V(),U(),W()}function S(a,b){var c=m(document.querySelectorAll(a)),d=c.length;if(d){Qb.loop&&(b%=d,0>b&&(b=d+b)),b=Math.max(Math.min(b,d-1),0);for(var e=0;d>e;e++){var f=c[e],g=Qb.rtl&&!K(f);if(f.classList.remove("past"),f.classList.remove("present"),f.classList.remove("future"),f.setAttribute("hidden",""),b>e)f.classList.add(g?"future":"past");else if(e>b){f.classList.add(g?"past":"future");for(var h=m(f.querySelectorAll(".fragment.visible"));h.length;)h.pop().classList.remove("visible")}f.querySelector("section")&&f.classList.add("stack")}c[b].classList.add("present"),c[b].removeAttribute("hidden");var i=c[b].getAttribute("data-state");i&&(Tb=Tb.concat(i.split(" ")));var j=c[b].getAttribute("data-autoslide");Sb=j?parseInt(j,10):Qb.autoSlide,eb()}else b=0;return b}function T(){var a,b,c=m(document.querySelectorAll(Nb)),d=c.length;if(d){var e=J()?10:Qb.viewDistance;Lb&&(e=J()?6:1);for(var f=0;d>f;f++){var g=c[f],h=m(g.querySelectorAll("section")),i=h.length;if(a=Math.abs((Fb-f)%(d-e))||0,g.style.display=a>e?"none":"block",i)for(var j=F(g),k=0;i>k;k++){var l=h[k];b=f===Fb?Math.abs(Gb-k):Math.abs(k-j),l.style.display=a+b>e?"none":"block"}}}}function U(){if(Qb.progress&&Vb.progress){var a=m(document.querySelectorAll(Nb)),b=document.querySelectorAll(Mb+":not(.stack)").length,c=0;a:for(var d=0;d<a.length;d++){for(var e=a[d],f=m(e.querySelectorAll("section")),g=0;g<f.length;g++){if(f[g].classList.contains("present"))break a;c++}if(e.classList.contains("present"))break;e.classList.contains("stack")===!1&&c++}Vb.progressbar.style.width=c/(b-1)*window.innerWidth+"px"}}function V(){var a=X(),b=Y();Vb.controlsLeft.concat(Vb.controlsRight).concat(Vb.controlsUp).concat(Vb.controlsDown).concat(Vb.controlsPrev).concat(Vb.controlsNext).forEach(function(a){a.classList.remove("enabled"),a.classList.remove("fragmented")}),a.left&&Vb.controlsLeft.forEach(function(a){a.classList.add("enabled")}),a.right&&Vb.controlsRight.forEach(function(a){a.classList.add("enabled")}),a.up&&Vb.controlsUp.forEach(function(a){a.classList.add("enabled")}),a.down&&Vb.controlsDown.forEach(function(a){a.classList.add("enabled")}),(a.left||a.up)&&Vb.controlsPrev.forEach(function(a){a.classList.add("enabled")}),(a.right||a.down)&&Vb.controlsNext.forEach(function(a){a.classList.add("enabled")}),Ib&&(b.prev&&Vb.controlsPrev.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Vb.controlsNext.forEach(function(a){a.classList.add("fragmented","enabled")}),K(Ib)?(b.prev&&Vb.controlsUp.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Vb.controlsDown.forEach(function(a){a.classList.add("fragmented","enabled")})):(b.prev&&Vb.controlsLeft.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Vb.controlsRight.forEach(function(a){a.classList.add("fragmented","enabled")})))}function W(){m(Vb.background.childNodes).forEach(function(a,b){var c=Qb.rtl?"future":"past",d=Qb.rtl?"past":"future";a.className="slide-background "+(Fb>b?c:b>Fb?d:"present"),m(a.childNodes).forEach(function(a,b){a.className="slide-background "+(Gb>b?"past":b>Gb?"future":"present")})}),setTimeout(function(){Vb.background.classList.remove("no-transition")},1)}function X(){var a=document.querySelectorAll(Nb),b=document.querySelectorAll(Ob),c={left:Fb>0||Qb.loop,right:Fb<a.length-1||Qb.loop,up:Gb>0,down:Gb<b.length-1};if(Qb.rtl){var d=c.left;c.left=c.right,c.right=d}return c}function Y(){if(Ib&&Qb.fragments){var a=Ib.querySelectorAll(".fragment"),b=Ib.querySelectorAll(".fragment:not(.visible)");return{prev:a.length-b.length>0,next:!!b.length}}return{prev:!1,next:!1}}function Z(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&a.play()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-autoplay")&&a.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function $(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-ignore")||a.pause()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-ignore")||"function"!=typeof a.contentWindow.postMessage||a.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function _(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);Q(e.h,e.v)}else Q(Fb||0,Gb||0)}else{var f=parseInt(b[0],10)||0,g=parseInt(b[1],10)||0;(f!==Fb||g!==Gb)&&Q(f,g)}}function ab(a){if(Qb.history)if(clearTimeout(Yb),"number"==typeof a)Yb=setTimeout(ab,a);else{var b="/";Ib&&"string"==typeof Ib.getAttribute("id")?b="/"+Ib.getAttribute("id"):((Fb>0||Gb>0)&&(b+=Fb),Gb>0&&(b+="/"+Gb)),window.location.hash=b}}function bb(a){var b,c=Fb,d=Gb;if(a){var e=K(a),f=e?a.parentNode:a,g=m(document.querySelectorAll(Nb));c=Math.max(g.indexOf(f),0),e&&(d=Math.max(m(a.parentNode.querySelectorAll("section")).indexOf(a),0))}if(!a&&Ib){var h=Ib.querySelectorAll(".fragment").length>0;if(h){var i=Ib.querySelectorAll(".fragment.visible");b=i.length}}return{h:c,v:d,f:b}}function cb(){if(Ib&&Qb.fragments){var a=B(Ib.querySelectorAll(".fragment:not(.visible)"));if(a.length){var b=a[0].getAttribute("data-fragment-index");return a=Ib.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.add("visible")}),u("fragmentshown",{fragment:a[0],fragments:a}),V(),!0}}return!1}function db(){if(Ib&&Qb.fragments){var a=B(Ib.querySelectorAll(".fragment.visible"));if(a.length){var b=a[a.length-1].getAttribute("data-fragment-index");return a=Ib.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.remove("visible")}),u("fragmenthidden",{fragment:a[0],fragments:a}),V(),!0}}return!1}function eb(){clearTimeout(Xb),!Sb||P()||J()||(Xb=setTimeout(lb,Sb))}function fb(){clearTimeout(Xb)}function gb(){Qb.rtl?(J()||cb()===!1)&&X().left&&Q(Fb+1):(J()||db()===!1)&&X().left&&Q(Fb-1)}function hb(){Qb.rtl?(J()||db()===!1)&&X().right&&Q(Fb-1):(J()||cb()===!1)&&X().right&&Q(Fb+1)}function ib(){(J()||db()===!1)&&X().up&&Q(Fb,Gb-1)}function jb(){(J()||cb()===!1)&&X().down&&Q(Fb,Gb+1)}function kb(){if(db()===!1)if(X().up)ib();else{var a=document.querySelector(Nb+".past:nth-child("+Fb+")");if(a){var b=a.querySelectorAll("section").length-1||void 0,c=Fb-1;Q(c,b)}}}function lb(){cb()===!1&&(X().down?jb():hb()),eb()}function mb(a){document.activeElement;var b=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(b||a.shiftKey&&32!==a.keyCode||a.altKey||a.ctrlKey||a.metaKey)){if(P()&&-1===[66,190,191].indexOf(a.keyCode))return!1;var c=!1;if("object"==typeof Qb.keyboard)for(var d in Qb.keyboard)if(parseInt(d,10)===a.keyCode){var e=Qb.keyboard[d];"function"==typeof e?e.apply(null,[a]):"string"==typeof e&&"function"==typeof Reveal[e]&&Reveal[e].call(),c=!0}if(c===!1)switch(c=!0,a.keyCode){case 80:case 33:kb();break;case 78:case 34:lb();break;case 72:case 37:gb();break;case 76:case 39:hb();break;case 75:case 38:ib();break;case 74:case 40:jb();break;case 36:Q(0);break;case 35:Q(Number.MAX_VALUE);break;case 32:J()?H():a.shiftKey?kb():lb();break;case 13:J()?H():c=!1;break;case 66:case 190:case 191:O();break;case 70:L();break;default:c=!1}c?a.preventDefault():27!==a.keyCode&&79!==a.keyCode||!Jb||(I(),a.preventDefault()),eb()}}function nb(a){ac.startX=a.touches[0].clientX,ac.startY=a.touches[0].clientY,ac.startCount=a.touches.length,2===a.touches.length&&Qb.overview&&(ac.startSpan=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ac.startX,y:ac.startY}))}function ob(a){if(ac.captured)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===ac.startCount&&Qb.overview){var d=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ac.startX,y:ac.startY});Math.abs(ac.startSpan-d)>ac.threshold&&(ac.captured=!0,d<ac.startSpan?G():H()),a.preventDefault()}else if(1===a.touches.length&&2!==ac.startCount){var e=b-ac.startX,f=c-ac.startY;e>ac.threshold&&Math.abs(e)>Math.abs(f)?(ac.captured=!0,gb()):e<-ac.threshold&&Math.abs(e)>Math.abs(f)?(ac.captured=!0,hb()):f>ac.threshold?(ac.captured=!0,ib()):f<-ac.threshold&&(ac.captured=!0,jb()),Qb.embedded?(ac.captured||K(Ib))&&a.preventDefault():a.preventDefault()}}}function pb(){ac.captured=!1}function qb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],nb(a))}function rb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],ob(a))}function sb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],pb(a))}function tb(a){if(Date.now()-Wb>600){Wb=Date.now();var b=a.detail||-a.wheelDelta;b>0?lb():kb()}}function ub(a){a.preventDefault();var b=m(document.querySelectorAll(Nb)).length,c=Math.floor(a.clientX/Vb.wrapper.offsetWidth*b);Q(c)}function vb(a){a.preventDefault(),gb()}function wb(a){a.preventDefault(),hb()}function xb(a){a.preventDefault(),ib()}function yb(a){a.preventDefault(),jb()}function zb(a){a.preventDefault(),kb()}function Ab(a){a.preventDefault(),lb()}function Bb(){_()}function Cb(){C()}function Db(a){if(_b&&J()){a.preventDefault();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b&&!b.classList.contains("disabled")&&(H(),b.nodeName.match(/section/gi))){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);Q(c,d)}}}function Eb(a){var b=a.target.getAttribute("href");b&&(z(b),a.preventDefault())}var Fb,Gb,Hb,Ib,Jb,Kb,Lb,Mb=".reveal .slides section",Nb=".reveal .slides>section",Ob=".reveal .slides>section.present>section",Pb=".reveal .slides>section:first-child",Qb={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,mouseWheel:!1,rollingLinks:!1,previewLinks:!1,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",viewDistance:3,dependencies:[]},Rb=!1,Sb=0,Tb=[],Ub=1,Vb={},Wb=0,Xb=0,Yb=0,Zb=0,$b=0,_b=!1,ac={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return{initialize:a,configure:i,sync:R,slide:Q,left:gb,right:hb,up:ib,down:jb,prev:kb,next:lb,prevFragment:db,nextFragment:cb,navigateTo:Q,navigateLeft:gb,navigateRight:hb,navigateUp:ib,navigateDown:jb,navigatePrev:kb,navigateNext:lb,layout:C,availableRoutes:X,availableFragments:Y,toggleOverview:I,togglePause:O,isOverview:J,isPaused:P,addEventListeners:j,removeEventListeners:k,getIndices:bb,getSlide:function(a,b){var c=document.querySelectorAll(Nb)[a],d=c&&c.querySelectorAll("section");return"undefined"!=typeof b?d?d[b]:void 0:c},getPreviousSlide:function(){return Hb},getCurrentSlide:function(){return Ib},getScale:function(){return Ub},getConfig:function(){return Qb},getQueryHash:function(){var a={};return location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()}),a},isFirstSlide:function(){return null==document.querySelector(Mb+".past")?!0:!1},isLastSlide:function(){return Ib?Ib.nextElementSibling?!1:K(Ib)&&Ib.parentNode.nextElementSibling?!1:!0:!1},isReady:function(){return Rb},addEventListener:function(a,b,c){"addEventListener"in window&&(Vb.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(Vb.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}();
|
8
|
+
var Reveal=function(){"use strict";function a(a){return b(),Kb||Jb?(window.addEventListener("load",C,!1),l(Qb,a),s(),c(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function b(){Jb="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,Kb="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,Lb=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function c(){function a(){c.length&&head.js.apply(null,c),d()}for(var b=[],c=[],e=0,f=Qb.dependencies.length;f>e;e++){var g=Qb.dependencies[e];(!g.condition||g.condition())&&(g.async?c.push(g.src):b.push(g.src),"function"==typeof g.callback&&head.ready(g.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],g.callback))}b.length?(head.ready(a),head.js.apply(null,b)):a()}function d(){f(),e(),i(),_(),setTimeout(function(){Vb.slides.classList.remove("no-transition"),Rb=!0,u("ready",{indexh:Fb,indexv:Gb,currentSlide:Ib})},1)}function e(){var a=m(document.querySelectorAll(Nb));a.forEach(function(a){var b=m(a.querySelectorAll("section"));b.forEach(function(a,b){b>0&&a.classList.add("future")})})}function f(){Vb.theme=document.querySelector("#theme"),Vb.wrapper=document.querySelector(".reveal"),Vb.slides=document.querySelector(".reveal .slides"),Vb.slides.classList.add("no-transition"),Vb.background=g(Vb.wrapper,"div","backgrounds",null),Vb.progress=g(Vb.wrapper,"div","progress","<span></span>"),Vb.progressbar=Vb.progress.querySelector("span"),g(Vb.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),g(Vb.wrapper,"div","state-background",null),g(Vb.wrapper,"div","pause-overlay",null),Vb.controls=document.querySelector(".reveal .controls"),Vb.controlsLeft=m(document.querySelectorAll(".navigate-left")),Vb.controlsRight=m(document.querySelectorAll(".navigate-right")),Vb.controlsUp=m(document.querySelectorAll(".navigate-up")),Vb.controlsDown=m(document.querySelectorAll(".navigate-down")),Vb.controlsPrev=m(document.querySelectorAll(".navigate-prev")),Vb.controlsNext=m(document.querySelectorAll(".navigate-next"))}function g(a,b,c,d){var e=a.querySelector("."+c);return e||(e=document.createElement(b),e.classList.add(c),null!==d&&(e.innerHTML=d),a.appendChild(e)),e}function h(){function a(a,b){var c={background:a.getAttribute("data-background"),backgroundSize:a.getAttribute("data-background-size"),backgroundImage:a.getAttribute("data-background-image"),backgroundColor:a.getAttribute("data-background-color"),backgroundRepeat:a.getAttribute("data-background-repeat"),backgroundPosition:a.getAttribute("data-background-position"),backgroundTransition:a.getAttribute("data-background-transition")},d=document.createElement("div");return d.className="slide-background",c.background&&(/^(http|file|\/\/)/gi.test(c.background)||/\.(png|jpg|jpeg|gif|bmp)$/gi.test(c.background)?d.style.backgroundImage="url("+c.background+")":d.style.background=c.background),c.backgroundSize&&(d.style.backgroundSize=c.backgroundSize),c.backgroundImage&&(d.style.backgroundImage='url("'+c.backgroundImage+'")'),c.backgroundColor&&(d.style.backgroundColor=c.backgroundColor),c.backgroundRepeat&&(d.style.backgroundRepeat=c.backgroundRepeat),c.backgroundPosition&&(d.style.backgroundPosition=c.backgroundPosition),c.backgroundTransition&&d.setAttribute("data-background-transition",c.backgroundTransition),b.appendChild(d),d}r()&&document.body.classList.add("print-pdf"),Vb.background.innerHTML="",Vb.background.classList.add("no-transition"),m(document.querySelectorAll(Nb)).forEach(function(b){var c;c=r()?a(b,b):a(b,Vb.background),m(b.querySelectorAll("section")).forEach(function(b){r()?a(b,b):a(b,c)})})}function i(a){if(Vb.wrapper.classList.remove(Qb.transition),"object"==typeof a&&l(Qb,a),Jb===!1&&(Qb.transition="linear"),Vb.wrapper.classList.add(Qb.transition),Vb.wrapper.setAttribute("data-transition-speed",Qb.transitionSpeed),Vb.wrapper.setAttribute("data-background-transition",Qb.backgroundTransition),Vb.controls.style.display=Qb.controls?"block":"none",Vb.progress.style.display=Qb.progress?"block":"none",Qb.rtl?Vb.wrapper.classList.add("rtl"):Vb.wrapper.classList.remove("rtl"),Qb.center?Vb.wrapper.classList.add("center"):Vb.wrapper.classList.remove("center"),Qb.mouseWheel?(document.addEventListener("DOMMouseScroll",tb,!1),document.addEventListener("mousewheel",tb,!1)):(document.removeEventListener("DOMMouseScroll",tb,!1),document.removeEventListener("mousewheel",tb,!1)),Qb.rollingLinks?v():w(),Qb.previewLinks?x():(y(),x("[data-preview-link]")),Qb.theme&&Vb.theme){var b=Vb.theme.getAttribute("href"),c=/[^\/]*?(?=\.css)/,d=b.match(c)[0];Qb.theme!==d&&(b=b.replace(c,Qb.theme),Vb.theme.setAttribute("href",b))}R()}function j(){_b=!0,window.addEventListener("hashchange",Bb,!1),window.addEventListener("resize",Cb,!1),Qb.touch&&(Vb.wrapper.addEventListener("touchstart",nb,!1),Vb.wrapper.addEventListener("touchmove",ob,!1),Vb.wrapper.addEventListener("touchend",pb,!1),window.navigator.msPointerEnabled&&(Vb.wrapper.addEventListener("MSPointerDown",qb,!1),Vb.wrapper.addEventListener("MSPointerMove",rb,!1),Vb.wrapper.addEventListener("MSPointerUp",sb,!1))),Qb.keyboard&&document.addEventListener("keydown",mb,!1),Qb.progress&&Vb.progress&&Vb.progress.addEventListener("click",ub,!1),["touchstart","click"].forEach(function(a){Vb.controlsLeft.forEach(function(b){b.addEventListener(a,vb,!1)}),Vb.controlsRight.forEach(function(b){b.addEventListener(a,wb,!1)}),Vb.controlsUp.forEach(function(b){b.addEventListener(a,xb,!1)}),Vb.controlsDown.forEach(function(b){b.addEventListener(a,yb,!1)}),Vb.controlsPrev.forEach(function(b){b.addEventListener(a,zb,!1)}),Vb.controlsNext.forEach(function(b){b.addEventListener(a,Ab,!1)})})}function k(){_b=!1,document.removeEventListener("keydown",mb,!1),window.removeEventListener("hashchange",Bb,!1),window.removeEventListener("resize",Cb,!1),Vb.wrapper.removeEventListener("touchstart",nb,!1),Vb.wrapper.removeEventListener("touchmove",ob,!1),Vb.wrapper.removeEventListener("touchend",pb,!1),window.navigator.msPointerEnabled&&(Vb.wrapper.removeEventListener("MSPointerDown",qb,!1),Vb.wrapper.removeEventListener("MSPointerMove",rb,!1),Vb.wrapper.removeEventListener("MSPointerUp",sb,!1)),Qb.progress&&Vb.progress&&Vb.progress.removeEventListener("click",ub,!1),["touchstart","click"].forEach(function(a){Vb.controlsLeft.forEach(function(b){b.removeEventListener(a,vb,!1)}),Vb.controlsRight.forEach(function(b){b.removeEventListener(a,wb,!1)}),Vb.controlsUp.forEach(function(b){b.removeEventListener(a,xb,!1)}),Vb.controlsDown.forEach(function(b){b.removeEventListener(a,yb,!1)}),Vb.controlsPrev.forEach(function(b){b.removeEventListener(a,zb,!1)}),Vb.controlsNext.forEach(function(b){b.removeEventListener(a,Ab,!1)})})}function l(a,b){for(var c in b)a[c]=b[c]}function m(a){return Array.prototype.slice.call(a)}function n(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function o(a,b){a.style.WebkitTransform=b,a.style.MozTransform=b,a.style.msTransform=b,a.style.OTransform=b,a.style.transform=b}function p(a){var b=0;if(a){var c=0;m(a.childNodes).forEach(function(a){"number"==typeof a.offsetTop&&a.style&&("absolute"===a.style.position&&(c+=1),b=Math.max(b,a.offsetTop+a.offsetHeight))}),0===c&&(b=a.offsetHeight)}return b}function q(a,b){if(b=b||0,a){var c=a.parentNode,d=c.childNodes;m(d).forEach(function(c){if("number"==typeof c.offsetHeight&&c!==a){var d=window.getComputedStyle(c),e=parseInt(d.marginTop,10),f=parseInt(d.marginBottom,10);b-=c.offsetHeight+e+f}});var e=window.getComputedStyle(a);b-=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10)}return b}function r(){return/print-pdf/gi.test(window.location.search)}function s(){Qb.hideAddressBar&&Lb&&(window.addEventListener("load",t,!1),window.addEventListener("orientationchange",t,!1))}function t(){0!==window.orientation||/crios/gi.test(navigator.userAgent)?(document.documentElement.style.overflow="",document.body.style.height="100%"):(document.documentElement.style.overflow="scroll",document.body.style.height="120%"),setTimeout(function(){window.scrollTo(0,1)},10)}function u(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),l(c,b),Vb.wrapper.dispatchEvent(c)}function v(){if(Jb&&!("msPerspective"in document.body.style))for(var a=document.querySelectorAll(Mb+" a:not(.image)"),b=0,c=a.length;c>b;b++){var d=a[b];if(!(!d.textContent||d.querySelector("*")||d.className&&d.classList.contains(d,"roll"))){var e=document.createElement("span");e.setAttribute("data-title",d.text),e.innerHTML=d.innerHTML,d.classList.add("roll"),d.innerHTML="",d.appendChild(e)}}}function w(){for(var a=document.querySelectorAll(Mb+" a.roll"),b=0,c=a.length;c>b;b++){var d=a[b],e=d.querySelector("span");e&&(d.classList.remove("roll"),d.innerHTML=e.innerHTML)}}function x(a){var b=m(document.querySelectorAll(a?a:"a"));b.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.addEventListener("click",Eb,!1)})}function y(){var a=m(document.querySelectorAll("a"));a.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.removeEventListener("click",Eb,!1)})}function z(a){A(),Vb.preview=document.createElement("div"),Vb.preview.classList.add("preview-link-overlay"),Vb.wrapper.appendChild(Vb.preview),Vb.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+a+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+a+'"></iframe>',"</div>"].join(""),Vb.preview.querySelector("iframe").addEventListener("load",function(){Vb.preview.classList.add("loaded")},!1),Vb.preview.querySelector(".close").addEventListener("click",function(a){A(),a.preventDefault()},!1),Vb.preview.querySelector(".external").addEventListener("click",function(){A()},!1),setTimeout(function(){Vb.preview.classList.add("visible")},1)}function A(){Vb.preview&&(Vb.preview.setAttribute("src",""),Vb.preview.parentNode.removeChild(Vb.preview),Vb.preview=null)}function B(a){var b=m(a);return b.forEach(function(a,b){a.hasAttribute("data-fragment-index")||a.setAttribute("data-fragment-index",b)}),b.sort(function(a,b){return a.getAttribute("data-fragment-index")-b.getAttribute("data-fragment-index")}),b}function C(){if(Vb.wrapper&&!r()){var a=Vb.wrapper.offsetWidth,b=Vb.wrapper.offsetHeight;a-=b*Qb.margin,b-=b*Qb.margin;var c=Qb.width,d=Qb.height,e=20;D(Qb.width,Qb.height,e),"string"==typeof c&&/%$/.test(c)&&(c=parseInt(c,10)/100*a),"string"==typeof d&&/%$/.test(d)&&(d=parseInt(d,10)/100*b),Vb.slides.style.width=c+"px",Vb.slides.style.height=d+"px",Ub=Math.min(a/c,b/d),Ub=Math.max(Ub,Qb.minScale),Ub=Math.min(Ub,Qb.maxScale),"undefined"==typeof Vb.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?o(Vb.slides,"translate(-50%, -50%) scale("+Ub+") translate(50%, 50%)"):Vb.slides.style.zoom=Ub;for(var f=m(document.querySelectorAll(Mb)),g=0,h=f.length;h>g;g++){var i=f[g];"none"!==i.style.display&&(i.style.top=Qb.center?i.classList.contains("stack")?0:Math.max(-(p(i)/2)-e,-d/2)+"px":"")}U()}}function D(a,b,c){m(Vb.slides.querySelectorAll("section > .stretch")).forEach(function(d){var e=q(d,b-2*c);if(/(img|video)/gi.test(d.nodeName)){var f=d.naturalWidth||d.videoWidth,g=d.naturalHeight||d.videoHeight,h=Math.min(a/f,e/g);d.style.width=f*h+"px",d.style.height=g*h+"px"}else d.style.width=a+"px",d.style.height=e+"px"})}function E(a,b){"object"==typeof a&&"function"==typeof a.setAttribute&&a.setAttribute("data-previous-indexv",b||0)}function F(a){if("object"==typeof a&&"function"==typeof a.setAttribute&&a.classList.contains("stack")){var b=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(b)||0,10)}return 0}function G(){if(Qb.overview){fb();var a=Vb.wrapper.classList.contains("overview"),b=window.innerWidth<400?1e3:2500;Vb.wrapper.classList.add("overview"),Vb.wrapper.classList.remove("overview-deactivating"),clearTimeout(Zb),clearTimeout($b),Zb=setTimeout(function(){for(var c=document.querySelectorAll(Nb),d=0,e=c.length;e>d;d++){var f=c[d],g=Qb.rtl?-105:105;if(f.setAttribute("data-index-h",d),o(f,"translateZ(-"+b+"px) translate("+(d-Fb)*g+"%, 0%)"),f.classList.contains("stack"))for(var h=f.querySelectorAll("section"),i=0,j=h.length;j>i;i++){var k=d===Fb?Gb:F(f),l=h[i];l.setAttribute("data-index-h",d),l.setAttribute("data-index-v",i),o(l,"translate(0%, "+105*(i-k)+"%)"),l.addEventListener("click",Db,!0)}else f.addEventListener("click",Db,!0)}T(),C(),a||u("overviewshown",{indexh:Fb,indexv:Gb,currentSlide:Ib})},10)}}function H(){Qb.overview&&(clearTimeout(Zb),clearTimeout($b),Vb.wrapper.classList.remove("overview"),Vb.wrapper.classList.add("overview-deactivating"),$b=setTimeout(function(){Vb.wrapper.classList.remove("overview-deactivating")},1),m(document.querySelectorAll(Mb)).forEach(function(a){o(a,""),a.removeEventListener("click",Db,!0)}),Q(Fb,Gb),eb(),u("overviewhidden",{indexh:Fb,indexv:Gb,currentSlide:Ib}))}function I(a){"boolean"==typeof a?a?G():H():J()?H():G()}function J(){return Vb.wrapper.classList.contains("overview")}function K(a){return a=a?a:Ib,a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function L(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullscreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function M(){var a=Vb.wrapper.classList.contains("paused");fb(),Vb.wrapper.classList.add("paused"),a===!1&&u("paused")}function N(){var a=Vb.wrapper.classList.contains("paused");Vb.wrapper.classList.remove("paused"),eb(),a&&u("resumed")}function O(){P()?N():M()}function P(){return Vb.wrapper.classList.contains("paused")}function Q(a,b,c,d){Hb=Ib;var e=document.querySelectorAll(Nb);void 0===b&&(b=F(e[a])),Hb&&Hb.parentNode&&Hb.parentNode.classList.contains("stack")&&E(Hb.parentNode,Gb);var f=Tb.concat();Tb.length=0;var g=Fb||0,h=Gb||0;Fb=S(Nb,void 0===a?Fb:a),Gb=S(Ob,void 0===b?Gb:b),T(),C();a:for(var i=0,j=Tb.length;j>i;i++){for(var k=0;k<f.length;k++)if(f[k]===Tb[i]){f.splice(k,1);continue a}document.documentElement.classList.add(Tb[i]),u(Tb[i])}for(;f.length;)document.documentElement.classList.remove(f.pop());J()&&G();var l=e[Fb],n=l.querySelectorAll("section");if(Ib=n[Gb]||l,"undefined"!=typeof c){var o=B(Ib.querySelectorAll(".fragment"));m(o).forEach(function(a,b){c>b?a.classList.add("visible"):a.classList.remove("visible")})}var p=Fb!==g||Gb!==h;p?u("slidechanged",{indexh:Fb,indexv:Gb,previousSlide:Hb,currentSlide:Ib,origin:d}):Hb=null,Hb&&(Hb.classList.remove("present"),document.querySelector(Pb).classList.contains("present")&&setTimeout(function(){var a,b=m(document.querySelectorAll(Nb+".stack"));for(a in b)b[a]&&E(b[a],0)},0)),p&&($(Hb),Z(Ib)),V(),U(),W(),ab()}function R(){k(),j(),C(),Sb=Qb.autoSlide,eb(),h(),V(),U(),W()}function S(a,b){var c=m(document.querySelectorAll(a)),d=c.length;if(d){Qb.loop&&(b%=d,0>b&&(b=d+b)),b=Math.max(Math.min(b,d-1),0);for(var e=0;d>e;e++){var f=c[e],g=Qb.rtl&&!K(f);if(f.classList.remove("past"),f.classList.remove("present"),f.classList.remove("future"),f.setAttribute("hidden",""),b>e)f.classList.add(g?"future":"past");else if(e>b){f.classList.add(g?"past":"future");for(var h=m(f.querySelectorAll(".fragment.visible"));h.length;)h.pop().classList.remove("visible")}f.querySelector("section")&&f.classList.add("stack")}c[b].classList.add("present"),c[b].removeAttribute("hidden");var i=c[b].getAttribute("data-state");i&&(Tb=Tb.concat(i.split(" ")));var j=c[b].getAttribute("data-autoslide");Sb=j?parseInt(j,10):Qb.autoSlide,eb()}else b=0;return b}function T(){var a,b,c=m(document.querySelectorAll(Nb)),d=c.length;if(d){var e=J()?10:Qb.viewDistance;Lb&&(e=J()?6:1);for(var f=0;d>f;f++){var g=c[f],h=m(g.querySelectorAll("section")),i=h.length;if(a=Math.abs((Fb-f)%(d-e))||0,g.style.display=a>e?"none":"block",i)for(var j=F(g),k=0;i>k;k++){var l=h[k];b=f===Fb?Math.abs(Gb-k):Math.abs(k-j),l.style.display=a+b>e?"none":"block"}}}}function U(){if(Qb.progress&&Vb.progress){var a=m(document.querySelectorAll(Nb)),b=document.querySelectorAll(Mb+":not(.stack)").length,c=0;a:for(var d=0;d<a.length;d++){for(var e=a[d],f=m(e.querySelectorAll("section")),g=0;g<f.length;g++){if(f[g].classList.contains("present"))break a;c++}if(e.classList.contains("present"))break;e.classList.contains("stack")===!1&&c++}Vb.progressbar.style.width=c/(b-1)*window.innerWidth+"px"}}function V(){var a=X(),b=Y();Vb.controlsLeft.concat(Vb.controlsRight).concat(Vb.controlsUp).concat(Vb.controlsDown).concat(Vb.controlsPrev).concat(Vb.controlsNext).forEach(function(a){a.classList.remove("enabled"),a.classList.remove("fragmented")}),a.left&&Vb.controlsLeft.forEach(function(a){a.classList.add("enabled")}),a.right&&Vb.controlsRight.forEach(function(a){a.classList.add("enabled")}),a.up&&Vb.controlsUp.forEach(function(a){a.classList.add("enabled")}),a.down&&Vb.controlsDown.forEach(function(a){a.classList.add("enabled")}),(a.left||a.up)&&Vb.controlsPrev.forEach(function(a){a.classList.add("enabled")}),(a.right||a.down)&&Vb.controlsNext.forEach(function(a){a.classList.add("enabled")}),Ib&&(b.prev&&Vb.controlsPrev.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Vb.controlsNext.forEach(function(a){a.classList.add("fragmented","enabled")}),K(Ib)?(b.prev&&Vb.controlsUp.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Vb.controlsDown.forEach(function(a){a.classList.add("fragmented","enabled")})):(b.prev&&Vb.controlsLeft.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Vb.controlsRight.forEach(function(a){a.classList.add("fragmented","enabled")})))}function W(){m(Vb.background.childNodes).forEach(function(a,b){var c=Qb.rtl?"future":"past",d=Qb.rtl?"past":"future";a.className="slide-background "+(Fb>b?c:b>Fb?d:"present"),m(a.childNodes).forEach(function(a,b){a.className="slide-background "+(Gb>b?"past":b>Gb?"future":"present")})}),setTimeout(function(){Vb.background.classList.remove("no-transition")},1)}function X(){var a=document.querySelectorAll(Nb),b=document.querySelectorAll(Ob),c={left:Fb>0||Qb.loop,right:Fb<a.length-1||Qb.loop,up:Gb>0,down:Gb<b.length-1};if(Qb.rtl){var d=c.left;c.left=c.right,c.right=d}return c}function Y(){if(Ib&&Qb.fragments){var a=Ib.querySelectorAll(".fragment"),b=Ib.querySelectorAll(".fragment:not(.visible)");return{prev:a.length-b.length>0,next:!!b.length}}return{prev:!1,next:!1}}function Z(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&a.play()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-autoplay")&&a.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function $(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-ignore")||a.pause()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-ignore")||"function"!=typeof a.contentWindow.postMessage||a.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function _(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);Q(e.h,e.v)}else Q(Fb||0,Gb||0)}else{var f=parseInt(b[0],10)||0,g=parseInt(b[1],10)||0;(f!==Fb||g!==Gb)&&Q(f,g)}}function ab(a){if(Qb.history)if(clearTimeout(Yb),"number"==typeof a)Yb=setTimeout(ab,a);else{var b="/";Ib&&"string"==typeof Ib.getAttribute("id")?b="/"+Ib.getAttribute("id"):((Fb>0||Gb>0)&&(b+=Fb),Gb>0&&(b+="/"+Gb)),window.location.hash=b}}function bb(a){var b,c=Fb,d=Gb;if(a){var e=K(a),f=e?a.parentNode:a,g=m(document.querySelectorAll(Nb));c=Math.max(g.indexOf(f),0),e&&(d=Math.max(m(a.parentNode.querySelectorAll("section")).indexOf(a),0))}if(!a&&Ib){var h=Ib.querySelectorAll(".fragment").length>0;if(h){var i=Ib.querySelectorAll(".fragment.visible");b=i.length}}return{h:c,v:d,f:b}}function cb(){if(Ib&&Qb.fragments){var a=B(Ib.querySelectorAll(".fragment:not(.visible)"));if(a.length){var b=a[0].getAttribute("data-fragment-index");return a=Ib.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.add("visible")}),u("fragmentshown",{fragment:a[0],fragments:a}),V(),!0}}return!1}function db(){if(Ib&&Qb.fragments){var a=B(Ib.querySelectorAll(".fragment.visible"));if(a.length){var b=a[a.length-1].getAttribute("data-fragment-index");return a=Ib.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.remove("visible")}),u("fragmenthidden",{fragment:a[0],fragments:a}),V(),!0}}return!1}function eb(){clearTimeout(Xb),!Sb||P()||J()||(Xb=setTimeout(lb,Sb))}function fb(){clearTimeout(Xb)}function gb(){Qb.rtl?(J()||cb()===!1)&&X().left&&Q(Fb+1):(J()||db()===!1)&&X().left&&Q(Fb-1)}function hb(){Qb.rtl?(J()||db()===!1)&&X().right&&Q(Fb-1):(J()||cb()===!1)&&X().right&&Q(Fb+1)}function ib(){(J()||db()===!1)&&X().up&&Q(Fb,Gb-1)}function jb(){(J()||cb()===!1)&&X().down&&Q(Fb,Gb+1)}function kb(){if(db()===!1)if(X().up)ib();else{var a=document.querySelector(Nb+".past:nth-child("+Fb+")");if(a){var b=a.querySelectorAll("section").length-1||void 0,c=Fb-1;Q(c,b)}}}function lb(){cb()===!1&&(X().down?jb():hb()),eb()}function mb(a){document.activeElement;var b=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(b||a.shiftKey&&32!==a.keyCode||a.altKey||a.ctrlKey||a.metaKey)){if(P()&&-1===[66,190,191].indexOf(a.keyCode))return!1;var c=!1;if("object"==typeof Qb.keyboard)for(var d in Qb.keyboard)if(parseInt(d,10)===a.keyCode){var e=Qb.keyboard[d];"function"==typeof e?e.apply(null,[a]):"string"==typeof e&&"function"==typeof Reveal[e]&&Reveal[e].call(),c=!0}if(c===!1)switch(c=!0,a.keyCode){case 80:case 33:kb();break;case 78:case 34:lb();break;case 72:case 37:gb();break;case 76:case 39:hb();break;case 75:case 38:ib();break;case 74:case 40:jb();break;case 36:Q(0);break;case 35:Q(Number.MAX_VALUE);break;case 32:J()?H():a.shiftKey?kb():lb();break;case 13:J()?H():c=!1;break;case 66:case 190:case 191:O();break;case 70:L();break;default:c=!1}c?a.preventDefault():27!==a.keyCode&&79!==a.keyCode||!Jb||(I(),a.preventDefault()),eb()}}function nb(a){ac.startX=a.touches[0].clientX,ac.startY=a.touches[0].clientY,ac.startCount=a.touches.length,2===a.touches.length&&Qb.overview&&(ac.startSpan=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ac.startX,y:ac.startY}))}function ob(a){if(ac.captured)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===ac.startCount&&Qb.overview){var d=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ac.startX,y:ac.startY});Math.abs(ac.startSpan-d)>ac.threshold&&(ac.captured=!0,d<ac.startSpan?G():H()),a.preventDefault()}else if(1===a.touches.length&&2!==ac.startCount){var e=b-ac.startX,f=c-ac.startY;e>ac.threshold&&Math.abs(e)>Math.abs(f)?(ac.captured=!0,gb()):e<-ac.threshold&&Math.abs(e)>Math.abs(f)?(ac.captured=!0,hb()):f>ac.threshold?(ac.captured=!0,ib()):f<-ac.threshold&&(ac.captured=!0,jb()),Qb.embedded?(ac.captured||K(Ib))&&a.preventDefault():a.preventDefault()}}}function pb(){ac.captured=!1}function qb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],nb(a))}function rb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],ob(a))}function sb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],pb(a))}function tb(a){if(Date.now()-Wb>600){Wb=Date.now();var b=a.detail||-a.wheelDelta;b>0?lb():kb()}}function ub(a){a.preventDefault();var b=m(document.querySelectorAll(Nb)).length,c=Math.floor(a.clientX/Vb.wrapper.offsetWidth*b);Q(c)}function vb(a){a.preventDefault(),gb()}function wb(a){a.preventDefault(),hb()}function xb(a){a.preventDefault(),ib()}function yb(a){a.preventDefault(),jb()}function zb(a){a.preventDefault(),kb()}function Ab(a){a.preventDefault(),lb()}function Bb(){_()}function Cb(){C()}function Db(a){if(_b&&J()){a.preventDefault();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b&&!b.classList.contains("disabled")&&(H(),b.nodeName.match(/section/gi))){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);Q(c,d)}}}function Eb(a){var b=a.target.getAttribute("href");b&&(z(b),a.preventDefault())}var Fb,Gb,Hb,Ib,Jb,Kb,Lb,Mb=".reveal .slides section",Nb=".reveal .slides>section",Ob=".reveal .slides>section.present>section",Pb=".reveal .slides>section:first-child",Qb={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",viewDistance:3,dependencies:[]},Rb=!1,Sb=0,Tb=[],Ub=1,Vb={},Wb=0,Xb=0,Yb=0,Zb=0,$b=0,_b=!1,ac={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return{initialize:a,configure:i,sync:R,slide:Q,left:gb,right:hb,up:ib,down:jb,prev:kb,next:lb,prevFragment:db,nextFragment:cb,navigateTo:Q,navigateLeft:gb,navigateRight:hb,navigateUp:ib,navigateDown:jb,navigatePrev:kb,navigateNext:lb,layout:C,availableRoutes:X,availableFragments:Y,toggleOverview:I,togglePause:O,isOverview:J,isPaused:P,addEventListeners:j,removeEventListeners:k,getIndices:bb,getSlide:function(a,b){var c=document.querySelectorAll(Nb)[a],d=c&&c.querySelectorAll("section");return"undefined"!=typeof b?d?d[b]:void 0:c},getPreviousSlide:function(){return Hb},getCurrentSlide:function(){return Ib},getScale:function(){return Ub},getConfig:function(){return Qb},getQueryHash:function(){var a={};return location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()}),a},isFirstSlide:function(){return null==document.querySelector(Mb+".past")?!0:!1},isLastSlide:function(){return Ib?Ib.nextElementSibling?!1:K(Ib)&&Ib.parentNode.nextElementSibling?!1:!0:!1},isReady:function(){return Rb},addEventListener:function(a,b,c){"addEventListener"in window&&(Vb.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(Vb.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}();
|
@@ -1,6 +1,7 @@
|
|
1
1
|
(function() {
|
2
|
-
//
|
2
|
+
// Don't emit events from inside of notes windows
|
3
3
|
if ( window.location.search.match( /receiver/gi ) ) { return; }
|
4
|
+
|
4
5
|
var multiplex = Reveal.getConfig().multiplex;
|
5
6
|
|
6
7
|
var socket = io.connect(multiplex.url);
|
@@ -139,11 +139,11 @@
|
|
139
139
|
<body>
|
140
140
|
|
141
141
|
<div id="wrap-current-slide" class="slides">
|
142
|
-
<script>document.write( '<iframe width="1280" height="1024" id="current-slide" src="'+ window.opener.location.href +'"></iframe>' );</script>
|
142
|
+
<script>document.write( '<iframe width="1280" height="1024" id="current-slide" src="'+ window.opener.location.href +'?receiver"></iframe>' );</script>
|
143
143
|
</div>
|
144
144
|
|
145
145
|
<div id="wrap-next-slide" class="slides">
|
146
|
-
<script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ window.opener.location.href +'"></iframe>' );</script>
|
146
|
+
<script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ window.opener.location.href +'?receiver"></iframe>' );</script>
|
147
147
|
<span>UPCOMING:</span>
|
148
148
|
</div>
|
149
149
|
|
@@ -17,11 +17,11 @@
|
|
17
17
|
* Detects if notes are enable and the current page is opened inside an /iframe
|
18
18
|
* this prevents loading Remotes.io several times
|
19
19
|
*/
|
20
|
-
var
|
21
|
-
|
20
|
+
var isNotesAndIframe = (function(){
|
21
|
+
return window.RevealNotes && !(self == top);
|
22
22
|
})();
|
23
23
|
|
24
|
-
if(!hasTouch && !
|
24
|
+
if(!hasTouch && !isNotesAndIframe){
|
25
25
|
head.ready( 'remotes.ne.min.js', function() {
|
26
26
|
new Remotes("preview")
|
27
27
|
.on("swipe-left", function(e){ Reveal.right(); })
|
@@ -0,0 +1 @@
|
|
1
|
+
title: 'The Never Sea Slides'
|
@@ -1,17 +1,17 @@
|
|
1
1
|
presentation do
|
2
2
|
|
3
|
-
title
|
4
|
-
author
|
5
|
-
theme
|
3
|
+
title 'Presentation Title'
|
4
|
+
author 'Presentation Author'
|
5
|
+
theme 'night'
|
6
6
|
transition 'page'
|
7
7
|
|
8
8
|
slide 'text',
|
9
|
-
|
9
|
+
content: 'Hello World'
|
10
10
|
|
11
11
|
slide 'code',
|
12
|
-
|
12
|
+
content: contents_of('lib/reveal-ck.rb')
|
13
13
|
|
14
14
|
slide 'text',
|
15
|
-
|
15
|
+
content: 'Thanks!'
|
16
16
|
|
17
17
|
end
|
@@ -7,8 +7,8 @@ module RevealCK
|
|
7
7
|
|
8
8
|
let :presentation do
|
9
9
|
presentation = Presentation.new
|
10
|
-
presentation.title =
|
11
|
-
presentation.author =
|
10
|
+
presentation.title = 'Presentation Title'
|
11
|
+
presentation.author = 'Presentation Author'
|
12
12
|
|
13
13
|
presentation.add(Slide.new({
|
14
14
|
template: 'intro',
|
@@ -31,7 +31,7 @@ module RevealCK
|
|
31
31
|
})
|
32
32
|
packaged_slides.build!
|
33
33
|
|
34
|
-
expect(File.exists? File.join(tmp_dir,
|
34
|
+
expect(File.exists? File.join(tmp_dir, 'index.html')).to be_true
|
35
35
|
end
|
36
36
|
|
37
37
|
end
|
@@ -31,14 +31,9 @@ module RevealCK
|
|
31
31
|
describe '#remove' do
|
32
32
|
|
33
33
|
it 'returns lines with the range removed' do
|
34
|
-
lines =
|
35
|
-
'a',
|
36
|
-
'b',
|
37
|
-
'c',
|
38
|
-
'd'
|
39
|
-
]
|
34
|
+
lines = %w{a b c d}
|
40
35
|
slicer = Slicer.new lines
|
41
|
-
slicer.remove(1..2).should ==
|
36
|
+
slicer.remove(1..2).should == %w{a d}
|
42
37
|
end
|
43
38
|
end
|
44
39
|
end
|
@@ -34,10 +34,10 @@ module RevealCK
|
|
34
34
|
|
35
35
|
describe '#insert' do
|
36
36
|
it 'inserts lines after a match' do
|
37
|
-
original =
|
37
|
+
original = %w{0 1 2 3}
|
38
38
|
splicer = Splicer.new original
|
39
|
-
result = splicer.insert
|
40
|
-
result.should ==
|
39
|
+
result = splicer.insert %w{a b c}, after: '2'
|
40
|
+
result.should == %w{0 1 2 a b c 3}
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -59,11 +59,11 @@ module RevealCK
|
|
59
59
|
describe '#merge_config' do
|
60
60
|
|
61
61
|
let :full_config_file do
|
62
|
-
spec_data 'config', 'full_config.
|
62
|
+
spec_data 'config', 'full_config.yml'
|
63
63
|
end
|
64
64
|
|
65
65
|
let :partial_config_file do
|
66
|
-
spec_data 'config', 'partial_config.
|
66
|
+
spec_data 'config', 'partial_config.yml'
|
67
67
|
end
|
68
68
|
|
69
69
|
it 'writes unset config options stored in a file' do
|
@@ -59,5 +59,21 @@ module RevealCK
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
describe '.load' do
|
63
|
+
it 'can work with a .rb file' do
|
64
|
+
presentation = Presentation.load slides_rb
|
65
|
+
html = presentation.html
|
66
|
+
expect(html).to start_with '<section>'
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe '.load' do
|
71
|
+
it 'can work with a template file' do
|
72
|
+
presentation = Presentation.load slides_haml
|
73
|
+
html = presentation.html
|
74
|
+
expect(html).to start_with '<section>'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
62
78
|
end
|
63
79
|
end
|
@@ -26,7 +26,7 @@ module RevealCK
|
|
26
26
|
|
27
27
|
it 'can be assigned via initializer' do
|
28
28
|
Dir.mktmpdir do |dir|
|
29
|
-
paths = [
|
29
|
+
paths = [dir, File.join(dir, 'templates')]
|
30
30
|
finder = Finder.new paths: paths
|
31
31
|
expect(finder.paths).to include dir
|
32
32
|
expect(finder.paths).to include File.join(dir, 'templates')
|
data/templates/image.slim
CHANGED
@@ -1,14 +1,25 @@
|
|
1
1
|
- headline = headline || nil
|
2
2
|
- notes = notes || nil
|
3
3
|
- link = link || nil
|
4
|
-
-
|
4
|
+
- width = width || nil
|
5
|
+
- height = height || nil
|
6
|
+
- alt = alt || nil
|
7
|
+
ruby:
|
8
|
+
def image_helper(src, alt, width, height)
|
9
|
+
tag = { :tag => 'img' }
|
10
|
+
tag[:width] = width if width
|
11
|
+
tag[:height] = height if height
|
12
|
+
tag[:alt] = alt if alt
|
13
|
+
tag[:src] = src
|
14
|
+
tag
|
15
|
+
end
|
5
16
|
section
|
6
17
|
- if headline
|
7
18
|
h2= headline
|
8
19
|
- if link
|
9
20
|
a.image href="#{link}" target="_blank"
|
10
|
-
|
21
|
+
*image_helper(src, alt, width, height)
|
11
22
|
- else
|
12
|
-
|
23
|
+
*image_helper(src, alt, width, height)
|
13
24
|
- if notes
|
14
25
|
aside.notes= notes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reveal-ck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jed Northridge
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: haml
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.0
|
19
|
+
version: '4.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.0
|
26
|
+
version: '4.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: slim
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,70 +58,56 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.3
|
61
|
+
version: '2.3'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.3
|
68
|
+
version: '2.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: gli
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.7
|
75
|
+
version: '2.7'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.7
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: toml
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 0.0.3
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ~>
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 0.0.3
|
82
|
+
version: '2.7'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rake
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - ~>
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: 10.1
|
89
|
+
version: '10.1'
|
104
90
|
type: :runtime
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
94
|
- - ~>
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version: 10.1
|
96
|
+
version: '10.1'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: docile
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.1
|
103
|
+
version: '1.1'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
108
|
- - ~>
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.1
|
110
|
+
version: '1.1'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: cane
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,42 +142,42 @@ dependencies:
|
|
156
142
|
requirements:
|
157
143
|
- - ~>
|
158
144
|
- !ruby/object:Gem::Version
|
159
|
-
version: 2.14
|
145
|
+
version: '2.14'
|
160
146
|
type: :development
|
161
147
|
prerelease: false
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
150
|
- - ~>
|
165
151
|
- !ruby/object:Gem::Version
|
166
|
-
version: 2.14
|
152
|
+
version: '2.14'
|
167
153
|
- !ruby/object:Gem::Dependency
|
168
154
|
name: cucumber
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
170
156
|
requirements:
|
171
157
|
- - ~>
|
172
158
|
- !ruby/object:Gem::Version
|
173
|
-
version: 1.3
|
159
|
+
version: '1.3'
|
174
160
|
type: :development
|
175
161
|
prerelease: false
|
176
162
|
version_requirements: !ruby/object:Gem::Requirement
|
177
163
|
requirements:
|
178
164
|
- - ~>
|
179
165
|
- !ruby/object:Gem::Version
|
180
|
-
version: 1.3
|
166
|
+
version: '1.3'
|
181
167
|
- !ruby/object:Gem::Dependency
|
182
168
|
name: aruba
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
184
170
|
requirements:
|
185
171
|
- - ~>
|
186
172
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.5
|
173
|
+
version: '0.5'
|
188
174
|
type: :development
|
189
175
|
prerelease: false
|
190
176
|
version_requirements: !ruby/object:Gem::Requirement
|
191
177
|
requirements:
|
192
178
|
- - ~>
|
193
179
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.5
|
180
|
+
version: '0.5'
|
195
181
|
description: A reveal.js construction kit
|
196
182
|
email:
|
197
183
|
- northridge@gmail.com
|
@@ -319,8 +305,8 @@ files:
|
|
319
305
|
- spec/data/changers/splicer/before_insert
|
320
306
|
- spec/data/changers/string_replacer/after_replace
|
321
307
|
- spec/data/changers/string_replacer/before_replace
|
322
|
-
- spec/data/config/full_config.
|
323
|
-
- spec/data/config/partial_config.
|
308
|
+
- spec/data/config/full_config.yml
|
309
|
+
- spec/data/config/partial_config.yml
|
324
310
|
- spec/data/presentation/slides.haml
|
325
311
|
- spec/data/presentation/slides.rb
|
326
312
|
- spec/data/presentation_dsl/dsl.rb
|
@@ -385,8 +371,8 @@ test_files:
|
|
385
371
|
- spec/data/changers/splicer/before_insert
|
386
372
|
- spec/data/changers/string_replacer/after_replace
|
387
373
|
- spec/data/changers/string_replacer/before_replace
|
388
|
-
- spec/data/config/full_config.
|
389
|
-
- spec/data/config/partial_config.
|
374
|
+
- spec/data/config/full_config.yml
|
375
|
+
- spec/data/config/partial_config.yml
|
390
376
|
- spec/data/presentation/slides.haml
|
391
377
|
- spec/data/presentation/slides.rb
|
392
378
|
- spec/data/presentation_dsl/dsl.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
title = "The Never Sea Slides"
|