Title Case (titlecase)
titlecase is a small tool that capitalizes English text according to a
style defined by John Gruber for post titles on his website Daring
titlecase runs on Linux, macOS, FreeBSD, NetBSD, and Windows. A
dependency free, single-file binary is built for each supported platform for
titlecase is licensed under the MIT license.
% 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"
Command Line Usage
titlecase reads lines of text from stdin and prints title cased versions
Usage as a Rust Crate
See the crate documentation.
titlecase binaries are available for Linux, macOS,
FreeBSD, NetBSD, and Windows.
If you have a stable Rust compiler toolchain installed you can install
titlecase with cargo:
% cargo install titlecase
Instead of simply capitalizing each word
titlecase 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.
This tool makes use of prior work by John Gruber, Aristotle Pagaltzis, and David Gouch. The continuous integration configuration uses trust by Jorge Aparicio, dual licensed under the MIT and Apache licenses.