vidibus-textile
Basically, this is a wrapper for RedCloth with some extensions. It is inspired by the acts_as_textiled plugin and extends your Mongoid models.
This gem is part of the open source SOA framework Vidibus: vidibus.org
Installation
Add the dependency to the Gemfile of your application:
gem "vidibus-textile"
Then call ‘bundle install` on your console.
Usage
The basic methods are:
Vidibus::Textile.new('Some *say*, "love":http://doit.xxx is a _river_.').to_html
# => '<p>Some <strong>say</strong>, <a href="http://doit.xxx">love</a> is a <em>river</em>.</p>'
# (#to_html is provided by RedCloth)
Vidibus::Textile.new('Some *say*, "love":http://doit.xxx is a _river_.').to_text
# => "Some say, love is a river."
The method #to_text will return a plain text version of textile content but keep newlines intact. However, if you just want a stripped version without newlines, provide the option :plain => true
# #to_text with :plain => true
Vidibus::Textile.new("Super\nTrouper").to_text(:plain => true)
# => "Super Trouper"
Mongoid integration
Adding textile content to your Mongoid model is simple:
class Page
include Mongoid::Document
include Vidibus::Textile::Mongoid
textile :body
end
By setting textile :body on the page model above, it will be extended by two fields:
field :body
# => Contains the textile content.
field :body_plain
# => Contains a plain text version of the content, stored in the database.
Additionally, the method #body_html is available. As one could guess, it returns rendered html from the textile content.
View helper
For your convenience, the view helper #stripped is available (as counterpart for Rails’ #textilize).
# In your view...
stripped("*Super*\nTrouper", :plain => true)
# => "Super Trouper"
Copyright
Copyright © 2010 Andre Pankratz. See LICENSE for details.