Title Case (titlecase)
titlecase is a small tool that capitlizes text according to a style defined
by John Gruber for post titles on his website Daring Fireball. titlecase
runs on Linux, macOS, FreeBSD, NetBSD, and Windows. A dependency free, single
file binary is built for each supported platform for every release.
titlecase is licensed under the MIT license.
Examples
% echo 'Being productive on linux' | titlecase
Being Productive on Linux
% echo 'Finding an alternative to Mac OS X — part 2' | titlecase
Finding an Alternative to Mac OS X — Part 2
% echo 'an example with small words and sub-phrases: "the example"' | titlecase
An Example With Small Words and Sub-Phrases: "The Example"
Usage
titlecase reads lines of text from stdin and prints title cased versions
to stdout.
Installation
Pre-built titlecase binaries are available for Linux, macOS,
FreeBSD, NetBSD, and Windows.
Rust Developer/Cargo
If you have a stable Rust compiler toolchain installed you can install
titlecase with cargo:
% cargo install titlecase
Style
Instead of simply capitalizing each word it does the following (amongst other things):
- Lower case small words like an, of, or in.
- Don't capitalize words like iPhone.
- Don't interfere with file paths, URLs, domains, and email addresses.
- Always capitalize the first and last words, even if they are small words or surrounded by quotes.
- Don't interfere with terms like "Q&A", or "AT&T".
- Capitalize small words after a colon.
Credits
This tool makes use of prior work by John Gruber, Aristotle Pagaltzis, and David Gouch.