This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
commit 68b1b128c1fe450b78ca54a390c3cf3ed6f2d566
tree bce7948d601bbfa8896b667f9dddb1137a044685
parent 75ca7fd31bf1ba2bcb7a33a961e72e7df9d52779
tree bce7948d601bbfa8896b667f9dddb1137a044685
parent 75ca7fd31bf1ba2bcb7a33a961e72e7df9d52779
| name | age | message | |
|---|---|---|---|
| |
CHANGES | Fri Aug 11 17:39:36 -0700 2006 | [defunkt] |
| |
LICENSE | Wed Aug 09 22:22:32 -0700 2006 | [defunkt] |
| |
README | Wed Aug 09 22:22:32 -0700 2006 | [defunkt] |
| |
about.yml | Wed Aug 09 22:22:32 -0700 2006 | [defunkt] |
| |
init.rb | Wed Aug 09 22:22:32 -0700 2006 | [defunkt] |
| |
lib/ | Fri Jan 05 11:58:53 -0800 2007 | [defunkt] |
| |
test/ | Fri Aug 11 17:39:36 -0700 2006 | [defunkt] |
README
= Acts as Textiled
This simple plugin allows you to forget about constantly rendering Textile in
your application. Instead, you can rest easy knowing the Textile fields you
want to display as HTML will always be displayed as HTML (unless you tell your
code otherwise).
No database modifications are needed.
You need RedCloth, of course. And Rails.
== Usage
class Story < ActiveRecord::Base
acts_as_textiled :body_text, :description
end
>> story = Story.find(3)
=> #<Story:0x245fed8 ... >
>> story.description
=> "<p>This is <strong>cool</strong>.</p>"
>> story.description_source
=> "This is *cool*."
>> story.description_plain
=> "This is cool."
>> story.description = "I _know_!"
=> "I _know_!"
>> story.save
=> true
>> story.description
=> "<p>I <em>know</em>!</p>"
>> story.textiled = false
=> false
>> story.description
=> "I _know_!"
>> story.textiled = true
=> true
>> story.description
=> "<p>I <em>know</em>!</p>"
=== Different Modes
RedCloth supports different modes, such as :lite_mode. To use a mode on
a specific attribute simply pass it in as an options hash after any
attributes you don't want to mode-ify. Like so:
class Story < ActiveRecord::Base
acts_as_textiled :body_text, :description => :lite_mode
end
Or:
class Story < ActiveRecord::Base
acts_as_textiled :body_text => :lite_mode, :description => :lite_mode
end
You can also pass in multiple modes per attribute:
class Story < ActiveRecord::Base
acts_as_textiled :body_text, :description => [ :lite_mode, :no_span_caps ]
end
Get it? Now let's say you have an admin tool and you want the text to be displayed
in the text boxes / fields as plaintext. Do you have to change all your views?
Hell no.
=== form_for
Are you using form_for? If you are, you don't have to change any code at all.
<% form_for :story, @story do |f| %>
Description: <br/> <%= f.text_field :description %>
<% end %>
You'll see the Textile plaintext in the text field. It Just Works.
=== form tags
If you're being a bit unconvential, no worries. You can still get at your
raw Textile like so:
Description: <br/> <%= text_field_tag :description, @story.description_source %>
And there's always object.textiled = false, as demo'd above.
== Pre-fetching
acts_as_textiled locally caches rendered HTML once the attribute in question has
been requested. Obviously this doesn't bode well for marshalling or caching.
If you need to force your object to build and cache HTML for all textiled attributes,
call the +textilize+ method on your object.
If you're real crazy you can even do something like this:
class Story < ActiveRecord::Base
acts_as_textiled :body_text, :description
def after_find
textilize
end
end
All your Textile will now be ready to go in spiffy HTML format. But you probably
won't need to do this.
Enjoy.
>> Chris Wanstrath
=> chris[at]ozmm[dot]org




