Markdownizer
A simple gem for Rails 3 to render some ActiveRecord text field as Markdown!
It mixes CodeRay and RDiscount to give you awesome code highlighting :)
You can check the generated Rocco documentation on the project page.
Install
In your Gemfile:
gem 'markdownizer'
If you want code highlighting, you should run this generator too:
rails generate markdownizer:install
This will place a markdownizer.css file in your public/stylesheets
folder.
You will have to require it manually in your layouts, or through jammit
, or
whatever.
Usage
In your model, let's say, Post:
class Post < ActiveRecord::Base
markdownize! :body
# In this case we want to treat :body as markdown.
# You can pass an options hash to the code renderer, such as:
#
# markdownize! :body, :line_numbers => :table
#
end
Markdownizer needs an additional field (:rendered_body
), which you should
generate in a migration. (If the attribute was :some_other_field
, it would need
:rendered_some_other_field
!) All these fields should have the type :text
.
You save your posts with markdown text like this:
Post.create body: """
# My H1 title
Markdown is awesome!
## Some H2 title...
{% code ruby %}
{% caption 'This caption will become an h5 and also a property of the enclosing div' %}
{% highlight [1,2,3] %} <- this will highlight lines 1, 2 and 3 (it accepts a Range as well)
# All this code will be highlighted properly! :)
def my_method(*my_args)
something do
. . .
end
end
{% endcode %}
"""
And then, in your view you just have to call @post.rendered_body
:)
Contribute!
- Fork the project.
- Make your feature addition or bug fix.
- Add specs for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. If you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull.
- Send me a pull request. Bonus points for topic branches.
Copyright
Copyright (c) 2011-2013 Codegram. See LICENSE for details.