prarupa 0.1
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/README.md +78 -0
- data/lib/prarupa/text_helpers.rb +92 -0
- data/lib/prarupa/version.rb +3 -0
- data/lib/prarupa.rb +5 -0
- metadata +93 -0
data/README.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Prarupa
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
Prarupa is plugin for Rails 3 that provides the `textilize`, `textilize_without_paragraph` and `markdown` helpers. These were extracted from Rails and have been modified slightly. Instead of using `BlueCloth` for `markdown`, Prarupa uses `RDiscount` which is supposed to be faster and better maintained. Other minor internal tweaks have been made.
|
|
5
|
+
|
|
6
|
+
Install
|
|
7
|
+
=======
|
|
8
|
+
|
|
9
|
+
You can either install Prarupa as a gem or plugin. Installing as a gem is the preferred choice.
|
|
10
|
+
|
|
11
|
+
Install as a gem
|
|
12
|
+
----------------
|
|
13
|
+
|
|
14
|
+
Simply add `prarupa` to the Gemfile. Also add `RedCloth` for textilize & textilize_without_paragraph and/or add `rdiscount` for markdown. Now just `bundle install` and you should be good to go. Note that installing `prarupa` will also install `rdiscount` and `markdown` as dependencies.
|
|
15
|
+
|
|
16
|
+
Install as a plugin
|
|
17
|
+
-------------------
|
|
18
|
+
|
|
19
|
+
To install as a plugin simply do `rails plugin install git://github.com/rohit/prarupa.git`
|
|
20
|
+
|
|
21
|
+
Example
|
|
22
|
+
=======
|
|
23
|
+
|
|
24
|
+
In your views you can do the following.
|
|
25
|
+
|
|
26
|
+
The `textilize` and `textilize_without_paragraph` helpers
|
|
27
|
+
---------------------------------------------------------
|
|
28
|
+
|
|
29
|
+
The `textilize` helper accepts a string of [Textile](http://redcloth.org/textile) and optionally one or more options.
|
|
30
|
+
|
|
31
|
+
Without any options:
|
|
32
|
+
|
|
33
|
+
textilize("This is *how* we _textilize_ in Rails!")
|
|
34
|
+
# => "<p>This is <strong>how</strong> we <em>textilize</em> in Rails!</p>"
|
|
35
|
+
|
|
36
|
+
With options:
|
|
37
|
+
|
|
38
|
+
textilize("This is *how* we <em>textilize</em> in Rails!", :filter_html)
|
|
39
|
+
# => "<p>This is <strong>how</strong> we <em>textilize</em> in Rails!</p>"
|
|
40
|
+
|
|
41
|
+
Note that you can provide multiple options like `textilize("text", :filter_html, :lite_mode)`
|
|
42
|
+
|
|
43
|
+
The `textilize_without_paragraph` is similar to `textilize`, except that the surrounding <p> and </p> tags are removed. It accepts options just like `textilize`
|
|
44
|
+
|
|
45
|
+
textilize_without_paragraph("This is *how* we _textilize_ in Rails!")
|
|
46
|
+
# => "This is <strong>how</strong> we <em>textilize</em> in Rails!"
|
|
47
|
+
|
|
48
|
+
The `markdown` helper
|
|
49
|
+
---------------------
|
|
50
|
+
|
|
51
|
+
The `markdown` helper accepts a string of [Markdown](http://daringfireball.net/projects/markdown/) and optionally one or more options.
|
|
52
|
+
|
|
53
|
+
Without any options:
|
|
54
|
+
|
|
55
|
+
markdown("This is *how* we **markdown** in Rails!")
|
|
56
|
+
# => "<p>This is <em>how</em> we <strong>markdown</strong> in Rails!</p>"
|
|
57
|
+
|
|
58
|
+
With options:
|
|
59
|
+
|
|
60
|
+
markdown("Greedy urls are here! http://rohitarondekar.com", :autolink)
|
|
61
|
+
# => "<p>Greedy urls are here! <a href=\"http://rohitarondekar.com\">http://rohitarondekar.com</a></p>"
|
|
62
|
+
|
|
63
|
+
To be `:safe`
|
|
64
|
+
============
|
|
65
|
+
|
|
66
|
+
Being Rails text helpers, all three methods accept the `:safe` option that tells the helpers that the input text need not be sanitized.
|
|
67
|
+
|
|
68
|
+
Credits
|
|
69
|
+
=======
|
|
70
|
+
|
|
71
|
+
[David Trasbo](http://github.com/dtrasbo) for making the awesome (official?) plugin [formatize](http://github.com/dtrasbo/formatize) which extracts the helpers without any modification. I liberally used his gem as reference.
|
|
72
|
+
|
|
73
|
+
Todo
|
|
74
|
+
====
|
|
75
|
+
|
|
76
|
+
* Tidy up the rdocs
|
|
77
|
+
|
|
78
|
+
Copyright (c) 2010 Rohit Arondekar, released under the MIT license
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
module Prarupa
|
|
2
|
+
module TextHelpers
|
|
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 requires RedCloth[http://redcloth.org/] to be installed</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 <strong>strongly</strong></p>"
|
|
26
|
+
#
|
|
27
|
+
def textilize(text, *options)
|
|
28
|
+
options ||= [:hard_breaks]
|
|
29
|
+
text = sanitize(text) unless text.html_safe? || options.delete(:safe)
|
|
30
|
+
|
|
31
|
+
if text.blank?
|
|
32
|
+
""
|
|
33
|
+
else
|
|
34
|
+
textilized = RedCloth.new(text, options)
|
|
35
|
+
textilized.to_html.html_safe
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Returns the text with all the Textile codes turned into HTML tags,
|
|
40
|
+
# but without the bounding <p> tag that RedCloth adds.
|
|
41
|
+
#
|
|
42
|
+
# You can learn more about Textile's syntax at its website[http://www.textism.com/tools/textile].
|
|
43
|
+
# <i>This method is only available if RedCloth[http://redcloth.org/] is available</i>.
|
|
44
|
+
#
|
|
45
|
+
# ==== Examples
|
|
46
|
+
# textilize_without_paragraph("*This is Textile!* Rejoice!")
|
|
47
|
+
# # => "<strong>This is Textile!</strong> Rejoice!"
|
|
48
|
+
#
|
|
49
|
+
# textilize_without_paragraph("I _love_ ROR(Ruby on Rails)!")
|
|
50
|
+
# # => "I <em>love</em> <acronym title="Ruby on Rails">ROR</acronym>!"
|
|
51
|
+
#
|
|
52
|
+
# textilize_without_paragraph("h2. Textile makes markup -easy- simple!")
|
|
53
|
+
# # => "<h2>Textile makes markup <del>easy</del> simple!</h2>"
|
|
54
|
+
#
|
|
55
|
+
# textilize_without_paragraph("Visit the Rails website "here":http://www.rubyonrails.org/.)
|
|
56
|
+
# # => "Visit the Rails website <a href="http://www.rubyonrails.org/">here</a>."
|
|
57
|
+
def textilize_without_paragraph(text, *options)
|
|
58
|
+
textiled = textilize(text, *options)
|
|
59
|
+
if textiled[0..2] == "<p>" then textiled = textiled[3..-1] end
|
|
60
|
+
if textiled[-4..-1] == "</p>" then textiled = textiled[0..-5] end
|
|
61
|
+
return textiled
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Returns the text with all the Markdown codes turned into HTML tags.
|
|
65
|
+
# <i>This method requires RDiscount[http://github.com/rtomayko/rdiscount/]
|
|
66
|
+
# to be available</i>.
|
|
67
|
+
#
|
|
68
|
+
# ==== Examples
|
|
69
|
+
# markdown("We are using __Markdown__ now!")
|
|
70
|
+
# # => "<p>We are using <strong>Markdown</strong> now!</p>"
|
|
71
|
+
#
|
|
72
|
+
# markdown("We like to _write_ `code`, not just _read_ it!")
|
|
73
|
+
# # => "<p>We like to <em>write</em> <code>code</code>, not just <em>read</em> it!</p>"
|
|
74
|
+
#
|
|
75
|
+
# markdown("The [Markdown website](http://daringfireball.net/projects/markdown/) has more information.")
|
|
76
|
+
# # => "<p>The <a href="http://daringfireball.net/projects/markdown/">Markdown website</a>
|
|
77
|
+
# # has more information.</p>"
|
|
78
|
+
#
|
|
79
|
+
# markdown('')
|
|
80
|
+
# # => '<p><img src="http://rubyonrails.com/images/rails.png" alt="The ROR logo" title="Ruby on Rails" /></p>'
|
|
81
|
+
def markdown(text, *options)
|
|
82
|
+
text = sanitize(text) unless text.html_safe? || options.delete(:safe)
|
|
83
|
+
|
|
84
|
+
if text.blank?
|
|
85
|
+
""
|
|
86
|
+
else
|
|
87
|
+
markdowned = RDiscount.new(text, *options)
|
|
88
|
+
markdowned.to_html.chomp.html_safe #used chomp to remove the \n appended by RDiscount
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
data/lib/prarupa.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: prarupa
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 1
|
|
8
|
+
version: "0.1"
|
|
9
|
+
platform: ruby
|
|
10
|
+
authors:
|
|
11
|
+
- Rohit Arondekar
|
|
12
|
+
autorequire:
|
|
13
|
+
bindir: bin
|
|
14
|
+
cert_chain: []
|
|
15
|
+
|
|
16
|
+
date: 2010-06-10 00:00:00 +05:30
|
|
17
|
+
default_executable:
|
|
18
|
+
dependencies:
|
|
19
|
+
- !ruby/object:Gem::Dependency
|
|
20
|
+
name: RedCloth
|
|
21
|
+
prerelease: false
|
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
23
|
+
none: false
|
|
24
|
+
requirements:
|
|
25
|
+
- - ~>
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
segments:
|
|
28
|
+
- 4
|
|
29
|
+
- 2
|
|
30
|
+
version: "4.2"
|
|
31
|
+
type: :runtime
|
|
32
|
+
version_requirements: *id001
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: rdiscount
|
|
35
|
+
prerelease: false
|
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
37
|
+
none: false
|
|
38
|
+
requirements:
|
|
39
|
+
- - ~>
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
segments:
|
|
42
|
+
- 1
|
|
43
|
+
- 6
|
|
44
|
+
version: "1.6"
|
|
45
|
+
type: :runtime
|
|
46
|
+
version_requirements: *id002
|
|
47
|
+
description:
|
|
48
|
+
email: hello@rohitarondekar.com
|
|
49
|
+
executables: []
|
|
50
|
+
|
|
51
|
+
extensions: []
|
|
52
|
+
|
|
53
|
+
extra_rdoc_files: []
|
|
54
|
+
|
|
55
|
+
files:
|
|
56
|
+
- lib/prarupa.rb
|
|
57
|
+
- lib/prarupa/text_helpers.rb
|
|
58
|
+
- lib/prarupa/version.rb
|
|
59
|
+
- README.md
|
|
60
|
+
has_rdoc: true
|
|
61
|
+
homepage: http://github.com/rohit/prarupa
|
|
62
|
+
licenses: []
|
|
63
|
+
|
|
64
|
+
post_install_message:
|
|
65
|
+
rdoc_options: []
|
|
66
|
+
|
|
67
|
+
require_paths:
|
|
68
|
+
- lib
|
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
|
+
none: false
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
segments:
|
|
75
|
+
- 0
|
|
76
|
+
version: "0"
|
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
|
+
none: false
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
segments:
|
|
83
|
+
- 0
|
|
84
|
+
version: "0"
|
|
85
|
+
requirements: []
|
|
86
|
+
|
|
87
|
+
rubyforge_project:
|
|
88
|
+
rubygems_version: 1.3.7
|
|
89
|
+
signing_key:
|
|
90
|
+
specification_version: 3
|
|
91
|
+
summary: Plugin that adds the textilized, textilize_without_paragraph and markdown helpers to Rails 3
|
|
92
|
+
test_files: []
|
|
93
|
+
|