mirror of https://github.com/abpframework/abp.git
6 changed files with 245 additions and 0 deletions
@ -0,0 +1,21 @@ |
|||
The MIT License (MIT) |
|||
|
|||
Copyright (c) Simeon Velichkov <simeonvelichkov@gmail.com> |
|||
|
|||
Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
of this software and associated documentation files (the "Software"), to deal |
|||
in the Software without restriction, including without limitation the rights |
|||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
copies of the Software, and to permit persons to whom the Software is |
|||
furnished to do so, subject to the following conditions: |
|||
|
|||
The above copyright notice and this permission notice shall be included in all |
|||
copies or substantial portions of the Software. |
|||
|
|||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
|||
SOFTWARE. |
|||
@ -0,0 +1,90 @@ |
|||
|
|||
# slugify |
|||
|
|||
[![npm-version]][npm] [![travis-ci]][travis] [![coveralls-status]][coveralls] |
|||
|
|||
```js |
|||
var slugify = require('slugify') |
|||
|
|||
slugify('some string') // some-string |
|||
|
|||
// if you prefer something other than '-' as separator |
|||
slugify('some string', '_') // some_string |
|||
``` |
|||
|
|||
- Vanilla ES5 JavaScript |
|||
- No dependencies |
|||
- Coerces foreign symbols to their English equivalent (check out the [charMap][charmap] for more details) |
|||
- Works in the browser (window.slugify) and AMD/CommonJS-flavored module loaders |
|||
|
|||
## Options |
|||
|
|||
```js |
|||
slugify('some string', { |
|||
replacement: '-', // replace spaces with replacement character, defaults to `-` |
|||
remove: undefined, // remove characters that match regex, defaults to `undefined` |
|||
lower: false, // convert to lower case, defaults to `false` |
|||
strict: false, // strip special characters except replacement, defaults to `false` |
|||
locale: 'vi' // language code of the locale to use |
|||
}) |
|||
``` |
|||
|
|||
## Remove |
|||
|
|||
For example, to remove `*+~.()'"!:@` from the result slug, you can use `slugify('..', {remove: /[*+~.()'"!:@]/g})`. |
|||
|
|||
## Locales |
|||
|
|||
The main `charmap.json` file contains all known characters and their transliteration. All new characters should be added there first. In case you stumble upon a character already set in `charmap.json`, but not transliterated correctly according to your language, then you have to add those characters in `locales.json` to override the already existing transliteration in `charmap.json`, but for your locale only. |
|||
|
|||
You can get the correct language code of your language from [here](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). |
|||
|
|||
## Extend |
|||
|
|||
Out of the box `slugify` comes with support for a handful of Unicode symbols. For example the `☢` (radioactive) symbol is not defined in the [`charMap`][charmap] and therefore it will be stripped by default: |
|||
|
|||
```js |
|||
slugify('unicode ♥ is ☢') // unicode-love-is |
|||
``` |
|||
|
|||
However you can extend the supported symbols, or override the existing ones with your own: |
|||
|
|||
```js |
|||
slugify.extend({'☢': 'radioactive'}) |
|||
slugify('unicode ♥ is ☢') // unicode-love-is-radioactive |
|||
``` |
|||
|
|||
Keep in mind that the `extend` method extends/overrides the default `charMap` for the entire process. In case you need a fresh instance of the slugify's `charMap` object you have to clean up the module cache first: |
|||
|
|||
```js |
|||
delete require.cache[require.resolve('slugify')] |
|||
var slugify = require('slugify') |
|||
``` |
|||
|
|||
## Contribute |
|||
|
|||
1. Add chars to `charmap.json` |
|||
2. Run tests `npm test` |
|||
3. The tests will build the charmap in `index.js` and will sort the `charmap.json` |
|||
4. Commit **all** modified files |
|||
|
|||
--- |
|||
|
|||
> This module was originally a vanilla javascript port of [node-slug][node-slug].<br> |
|||
> Note that the original [slug][slug] module has been ported to vanilla javascript too.<br> |
|||
> One major difference between the two modules is that `slugify` does not depend on the external [unicode][unicode] module. |
|||
|
|||
|
|||
[npm-version]: https://img.shields.io/npm/v/slugify.svg?style=flat-square (NPM Package Version) |
|||
[travis-ci]: https://img.shields.io/travis/simov/slugify/master.svg?style=flat-square (Build Status - Travis CI) |
|||
[coveralls-status]: https://img.shields.io/coveralls/simov/slugify.svg?style=flat-square (Test Coverage - Coveralls) |
|||
|
|||
[npm]: https://www.npmjs.com/package/slugify |
|||
[travis]: https://travis-ci.org/simov/slugify |
|||
[coveralls]: https://coveralls.io/r/simov/slugify?branch=master |
|||
|
|||
[node-slug]: https://github.com/dodo/node-slug |
|||
[slug]: https://www.npmjs.com/package/slug |
|||
[unicode]: https://www.npmjs.com/package/unicode |
|||
[index]: https://github.com/simov/slugify/blob/master/index.js |
|||
[charmap]: https://github.com/simov/slugify/blob/master/config/charmap.json |
|||
@ -0,0 +1,40 @@ |
|||
{ |
|||
"name": "slugify", |
|||
"version": "1.4.6", |
|||
"description": "Slugifies a String", |
|||
"keywords": [ |
|||
"slugify", |
|||
"slug", |
|||
"url", |
|||
"urlify" |
|||
], |
|||
"license": "MIT", |
|||
"homepage": "https://github.com/simov/slugify", |
|||
"author": "Simeon Velichkov <simeonvelichkov@gmail.com> (https://simov.github.io)", |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "https://github.com/simov/slugify.git" |
|||
}, |
|||
"devDependencies": { |
|||
"coveralls": "^3.1.0", |
|||
"mocha": "^7.2.0", |
|||
"nyc": "^15.1.0" |
|||
}, |
|||
"main": "./slugify.js", |
|||
"files": [ |
|||
"LICENSE", |
|||
"README.md", |
|||
"slugify.d.ts", |
|||
"slugify.js" |
|||
], |
|||
"types": "slugify.d.ts", |
|||
"scripts": { |
|||
"build": "node bin/build", |
|||
"test:ci": "npx mocha --recursive", |
|||
"test:cov": "npx nyc --reporter=lcov --reporter=text-summary mocha -- --recursive", |
|||
"test": "npm run build && npm run test:ci" |
|||
}, |
|||
"engines": { |
|||
"node": ">=8.0.0" |
|||
} |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
declare module slugify { |
|||
type ExtendArgs = { |
|||
[key: string]: any; |
|||
} |
|||
|
|||
export function extend (args: ExtendArgs): void; |
|||
} |
|||
|
|||
declare function slugify( |
|||
string: string, |
|||
options?: |
|||
| { |
|||
replacement?: string; |
|||
remove?: RegExp; |
|||
lower?: boolean; |
|||
strict?: boolean; |
|||
locale?: string; |
|||
} |
|||
| string, |
|||
|
|||
): string; |
|||
|
|||
export default slugify; |
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue