Nicetitle is an implementation of John Gruber's TitleCase.pl.
The rule set is:
- Small words such as "a", "an", and "but" are not capitalized:
- except for the word "is";
- except if the previous word ended with a colon.
- The first and last words are always capitalized, even if they're small words.
- Words starting with
"are capitalized e.g.
- Words starting with a dash, or words interspersed with dashes, are capitalized after every dash e.g.
- Words interspersed with slashes are capitalized "between" every slash e.g.
- Words starting with a slash are not capitalized.
- URLs are not capitalized.
- Words containing capitals other than the first character are not capitalized e.g.
- Words containing dots are not capitalized.
- All caps sentences are down-cased before applying above mentioned rules.
Check out the test cases for a detailed overview.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install nicetitle
Nice.title('What am I reading/listing/applying these days?')
What Am I Reading/Listing/Applying These Days?
Bug reports and pull requests are welcome on GitHub at https://github.com/evaneykelen/nicetitle.
The gem is available as open source under the terms of the MIT License.
I've written an article about title casing. This article mentions the following similar projects: