Convert a value to AP/APA title case
npm install ap-style-title-case[![Build][build-badge]][build]
[![Coverage][coverage-badge]][coverage]
[![Downloads][downloads-badge]][downloads]
[![Size][size-badge]][size]
Convert a value to [AP][]/[APA][] title case.
* What is this?
* When should I use this?
* Install
* Use
* API
* [apStyleTitleCase(value[, options])](#apstyletitlecasevalue-options)
* Algorithm
* Types
* Compatibility
* Contribute
* Security
* License
This small package turns a sentence into title case.
You can use this when you have short text of unknown casing and want to display
it in a heading or so.
This package is [ESM only][esm].
In Node.js (version 14.14+, 16.0+), install with [npm][]:
``sh`
npm install ap-style-title-case
In Deno with [esm.sh][esmsh]:
`js`
import {apStyleTitleCase} from 'https://esm.sh/ap-style-title-case@2'
In browsers with [esm.sh][esmsh]:
`html`
`js
import {apStyleTitleCase} from 'ap-style-title-case'
console.log(apStyleTitleCase('why sunless tanning is A hot trend'))
// 'Why Sunless Tanning Is a Hot Trend'
`
Convert a value (string) to title case (string) using [AP][]/[APA][] style.
##### options
Configuration (optional).
###### options.keepSpaces
Keep superfluous whitespace (boolean, default: false).
Whitespace is turned into a space by default.
###### options.stopwords
List of stopwords (Array, default: see below).
When a lowercased word is included in this list, it will be used as lowercase.
Otherwise words are capitalized.
* always capitalize the first word, even if it’s a stop word
* always capitalize the last word, even if it’s a stop word
* lowercase these words: a, an, and, at, but, by, for, in,nor
, of, on, or, so, the, to, up, yet
> Many writers make the error of leaving to be verbs in lower case.is
> Even though , are, was, and be, are all short words, they shouldwith
> still be capitalized in a title because they are verbs.
>
> When you write titles that contain prepositions, your word processor will
> likely tell you that you should leave words like , about, andaround
> lowercase.
> Defiantly look past the squiggly line indicating a potential error, and
> remember that in AP title case, prepositions with four or more letters should
> be capitalized.
>
> These rules are the exact same for APA style, the only difference being that
> AP style does not recommend the use of title case for newspaper headlines, but
> rather sentence case.
###### References
How to correctly use AP (and APA) style title case* on
bkacontent.comwikipedia.com
AP Stylebook* on wikipedia.com
APA style* on apastyle.org
Title case and sentence case capitalization in APA style* on
This package is fully typed with [TypeScript][].
It exports the additional type Options`.
This package is at least compatible with all maintained versions of Node.js.
As of now, that is Node.js 14.14+ and 16.0+.
It also works in Deno and modern browsers.
Yes please!
See [How to Contribute to Open Source][contribute].
This package is safe.
[MIT][license] © [Zeke Sikelianos][author]
[build-badge]: https://github.com/words/ap-style-title-case/workflows/main/badge.svg
[build]: https://github.com/words/ap-style-title-case/actions
[coverage-badge]: https://img.shields.io/codecov/c/github/words/ap-style-title-case.svg
[coverage]: https://codecov.io/github/words/ap-style-title-case
[downloads-badge]: https://img.shields.io/npm/dm/ap-style-title-case.svg
[downloads]: https://www.npmjs.com/package/ap-style-title-case
[size-badge]: https://img.shields.io/bundlephobia/minzip/ap-style-title-case.svg
[size]: https://bundlephobia.com/result?p=ap-style-title-case
[npm]: https://docs.npmjs.com/cli/install
[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[esmsh]: https://esm.sh
[typescript]: https://www.typescriptlang.org
[contribute]: https://opensource.guide/how-to-contribute/
[license]: license
[author]: http://zeke.sikelianos.com
[ap]: https://en.wikipedia.org/wiki/AP_Stylebook
[apa]: https://en.wikipedia.org/wiki/APA_style