Redcarpet::Render::SeeingIsBelieving
Powerup the Ruby examples in your markdown. Combines the excellent Redcarpet (a markdown parser) with Seeing Is Believing, which shows the evaluated result from each line of code.
If your markdown includes a fenced code block with ruby+
specified as the
language:
```ruby+
animals = ["Aardvark", "Butterfly", "Camel"]
animals.map(&:upcase)
```
Then you'll see the result of each line of code:
Usage
Add the following line to your Gemfile
and bundle install
:
gem "redcarpet-render-seeing_is_believing"
Then prepend
the module in your renderer:
require "redcarpet/render/seeing_is_believing"
require "redcarpet"
class MyCustomHtmlRenderer < Redcarpet::Render::HTML
prepend Redcarpet::Render::SeeingIsBelieving
def block_code(code, language)
"<pre><code>#{code}</code></pre>"
end
end
Redcarpet::Markdown.new(MyCustomHtmlRenderer, fenced_code_blocks: true).
render("some markdown!")
or combine with Rouge syntax highlighter:
require "redcarpet/render/seeing_is_believing"
require "redcarpet"
require "rouge"
require "rouge/plugins/redcarpet"
class MyCustomHtmlRenderer < Redcarpet::Render::HTML
include Rouge::Plugins::Redcarpet
prepend Redcarpet::Render::SeeingIsBelieving
end
Redcarpet::Markdown.new(MyCustomHtmlRenderer, fenced_code_blocks: true).
render("some markdown!")
Options
You can pass additional options after the ruby+
language hint:
ruby+e
: Hints exceptions are expected, and should be displayed. Exceptions are hidden by default.
TODO
- Allow comments to be scoped to specific lines
- Wrap comments to the following line when the overall length is greater than 80 chars