slippery 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.bundle/install.log +71 -0
- data/Gemfile.lock +16 -11
- data/README.md +48 -14
- data/Rakefile +3 -0
- data/lib/slippery/assets.rb +23 -0
- data/lib/slippery/document.rb +0 -1
- data/lib/slippery/presentation.rb +12 -9
- data/lib/slippery/processor_helpers.rb +6 -10
- data/lib/slippery/processors/hr_to_sections.rb +9 -3
- data/lib/slippery/processors/impress_js/add_impress_js.rb +7 -5
- data/lib/slippery/processors/reveal_js/add_reveal_js.rb +10 -9
- data/lib/slippery/rake_tasks.rb +100 -0
- data/lib/slippery/version.rb +1 -1
- data/lib/slippery.rb +3 -0
- data/slippery.gemspec +2 -0
- metadata +44 -14
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWFiYjgwMGViMWZkOGRjOGY1ODRhZTkzZjc2NWU3OWM3NDVmNGM2ZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OWFjYjk2MzlkNTExM2NlMWI5ZTE1ZGY4MDc5NTgzMGZiMzFiNWQxYQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTc0NGNhMTM5MWE4ZDA1ZDI3MWQ3YjU4ODMwMTJkMjgwYjYyNzRjMTc4OTNh
|
10
|
+
NDFhZDI1YzA5YmI5OTJmNDk2MmI2ZWExNzg5MGM4ZTg4NDAyM2NjZWQxYjNk
|
11
|
+
MDlkMjc0ZmRjMWJhYmVhOGZjZDI2ZWM2YWQ2NTQzNTc3YTBhYmM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YmY2NTNlNjlhOTRlMjA4YmEyMmY1MTNkZTIwZmRhNTYwNjNhMzc3YmMwNzcx
|
14
|
+
ZmI2ZmJhMzNmOTU1NTYwN2IzMjAyMWQxY2EyMmM0YmQ0OWM0NjBiYzU1MWFl
|
15
|
+
YTNjNWM2YzA5MWIwNjM3YTQwZDdlNGVmZTgxNmI2ZjBjZDhkYmM=
|
data/.bundle/install.log
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# Logfile created on 2014-02-23 15:27:32 +0100 by logger.rb/31641
|
2
|
+
I, [2014-02-23T15:27:32.144969 #18519] INFO -- : 0: rake (10.1.0) from /home/arne/.gem/ruby/1.9.3/specifications/rake-10.1.0.gemspec
|
3
|
+
I, [2014-02-23T15:27:32.145555 #18519] INFO -- : 0: abstract_type (0.0.6) from /home/arne/.gem/ruby/1.9.3/specifications/abstract_type-0.0.6.gemspec
|
4
|
+
I, [2014-02-23T15:27:32.146017 #18519] INFO -- : 0: ice_nine (0.9.0) from /home/arne/.gem/ruby/1.9.3/specifications/ice_nine-0.9.0.gemspec
|
5
|
+
I, [2014-02-23T15:27:33.847175 #18519] INFO -- : 0: adamantium (0.0.11) from /home/arne/.gem/ruby/1.9.3/specifications/adamantium-0.0.11.gemspec
|
6
|
+
I, [2014-02-23T15:27:33.847675 #18519] INFO -- : 0: backports (3.3.3) from /home/arne/.gem/ruby/1.9.3/specifications/backports-3.3.3.gemspec
|
7
|
+
I, [2014-02-23T15:27:36.243686 #18519] INFO -- : 0: equalizer (0.0.5) from /home/arne/.gem/ruby/1.9.3/specifications/equalizer-0.0.5.gemspec
|
8
|
+
I, [2014-02-23T15:27:37.834424 #18519] INFO -- : 0: anima (0.0.6) from /home/arne/.gem/ruby/1.9.3/specifications/anima-0.0.6.gemspec
|
9
|
+
I, [2014-02-23T15:27:37.834899 #18519] INFO -- : 0: ast (1.1.0) from /home/arne/.gem/ruby/1.9.3/specifications/ast-1.1.0.gemspec
|
10
|
+
I, [2014-02-23T15:27:37.835247 #18519] INFO -- : 0: bundler (1.5.1) from /home/arne/.gem/ruby/1.9.3/specifications/bundler-1.5.1.gemspec
|
11
|
+
I, [2014-02-23T15:27:37.835602 #18519] INFO -- : 0: coderay (1.0.9) from /home/arne/.gem/ruby/1.9.3/specifications/coderay-1.0.9.gemspec
|
12
|
+
I, [2014-02-23T15:27:37.835950 #18519] INFO -- : 0: colorize (0.5.8) from /home/arne/.gem/ruby/1.9.3/specifications/colorize-0.5.8.gemspec
|
13
|
+
I, [2014-02-23T15:27:39.347016 #18519] INFO -- : 0: concord (0.1.2) from /home/arne/.gem/ruby/1.9.3/specifications/concord-0.1.2.gemspec
|
14
|
+
I, [2014-02-23T15:27:40.752853 #18519] INFO -- : 0: multi_json (1.7.7) from /home/arne/.gem/ruby/1.9.3/specifications/multi_json-1.7.7.gemspec
|
15
|
+
I, [2014-02-23T15:27:42.348292 #18519] INFO -- : 0: mime-types (1.23) from /home/arne/.gem/ruby/1.9.3/specifications/mime-types-1.23.gemspec
|
16
|
+
I, [2014-02-23T15:27:42.348833 #18519] INFO -- : 0: rest-client (1.6.7) from /home/arne/.gem/ruby/1.9.3/specifications/rest-client-1.6.7.gemspec
|
17
|
+
I, [2014-02-23T15:27:42.349221 #18519] INFO -- : 0: simplecov-html (0.7.1) from /home/arne/.gem/ruby/1.9.3/specifications/simplecov-html-0.7.1.gemspec
|
18
|
+
I, [2014-02-23T15:27:42.349611 #18519] INFO -- : 0: simplecov (0.7.1) from /home/arne/.gem/ruby/1.9.3/specifications/simplecov-0.7.1.gemspec
|
19
|
+
I, [2014-02-23T15:27:42.349983 #18519] INFO -- : 0: thor (0.18.1) from /home/arne/.gem/ruby/1.9.3/specifications/thor-0.18.1.gemspec
|
20
|
+
I, [2014-02-23T15:27:42.350354 #18519] INFO -- : 0: coveralls (0.6.7) from /home/arne/.gem/ruby/1.9.3/specifications/coveralls-0.6.7.gemspec
|
21
|
+
I, [2014-02-23T15:27:42.350723 #18519] INFO -- : 0: descendants_tracker (0.0.1) from /home/arne/.gem/ruby/1.9.3/specifications/descendants_tracker-0.0.1.gemspec
|
22
|
+
I, [2014-02-23T15:27:42.376637 #18519] INFO -- : 0: devtools (0.0.2) from /home/arne/.gem/ruby/1.9.3/bundler/gems/devtools-bca222ee252d/devtools.gemspec
|
23
|
+
I, [2014-02-23T15:27:42.377248 #18519] INFO -- : 0: diff-lcs (1.2.4) from /home/arne/.gem/ruby/1.9.3/specifications/diff-lcs-1.2.4.gemspec
|
24
|
+
I, [2014-02-23T15:27:42.377663 #18519] INFO -- : 0: ffi (1.9.0) from /home/arne/.gem/ruby/1.9.3/specifications/ffi-1.9.0.gemspec
|
25
|
+
I, [2014-02-23T15:27:42.378065 #18519] INFO -- : 0: ffi-hunspell (0.3.0) from /home/arne/.gem/ruby/1.9.3/specifications/ffi-hunspell-0.3.0.gemspec
|
26
|
+
I, [2014-02-23T15:27:43.926273 #18519] INFO -- : 0: sexp_processor (4.2.1) from /home/arne/.gem/ruby/1.9.3/specifications/sexp_processor-4.2.1.gemspec
|
27
|
+
I, [2014-02-23T15:27:43.926825 #18519] INFO -- : 0: ruby_parser (3.1.3) from /home/arne/.gem/ruby/1.9.3/specifications/ruby_parser-3.1.3.gemspec
|
28
|
+
I, [2014-02-23T15:27:45.311529 #18519] INFO -- : 0: flay (2.3.1) from /home/arne/.gem/ruby/1.9.3/specifications/flay-2.3.1.gemspec
|
29
|
+
I, [2014-02-23T15:27:45.312027 #18519] INFO -- : 0: flog (4.1.1) from /home/arne/.gem/ruby/1.9.3/specifications/flog-4.1.1.gemspec
|
30
|
+
I, [2014-02-23T15:27:45.312377 #18519] INFO -- : 0: formatador (0.2.4) from /home/arne/.gem/ruby/1.9.3/specifications/formatador-0.2.4.gemspec
|
31
|
+
I, [2014-02-23T15:27:45.312743 #18519] INFO -- : 0: fzip (0.2.0) from /home/arne/.gem/ruby/1.9.3/specifications/fzip-0.2.0.gemspec
|
32
|
+
I, [2014-02-23T15:27:45.313092 #18519] INFO -- : 0: rb-fsevent (0.9.3) from /home/arne/.gem/ruby/1.9.3/specifications/rb-fsevent-0.9.3.gemspec
|
33
|
+
I, [2014-02-23T15:27:45.313446 #18519] INFO -- : 0: rb-inotify (0.9.0) from /home/arne/.gem/ruby/1.9.3/specifications/rb-inotify-0.9.0.gemspec
|
34
|
+
I, [2014-02-23T15:27:45.313786 #18519] INFO -- : 0: rb-kqueue (0.2.0) from /home/arne/.gem/ruby/1.9.3/specifications/rb-kqueue-0.2.0.gemspec
|
35
|
+
I, [2014-02-23T15:27:46.784270 #18519] INFO -- : 0: listen (1.2.2) from /home/arne/.gem/ruby/1.9.3/specifications/listen-1.2.2.gemspec
|
36
|
+
I, [2014-02-23T15:27:46.784900 #18519] INFO -- : 0: lumberjack (1.0.4) from /home/arne/.gem/ruby/1.9.3/specifications/lumberjack-1.0.4.gemspec
|
37
|
+
I, [2014-02-23T15:27:48.173953 #18519] INFO -- : 0: method_source (0.8.1) from /home/arne/.gem/ruby/1.9.3/specifications/method_source-0.8.1.gemspec
|
38
|
+
I, [2014-02-23T15:27:49.680455 #18519] INFO -- : 0: slop (3.4.5) from /home/arne/.gem/ruby/1.9.3/specifications/slop-3.4.5.gemspec
|
39
|
+
I, [2014-02-23T15:27:49.681067 #18519] INFO -- : 0: pry (0.9.12.2) from /home/arne/.gem/ruby/1.9.3/specifications/pry-0.9.12.2.gemspec
|
40
|
+
I, [2014-02-23T15:27:51.562761 #18519] INFO -- : 0: guard (1.8.1) from /home/arne/.gem/ruby/1.9.3/specifications/guard-1.8.1.gemspec
|
41
|
+
I, [2014-02-23T15:27:51.563253 #18519] INFO -- : 0: guard-bundler (1.0.0) from /home/arne/.gem/ruby/1.9.3/specifications/guard-bundler-1.0.0.gemspec
|
42
|
+
I, [2014-02-23T15:27:51.563595 #18519] INFO -- : 0: inflecto (0.0.2) from /home/arne/.gem/ruby/1.9.3/specifications/inflecto-0.0.2.gemspec
|
43
|
+
I, [2014-02-23T15:27:55.012144 #18519] INFO -- : 0: parser (2.0.0.pre2) from /home/arne/.gem/ruby/1.9.3/specifications/parser-2.0.0.pre2.gemspec
|
44
|
+
I, [2014-02-23T15:27:57.130110 #18519] INFO -- : 0: rspec-core (2.14.3) from /home/arne/.gem/ruby/1.9.3/specifications/rspec-core-2.14.3.gemspec
|
45
|
+
I, [2014-02-23T15:27:58.927580 #18519] INFO -- : 0: rspec-expectations (2.14.0) from /home/arne/.gem/ruby/1.9.3/specifications/rspec-expectations-2.14.0.gemspec
|
46
|
+
I, [2014-02-23T15:28:00.911900 #18519] INFO -- : 0: rspec-mocks (2.14.1) from /home/arne/.gem/ruby/1.9.3/specifications/rspec-mocks-2.14.1.gemspec
|
47
|
+
I, [2014-02-23T15:28:00.912443 #18519] INFO -- : 0: rspec (2.14.1) from /home/arne/.gem/ruby/1.9.3/specifications/rspec-2.14.1.gemspec
|
48
|
+
I, [2014-02-23T15:28:03.003962 #18519] INFO -- : 0: unparser (0.0.8) from /home/arne/.gem/ruby/1.9.3/specifications/unparser-0.0.8.gemspec
|
49
|
+
I, [2014-02-23T15:28:05.401383 #18519] INFO -- : 0: mutant (0.3.0.beta18) from /home/arne/.gem/ruby/1.9.3/specifications/mutant-0.3.0.beta18.gemspec
|
50
|
+
I, [2014-02-23T15:28:05.401965 #18519] INFO -- : 0: guard-mutant (0.0.1) from /home/arne/.gem/ruby/1.9.3/specifications/guard-mutant-0.0.1.gemspec
|
51
|
+
I, [2014-02-23T15:28:05.402415 #18519] INFO -- : 0: guard-rspec (3.0.2) from /home/arne/.gem/ruby/1.9.3/specifications/guard-rspec-3.0.2.gemspec
|
52
|
+
I, [2014-02-23T15:28:06.770115 #18519] INFO -- : 0: powerpack (0.0.1) from /home/arne/.gem/ruby/1.9.3/specifications/powerpack-0.0.1.gemspec
|
53
|
+
I, [2014-02-23T15:28:06.770720 #18519] INFO -- : 0: rainbow (1.1.4) from /home/arne/.gem/ruby/1.9.3/specifications/rainbow-1.1.4.gemspec
|
54
|
+
I, [2014-02-23T15:28:06.962855 #18519] INFO -- : 0: rubocop (0.10.0) from /home/arne/.gem/ruby/1.9.3/bundler/gems/rubocop-e9fa7563d4ea/rubocop.gemspec
|
55
|
+
I, [2014-02-23T15:28:09.199035 #18519] INFO -- : 0: guard-rubocop (0.2.0) from /home/arne/.gem/ruby/1.9.3/specifications/guard-rubocop-0.2.0.gemspec
|
56
|
+
I, [2014-02-23T15:28:09.199575 #18519] INFO -- : 0: mini_portile (0.5.2) from /home/arne/.gem/ruby/1.9.3/specifications/mini_portile-0.5.2.gemspec
|
57
|
+
I, [2014-02-23T15:28:09.199953 #18519] INFO -- : 0: nokogiri (1.6.1) from /home/arne/.gem/ruby/1.9.3/specifications/nokogiri-1.6.1.gemspec
|
58
|
+
I, [2014-02-23T15:28:09.200312 #18519] INFO -- : 0: sass (3.2.14) from /home/arne/.gem/ruby/1.9.3/specifications/sass-3.2.14.gemspec
|
59
|
+
I, [2014-02-23T15:28:09.289237 #18519] INFO -- : 0: hexp (0.3.1) from /home/arne/github/hexp/hexp.gemspec
|
60
|
+
I, [2014-02-23T15:28:09.289793 #18519] INFO -- : 0: kramdown (1.1.0) from /home/arne/.gem/ruby/1.9.3/specifications/kramdown-1.1.0.gemspec
|
61
|
+
I, [2014-02-23T15:28:09.290207 #18519] INFO -- : 0: libnotify (0.8.1) from /home/arne/.gem/ruby/1.9.3/specifications/libnotify-0.8.1.gemspec
|
62
|
+
I, [2014-02-23T15:28:09.290610 #18519] INFO -- : 0: rb-fchange (0.0.6) from /home/arne/.gem/ruby/1.9.3/specifications/rb-fchange-0.0.6.gemspec
|
63
|
+
I, [2014-02-23T15:28:09.291033 #18519] INFO -- : 0: rb-notifu (0.0.4) from /home/arne/.gem/ruby/1.9.3/specifications/rb-notifu-0.0.4.gemspec
|
64
|
+
I, [2014-02-23T15:28:09.291431 #18519] INFO -- : 0: rbench (0.2.3) from /home/arne/.gem/ruby/1.9.3/specifications/rbench-0.2.3.gemspec
|
65
|
+
I, [2014-02-23T15:28:09.291823 #18519] INFO -- : 0: ruby2ruby (2.0.6) from /home/arne/.gem/ruby/1.9.3/specifications/ruby2ruby-2.0.6.gemspec
|
66
|
+
I, [2014-02-23T15:28:09.427555 #18519] INFO -- : 0: reek (1.3.1) from /home/arne/.gem/ruby/1.9.3/bundler/gems/reek-ae4d09078ae2/reek.gemspec
|
67
|
+
I, [2014-02-23T15:28:09.552134 #18519] INFO -- : 0: slippery (0.0.3) from /home/arne/github/slippery/slippery.gemspec
|
68
|
+
I, [2014-02-23T15:28:09.552653 #18519] INFO -- : 0: terminal-notifier-guard (1.5.3) from /home/arne/.gem/ruby/1.9.3/specifications/terminal-notifier-guard-1.5.3.gemspec
|
69
|
+
I, [2014-02-23T15:28:12.704415 #18519] INFO -- : 0: yard (0.8.6.2) from /home/arne/.gem/ruby/1.9.3/specifications/yard-0.8.6.2.gemspec
|
70
|
+
I, [2014-02-23T15:28:12.705047 #18519] INFO -- : 0: yard-spellcheck (0.1.5) from /home/arne/.gem/ruby/1.9.3/specifications/yard-spellcheck-0.1.5.gemspec
|
71
|
+
I, [2014-02-23T15:28:14.853347 #18519] INFO -- : 0: yardstick (0.9.6) from /home/arne/.gem/ruby/1.9.3/specifications/yardstick-0.9.6.gemspec
|
data/Gemfile.lock
CHANGED
@@ -3,7 +3,7 @@ GIT
|
|
3
3
|
revision: bca222ee252d4d4bd86f55967704965711e90096
|
4
4
|
specs:
|
5
5
|
devtools (0.0.2)
|
6
|
-
ice_nine (~> 0.
|
6
|
+
ice_nine (~> 0.9.0)
|
7
7
|
|
8
8
|
GIT
|
9
9
|
remote: https://github.com/bbatsov/rubocop.git
|
@@ -27,16 +27,18 @@ GIT
|
|
27
27
|
PATH
|
28
28
|
remote: .
|
29
29
|
specs:
|
30
|
-
slippery (0.0.
|
30
|
+
slippery (0.0.3)
|
31
31
|
hexp (~> 0.0)
|
32
32
|
kramdown (~> 1.1)
|
33
|
+
rb-inotify
|
33
34
|
|
34
35
|
PATH
|
35
36
|
remote: /home/arne/github/hexp
|
36
37
|
specs:
|
37
|
-
hexp (0.
|
38
|
+
hexp (0.3.1)
|
38
39
|
equalizer (~> 0.0)
|
39
|
-
|
40
|
+
fzip (~> 0.1)
|
41
|
+
ice_nine (~> 0.9)
|
40
42
|
nokogiri (~> 1.6)
|
41
43
|
sass (~> 3.2)
|
42
44
|
|
@@ -45,7 +47,7 @@ GEM
|
|
45
47
|
specs:
|
46
48
|
abstract_type (0.0.6)
|
47
49
|
adamantium (0.0.11)
|
48
|
-
ice_nine (~> 0.
|
50
|
+
ice_nine (~> 0.9.0)
|
49
51
|
anima (0.0.6)
|
50
52
|
abstract_type (~> 0.0.4)
|
51
53
|
adamantium (~> 0.0.6)
|
@@ -79,6 +81,7 @@ GEM
|
|
79
81
|
ruby_parser (~> 3.1, > 3.1.0)
|
80
82
|
sexp_processor (~> 4.0)
|
81
83
|
formatador (0.2.4)
|
84
|
+
fzip (0.2.0)
|
82
85
|
guard (1.8.1)
|
83
86
|
formatador (>= 0.2.4)
|
84
87
|
listen (>= 1.0.0)
|
@@ -98,7 +101,7 @@ GEM
|
|
98
101
|
guard-rubocop (0.2.0)
|
99
102
|
guard (~> 1.8)
|
100
103
|
rubocop (~> 0.9)
|
101
|
-
ice_nine (0.
|
104
|
+
ice_nine (0.9.0)
|
102
105
|
inflecto (0.0.2)
|
103
106
|
kramdown (1.1.0)
|
104
107
|
libnotify (0.8.1)
|
@@ -110,7 +113,7 @@ GEM
|
|
110
113
|
lumberjack (1.0.4)
|
111
114
|
method_source (0.8.1)
|
112
115
|
mime-types (1.23)
|
113
|
-
mini_portile (0.5.
|
116
|
+
mini_portile (0.5.2)
|
114
117
|
multi_json (1.7.7)
|
115
118
|
mutant (0.3.0.beta18)
|
116
119
|
adamantium (~> 0.0.10)
|
@@ -118,12 +121,12 @@ GEM
|
|
118
121
|
concord (~> 0.1.1)
|
119
122
|
descendants_tracker (~> 0.0.1)
|
120
123
|
equalizer (~> 0.0.5)
|
121
|
-
ice_nine (~> 0.
|
124
|
+
ice_nine (~> 0.9.0)
|
122
125
|
inflecto (~> 0.0.2)
|
123
126
|
parser (~> 2.0.0.pre2)
|
124
127
|
rspec (~> 2.14.1)
|
125
128
|
unparser (~> 0.0.8)
|
126
|
-
nokogiri (1.6.
|
129
|
+
nokogiri (1.6.1)
|
127
130
|
mini_portile (~> 0.5.0)
|
128
131
|
parser (2.0.0.pre2)
|
129
132
|
ast (~> 1.1)
|
@@ -160,7 +163,8 @@ GEM
|
|
160
163
|
sexp_processor (~> 4.0)
|
161
164
|
ruby_parser (3.1.3)
|
162
165
|
sexp_processor (~> 4.1)
|
163
|
-
|
166
|
+
rubygems-tasks (0.2.4)
|
167
|
+
sass (3.2.14)
|
164
168
|
sexp_processor (4.2.1)
|
165
169
|
simplecov (0.7.1)
|
166
170
|
multi_json (~> 1.0)
|
@@ -197,7 +201,6 @@ DEPENDENCIES
|
|
197
201
|
guard-rspec (~> 3.0.2)
|
198
202
|
guard-rubocop (~> 0.2.0)
|
199
203
|
hexp!
|
200
|
-
slippery!
|
201
204
|
jruby-openssl (~> 0.8.5)
|
202
205
|
kramdown (~> 1.1.0)
|
203
206
|
libnotify (~> 0.8.0)
|
@@ -213,7 +216,9 @@ DEPENDENCIES
|
|
213
216
|
reek (~> 1.3.1)!
|
214
217
|
rspec (~> 2.14.1)
|
215
218
|
rubocop (~> 0.10.0)!
|
219
|
+
rubygems-tasks
|
216
220
|
simplecov (~> 0.7.1)
|
221
|
+
slippery!
|
217
222
|
terminal-notifier-guard (~> 1.5.3)
|
218
223
|
yard (~> 0.8.6.2)
|
219
224
|
yard-spellcheck (~> 0.1.5)
|
data/README.md
CHANGED
@@ -12,23 +12,61 @@
|
|
12
12
|
|
13
13
|
#Slippery
|
14
14
|
|
15
|
-
|
15
|
+
Marries the flexible [Kramdown](https://kramdown.rubyforge.org) parser for Markdown with the flexibility of DOM manipulation with [Hexp](https://github.com/plexus/hexp) to generate HTML slides backed by either Reveal.js or Impress.js.
|
16
|
+
|
17
|
+
Because Slippery slides are the best slides.
|
16
18
|
|
17
19
|
## How to use
|
18
20
|
|
19
21
|
Create a markdown file, say `presentation.md`, that will be the source of your presentation. use `---` to separate slides.
|
20
22
|
|
21
|
-
In the same directory, create a Rakefile,
|
23
|
+
In the same directory, create a Rakefile, the most basic form is :
|
22
24
|
|
23
25
|
```ruby
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
require 'slippery'
|
27
|
+
|
28
|
+
Slippery::RakeTasks.new
|
29
|
+
```
|
30
|
+
|
31
|
+
Slippery will detect and markdown files in the current directory, and generate rake tasks for them.
|
32
|
+
|
33
|
+
```
|
34
|
+
rake slippery:build # build all
|
35
|
+
rake slippery:build:presentation # build presentation
|
36
|
+
```
|
37
|
+
|
38
|
+
|
39
|
+
You can use a block to configure Slippery:
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
require 'slippery'
|
43
|
+
|
44
|
+
Slippery::RakeTasks.new do |s|
|
45
|
+
s.options = {
|
46
|
+
type: :reveal_js,
|
47
|
+
theme: 'beige',
|
48
|
+
controls: false,
|
49
|
+
backgroundTransition: 'slide',
|
50
|
+
history: true,
|
51
|
+
plugins: [:notes]
|
52
|
+
}
|
53
|
+
|
54
|
+
s.processor 'head' do |head|
|
55
|
+
head <<= H[:title, 'Web Services, Past Present Future']
|
56
|
+
end
|
28
57
|
end
|
29
58
|
```
|
30
59
|
|
31
|
-
|
60
|
+
After converting your presentation from Markdown, you can use Hexp to perform transformations on the result. This is what happens with the `processor`, you pass it a CSS selector, each matching element gets passed into the block, and replaced by whatever the block returns. See the [Hexp](http://github.com/plexus/hexp) DSL for details.
|
61
|
+
|
62
|
+
You can also add built-in or custom processors directly
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
Slippery::RakeTasks.new do |s|
|
66
|
+
s.processors << Slippery::Processors::GraphvizDot.new('.dot')
|
67
|
+
s.processors << Slippery::Processors::SelfContained
|
68
|
+
end
|
69
|
+
```
|
32
70
|
|
33
71
|
## Processors
|
34
72
|
|
@@ -56,13 +94,9 @@ In your presentation :
|
|
56
94
|
In the Rakefile
|
57
95
|
|
58
96
|
```ruby
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
presentation = Slippery::Presentation.new(doc, type: :reveal_js)
|
63
|
-
.process(GraphvizDot)
|
64
|
-
|
65
|
-
File.write('presentation.html', presentation.to_html)
|
97
|
+
Slippery::RakeTasks.new do |s|
|
98
|
+
s.processors << Slippery::Processors::GraphvizDot.new('.dot')
|
99
|
+
s.processors << Slippery::Processors::SelfContained
|
66
100
|
end
|
67
101
|
```
|
68
102
|
|
data/Rakefile
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
# Manage the assets and their URI/path
|
4
|
+
module Slippery
|
5
|
+
module Assets
|
6
|
+
ASSETS_PATH = '../../../assets/'
|
7
|
+
|
8
|
+
# Copies the assets locally
|
9
|
+
def self.embed_locally
|
10
|
+
FileUtils.cp_r(File.expand_path(ASSETS_PATH, __FILE__), './')
|
11
|
+
end
|
12
|
+
|
13
|
+
# returns a composer returning a URI for a given relative file path
|
14
|
+
# considering if the asset is local or not
|
15
|
+
def self.path_composer(local)
|
16
|
+
if local
|
17
|
+
->(path) { File.join('assets', path) }
|
18
|
+
else
|
19
|
+
->(path) { "file://#{File.expand_path(File.join(ASSETS_PATH, path), __FILE__)}" }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/slippery/document.rb
CHANGED
@@ -3,30 +3,33 @@ module Slippery
|
|
3
3
|
include Hexp
|
4
4
|
|
5
5
|
DEFAULT_OPTIONS = {
|
6
|
-
type: :reveal_js
|
6
|
+
type: :reveal_js,
|
7
|
+
local: true
|
7
8
|
}.freeze
|
8
9
|
|
9
10
|
def initialize(document, options = {})
|
10
11
|
@document = document
|
11
12
|
@options = DEFAULT_OPTIONS.merge(options).freeze
|
13
|
+
|
14
|
+
Assets::embed_locally if @options[:local]
|
12
15
|
end
|
13
16
|
|
14
17
|
def processors
|
15
18
|
{
|
16
|
-
:
|
17
|
-
HrToSections.new(H[:div, class: 'step']),
|
18
|
-
ImpressJs::AddImpressJs.new(js_options),
|
19
|
-
ImpressJs::AutoOffsets.new,
|
19
|
+
impress_js: [
|
20
|
+
Processors::HrToSections.new(H[:div, class: 'step']),
|
21
|
+
Processors::ImpressJs::AddImpressJs.new(Assets::path_composer(@options[:local]), js_options),
|
22
|
+
Processors::ImpressJs::AutoOffsets.new,
|
20
23
|
],
|
21
|
-
:
|
22
|
-
HrToSections.new(H[:section]),
|
23
|
-
RevealJs::AddRevealJs.new(js_options),
|
24
|
+
reveal_js: [
|
25
|
+
Processors::HrToSections.new(H[:section]),
|
26
|
+
Processors::RevealJs::AddRevealJs.new(Assets::path_composer(@options[:local]), js_options),
|
24
27
|
]
|
25
28
|
}[@options[:type]]
|
26
29
|
end
|
27
30
|
|
28
31
|
def js_options
|
29
|
-
@options.reject {|key,_| [:type].include? key }
|
32
|
+
@options.reject { |key, _| [:type].include? key }
|
30
33
|
end
|
31
34
|
|
32
35
|
def to_hexp
|
@@ -4,16 +4,12 @@ module Slippery
|
|
4
4
|
klz.extend ClassMethods
|
5
5
|
end
|
6
6
|
|
7
|
-
def include_local_javascript(element,
|
8
|
-
element.add javascript_include_tag(
|
7
|
+
def include_local_javascript(element, path)
|
8
|
+
element.add javascript_include_tag(path)
|
9
9
|
end
|
10
10
|
|
11
|
-
def include_local_css(element,
|
12
|
-
element.add stylesheet_link_tag(
|
13
|
-
end
|
14
|
-
|
15
|
-
def asset_uri(path)
|
16
|
-
'file://' + File.expand_path('../../../assets/'+ path, __FILE__)
|
11
|
+
def include_local_css(element, path)
|
12
|
+
element.add stylesheet_link_tag(path)
|
17
13
|
end
|
18
14
|
|
19
15
|
def javascript_include_tag(path)
|
@@ -25,14 +21,14 @@ module Slippery
|
|
25
21
|
end
|
26
22
|
|
27
23
|
def data_attributes(attrs)
|
28
|
-
Hash[*attrs.flat_map {|k,v| ["data-#{k}", v]}]
|
24
|
+
Hash[*attrs.flat_map { |k, v| ["data-#{k}", v] }]
|
29
25
|
end
|
30
26
|
|
31
27
|
module ClassMethods
|
32
28
|
def processor(name, selector = nil, &blk)
|
33
29
|
if selector
|
34
30
|
define_method name do
|
35
|
-
->(node) { node.replace(selector) {|node| instance_exec(node, &blk) } }
|
31
|
+
->(node) { node.replace(selector) { |node| instance_exec(node, &blk) } }
|
36
32
|
end
|
37
33
|
else
|
38
34
|
define_method name { ->(node) { blk.call(node) } }
|
@@ -11,8 +11,8 @@ module Slippery
|
|
11
11
|
self.new.call(doc)
|
12
12
|
end
|
13
13
|
|
14
|
-
def initialize(wrapper = H[:section], selector = 'body')
|
15
|
-
@selector, @wrapper = selector, wrapper
|
14
|
+
def initialize(wrapper = H[:section], selector = 'body', options = {})
|
15
|
+
@selector, @wrapper, @anchor = selector, wrapper, options.fetch(:anchor, true)
|
16
16
|
end
|
17
17
|
|
18
18
|
def call(doc)
|
@@ -21,9 +21,15 @@ module Slippery
|
|
21
21
|
|
22
22
|
def hr_to_section(element)
|
23
23
|
sections = [@wrapper]
|
24
|
+
page = 1
|
24
25
|
element.children.each do |child|
|
25
26
|
if child.tag == :hr
|
26
|
-
|
27
|
+
last_section = @wrapper.merge_attrs(child)
|
28
|
+
if @anchor
|
29
|
+
last_section = last_section.merge_attrs(name: "#{page}")
|
30
|
+
page += 1
|
31
|
+
end
|
32
|
+
sections << last_section
|
27
33
|
else
|
28
34
|
sections[-1] = sections.last << child
|
29
35
|
end
|
@@ -10,20 +10,22 @@ module Slippery
|
|
10
10
|
|
11
11
|
attr_reader :attributes
|
12
12
|
|
13
|
-
DEFAULT_ATTRS = {
|
13
|
+
DEFAULT_ATTRS = {
|
14
|
+
'transition-duration' => 1000
|
15
|
+
}.freeze
|
14
16
|
|
15
|
-
def initialize(attributes = {})
|
17
|
+
def initialize(path_composer, attributes = {})
|
18
|
+
@path_composer = path_composer
|
16
19
|
@attributes = DEFAULT_ATTRS.merge(attributes).freeze
|
17
20
|
end
|
18
21
|
|
19
22
|
def call(doc)
|
20
23
|
doc.replace('body') do |body|
|
21
|
-
include_local_javascript(body, 'impress.js/js/impress.js')
|
24
|
+
include_local_javascript(body, @path_composer.call('impress.js/js/impress.js'))
|
22
25
|
.set_attributes({id: 'impress'}.merge(data_attributes(attributes)))
|
23
|
-
.add H[:script,
|
26
|
+
.add H[:script, 'impress().init();']
|
24
27
|
end
|
25
28
|
end
|
26
|
-
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
@@ -12,7 +12,8 @@ module Slippery
|
|
12
12
|
|
13
13
|
DEFAULT_OPTIONS = {theme: 'default'}.freeze
|
14
14
|
|
15
|
-
def initialize(options = {})
|
15
|
+
def initialize(path_composer, options = {})
|
16
|
+
@path_composer = path_composer
|
16
17
|
@options = DEFAULT_OPTIONS.merge(options).freeze
|
17
18
|
end
|
18
19
|
|
@@ -27,20 +28,20 @@ module Slippery
|
|
27
28
|
end
|
28
29
|
|
29
30
|
processor :add_reveal_js, 'body' do |body|
|
30
|
-
body = include_local_javascript(body, 'reveal.js/lib/js/head.min.js')
|
31
|
-
include_local_javascript(body, 'reveal.js/js/reveal.js')
|
31
|
+
body = include_local_javascript(body, @path_composer.call('reveal.js/lib/js/head.min.js'))
|
32
|
+
include_local_javascript(body, @path_composer.call('reveal.js/js/reveal.js'))
|
32
33
|
end
|
33
34
|
|
34
35
|
processor :add_reveal_css, 'head' do |head|
|
35
|
-
include_local_css(head, 'reveal.js/css/reveal.min.css')
|
36
|
+
include_local_css(head, @path_composer.call('reveal.js/css/reveal.min.css'))
|
36
37
|
end
|
37
38
|
|
38
39
|
processor :add_theme, 'head' do |head|
|
39
|
-
include_local_css(head, "reveal.js/css/theme/#{@options[:theme]}.css")
|
40
|
+
include_local_css(head, @path_composer.call("reveal.js/css/theme/#{@options[:theme]}.css"))
|
40
41
|
end
|
41
42
|
|
42
43
|
processor :add_settings, 'body' do |body|
|
43
|
-
body.add(H[:script, "Reveal.initialize({ #{plugin_settings}, #{settings.map {|k,v| "#{k}:#{v.inspect}"}.join(',')} });"])
|
44
|
+
body.add(H[:script, "Reveal.initialize({ #{plugin_settings}, #{settings.map { |k, v| "#{k}:#{v.inspect}" }.join(',')} });"])
|
44
45
|
end
|
45
46
|
|
46
47
|
processor :reveal_wrap, 'body' do |body|
|
@@ -53,14 +54,14 @@ module Slippery
|
|
53
54
|
end
|
54
55
|
|
55
56
|
def settings
|
56
|
-
@options.reject{|key,_| [:theme, :plugins].include? key }
|
57
|
+
@options.reject { |key, _| [:theme, :plugins].include? key }
|
57
58
|
end
|
58
59
|
|
59
60
|
def plugin_settings
|
60
|
-
|
61
|
+
'dependencies: [' +
|
61
62
|
Array(@options.fetch(:plugins, [])).map do |name|
|
62
63
|
plugin_config name
|
63
|
-
end.join(',') +
|
64
|
+
end.join(',') + ']'
|
64
65
|
end
|
65
66
|
|
66
67
|
def plugins(name)
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require 'rake/tasklib'
|
2
|
+
require 'rb-inotify'
|
3
|
+
|
4
|
+
module Slippery
|
5
|
+
class RakeTasks < Rake::TaskLib
|
6
|
+
attr_reader :name
|
7
|
+
attr_accessor :presentations, :options, :processors
|
8
|
+
|
9
|
+
def initialize(name = :slippery, &blk)
|
10
|
+
@name = name
|
11
|
+
@presentations = Pathname.glob('*.md')
|
12
|
+
@options = {}
|
13
|
+
@processors = []
|
14
|
+
|
15
|
+
if block_given?
|
16
|
+
if blk.arity == 0
|
17
|
+
self.instance_eval(&blk)
|
18
|
+
else
|
19
|
+
yield self
|
20
|
+
end
|
21
|
+
end
|
22
|
+
define
|
23
|
+
end
|
24
|
+
|
25
|
+
def presentation_names
|
26
|
+
presentations.map {|path| [ path.basename(path.extname), path ] }
|
27
|
+
end
|
28
|
+
|
29
|
+
def markdown_to_hexp(infile)
|
30
|
+
doc = Slippery::Document.new(infile.read)
|
31
|
+
doc = Slippery::Presentation.new(doc, options)
|
32
|
+
|
33
|
+
doc.process(*processors)
|
34
|
+
end
|
35
|
+
|
36
|
+
def processor(selector, &blk)
|
37
|
+
processors << ->(node) do
|
38
|
+
node.replace(selector) do |node|
|
39
|
+
instance_exec(node, &blk)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def self_contained
|
45
|
+
processors << Slippery::Processors::SelfContained
|
46
|
+
end
|
47
|
+
|
48
|
+
def define
|
49
|
+
namespace @name do
|
50
|
+
desc "build all"
|
51
|
+
task :build => presentation_names.map(&:first).map {|name| "#{@name}:build:#{name}"}
|
52
|
+
|
53
|
+
namespace :build do
|
54
|
+
presentation_names.each do |name, path|
|
55
|
+
desc "build #{name}"
|
56
|
+
task name do
|
57
|
+
File.write("#{name}.html", markdown_to_hexp(path).to_html)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
namespace :watch do
|
63
|
+
presentation_names.each do |name, path|
|
64
|
+
desc "watch #{name} for changes"
|
65
|
+
WatchTask.new(name, [path.to_s]) do
|
66
|
+
dest = Tempfile.new("#{name}.html")
|
67
|
+
File.open("#{name}.html") { |src| FileUtils.copy_stream(src, dest) }
|
68
|
+
dest.close
|
69
|
+
Rake::Task["#{@name}:build:#{name}"].execute
|
70
|
+
puts "="*60
|
71
|
+
print `diff -u #{dest.path} #{name}.html` if File.exist? "#{name}.html"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
class WatchTask
|
83
|
+
def initialize(name, files, &block)
|
84
|
+
Rake::Task.define_task name do
|
85
|
+
Array(files).each do |pattern|
|
86
|
+
notifier.watch(pattern, :modify, &block)
|
87
|
+
end
|
88
|
+
at_exit do
|
89
|
+
block.call
|
90
|
+
notifier.run
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def notifier
|
96
|
+
@notifier ||= INotify::Notifier.new
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
data/lib/slippery/version.rb
CHANGED
data/lib/slippery.rb
CHANGED
@@ -27,6 +27,7 @@ end
|
|
27
27
|
require 'slippery/version'
|
28
28
|
require 'slippery/converter'
|
29
29
|
require 'slippery/document'
|
30
|
+
require 'slippery/assets'
|
30
31
|
require 'slippery/presentation'
|
31
32
|
|
32
33
|
require 'slippery/processor_helpers'
|
@@ -40,3 +41,5 @@ require 'slippery/processors/impress_js/add_impress_js'
|
|
40
41
|
require 'slippery/processors/impress_js/auto_offsets'
|
41
42
|
|
42
43
|
require 'slippery/processors/reveal_js/add_reveal_js'
|
44
|
+
|
45
|
+
require 'slippery/rake_tasks'
|
data/slippery.gemspec
CHANGED
@@ -19,7 +19,9 @@ Gem::Specification.new do |gem|
|
|
19
19
|
|
20
20
|
gem.add_runtime_dependency 'hexp' , '~> 0.0'
|
21
21
|
gem.add_runtime_dependency 'kramdown' , '~> 1.1'
|
22
|
+
gem.add_runtime_dependency 'rb-inotify'
|
22
23
|
|
23
24
|
gem.add_development_dependency 'rake', '~> 10.1'
|
24
25
|
gem.add_development_dependency 'rspec', '~> 2.14'
|
26
|
+
gem.add_development_dependency 'rubygems-tasks'
|
25
27
|
end
|
metadata
CHANGED
@@ -1,71 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slippery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arne Brasseur
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
prerelease: false
|
15
|
+
name: hexp
|
14
16
|
requirement: !ruby/object:Gem::Requirement
|
15
17
|
requirements:
|
16
18
|
- - ~>
|
17
19
|
- !ruby/object:Gem::Version
|
18
20
|
version: '0.0'
|
19
|
-
|
21
|
+
type: :runtime
|
20
22
|
version_requirements: !ruby/object:Gem::Requirement
|
21
23
|
requirements:
|
22
24
|
- - ~>
|
23
25
|
- !ruby/object:Gem::Version
|
24
26
|
version: '0.0'
|
25
|
-
name: hexp
|
26
|
-
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
prerelease: false
|
29
|
+
name: kramdown
|
28
30
|
requirement: !ruby/object:Gem::Requirement
|
29
31
|
requirements:
|
30
32
|
- - ~>
|
31
33
|
- !ruby/object:Gem::Version
|
32
34
|
version: '1.1'
|
33
|
-
|
35
|
+
type: :runtime
|
34
36
|
version_requirements: !ruby/object:Gem::Requirement
|
35
37
|
requirements:
|
36
38
|
- - ~>
|
37
39
|
- !ruby/object:Gem::Version
|
38
40
|
version: '1.1'
|
39
|
-
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
prerelease: false
|
43
|
+
name: rb-inotify
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
40
49
|
type: :runtime
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
prerelease: false
|
57
|
+
name: rake
|
42
58
|
requirement: !ruby/object:Gem::Requirement
|
43
59
|
requirements:
|
44
60
|
- - ~>
|
45
61
|
- !ruby/object:Gem::Version
|
46
62
|
version: '10.1'
|
47
|
-
|
63
|
+
type: :development
|
48
64
|
version_requirements: !ruby/object:Gem::Requirement
|
49
65
|
requirements:
|
50
66
|
- - ~>
|
51
67
|
- !ruby/object:Gem::Version
|
52
68
|
version: '10.1'
|
53
|
-
name: rake
|
54
|
-
type: :development
|
55
69
|
- !ruby/object:Gem::Dependency
|
70
|
+
prerelease: false
|
71
|
+
name: rspec
|
56
72
|
requirement: !ruby/object:Gem::Requirement
|
57
73
|
requirements:
|
58
74
|
- - ~>
|
59
75
|
- !ruby/object:Gem::Version
|
60
76
|
version: '2.14'
|
61
|
-
|
77
|
+
type: :development
|
62
78
|
version_requirements: !ruby/object:Gem::Requirement
|
63
79
|
requirements:
|
64
80
|
- - ~>
|
65
81
|
- !ruby/object:Gem::Version
|
66
82
|
version: '2.14'
|
67
|
-
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
prerelease: false
|
85
|
+
name: rubygems-tasks
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
68
91
|
type: :development
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
description: Make presentations with Markdown
|
70
98
|
email:
|
71
99
|
- arne@arnebrasseur.net
|
@@ -75,6 +103,7 @@ extra_rdoc_files:
|
|
75
103
|
- README.md
|
76
104
|
- LICENSE
|
77
105
|
files:
|
106
|
+
- .bundle/install.log
|
78
107
|
- .travis.yml
|
79
108
|
- Gemfile
|
80
109
|
- Gemfile.devtools
|
@@ -147,6 +176,7 @@ files:
|
|
147
176
|
- config/rubocop.yml
|
148
177
|
- config/yardstick.yml
|
149
178
|
- lib/slippery.rb
|
179
|
+
- lib/slippery/assets.rb
|
150
180
|
- lib/slippery/converter.rb
|
151
181
|
- lib/slippery/document.rb
|
152
182
|
- lib/slippery/presentation.rb
|
@@ -158,6 +188,7 @@ files:
|
|
158
188
|
- lib/slippery/processors/impress_js/auto_offsets.rb
|
159
189
|
- lib/slippery/processors/reveal_js/add_reveal_js.rb
|
160
190
|
- lib/slippery/processors/self_contained.rb
|
191
|
+
- lib/slippery/rake_tasks.rb
|
161
192
|
- lib/slippery/version.rb
|
162
193
|
- slippery.gemspec
|
163
194
|
- spec/fixtures/blockquotes.md
|
@@ -190,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
221
|
version: '0'
|
191
222
|
requirements: []
|
192
223
|
rubyforge_project:
|
193
|
-
rubygems_version: 2.1
|
224
|
+
rubygems_version: 2.2.1
|
194
225
|
signing_key:
|
195
226
|
specification_version: 4
|
196
227
|
summary: Make presentations with Markdown
|
@@ -205,4 +236,3 @@ test_files:
|
|
205
236
|
- spec/slippery/converter_spec.rb
|
206
237
|
- spec/slippery_spec.rb
|
207
238
|
- spec/spec_helper.rb
|
208
|
-
has_rdoc:
|