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:
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.