Slippery
Marries the flexible Kramdown parser for Markdown with the flexibility of DOM manipulation with Hexp to generate HTML slides backed by either Reveal.js or Impress.js.
Because Slippery slides are the best slides.
How to use
Create a markdown file, say presentation.md
, that will be the source of your presentation. use ---
to separate slides.
In the same directory, create a Rakefile, the most basic form is :
require 'slippery'
Slippery::RakeTasks.new
Slippery will detect and markdown files in the current directory, and generate rake tasks for them.
rake slippery:build # build all
rake slippery:build:presentation # build presentation
You can use a block to configure Slippery:
require 'slippery'
Slippery::RakeTasks.new do |s|
s. = {
type: :reveal_js,
theme: 'beige',
controls: false,
backgroundTransition: 'slide',
history: true,
plugins: [:notes]
}
s.processor 'head' do |head|
head <<= H[:title, 'Web Services, Past Present Future']
end
end
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 DSL for details.
You can also add built-in or custom processors directly
Slippery::RakeTasks.new do |s|
s.processors << Slippery::Processors::GraphvizDot.new('.dot')
s.processors << Slippery::Processors::SelfContained
end
Processors
These are defined in the Slippery::Processors
namespace.
GraphvizDot
The "Dot" language is a DSL (domain specific language) for describing graphs. Using the GraphvizDot
processor, you can turn "dot" fragments into inline SVG graphics.
In your presentation :
````dot
graph dependencies {
node[shape=circle color=blue]
edge[color=black penwidth=3]
slippery[fontcolor=red];
slippery -> hexp -> equalizer;
slippery -> kramdown;
hexp -> ice_nine;
}
````
In the Rakefile
Slippery::RakeTasks.new do |s|
s.processors << Slippery::Processors::GraphvizDot.new('.dot')
s.processors << Slippery::Processors::SelfContained
end
And the result: