slippery 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/assets/deck.js/core/deck.core.css +60 -0
  4. data/assets/deck.js/core/deck.core.js +728 -0
  5. data/assets/deck.js/core/deck.core.scss +65 -0
  6. data/assets/deck.js/core/print.css +25 -0
  7. data/assets/deck.js/core/print.scss +14 -0
  8. data/assets/deck.js/css/common.css +216 -0
  9. data/assets/deck.js/css/common.scss +233 -0
  10. data/assets/deck.js/css/home.css +790 -0
  11. data/assets/deck.js/css/home.scss +892 -0
  12. data/assets/deck.js/extensions/goto/deck.goto.css +36 -0
  13. data/assets/deck.js/extensions/goto/deck.goto.html +7 -0
  14. data/assets/deck.js/extensions/goto/deck.goto.js +190 -0
  15. data/assets/deck.js/extensions/goto/deck.goto.scss +39 -0
  16. data/assets/deck.js/extensions/hash/deck.hash.css +13 -0
  17. data/assets/deck.js/extensions/hash/deck.hash.html +2 -0
  18. data/assets/deck.js/extensions/hash/deck.hash.js +145 -0
  19. data/assets/deck.js/extensions/hash/deck.hash.scss +13 -0
  20. data/assets/deck.js/extensions/menu/deck.menu.css +45 -0
  21. data/assets/deck.js/extensions/menu/deck.menu.js +225 -0
  22. data/assets/deck.js/extensions/menu/deck.menu.scss +55 -0
  23. data/assets/deck.js/extensions/navigation/deck.navigation.css +42 -0
  24. data/assets/deck.js/extensions/navigation/deck.navigation.html +5 -0
  25. data/assets/deck.js/extensions/navigation/deck.navigation.js +94 -0
  26. data/assets/deck.js/extensions/navigation/deck.navigation.scss +44 -0
  27. data/assets/deck.js/extensions/scale/deck.scale.css +20 -0
  28. data/assets/deck.js/extensions/scale/deck.scale.js +190 -0
  29. data/assets/deck.js/extensions/scale/deck.scale.scss +22 -0
  30. data/assets/deck.js/extensions/status/deck.status.css +18 -0
  31. data/assets/deck.js/extensions/status/deck.status.html +6 -0
  32. data/assets/deck.js/extensions/status/deck.status.js +108 -0
  33. data/assets/deck.js/extensions/status/deck.status.scss +18 -0
  34. data/assets/deck.js/modernizr.custom.js +4 -0
  35. data/assets/deck.js/themes/style/_reset.scss +300 -0
  36. data/assets/deck.js/themes/style/neon.css +421 -0
  37. data/assets/deck.js/themes/style/neon.scss +148 -0
  38. data/assets/deck.js/themes/style/swiss.css +389 -0
  39. data/assets/deck.js/themes/style/swiss.scss +109 -0
  40. data/assets/deck.js/themes/style/web-2.0.css +500 -0
  41. data/assets/deck.js/themes/style/web-2.0.scss +228 -0
  42. data/assets/deck.js/themes/transition/fade.css +35 -0
  43. data/assets/deck.js/themes/transition/fade.scss +59 -0
  44. data/assets/deck.js/themes/transition/horizontal-slide.css +53 -0
  45. data/assets/deck.js/themes/transition/horizontal-slide.scss +72 -0
  46. data/assets/deck.js/themes/transition/vertical-slide.css +67 -0
  47. data/assets/deck.js/themes/transition/vertical-slide.scss +92 -0
  48. data/assets/highlight.js/CHANGES.md +953 -0
  49. data/assets/highlight.js/LICENSE +24 -0
  50. data/assets/highlight.js/README.md +101 -0
  51. data/assets/highlight.js/README.ru.md +101 -0
  52. data/assets/highlight.js/highlight-0.8.default.min.css +1 -0
  53. data/assets/highlight.js/highlight-0.8.min.js +1 -0
  54. data/assets/highlight.js/highlight.pack.js +1 -0
  55. data/assets/highlight.js/styles/arta.css +141 -0
  56. data/assets/highlight.js/styles/ascetic.css +53 -0
  57. data/assets/highlight.js/styles/atelier-dune.dark.css +95 -0
  58. data/assets/highlight.js/styles/atelier-dune.light.css +95 -0
  59. data/assets/highlight.js/styles/atelier-forest.dark.css +95 -0
  60. data/assets/highlight.js/styles/atelier-forest.light.css +95 -0
  61. data/assets/highlight.js/styles/atelier-heath.dark.css +95 -0
  62. data/assets/highlight.js/styles/atelier-heath.light.css +95 -0
  63. data/assets/highlight.js/styles/atelier-lakeside.dark.css +95 -0
  64. data/assets/highlight.js/styles/atelier-lakeside.light.css +95 -0
  65. data/assets/highlight.js/styles/atelier-seaside.dark.css +95 -0
  66. data/assets/highlight.js/styles/atelier-seaside.light.css +95 -0
  67. data/assets/highlight.js/styles/brown_paper.css +105 -0
  68. data/assets/highlight.js/styles/brown_papersq.png +0 -0
  69. data/assets/highlight.js/styles/codepen-embed.css +108 -0
  70. data/assets/highlight.js/styles/color-brewer.css +169 -0
  71. data/assets/highlight.js/styles/dark.css +105 -0
  72. data/assets/highlight.js/styles/default.css +153 -0
  73. data/assets/highlight.js/styles/docco.css +136 -0
  74. data/assets/highlight.js/styles/far.css +112 -0
  75. data/assets/highlight.js/styles/foundation.css +136 -0
  76. data/assets/highlight.js/styles/github.css +127 -0
  77. data/assets/highlight.js/styles/googlecode.css +148 -0
  78. data/assets/highlight.js/styles/hybrid.css +171 -0
  79. data/assets/highlight.js/styles/idea.css +126 -0
  80. data/assets/highlight.js/styles/ir_black.css +110 -0
  81. data/assets/highlight.js/styles/kimbie.dark.css +96 -0
  82. data/assets/highlight.js/styles/kimbie.light.css +96 -0
  83. data/assets/highlight.js/styles/magula.css +122 -0
  84. data/assets/highlight.js/styles/mono-blue.css +70 -0
  85. data/assets/highlight.js/styles/monokai.css +127 -0
  86. data/assets/highlight.js/styles/monokai_sublime.css +148 -0
  87. data/assets/highlight.js/styles/obsidian.css +154 -0
  88. data/assets/highlight.js/styles/paraiso.dark.css +95 -0
  89. data/assets/highlight.js/styles/paraiso.light.css +95 -0
  90. data/assets/highlight.js/styles/pojoaque.css +108 -0
  91. data/assets/highlight.js/styles/pojoaque.jpg +0 -0
  92. data/assets/highlight.js/styles/railscasts.css +185 -0
  93. data/assets/highlight.js/styles/rainbow.css +109 -0
  94. data/assets/highlight.js/styles/school_book.css +113 -0
  95. data/assets/highlight.js/styles/school_book.png +0 -0
  96. data/assets/highlight.js/styles/solarized_dark.css +109 -0
  97. data/assets/highlight.js/styles/solarized_light.css +109 -0
  98. data/assets/highlight.js/styles/sunburst.css +165 -0
  99. data/assets/highlight.js/styles/tomorrow-night-blue.css +95 -0
  100. data/assets/highlight.js/styles/tomorrow-night-bright.css +94 -0
  101. data/assets/highlight.js/styles/tomorrow-night-eighties.css +94 -0
  102. data/assets/highlight.js/styles/tomorrow-night.css +95 -0
  103. data/assets/highlight.js/styles/tomorrow.css +92 -0
  104. data/assets/highlight.js/styles/vs.css +94 -0
  105. data/assets/highlight.js/styles/xcode.css +159 -0
  106. data/assets/highlight.js/styles/zenburn.css +119 -0
  107. data/assets/jquery/jquery-2.1.0.min.js +4 -0
  108. data/assets/reveal.js/css/print/paper.css +1 -1
  109. data/assets/reveal.js/css/print/pdf.css +2 -2
  110. data/assets/reveal.js/css/reveal.css +372 -108
  111. data/assets/reveal.js/css/reveal.min.css +2 -2
  112. data/assets/reveal.js/css/theme/README.md +3 -1
  113. data/assets/reveal.js/css/theme/beige.css +7 -1
  114. data/assets/reveal.js/css/theme/blood.css +175 -0
  115. data/assets/reveal.js/css/theme/default.css +7 -1
  116. data/assets/reveal.js/css/theme/moon.css +7 -1
  117. data/assets/reveal.js/css/theme/night.css +7 -1
  118. data/assets/reveal.js/css/theme/serif.css +7 -1
  119. data/assets/reveal.js/css/theme/simple.css +7 -1
  120. data/assets/reveal.js/css/theme/sky.css +7 -1
  121. data/assets/reveal.js/css/theme/solarized.css +7 -1
  122. data/assets/reveal.js/css/theme/source/blood.scss +91 -0
  123. data/assets/reveal.js/css/theme/template/settings.scss +1 -0
  124. data/assets/reveal.js/css/theme/template/theme.scss +9 -2
  125. data/assets/reveal.js/js/reveal.js +1238 -433
  126. data/assets/reveal.js/js/reveal.min.js +4 -3
  127. data/assets/reveal.js/lib/css/zenburn.css +16 -17
  128. data/assets/reveal.js/plugin/highlight/highlight.js +3 -2
  129. data/assets/reveal.js/plugin/leap/leap.js +3 -0
  130. data/assets/reveal.js/plugin/markdown/example.html +37 -5
  131. data/assets/reveal.js/plugin/markdown/example.md +2 -0
  132. data/assets/reveal.js/plugin/markdown/markdown.js +373 -171
  133. data/assets/reveal.js/plugin/math/math.js +64 -0
  134. data/assets/reveal.js/plugin/multiplex/master.js +2 -1
  135. data/assets/reveal.js/plugin/notes/notes.html +33 -19
  136. data/assets/reveal.js/plugin/notes/notes.js +25 -47
  137. data/assets/reveal.js/plugin/remotes/remotes.js +4 -4
  138. data/assets/reveal.js/plugin/zoom-js/zoom.js +3 -1
  139. data/assets/reveal.old/css/print/paper.css +176 -0
  140. data/assets/reveal.old/css/print/pdf.css +190 -0
  141. data/assets/reveal.old/css/reveal.css +1616 -0
  142. data/assets/reveal.old/css/reveal.min.css +7 -0
  143. data/assets/reveal.old/css/theme/README.md +23 -0
  144. data/assets/reveal.old/css/theme/beige.css +142 -0
  145. data/assets/reveal.old/css/theme/default.css +142 -0
  146. data/assets/reveal.old/css/theme/moon.css +142 -0
  147. data/assets/reveal.old/css/theme/night.css +130 -0
  148. data/assets/reveal.old/css/theme/serif.css +132 -0
  149. data/assets/reveal.old/css/theme/simple.css +132 -0
  150. data/assets/reveal.old/css/theme/sky.css +139 -0
  151. data/assets/reveal.old/css/theme/solarized.css +142 -0
  152. data/assets/reveal.old/css/theme/source/beige.scss +50 -0
  153. data/assets/reveal.old/css/theme/source/default.scss +42 -0
  154. data/assets/reveal.old/css/theme/source/moon.scss +68 -0
  155. data/assets/reveal.old/css/theme/source/night.scss +35 -0
  156. data/assets/reveal.old/css/theme/source/serif.scss +35 -0
  157. data/assets/reveal.old/css/theme/source/simple.scss +38 -0
  158. data/assets/reveal.old/css/theme/source/sky.scss +46 -0
  159. data/assets/reveal.old/css/theme/source/solarized.scss +74 -0
  160. data/assets/reveal.old/css/theme/template/mixins.scss +29 -0
  161. data/assets/reveal.old/css/theme/template/settings.scss +33 -0
  162. data/assets/reveal.old/css/theme/template/theme.scss +163 -0
  163. data/assets/{reveal.js → reveal.old}/js/head.min.js +0 -0
  164. data/assets/reveal.old/js/reveal.js +2577 -0
  165. data/assets/reveal.old/js/reveal.min.js +8 -0
  166. data/assets/reveal.old/lib/css/zenburn.css +115 -0
  167. data/assets/reveal.old/lib/font/league_gothic-webfont.eot +0 -0
  168. data/assets/reveal.old/lib/font/league_gothic-webfont.svg +230 -0
  169. data/assets/reveal.old/lib/font/league_gothic-webfont.ttf +0 -0
  170. data/assets/reveal.old/lib/font/league_gothic-webfont.woff +0 -0
  171. data/assets/reveal.old/lib/font/league_gothic_license +2 -0
  172. data/assets/reveal.old/lib/js/classList.js +2 -0
  173. data/assets/reveal.old/lib/js/head.min.js +8 -0
  174. data/assets/reveal.old/lib/js/html5shiv.js +7 -0
  175. data/assets/reveal.old/plugin/highlight/highlight.js +31 -0
  176. data/assets/reveal.old/plugin/leap/leap.js +154 -0
  177. data/assets/reveal.old/plugin/markdown/example.html +97 -0
  178. data/assets/reveal.old/plugin/markdown/example.md +29 -0
  179. data/assets/reveal.old/plugin/markdown/markdown.js +190 -0
  180. data/assets/reveal.old/plugin/markdown/marked.js +37 -0
  181. data/assets/reveal.old/plugin/multiplex/client.js +13 -0
  182. data/assets/reveal.old/plugin/multiplex/index.js +56 -0
  183. data/assets/reveal.old/plugin/multiplex/master.js +50 -0
  184. data/assets/reveal.old/plugin/notes-server/client.js +57 -0
  185. data/assets/reveal.old/plugin/notes-server/index.js +59 -0
  186. data/assets/reveal.old/plugin/notes-server/notes.html +142 -0
  187. data/assets/reveal.old/plugin/notes/notes.html +253 -0
  188. data/assets/reveal.old/plugin/notes/notes.js +100 -0
  189. data/assets/reveal.old/plugin/postmessage/example.html +39 -0
  190. data/assets/reveal.old/plugin/postmessage/postmessage.js +42 -0
  191. data/assets/reveal.old/plugin/print-pdf/print-pdf.js +44 -0
  192. data/assets/reveal.old/plugin/remotes/remotes.js +39 -0
  193. data/assets/reveal.old/plugin/search/search.js +196 -0
  194. data/assets/reveal.old/plugin/zoom-js/zoom.js +256 -0
  195. data/bin/slippery +1 -0
  196. data/code_of_conduct.md +32 -0
  197. data/lib/slippery.rb +5 -3
  198. data/lib/slippery/document.rb +2 -2
  199. data/lib/slippery/presentation.rb +10 -1
  200. data/lib/slippery/processor.rb +18 -0
  201. data/lib/slippery/processor_helpers.rb +16 -2
  202. data/lib/slippery/processors/add_highlight.rb +9 -2
  203. data/lib/slippery/processors/deck_js.rb +81 -0
  204. data/lib/slippery/processors/fathom_js.rb +31 -0
  205. data/lib/slippery/processors/impress_js/add_impress_js.rb +2 -2
  206. data/lib/slippery/processors/jquery.rb +12 -0
  207. data/lib/slippery/processors/reveal_js/add_reveal_js.rb +12 -9
  208. data/lib/slippery/rake_tasks.rb +59 -31
  209. data/lib/slippery/version.rb +1 -1
  210. data/slippery.gemspec +5 -4
  211. metadata +215 -33
  212. data/lib/slippery/converter.rb +0 -132
@@ -0,0 +1,81 @@
1
+ module Slippery
2
+ module Processors
3
+ # http://imakewebthings.com/deck.js/
4
+ class DeckJs < Processor
5
+ #ROOT = 'http://imakewebthings.com/deck.js/'
6
+ ROOT = ProcessorHelpers.asset_uri('deck.js/')
7
+ CORE_JS = URI.join(ROOT, 'core/deck.core.js')
8
+ CORE_CSS = URI.join(ROOT, 'core/deck.core.css')
9
+
10
+ DEFAULT_OPTIONS = {
11
+ extensions: %w[menu goto status navigation scale],
12
+ theme: 'web-2.0',
13
+ transition_theme: 'horizontal-slide'
14
+ }
15
+
16
+ # HEAD
17
+
18
+ processor :add_core_css, 'head' do |head|
19
+ head.add(stylesheet_link_tag(CORE_CSS))
20
+ end
21
+
22
+ processor :add_extension_css, 'head' do |head|
23
+ options.fetch(:extensions, []).inject(head) do |head, name|
24
+ head.add(stylesheet_link_tag(
25
+ URI.join(ROOT, "extensions/#{name}/deck.#{name}.css")
26
+ ))
27
+ end
28
+ end
29
+
30
+ processor :add_theme, 'head' do |head|
31
+ if theme
32
+ head.add(stylesheet_link_tag(URI.join(ROOT, "themes/style/#{theme}.css")).attr('id', 'style-theme-link'))
33
+ else
34
+ head
35
+ end
36
+ end
37
+
38
+ processor :add_transition_theme, 'head' do |head|
39
+ if transition_theme
40
+ head.add(stylesheet_link_tag(URI.join(ROOT, "themes/transition/#{transition_theme}.css")).attr('id', 'transition-theme-link'))
41
+ else
42
+ head
43
+ end
44
+ end
45
+
46
+ processor :add_modernizer, 'head' do |head|
47
+ head.add(javascript_include_tag(URI.join(ROOT, 'modernizr.custom.js')))
48
+ end
49
+
50
+ # BODY
51
+
52
+ processor :add_core_js, 'body' do |body|
53
+ body.add(javascript_include_tag(CORE_JS))
54
+ end
55
+
56
+ processor :add_extension_js, 'body' do |body|
57
+ options.fetch(:extensions, []).inject(body) do |body, name|
58
+ body.add(javascript_include_tag(
59
+ URI.join(ROOT, "extensions/#{name}/deck.#{name}.js")
60
+ ))
61
+ end
62
+ end
63
+
64
+ processor :init_deck_js, 'body' do |body|
65
+ body.add(H[:script, "$(function() { $.deck('.slide'); });"])
66
+ end
67
+
68
+ processor :wrap_deck_container, 'body' do |body|
69
+ H[:body, H[:div, {class: "deck-container"}, body.children]]
70
+ end
71
+
72
+ def theme
73
+ options[:theme]
74
+ end
75
+
76
+ def transition_theme
77
+ options[:transition_theme]
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,31 @@
1
+ module Slippery
2
+ module Processors
3
+ # http://markdalgleish.com/projects/fathom/
4
+ class FathomJs
5
+ include ProcessorHelpers
6
+
7
+ FATHOM = 'https://raw.githubusercontent.com/markdalgleish/fathom/master/fathom.min.js'
8
+ def initialize(options)
9
+ @options = options
10
+ end
11
+
12
+ processor :add_fathom, 'head' do |head|
13
+ head.add(javascript_include_tag(JQUERY))
14
+ end
15
+
16
+ processor :wrap_presentation, 'body' do |body|
17
+ body.set_children(H[:div, {id: 'presentation'}, body.children])
18
+ end
19
+
20
+ processor :init_fathom, 'head' do |head|
21
+ head.add(H[:script, {type: 'text/javascript'}, <<"JS"])
22
+ $(document).ready(function(){
23
+ $('#presentation').fathom({
24
+ #{hash_to_js(@options)}
25
+ });
26
+ });
27
+ JS
28
+ end
29
+ end
30
+ end
31
+ end
@@ -15,12 +15,12 @@ module Slippery
15
15
  }.freeze
16
16
 
17
17
  def initialize(attributes = {})
18
- @attributes = DEFAULT_ATTRS.merge(attributes).freeze
18
+ @attributes = DEFAULT_ATTRS.merge(attributes).freeze
19
19
  end
20
20
 
21
21
  def call(doc)
22
22
  doc.replace('body') do |body|
23
- include_local_javascript(body, asset_uri('impress.js/js/impress.js'))
23
+ include_local_javascript(body, 'impress.js/js/impress.js')
24
24
  .set_attrs({id: 'impress'}.merge(data_attributes(attributes)))
25
25
  .add H[:script, 'impress().init();']
26
26
  end
@@ -0,0 +1,12 @@
1
+ module Slippery
2
+ module Processors
3
+ class JQuery < Processor
4
+ JQUERY = ProcessorHelpers.asset_uri('jquery/jquery-2.1.0.min.js')
5
+ #JQUERY = 'https://code.jquery.com/jquery-2.1.0.min.js'
6
+
7
+ processor :add_jquery, 'head' do |head|
8
+ head.add(javascript_include_tag(JQUERY))
9
+ end
10
+ end
11
+ end
12
+ end
@@ -27,20 +27,20 @@ module Slippery
27
27
  end
28
28
 
29
29
  processor :add_reveal_js, 'body' do |body|
30
- body = include_local_javascript(body, asset_uri('reveal.js/lib/js/head.min.js'))
31
- include_local_javascript(body, asset_uri('reveal.js/js/reveal.js'))
30
+ body = include_local_javascript(body, 'reveal.js/lib/js/head.min.js')
31
+ include_local_javascript(body, 'reveal.js/js/reveal.js')
32
32
  end
33
33
 
34
34
  processor :add_reveal_css, 'head' do |head|
35
- include_local_css(head, asset_uri('reveal.js/css/reveal.min.css'))
35
+ include_local_css(head, 'reveal.js/css/reveal.min.css')
36
36
  end
37
37
 
38
38
  processor :add_theme, 'head' do |head|
39
- include_local_css(head, asset_uri("reveal.js/css/theme/#{@options[:theme]}.css"))
39
+ include_local_css(head, "reveal.js/css/theme/#{@options[:theme]}.css")
40
40
  end
41
41
 
42
42
  processor :add_settings, 'body' do |body|
43
- body.add(H[:script, "Reveal.initialize({ #{plugin_settings}, #{settings.map { |k, v| "#{k}:#{v.inspect}" }.join(',')} });"])
43
+ body.add(H[:script, "Reveal.initialize(#{JSON.dump(settings)});"])
44
44
  end
45
45
 
46
46
  processor :reveal_wrap, 'body' do |body|
@@ -53,14 +53,17 @@ module Slippery
53
53
  end
54
54
 
55
55
  def settings
56
- @options.reject { |key, _| [:theme, :plugins].include? key }
56
+ {
57
+ dependencies: plugin_settings + @options.fetch(:dependencies, [])
58
+ }.merge(
59
+ @options.reject { |key, _| [:theme, :plugins, :dependencies].include? key }
60
+ )
57
61
  end
58
62
 
59
63
  def plugin_settings
60
- 'dependencies: [' +
61
64
  Array(@options.fetch(:plugins, [])).map do |name|
62
- plugin_config name
63
- end.join(',') + ']'
65
+ plugin_config(name)
66
+ end
64
67
  end
65
68
 
66
69
  def plugins(name)
@@ -19,9 +19,19 @@ module Slippery
19
19
  yield self
20
20
  end
21
21
  end
22
+
22
23
  define
23
24
  end
24
25
 
26
+ def type(type)
27
+ @options[:type] = type
28
+ end
29
+ alias type= type
30
+
31
+ def js_options(options)
32
+ @options.merge!(options)
33
+ end
34
+
25
35
  def presentation_names
26
36
  presentations.map {|path| [ path.basename(path.extname), path ] }
27
37
  end
@@ -30,7 +40,6 @@ module Slippery
30
40
  @infile = infile
31
41
  doc = Slippery::Document.new(infile.read)
32
42
  doc = Slippery::Presentation.new(doc, @options.merge(options))
33
-
34
43
  doc.process(*processors)
35
44
  end
36
45
 
@@ -41,18 +50,28 @@ module Slippery
41
50
  end
42
51
  end
43
52
  end
53
+ alias replace processor
44
54
 
45
- def include_assets
46
- processors << method(:call_asset_packer)
55
+ def pack_assets
56
+ @options[:include_assets] = true
47
57
  end
48
- alias self_contained include_assets
49
-
50
- def call_asset_packer(doc)
51
- AssetPacker::Processor::Local.new(
52
- @infile.to_s,
53
- @infile.dirname.join('assets'),
54
- @infile
55
- ).(doc)
58
+ alias self_contained pack_assets
59
+
60
+ def pack_assets?
61
+ !!@options[:include_assets]
62
+ end
63
+
64
+ def asset_packer(infile)
65
+ infile = Pathname(infile)
66
+ if pack_assets?
67
+ AssetPacker::Processor::Local.new(
68
+ infile.to_s,
69
+ infile.dirname.join('assets'),
70
+ infile
71
+ )
72
+ else
73
+ ->(i) { i }
74
+ end
56
75
  end
57
76
 
58
77
  def title(title)
@@ -74,42 +93,51 @@ module Slippery
74
93
  presentation_names.each do |name, path|
75
94
  desc "build #{name}"
76
95
  task name do
77
- File.write("#{name}.html", markdown_to_hexp(path).to_html)
96
+ File.write("#{name}.html", asset_packer(path).((markdown_to_hexp(path))).to_html(html5: true))
78
97
  end
79
98
  end
80
99
  end
81
100
 
82
101
  namespace :watch do
83
102
  presentation_names.each do |name, path|
84
- files = markdown_to_hexp(path, skip_self_contained: true).select('link,script').map {|link| link.attr('href') || link.attr('src')}.compact
85
- files = files.select {|f| File.exist?(f)}
86
103
 
87
104
  desc "watch #{name} for changes"
88
- WatchTask.new(name, [path.to_s, *files]) do
89
- dest = Tempfile.new("#{name}.html")
90
- File.open("#{name}.html", 'w+') { |src| FileUtils.copy_stream(src, dest) }
91
- dest.close
92
- Rake::Task["#{@name}:build:#{name}"].execute
93
- puts "="*60
94
- print `diff -u #{dest.path} #{name}.html | cut -c1-150` if File.exist? "#{name}.html"
105
+ task name do
106
+ asset_files = markdown_to_hexp(path)
107
+ .select('link,script')
108
+ .map {|link| link.attr('href') || link.attr('src')}
109
+ .compact
110
+ .select {|uri| URI(uri).scheme == 'file' || URI(uri).scheme == '' || URI(uri).scheme.nil? }
111
+ .map {|uri| Pathname(URI(uri).path) }
112
+ .select(&:exist?)
113
+ .map(&:to_s)
114
+
115
+ watch(name, [path.to_s, *asset_files]) do
116
+ target = Pathname("#{name}.html")
117
+ before = target.exist? ? target.read : ''
118
+ Rake::Task["#{@name}:build:#{name}"].execute
119
+ puts "="*60
120
+
121
+ tmpfile = Tempfile.new("#{name}.html")
122
+ tmpfile << before
123
+ tmpfile.close
124
+ print `diff -u #{tmpfile.path} #{name}.html | cut -c1-150`
125
+ end
95
126
  end
96
127
  end
97
128
  end
98
129
  end
99
130
  end
100
- end
101
131
 
132
+ def watch(name, files, &block)
133
+ listener = Listen.to('.', :only => /#{files.join('|')}/, &block)
102
134
 
103
- class WatchTask
104
- def initialize(name, files, &block)
105
- Rake::Task.define_task name do
106
- listener = Listen.to('.', :only => /#{files.join('|')}/, &block)
107
-
108
- at_exit do
109
- listener.start # not blocking
110
- sleep
111
- end
135
+ at_exit do
136
+ block.call
137
+ listener.start # not blocking
138
+ sleep
112
139
  end
113
140
  end
114
141
  end
142
+
115
143
  end
@@ -1,3 +1,3 @@
1
1
  module Slippery
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
@@ -17,13 +17,14 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = `git ls-files -- spec`.split($/)
18
18
  gem.extra_rdoc_files = %w[README.md LICENSE]
19
19
 
20
- gem.add_runtime_dependency 'hexp' , '~> 0.3.3'
20
+ gem.add_runtime_dependency 'hexp' , '~> 0.4.6'
21
21
  gem.add_runtime_dependency 'kramdown' , '~> 1.1'
22
+ gem.add_runtime_dependency 'hexp-kramdown', '> 0'
22
23
  gem.add_runtime_dependency 'rake' , '~> 10.1'
23
24
  gem.add_runtime_dependency 'listen' , '~> 2.7'
24
25
  gem.add_runtime_dependency 'concord' , '~> 0.1.4'
25
- gem.add_runtime_dependency 'asset_packer' , '~> 0.1.0'
26
+ gem.add_runtime_dependency 'asset_packer' , '~> 0.2.0'
26
27
 
27
- gem.add_development_dependency 'rspec' , '~> 2.14'
28
- gem.add_development_dependency 'mutant-rspec' , '~> 0.5.3'
28
+ gem.add_development_dependency 'rspec'
29
+ gem.add_development_dependency 'mutant-rspec'
29
30
  end
metadata CHANGED
@@ -1,127 +1,141 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slippery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arne Brasseur
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-22 00:00:00.000000000 Z
11
+ date: 2015-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hexp
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.3
19
+ version: 0.4.6
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: 0.3.3
26
+ version: 0.4.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: kramdown
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hexp-kramdown
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ~>
59
+ - - "~>"
46
60
  - !ruby/object:Gem::Version
47
61
  version: '10.1'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ~>
66
+ - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '10.1'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: listen
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ~>
73
+ - - "~>"
60
74
  - !ruby/object:Gem::Version
61
75
  version: '2.7'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ~>
80
+ - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '2.7'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: concord
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ~>
87
+ - - "~>"
74
88
  - !ruby/object:Gem::Version
75
89
  version: 0.1.4
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ~>
94
+ - - "~>"
81
95
  - !ruby/object:Gem::Version
82
96
  version: 0.1.4
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: asset_packer
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ~>
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.1.0
103
+ version: 0.2.0
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ~>
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 0.1.0
110
+ version: 0.2.0
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ~>
115
+ - - ">="
102
116
  - !ruby/object:Gem::Version
103
- version: '2.14'
117
+ version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ~>
122
+ - - ">="
109
123
  - !ruby/object:Gem::Version
110
- version: '2.14'
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: mutant-rspec
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ~>
129
+ - - ">="
116
130
  - !ruby/object:Gem::Version
117
- version: 0.5.3
131
+ version: '0'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ~>
136
+ - - ">="
123
137
  - !ruby/object:Gem::Version
124
- version: 0.5.3
138
+ version: '0'
125
139
  description: Make presentations with Markdown
126
140
  email:
127
141
  - arne@arnebrasseur.net
@@ -131,21 +145,127 @@ extra_rdoc_files:
131
145
  - README.md
132
146
  - LICENSE
133
147
  files:
134
- - .gitignore
135
- - .travis.yml
148
+ - ".gitignore"
149
+ - ".travis.yml"
136
150
  - Changelog.md
137
151
  - Gemfile
138
152
  - LICENSE
139
153
  - README.md
140
154
  - Rakefile
155
+ - assets/deck.js/core/deck.core.css
156
+ - assets/deck.js/core/deck.core.js
157
+ - assets/deck.js/core/deck.core.scss
158
+ - assets/deck.js/core/print.css
159
+ - assets/deck.js/core/print.scss
160
+ - assets/deck.js/css/common.css
161
+ - assets/deck.js/css/common.scss
162
+ - assets/deck.js/css/home.css
163
+ - assets/deck.js/css/home.scss
164
+ - assets/deck.js/extensions/goto/deck.goto.css
165
+ - assets/deck.js/extensions/goto/deck.goto.html
166
+ - assets/deck.js/extensions/goto/deck.goto.js
167
+ - assets/deck.js/extensions/goto/deck.goto.scss
168
+ - assets/deck.js/extensions/hash/deck.hash.css
169
+ - assets/deck.js/extensions/hash/deck.hash.html
170
+ - assets/deck.js/extensions/hash/deck.hash.js
171
+ - assets/deck.js/extensions/hash/deck.hash.scss
172
+ - assets/deck.js/extensions/menu/deck.menu.css
173
+ - assets/deck.js/extensions/menu/deck.menu.js
174
+ - assets/deck.js/extensions/menu/deck.menu.scss
175
+ - assets/deck.js/extensions/navigation/deck.navigation.css
176
+ - assets/deck.js/extensions/navigation/deck.navigation.html
177
+ - assets/deck.js/extensions/navigation/deck.navigation.js
178
+ - assets/deck.js/extensions/navigation/deck.navigation.scss
179
+ - assets/deck.js/extensions/scale/deck.scale.css
180
+ - assets/deck.js/extensions/scale/deck.scale.js
181
+ - assets/deck.js/extensions/scale/deck.scale.scss
182
+ - assets/deck.js/extensions/status/deck.status.css
183
+ - assets/deck.js/extensions/status/deck.status.html
184
+ - assets/deck.js/extensions/status/deck.status.js
185
+ - assets/deck.js/extensions/status/deck.status.scss
186
+ - assets/deck.js/modernizr.custom.js
187
+ - assets/deck.js/themes/style/_reset.scss
188
+ - assets/deck.js/themes/style/neon.css
189
+ - assets/deck.js/themes/style/neon.scss
190
+ - assets/deck.js/themes/style/swiss.css
191
+ - assets/deck.js/themes/style/swiss.scss
192
+ - assets/deck.js/themes/style/web-2.0.css
193
+ - assets/deck.js/themes/style/web-2.0.scss
194
+ - assets/deck.js/themes/transition/fade.css
195
+ - assets/deck.js/themes/transition/fade.scss
196
+ - assets/deck.js/themes/transition/horizontal-slide.css
197
+ - assets/deck.js/themes/transition/horizontal-slide.scss
198
+ - assets/deck.js/themes/transition/vertical-slide.css
199
+ - assets/deck.js/themes/transition/vertical-slide.scss
200
+ - assets/highlight.js/CHANGES.md
201
+ - assets/highlight.js/LICENSE
202
+ - assets/highlight.js/README.md
203
+ - assets/highlight.js/README.ru.md
204
+ - assets/highlight.js/highlight-0.8.default.min.css
205
+ - assets/highlight.js/highlight-0.8.min.js
206
+ - assets/highlight.js/highlight.pack.js
207
+ - assets/highlight.js/styles/arta.css
208
+ - assets/highlight.js/styles/ascetic.css
209
+ - assets/highlight.js/styles/atelier-dune.dark.css
210
+ - assets/highlight.js/styles/atelier-dune.light.css
211
+ - assets/highlight.js/styles/atelier-forest.dark.css
212
+ - assets/highlight.js/styles/atelier-forest.light.css
213
+ - assets/highlight.js/styles/atelier-heath.dark.css
214
+ - assets/highlight.js/styles/atelier-heath.light.css
215
+ - assets/highlight.js/styles/atelier-lakeside.dark.css
216
+ - assets/highlight.js/styles/atelier-lakeside.light.css
217
+ - assets/highlight.js/styles/atelier-seaside.dark.css
218
+ - assets/highlight.js/styles/atelier-seaside.light.css
219
+ - assets/highlight.js/styles/brown_paper.css
220
+ - assets/highlight.js/styles/brown_papersq.png
221
+ - assets/highlight.js/styles/codepen-embed.css
222
+ - assets/highlight.js/styles/color-brewer.css
223
+ - assets/highlight.js/styles/dark.css
224
+ - assets/highlight.js/styles/default.css
225
+ - assets/highlight.js/styles/docco.css
226
+ - assets/highlight.js/styles/far.css
227
+ - assets/highlight.js/styles/foundation.css
228
+ - assets/highlight.js/styles/github.css
229
+ - assets/highlight.js/styles/googlecode.css
230
+ - assets/highlight.js/styles/hybrid.css
231
+ - assets/highlight.js/styles/idea.css
232
+ - assets/highlight.js/styles/ir_black.css
233
+ - assets/highlight.js/styles/kimbie.dark.css
234
+ - assets/highlight.js/styles/kimbie.light.css
235
+ - assets/highlight.js/styles/magula.css
236
+ - assets/highlight.js/styles/mono-blue.css
237
+ - assets/highlight.js/styles/monokai.css
238
+ - assets/highlight.js/styles/monokai_sublime.css
239
+ - assets/highlight.js/styles/obsidian.css
240
+ - assets/highlight.js/styles/paraiso.dark.css
241
+ - assets/highlight.js/styles/paraiso.light.css
242
+ - assets/highlight.js/styles/pojoaque.css
243
+ - assets/highlight.js/styles/pojoaque.jpg
244
+ - assets/highlight.js/styles/railscasts.css
245
+ - assets/highlight.js/styles/rainbow.css
246
+ - assets/highlight.js/styles/school_book.css
247
+ - assets/highlight.js/styles/school_book.png
248
+ - assets/highlight.js/styles/solarized_dark.css
249
+ - assets/highlight.js/styles/solarized_light.css
250
+ - assets/highlight.js/styles/sunburst.css
251
+ - assets/highlight.js/styles/tomorrow-night-blue.css
252
+ - assets/highlight.js/styles/tomorrow-night-bright.css
253
+ - assets/highlight.js/styles/tomorrow-night-eighties.css
254
+ - assets/highlight.js/styles/tomorrow-night.css
255
+ - assets/highlight.js/styles/tomorrow.css
256
+ - assets/highlight.js/styles/vs.css
257
+ - assets/highlight.js/styles/xcode.css
258
+ - assets/highlight.js/styles/zenburn.css
141
259
  - assets/impress.js/css/impress-demo.css
142
260
  - assets/impress.js/js/impress.js
261
+ - assets/jquery/jquery-2.1.0.min.js
143
262
  - assets/reveal.js/css/print/paper.css
144
263
  - assets/reveal.js/css/print/pdf.css
145
264
  - assets/reveal.js/css/reveal.css
146
265
  - assets/reveal.js/css/reveal.min.css
147
266
  - assets/reveal.js/css/theme/README.md
148
267
  - assets/reveal.js/css/theme/beige.css
268
+ - assets/reveal.js/css/theme/blood.css
149
269
  - assets/reveal.js/css/theme/default.css
150
270
  - assets/reveal.js/css/theme/moon.css
151
271
  - assets/reveal.js/css/theme/night.css
@@ -154,6 +274,7 @@ files:
154
274
  - assets/reveal.js/css/theme/sky.css
155
275
  - assets/reveal.js/css/theme/solarized.css
156
276
  - assets/reveal.js/css/theme/source/beige.scss
277
+ - assets/reveal.js/css/theme/source/blood.scss
157
278
  - assets/reveal.js/css/theme/source/default.scss
158
279
  - assets/reveal.js/css/theme/source/moon.scss
159
280
  - assets/reveal.js/css/theme/source/night.scss
@@ -164,7 +285,6 @@ files:
164
285
  - assets/reveal.js/css/theme/template/mixins.scss
165
286
  - assets/reveal.js/css/theme/template/settings.scss
166
287
  - assets/reveal.js/css/theme/template/theme.scss
167
- - assets/reveal.js/js/head.min.js
168
288
  - assets/reveal.js/js/reveal.js
169
289
  - assets/reveal.js/js/reveal.min.js
170
290
  - assets/reveal.js/lib/css/zenburn.css
@@ -182,6 +302,7 @@ files:
182
302
  - assets/reveal.js/plugin/markdown/example.md
183
303
  - assets/reveal.js/plugin/markdown/markdown.js
184
304
  - assets/reveal.js/plugin/markdown/marked.js
305
+ - assets/reveal.js/plugin/math/math.js
185
306
  - assets/reveal.js/plugin/multiplex/client.js
186
307
  - assets/reveal.js/plugin/multiplex/index.js
187
308
  - assets/reveal.js/plugin/multiplex/master.js
@@ -196,6 +317,64 @@ files:
196
317
  - assets/reveal.js/plugin/remotes/remotes.js
197
318
  - assets/reveal.js/plugin/search/search.js
198
319
  - assets/reveal.js/plugin/zoom-js/zoom.js
320
+ - assets/reveal.old/css/print/paper.css
321
+ - assets/reveal.old/css/print/pdf.css
322
+ - assets/reveal.old/css/reveal.css
323
+ - assets/reveal.old/css/reveal.min.css
324
+ - assets/reveal.old/css/theme/README.md
325
+ - assets/reveal.old/css/theme/beige.css
326
+ - assets/reveal.old/css/theme/default.css
327
+ - assets/reveal.old/css/theme/moon.css
328
+ - assets/reveal.old/css/theme/night.css
329
+ - assets/reveal.old/css/theme/serif.css
330
+ - assets/reveal.old/css/theme/simple.css
331
+ - assets/reveal.old/css/theme/sky.css
332
+ - assets/reveal.old/css/theme/solarized.css
333
+ - assets/reveal.old/css/theme/source/beige.scss
334
+ - assets/reveal.old/css/theme/source/default.scss
335
+ - assets/reveal.old/css/theme/source/moon.scss
336
+ - assets/reveal.old/css/theme/source/night.scss
337
+ - assets/reveal.old/css/theme/source/serif.scss
338
+ - assets/reveal.old/css/theme/source/simple.scss
339
+ - assets/reveal.old/css/theme/source/sky.scss
340
+ - assets/reveal.old/css/theme/source/solarized.scss
341
+ - assets/reveal.old/css/theme/template/mixins.scss
342
+ - assets/reveal.old/css/theme/template/settings.scss
343
+ - assets/reveal.old/css/theme/template/theme.scss
344
+ - assets/reveal.old/js/head.min.js
345
+ - assets/reveal.old/js/reveal.js
346
+ - assets/reveal.old/js/reveal.min.js
347
+ - assets/reveal.old/lib/css/zenburn.css
348
+ - assets/reveal.old/lib/font/league_gothic-webfont.eot
349
+ - assets/reveal.old/lib/font/league_gothic-webfont.svg
350
+ - assets/reveal.old/lib/font/league_gothic-webfont.ttf
351
+ - assets/reveal.old/lib/font/league_gothic-webfont.woff
352
+ - assets/reveal.old/lib/font/league_gothic_license
353
+ - assets/reveal.old/lib/js/classList.js
354
+ - assets/reveal.old/lib/js/head.min.js
355
+ - assets/reveal.old/lib/js/html5shiv.js
356
+ - assets/reveal.old/plugin/highlight/highlight.js
357
+ - assets/reveal.old/plugin/leap/leap.js
358
+ - assets/reveal.old/plugin/markdown/example.html
359
+ - assets/reveal.old/plugin/markdown/example.md
360
+ - assets/reveal.old/plugin/markdown/markdown.js
361
+ - assets/reveal.old/plugin/markdown/marked.js
362
+ - assets/reveal.old/plugin/multiplex/client.js
363
+ - assets/reveal.old/plugin/multiplex/index.js
364
+ - assets/reveal.old/plugin/multiplex/master.js
365
+ - assets/reveal.old/plugin/notes-server/client.js
366
+ - assets/reveal.old/plugin/notes-server/index.js
367
+ - assets/reveal.old/plugin/notes-server/notes.html
368
+ - assets/reveal.old/plugin/notes/notes.html
369
+ - assets/reveal.old/plugin/notes/notes.js
370
+ - assets/reveal.old/plugin/postmessage/example.html
371
+ - assets/reveal.old/plugin/postmessage/postmessage.js
372
+ - assets/reveal.old/plugin/print-pdf/print-pdf.js
373
+ - assets/reveal.old/plugin/remotes/remotes.js
374
+ - assets/reveal.old/plugin/search/search.js
375
+ - assets/reveal.old/plugin/zoom-js/zoom.js
376
+ - bin/slippery
377
+ - code_of_conduct.md
199
378
  - config/flay.yml
200
379
  - config/flog.yml
201
380
  - config/mutant.yml
@@ -203,16 +382,19 @@ files:
203
382
  - config/rubocop.yml
204
383
  - config/yardstick.yml
205
384
  - lib/slippery.rb
206
- - lib/slippery/converter.rb
207
385
  - lib/slippery/document.rb
208
386
  - lib/slippery/presentation.rb
387
+ - lib/slippery/processor.rb
209
388
  - lib/slippery/processor_helpers.rb
210
389
  - lib/slippery/processors/add_google_font.rb
211
390
  - lib/slippery/processors/add_highlight.rb
391
+ - lib/slippery/processors/deck_js.rb
392
+ - lib/slippery/processors/fathom_js.rb
212
393
  - lib/slippery/processors/graphviz_dot.rb
213
394
  - lib/slippery/processors/hr_to_sections.rb
214
395
  - lib/slippery/processors/impress_js/add_impress_js.rb
215
396
  - lib/slippery/processors/impress_js/auto_offsets.rb
397
+ - lib/slippery/processors/jquery.rb
216
398
  - lib/slippery/processors/reveal_js/add_reveal_js.rb
217
399
  - lib/slippery/rake_tasks.rb
218
400
  - lib/slippery/version.rb
@@ -236,17 +418,17 @@ require_paths:
236
418
  - lib
237
419
  required_ruby_version: !ruby/object:Gem::Requirement
238
420
  requirements:
239
- - - '>='
421
+ - - ">="
240
422
  - !ruby/object:Gem::Version
241
423
  version: '0'
242
424
  required_rubygems_version: !ruby/object:Gem::Requirement
243
425
  requirements:
244
- - - '>='
426
+ - - ">="
245
427
  - !ruby/object:Gem::Version
246
428
  version: '0'
247
429
  requirements: []
248
430
  rubyforge_project:
249
- rubygems_version: 2.0.14
431
+ rubygems_version: 2.4.5
250
432
  signing_key:
251
433
  specification_version: 4
252
434
  summary: Make presentations with Markdown