2.1.0 • Published 2 years ago

better-title-case v2.1.0

Weekly downloads
287
License
MIT
Repository
github
Last release
2 years ago

better-title-case

Convert a string to title case based on the Daring Fireball rules.

Rules

  • If the string is all-caps, it will be corrected
  • The following words are not capitalized by default: a, an, and, at, but, by, for, in, nor, of, on, or, so, the, to, up, yet, v, v., vs, and vs.
  • Words with capital letters other than the first are assumed to be capitalized properly and are skipped
  • It also skips any word that looks like a file path, file name, or URL
  • The first and last word are always capitalized
  • Sub-strings (those that are within quotes or parens/braces) are capitalized according to the same rules

Installation

$ npm install --save better-title-case

Usage

import titleCase from 'better-title-case';
console.log(titleCase('Nothing to Be Afraid of?'));
// Nothing to Be Afraid Of?

Advanced

You can configure better-title-case to add your own excluded words to the default list, or to prevent the use of the default list by passing a config object as the second parameter.

excludedWords

Type: [string] Default: []

Additional words to exclude from capitalization.

titleCase('Nothing to be afraid of?', {
	excludedWords: ['be']
});
// 'Nothing to be Afraid Of?'

useDefaultExcludedWords

Type: boolean Default: true

Disable the usage of the default list of excluded words.

titleCase('Nothing to be afraid of?', {
	useDefaultExcludedWords: false
});
// 'Nothing To Be Afraid Of?'

preserveWhitespace

Type: boolean Default: false

Maintain extra whitespace between words. By default, all whitespace between words is collapsed to a single space.

titleCase('Nothing  to be   afraid of?', {
	preserveWhitespace: true
});
// 'Nothing  To Be   Afraid Of?'

License

MIT © Brad Dougherty

2.1.0

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.1

5 years ago

1.0.0

6 years ago