titleizejs
v1.3.2
Published
Convert your strings to represent proper titles, rather than generic and random strings
Downloads
408
Maintainers
Readme
Installation
Run
npm i titleizejs
to install the module in your project.
Capitalisation Rules in Titleize JS
By default Titleize JS:
- Removes all symbols in the provided string, except apostrophes (') *.
- Makes all words completely lower case and capitalises every first letter
- Capitalises the all words in hyphenated words
- Always capitalises the first and last word of the string
- Does not capitalise the following words (articles, conjunctions, prepositions), unless they are the first or last word of the sentence:
- a, an, the
- and, but, or, nor
- via, to, on, onto, in, into
- per, for, of, by
- at, as, yet, so
* Apostrophes are not removed, since they are vital in abbreviations, such as don't, I'm, and you'd.
Not Yet Implemented
Support for the following is planned and wanted, but not yet present:
- International (non-English) titleisation.
Usage
First, require the module
const titleize = require('titleizejs');
Basic syntax of Titleize JS
titleize(string, options);
Example:
titleize('hello world'); // result: Hello World
Options
So far, the options parameter is an object with three possible properties. These are:
- keepUpperCaseWords (
Boolean
, default:false
, optional) - keepUpperCaseLetters (
Boolean
, default:false
, optional) - ignoreSymbols (
String
, optional) - isSlug (
Boolean
, optional)
keepUpperCaseWords
Setting this to true will preserve all present words that are fully capitalised. This can be useful when dealing with abbreviations or acronyms.
titleize('hello WORLD', { keepUpperCaseWords: true }); // result: Hello WORLD
keepUpperCaseLetters
Setting this to true will preserve all present capital letters.
titleize('hello camelCase', { keepUpperCaseLetters: true }); // result: Hello CamelCase
ignoreSymbols
Providing a string to this setting will make sure that the provided symbols are not removed by Titleize JS. This string can contain many different symbols.
titleize('hello world! do you like javascript?', { ignoreSymbols: '!' });
// result: Hello World! Do You Like Javascript
titleize('hello world! do you like javascript?', { ignoreSymbols: '?' });
// result: Hello World Do You Like Javascript?
titleize('hello world! do you like javascript?', { ignoreSymbols: '!?' });
// result: Hello World! Do You Like Javascript?
isSlug
If the string passed to titleize
is a slug, the default behaviour of Titleize JS is to capitalise all words and preserve the hyphens, as if it were a hyphenated word. To make sure that the slug gets converted properly, pass the isSlug setting in the options object. E.g.
// Default behaviour
titleize('i-am-a-slug'); // result: I-Am-a-Slug
// Passing { isSlug: true }
titleize('i-am-a-slug', { isSlug: true }); // result: I Am a Slug
If you happen to have slugs that are use different separators, you can pass the separator for your string to isSlug
and it will replace those. E.g.:
titleize('i_am_a_slug', { isSlug: '_' }) // result: I Am a Slug
Support, bug-reports, feature suggestions
If you want to contribute, report a bug, or have a suggestion for a feature, contact me at [email protected] or contact me via Github or Twitter.