first commit
This commit is contained in:
commit
817b7cf4bc
838 changed files with 730686 additions and 0 deletions
135
node_modules/slug/README.md
generated
vendored
Normal file
135
node_modules/slug/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
# [slug](https://github.com/Trott/slug)
|
||||
|
||||
Slugifies strings, even when they contain Unicode.
|
||||
|
||||
Make strings URL-safe.
|
||||
|
||||
- Respects [RFC 3986](https://tools.ietf.org/html/rfc3986)
|
||||
- No dependencies
|
||||
- Works in the browser or in Node.js
|
||||
|
||||
```
|
||||
npm install slug
|
||||
```
|
||||
|
||||
If you are using TypeScript you can install the accompanying types
|
||||
|
||||
```
|
||||
npm install --save-dev @types/slug
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
```javascript
|
||||
import slug from 'slug'
|
||||
var print = console.log.bind(console, '>')
|
||||
|
||||
print(slug('i love unicode'))
|
||||
// > i-love-unicode
|
||||
|
||||
print(slug('i love unicode', '_')) // If you prefer something else than `-` as separator
|
||||
// > i_love_unicode
|
||||
|
||||
slug.charmap['♥'] = 'freaking love' // change default charmap or use option {charmap:{…}} as 2. argument
|
||||
print(slug('I ♥ UNICODE'))
|
||||
// > i-freaking-love-unicode
|
||||
|
||||
// To reset modifications to slug.charmap, use slug.reset():
|
||||
slug.reset()
|
||||
print(slug('I ♥ UNICODE'))
|
||||
// > i-unicode
|
||||
|
||||
print(slug('Telephone-Number')) // lower case by default
|
||||
// > telephone-number
|
||||
|
||||
print(slug('Telephone-Number', {lower: false})) // If you want to preserve case
|
||||
// > Telephone-Number
|
||||
|
||||
// We try to provide sensible defaults.
|
||||
// So Cyrillic text will be transliterated as if it were Russian:
|
||||
print(slug('маленький подъезд'))
|
||||
// > malenkij-poduezd
|
||||
|
||||
// But maybe you know it's Bulgarian:
|
||||
print(slug('маленький подъезд', { locale: 'bg' }))
|
||||
// > malenykiy-podaezd
|
||||
|
||||
// To set the default locale:
|
||||
slug.setLocale('bg')
|
||||
print(slug('маленький подъезд'))
|
||||
// > malenykiy-podaezd
|
||||
|
||||
print(slug('unicode is ☢'))
|
||||
// > unicode-is
|
||||
|
||||
slug.extend({'☢': 'radioactive'})
|
||||
print(slug('unicode ♥ is ☢'))
|
||||
// > unicode-is-radioactive
|
||||
|
||||
// slug.extend() modifies the default charmap for the entire process.
|
||||
// If you need to reset charmap, multicharmap, and the default locale, use slug.reset():
|
||||
|
||||
slug.reset()
|
||||
print(slug('unicode ♥ is ☢'))
|
||||
// > unicode-is
|
||||
|
||||
// Custom removal of characters from resulting slug. Let's say that we want to
|
||||
// remove all numbers for some reason.
|
||||
print(slug('one 1 two 2 three 3'))
|
||||
// > one-1-two-2-three-3
|
||||
print(slug('one 1 two 2 three 3', { remove: /[0-9]/g }))
|
||||
// > one-two-three
|
||||
```
|
||||
|
||||
## options
|
||||
|
||||
```javascript
|
||||
// options is either object or replacement (sets options.replacement)
|
||||
slug('string', [{options} || 'replacement']);
|
||||
```
|
||||
|
||||
```javascript
|
||||
slug.defaults.mode ='pretty';
|
||||
slug.defaults.modes['rfc3986'] = {
|
||||
replacement: '-', // replace spaces with replacement
|
||||
remove: null, // (optional) regex to remove characters
|
||||
lower: true, // result in lower case
|
||||
charmap: slug.charmap, // replace special characters
|
||||
multicharmap: slug.multicharmap, // replace multiple code unit characters
|
||||
trim: true, // trim leading and trailing replacement chars
|
||||
fallback: true // use base64 to generate slug for empty results
|
||||
};
|
||||
slug.defaults.modes['pretty'] = {
|
||||
replacement: '-',
|
||||
remove: null,
|
||||
lower: false,
|
||||
charmap: slug.charmap,
|
||||
multicharmap: slug.multicharmap,
|
||||
trim: true,
|
||||
fallback: true
|
||||
};
|
||||
```
|
||||
|
||||
## Differences between `slug` and `slugify` packages
|
||||
|
||||
Here are some key differences between this package and [`slugify`](https://github.com/simov/slugify).
|
||||
|
||||
- **Stability:** `slug` is ESM-only.
|
||||
`slugify` supports CommonJS and ESM.
|
||||
- **Defaults:** `slug` has the `lower` option enabled by default, lowercasing all slugs
|
||||
(`'On SALE'` becomes `'on-sale'`).
|
||||
`slugify` has the `lower` option disabled by default (`'On SALE'` becomes `'On-SALE'`).
|
||||
- **Symbols:** `slug` removes unrecognized symbols (`'$100'` becomes `'100'`, `'<5'` becomes `'5'`, etc.).
|
||||
`slugify` maps them to words (`'$100'` becomes `'dollar100'`, `'<5'` becomes `'less5'`, etc.).
|
||||
- **Empty Output:** `slug` will return a short, predictable hash (`' '` becomes `'icag'` and `'🎉'` becomes `'8joiq'`).
|
||||
`slugify` will return an empty string (`' '` and `'🎉'` become `''`).
|
||||
|
||||
## Playground
|
||||
|
||||
A (painfully minimal) web playground is available at
|
||||
https://trott.github.io/slug/. It doesn't allow you to specify options, so it's utility is minimal. Pull requests welcome to add the ability to
|
||||
specify options.
|
||||
|
||||
There is also a (similarly minimal) CLI tool available via `npx slug`.
|
||||
As with the web playground, it doesn't allow you to specify options, so
|
||||
it's utility is minimal.
|
||||
Loading…
Add table
Add a link
Reference in a new issue