This link has been bookmarked by 14 people . It was first bookmarked on 22 May 2008, by a77ila.
-
16 Mar 10
-
26 Jun 09
http://ejohn.org/blog/title-capitalization-in-javascript/
javascript typography code webdev programming web jquery js capitalization
-
23 Apr 09
-
24 Dec 08
-
14 Jul 08
-
05 Jun 08
Scott MoodyTitle Capitalization in JavaScript
The excellent John Gruber recently released a Perl script which is capable of providing pretty capitalization of titles (generally most useful for posting links or blog posts).
The code handles a number of edge cases, as outlined by Gruber:
It knows about small words that should not be capitalized. Not all style guides use the same list of words — for example, many lowercase with, but I do not. The list of words is easily modified to suit your own taste/rules: "a an and as at but by en for if in of on or the to v[.]? via vs[.]?" (The only trickery here is that “v” and “vs” include optional dots, expressed in regex syntax.)
The script assumes that words with capitalized letters other than the first character are already correctly capitalized. This means it will leave a word like “iTunes” alone, rather than mangling it into “ITunes” or, worse, “Itunes”.
It also skips over any words with line dots; “example.com” and “del.icio.us” will remain lowercase.
It has hard-coded hacks specifically to deal with odd cases I’ve run into, like “AT&T” and “Q&A”, both of which contain small words (at and a) which normally should be lowercase.
The first and last word of the title are always capitalized, so input such as “Nothing to be afraid of” will be turned into “Nothing to Be Afraid Of”.
A small word after a colon will be capitalized.
He goes on to provide a full list of edge cases that this script handles.
My Perl is a little bit rusty but I worked through the code and ported it to JavaScript.-
You can check out the python version here: http://widefido.com/static/wf/files/title_case.py.txt
-
-
31 May 08
-
22 May 08
Would you like to comment?
Join Diigo for a free account, or sign in if you are already a member.