Render any text as markdown, with code highlighting and all!
Ruby CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib Tiny optimization, and make sure the comment bug is not there anymore… Sep 19, 2013
spec Tiny optimization, and make sure the comment bug is not there anymore… Sep 19, 2013
.gemtest
.gitignore Remove idea files Feb 20, 2011
.rspec first commit Feb 2, 2011
.rvmrc
Gemfile
Gemfile.lock
LICENSE General cleanup Sep 19, 2013
Rakefile General cleanup Sep 19, 2013
Readme.md Remove ruby highlighting from `rails g` command Feb 6, 2014
init.rb 0.1.0 - Rails 3 generator for code highlighting Feb 2, 2011
markdownizer.gemspec General cleanup Sep 19, 2013

Readme.md

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.