formatize 1.0.0rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2010 David Heinemeier Hansson
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,70 @@
1
+ Formatize
2
+ =========
3
+
4
+ Plugin containing the `textilize`, `textilize_without_paragraph`, and
5
+ `markdown` helpers removed from Rails.
6
+
7
+ Installation
8
+ ------------
9
+
10
+ To install as a gem (recommended), add this to the Gemfile of the application
11
+ and run `bundle install`:
12
+
13
+ gem 'formatize'
14
+
15
+ Alternatively, you can install as a plugin:
16
+
17
+ rails plugin install git://github.com/dtrasbo/formatize.git
18
+
19
+ Don't forget to add the `RedCloth` and/or `bluecloth` gems to the Gemfile if
20
+ you go with the plugin. They will be installed
21
+ automatically when installing the gem.
22
+
23
+ Usage
24
+ -----
25
+
26
+ ### The `textilize` & `textilize_without_paragraph` helpers
27
+
28
+ The `textilize` helper accepts a string of
29
+ [Textile](http://redcloth.org/textile) and one or more options. In most cases
30
+ the default behavior will be suitable and you will not have to pass it any options:
31
+
32
+ textilize("*This is Textile!* Rejoice!")
33
+ # => "<p><strong>This is Textile!</strong> Rejoice!</p>"
34
+
35
+ Sometimes, however, you want to customize how RedCloth parses your Textile. You
36
+ can specify a single option:
37
+
38
+ textilize("This is worded <strong>strongly</strong>", :filter_html)
39
+ # => "<p>This is worded &lt;strong&gt;strongly&lt;/strong&gt;</p>"
40
+
41
+ Or you can specify multiple options:
42
+
43
+ textilize("This is worded <strong>strongly</strong>", :filter_html, :lite_mode)
44
+ # => "This is worded &lt;strong&gt;strongly&lt;/strong&gt;"
45
+
46
+ The `textilize_without_paragraph` works similarly except it omits the
47
+ surrounding `<p>` tag. Check out the documentation for
48
+ [`RedCloth::TextileDoc`](http://redcloth.rubyforge.org/classes/RedCloth/TextileDoc.html)
49
+ for an overview on the options available.
50
+
51
+ ### The `markdown` helper
52
+
53
+ The `markdown` helper accepts a string of
54
+ [Markdown](http://daringfireball.net/projects/markdown/):
55
+
56
+ markdown("We are using __Markdown__ now!")
57
+ # => "<p>We are using <strong>Markdown</strong> now!</p>"
58
+
59
+ If you set the `:safe` option to `true` the input string will be not sanitized
60
+ before conversion:
61
+
62
+ markdown("<em>We are using __Markdown__ now!</em>", :safe => true)
63
+ # => "<p><em>We are using <strong>Markdown</strong> now!</em></p>"
64
+
65
+ Copyright & Licensing
66
+ ---------------------
67
+
68
+ Copyright (c) 2010 David Heinemeier Hansson
69
+
70
+ Released under the MIT License. See LICENSE for details.
@@ -0,0 +1,5 @@
1
+ require 'formatize/helpers'
2
+
3
+ ActiveSupport.on_load(:action_view) do
4
+ include Formatize::Helpers
5
+ end
@@ -0,0 +1,92 @@
1
+ module Formatize
2
+ module Helpers
3
+ # Returns the text with all the Textile[http://www.textism.com/tools/textile] codes turned into HTML tags.
4
+ #
5
+ # You can learn more about Textile's syntax at its website[http://www.textism.com/tools/textile].
6
+ # <i>This method is only available if RedCloth[http://redcloth.org/] is available</i>.
7
+ #
8
+ # ==== Examples
9
+ # textilize("*This is Textile!* Rejoice!")
10
+ # # => "<p><strong>This is Textile!</strong> Rejoice!</p>"
11
+ #
12
+ # textilize("I _love_ ROR(Ruby on Rails)!")
13
+ # # => "<p>I <em>love</em> <acronym title="Ruby on Rails">ROR</acronym>!</p>"
14
+ #
15
+ # textilize("h2. Textile makes markup -easy- simple!")
16
+ # # => "<h2>Textile makes markup <del>easy</del> simple!</h2>"
17
+ #
18
+ # textilize("Visit the Rails website "here":http://www.rubyonrails.org/.)
19
+ # # => "<p>Visit the Rails website <a href="http://www.rubyonrails.org/">here</a>.</p>"
20
+ #
21
+ # textilize("This is worded <strong>strongly</strong>")
22
+ # # => "<p>This is worded <strong>strongly</strong></p>"
23
+ #
24
+ # textilize("This is worded <strong>strongly</strong>", :filter_html)
25
+ # # => "<p>This is worded &lt;strong&gt;strongly&lt;/strong&gt;</p>"
26
+ #
27
+ def textilize(text, *options)
28
+ require 'RedCloth'
29
+
30
+ options ||= [:hard_breaks]
31
+ text = sanitize(text) unless text.html_safe? || options.delete(:safe)
32
+
33
+ if text.blank?
34
+ ""
35
+ else
36
+ textilized = RedCloth.new(text, options)
37
+ textilized.to_html
38
+ end.html_safe
39
+ end
40
+
41
+ # Returns the text with all the Textile codes turned into HTML tags,
42
+ # but without the bounding <p> tag that RedCloth adds.
43
+ #
44
+ # You can learn more about Textile's syntax at its website[http://www.textism.com/tools/textile].
45
+ # <i>This method is only available if RedCloth[http://redcloth.org/] is available</i>.
46
+ #
47
+ # ==== Examples
48
+ # textilize_without_paragraph("*This is Textile!* Rejoice!")
49
+ # # => "<strong>This is Textile!</strong> Rejoice!"
50
+ #
51
+ # textilize_without_paragraph("I _love_ ROR(Ruby on Rails)!")
52
+ # # => "I <em>love</em> <acronym title="Ruby on Rails">ROR</acronym>!"
53
+ #
54
+ # textilize_without_paragraph("h2. Textile makes markup -easy- simple!")
55
+ # # => "<h2>Textile makes markup <del>easy</del> simple!</h2>"
56
+ #
57
+ # textilize_without_paragraph("Visit the Rails website "here":http://www.rubyonrails.org/.)
58
+ # # => "Visit the Rails website <a href="http://www.rubyonrails.org/">here</a>."
59
+ def textilize_without_paragraph(text, *options)
60
+ require 'RedCloth'
61
+
62
+ textiled = textilize(text, *options)
63
+ if textiled[0..2] == "<p>" then textiled = textiled[3..-1] end
64
+ if textiled[-4..-1] == "</p>" then textiled = textiled[0..-5] end
65
+ return textiled
66
+ end
67
+
68
+ # Returns the text with all the Markdown codes turned into HTML tags.
69
+ # <i>This method requires BlueCloth[http://www.deveiate.org/projects/BlueCloth]
70
+ # to be available</i>.
71
+ #
72
+ # ==== Examples
73
+ # markdown("We are using __Markdown__ now!")
74
+ # # => "<p>We are using <strong>Markdown</strong> now!</p>"
75
+ #
76
+ # markdown("We like to _write_ `code`, not just _read_ it!")
77
+ # # => "<p>We like to <em>write</em> <code>code</code>, not just <em>read</em> it!</p>"
78
+ #
79
+ # markdown("The [Markdown website](http://daringfireball.net/projects/markdown/) has more information.")
80
+ # # => "<p>The <a href="http://daringfireball.net/projects/markdown/">Markdown website</a>
81
+ # # has more information.</p>"
82
+ #
83
+ # markdown('![The ROR logo](http://rubyonrails.com/images/rails.png "Ruby on Rails")')
84
+ # # => '<p><img src="http://rubyonrails.com/images/rails.png" alt="The ROR logo" title="Ruby on Rails" /></p>'
85
+ def markdown(text, *options)
86
+ require 'bluecloth'
87
+
88
+ text = sanitize(text) unless text.html_safe? || options.delete(:safe)
89
+ (text.blank? ? "" : BlueCloth.new(text).to_html).html_safe
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,3 @@
1
+ module Formatize
2
+ VERSION = '1.0.0rc1'
3
+ end
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: formatize
3
+ version: !ruby/object:Gem::Version
4
+ hash: -245658376
5
+ prerelease: true
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0rc1
10
+ version: 1.0.0rc1
11
+ platform: ruby
12
+ authors:
13
+ - David Heinemeier Hansson
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-06-09 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: RedCloth
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 31
30
+ segments:
31
+ - 4
32
+ - 2
33
+ version: "4.2"
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: bluecloth
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 2
47
+ - 0
48
+ version: "2.0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: actionpack
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :development
64
+ version_requirements: *id003
65
+ description:
66
+ email: david@loudthinking.com
67
+ executables: []
68
+
69
+ extensions: []
70
+
71
+ extra_rdoc_files: []
72
+
73
+ files:
74
+ - lib/formatize/helpers.rb
75
+ - lib/formatize/version.rb
76
+ - lib/formatize.rb
77
+ - LICENSE
78
+ - README.md
79
+ has_rdoc: true
80
+ homepage: http://github.com/dtrasbo/formatize
81
+ licenses: []
82
+
83
+ post_install_message:
84
+ rdoc_options: []
85
+
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ hash: 3
94
+ segments:
95
+ - 0
96
+ version: "0"
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ">"
101
+ - !ruby/object:Gem::Version
102
+ hash: 25
103
+ segments:
104
+ - 1
105
+ - 3
106
+ - 1
107
+ version: 1.3.1
108
+ requirements: []
109
+
110
+ rubyforge_project:
111
+ rubygems_version: 1.3.7
112
+ signing_key:
113
+ specification_version: 3
114
+ summary: Plugin containing the textilize, textilize_without_paragraph, and markdown helpers removed from Rails.
115
+ test_files: []
116
+