npm

npm’s 2019 JavaScript ecosystem survey analysis is now available! Get your copy here »

@sindresorhus/slugify

0.9.1 • Public • Published

slugify Build Status

Slugify a string

Useful for URLs, filenames, and IDs.

It correctly handles German umlauts, Vietnamese, Arabic, Russian, Romanian, Turkish and more.

Install

$ npm install @sindresorhus/slugify

Usage

const slugify = require('@sindresorhus/slugify');
 
slugify('I ♥ Dogs');
//=> 'i-love-dogs'
 
slugify('  Déjà Vu!  ');
//=> 'deja-vu'
 
slugify('fooBar 123 $#%');
//=> 'foo-bar-123'
 
slugify('I ♥ 🦄 & 🐶', {
    customReplacements: [
        ['🐶', 'dog']
    ]
});
//=> 'i-love-unicorn-and-dog'

API

slugify(input, [options])

input

Type: string

options

Type: Object

separator

Type: string
Default: -

const slugify = require('@sindresorhus/slugify');
 
slugify('BAR and baz');
//=> 'bar-and-baz'
 
slugify('BAR and baz', {separator: '_'});
//=> 'bar_and_baz'
lowercase

Type: boolean
Default: true

Make the slug lowercase.

const slugify = require('@sindresorhus/slugify');
 
slugify('Déjà Vu!');
//=> 'deja-vu'
 
slugify('Déjà Vu!', {lowercase: false});
//=> 'Deja-Vu'
decamelize

Type: boolean
Default: true

Convert camelcase to separate words. Internally it does fooBarfoo bar.

const slugify = require('@sindresorhus/slugify');
 
slugify('fooBar');
//=> 'foo-bar'
 
slugify('fooBar', {decamelize: false});
//=> 'foobar'
customReplacements

Type: Array<string[]>
Default: [ ['&', ' and '], ['🦄', ' unicorn '], ['♥', ' love '] ]

Specifying this only replaces the default if you set an item with the same key, like &. The replacements are run on the original string before any other transformations.

const slugify = require('@sindresorhus/slugify');
 
slugify('Foo@unicorn', {
    customReplacements: [
        ['@', 'at']
    ]
});
//=> 'fooatunicorn'

Add a leading and trailing space to the replacement to have it separated by dashes:

const slugify = require('@sindresorhus/slugify');
 
slugify('foo@unicorn', {
    customReplacements: [
        ['@', ' at ']
    ]
});
//=> 'foo-at-unicorn'

Related

License

MIT © Sindre Sorhus

install

npm i @sindresorhus/slugify

Downloadsweekly downloads

88,882

version

0.9.1

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability