From 959740815d60cd104ab5f07a5a341a37beb9db55 Mon Sep 17 00:00:00 2001
From: Mahmoud Abdullah Anani
<99493135+MahmoudAbdullahAnani@users.noreply.github.com>
Date: Sat, 12 Aug 2023 10:43:49 +0300
Subject: [PATCH 1/4] Set variable definitions &
---
bin/build.js | 24 ++++++++++----------
config/charmap.json | 4 +++-
slugify.js | 16 +++++++-------
test/slugify.js | 54 ++++++++++++++++++++++-----------------------
4 files changed, 50 insertions(+), 48 deletions(-)
diff --git a/bin/build.js b/bin/build.js
index cbe823f..84b2ce1 100644
--- a/bin/build.js
+++ b/bin/build.js
@@ -1,20 +1,20 @@
-var fs = require('fs')
-var path = require('path')
+const fs = require('fs')
+const path = require('path')
-var charmap = JSON.parse(
+const charmap = JSON.parse(
fs.readFileSync(path.resolve(__dirname, '../config/charmap.json'), 'utf8'))
-var locales = JSON.parse(
+const locales = JSON.parse(
fs.readFileSync(path.resolve(__dirname, '../config/locales.json'), 'utf8'))
-var sort = (obj) =>
+const sort = (obj) =>
Object.keys(obj)
.sort((a, b) => a > b ? 1 : a < b ? -1 : 0)
.reduce((all, key) => (all[key] = obj[key], all), {})
-var clean = (locales) =>
+const clean = (locales) =>
Object.keys(locales)
.reduce((all, locale) => (
all[locale] =
@@ -25,7 +25,7 @@ var clean = (locales) =>
), {})
-var build = () => {
+const build = () => {
// update charmap - remove duplicates and sort
fs.writeFileSync(
path.resolve(__dirname, '../config/charmap.json'),
@@ -34,15 +34,15 @@ var build = () => {
)
// update slugify
- var source =
+ const source =
fs.readFileSync(path.resolve(__dirname, '../slugify.js'), 'utf8')
.replace(
- /var charMap = JSON\.parse\(.*\)/,
- `var charMap = JSON.parse('${JSON.stringify(sort(charmap)).replace(/'/g, '\\\'')}')`
+ /let charMap = JSON\.parse\(.*\)/,
+ `let charMap = JSON.parse('${JSON.stringify(sort(charmap)).replace(/'/g, '\\\'')}')`
)
.replace(
- /var locales = JSON\.parse\(.*\)/,
- `var locales = JSON.parse('${JSON.stringify(clean(locales))}')`
+ /let locales = JSON\.parse\(.*\)/,
+ `let locales = JSON.parse('${JSON.stringify(clean(locales))}')`
)
fs.writeFileSync(path.resolve(__dirname, '../slugify.js'), source, 'utf8')
}
diff --git a/config/charmap.json b/config/charmap.json
index f38c8e4..5b47e3e 100644
--- a/config/charmap.json
+++ b/config/charmap.json
@@ -638,6 +638,8 @@
"﷼": "rial",
"ﻵ": "laa",
"ﻷ": "laa",
+ "لأ": "laa",
"ﻹ": "lai",
+ "لا": "la",
"ﻻ": "la"
-}
\ No newline at end of file
+}
diff --git a/slugify.js b/slugify.js
index f5a6a1e..27d311f 100644
--- a/slugify.js
+++ b/slugify.js
@@ -1,5 +1,5 @@
-;(function (name, root, factory) {
+(function (name, root, factory) {
if (typeof exports === 'object') {
module.exports = factory()
module.exports['default'] = factory()
@@ -12,8 +12,8 @@
root[name] = factory()
}
}('slugify', this, function () {
- var charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","„":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}')
- var locales = JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}')
+ let charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","„":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}')
+ let locales = JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}')
function replace (string, options) {
if (typeof string !== 'string') {
@@ -24,16 +24,16 @@
? {replacement: options}
: options || {}
- var locale = locales[options.locale] || {}
+ const locale = locales[options.locale] || {}
- var replacement = options.replacement === undefined ? '-' : options.replacement
+ const replacement = options.replacement === undefined ? '-' : options.replacement
- var trim = options.trim === undefined ? true : options.trim
+ const trim = options.trim === undefined ? true : options.trim
- var slug = string.normalize().split('')
+ const slug = string.normalize().split('')
// replace characters based on charMap
.reduce(function (result, ch) {
- var appendChar = locale[ch];
+ const appendChar = locale[ch];
if (appendChar === undefined) appendChar = charMap[ch];
if (appendChar === undefined) appendChar = ch;
if (appendChar === replacement) appendChar = ' ';
diff --git a/test/slugify.js b/test/slugify.js
index e2581d2..bd32d9a 100644
--- a/test/slugify.js
+++ b/test/slugify.js
@@ -1,5 +1,5 @@
-var t = require('assert')
-var slugify = require('../')
+const t = require('assert')
+const slugify = require('../')
describe('slugify', () => {
@@ -33,7 +33,7 @@ describe('slugify', () => {
})
it('leave allowed chars', () => {
- var allowed = ['*', '+', '~', '.', '(', ')', '\'', '"', '!', ':', '@']
+ const allowed = ['*', '+', '~', '.', '(', ')', '\'', '"', '!', ':', '@']
allowed.forEach((symbol) => {
t.equal(
slugify('foo ' + symbol + ' bar baz'),
@@ -84,7 +84,7 @@ describe('slugify', () => {
})
it('replace latin chars', () => {
- var charMap = {
+ const charMap = {
'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE',
'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I',
'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O',
@@ -96,13 +96,13 @@ describe('slugify', () => {
'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u',
'ý': 'y', 'þ': 'th', 'ÿ': 'y', 'ẞ': 'SS'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace greek chars', () => {
- var charMap = {
+ const charMap = {
'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', 'θ': '8',
'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', 'ο': 'o', 'π': 'p',
'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f', 'χ': 'x', 'ψ': 'ps', 'ω': 'w',
@@ -114,23 +114,23 @@ describe('slugify', () => {
'Ά': 'A', 'Έ': 'E', 'Ί': 'I', 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I',
'Ϋ': 'Y'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace turkish chars', () => {
- var charMap = {
+ const charMap = {
'ş': 's', 'Ş': 'S', 'ı': 'i', 'İ': 'I', 'ç': 'c', 'Ç': 'C', 'ü': 'u', 'Ü': 'U',
'ö': 'o', 'Ö': 'O', 'ğ': 'g', 'Ğ': 'G'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace cyrillic chars', () => {
- var charMap = {
+ const charMap = {
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', 'ж': 'zh',
'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o',
'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c',
@@ -143,8 +143,8 @@ describe('slugify', () => {
'Я': 'Ya', 'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', 'є': 'ye', 'і': 'i',
'ї': 'yi', 'ґ': 'g'
}
- for (var ch in charMap) {
- var expected = 'foo-' + charMap[ch] + '-bar-baz'
+ for (let ch in charMap) {
+ let expected = 'foo-' + charMap[ch] + '-bar-baz'
if (!charMap[ch]) {
expected = 'foo-bar-baz'
}
@@ -153,12 +153,12 @@ describe('slugify', () => {
})
it('replace kazakh cyrillic chars', () => {
- var charMap = {
+ const charMap = {
'Ә': 'AE', 'ә': 'ae', 'Ғ': 'GH', 'ғ': 'gh', 'Қ': 'KH', 'қ': 'kh', 'Ң': 'NG', 'ң': 'ng',
'Ү': 'UE', 'ү': 'ue', 'Ұ': 'U', 'ұ': 'u', 'Һ': 'H', 'һ': 'h', 'Ө': 'OE', 'ө': 'oe'
}
- for (var ch in charMap) {
- var expected = 'foo-' + charMap[ch] + '-bar-baz'
+ for (let ch in charMap) {
+ let expected = 'foo-' + charMap[ch] + '-bar-baz'
if (!charMap[ch]) {
expected = 'foo-bar-baz'
}
@@ -167,51 +167,51 @@ describe('slugify', () => {
})
it('replace czech chars', () => {
- var charMap = {
+ const charMap = {
'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't', 'ů': 'u',
'ž': 'z', 'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', 'Š': 'S', 'Ť': 'T',
'Ů': 'U', 'Ž': 'Z'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace polish chars', () => {
- var charMap = {
+ const charMap = {
'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', 'ź': 'z',
'ż': 'z', 'Ą': 'A', 'Ć': 'C', 'Ę': 'e', 'Ł': 'L', 'Ń': 'N', 'Ś': 'S',
'Ź': 'Z', 'Ż': 'Z'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace latvian chars', () => {
- var charMap = {
+ const charMap = {
'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', 'ņ': 'n',
'š': 's', 'ū': 'u', 'ž': 'z', 'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'i',
'Ķ': 'k', 'Ļ': 'L', 'Ņ': 'N', 'Š': 'S', 'Ū': 'u', 'Ž': 'Z'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace serbian chars', () => {
- var charMap = {
+ const charMap = {
'đ': 'dj', 'nj': 'nj', 'lj': 'lj', 'Đ': 'DJ', 'Nj': 'NJ', 'Lj': 'LJ', 'ђ': 'dj', 'ј': 'j',
'љ': 'lj', 'њ': 'nj', 'ћ': 'c', 'џ': 'dz', 'Ђ': 'DJ', 'Ј': 'J', 'Љ': 'LJ', 'Њ': 'NJ',
'Ћ': 'C', 'Џ': 'DZ'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace currencies', () => {
- var charMap = {
+ const charMap = {
'€': 'euro', '₢': 'cruzeiro', '₣': 'french franc', '£': 'pound',
'₤': 'lira', '₥': 'mill', '₦': 'naira', '₧': 'peseta', '₨': 'rupee',
'₩': 'won', '₪': 'new shequel', '₫': 'dong', '₭': 'kip', '₮': 'tugrik', '₸': 'kazakhstani tenge',
@@ -220,21 +220,21 @@ describe('slugify', () => {
'円': 'yen', '﷼': 'rial', '₠': 'ecu', '¤': 'currency', '฿': 'baht',
'$': 'dollar', '₽': 'russian ruble', '₿': 'bitcoin', "₺": "turkish lira"
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
charMap[ch] = charMap[ch].replace(' ', '-')
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
it('replace symbols', () => {
- var charMap = {
+ const charMap = {
'©': '(c)', 'œ': 'oe', 'Œ': 'OE', '∑': 'sum', '®': '(r)', '†': '+',
'“': '"', '”': '"', '‘': "'", '’': "'", '∂': 'd', 'ƒ': 'f', '™': 'tm',
'℠': 'sm', '…': '...', '˚': 'o', 'º': 'o', 'ª': 'a', '•': '*',
'∆': 'delta', '∞': 'infinity', '♥': 'love', '&': 'and', '|': 'or',
'<': 'less', '>': 'greater'
}
- for (var ch in charMap) {
+ for (let ch in charMap) {
t.equal(slugify('foo ' + ch + ' bar baz'), 'foo-' + charMap[ch] + '-bar-baz')
}
})
From d3981b74e271869fe054a2f67773173073a7458d Mon Sep 17 00:00:00 2001
From: Mahmoud Abdullah Anani
<99493135+MahmoudAbdullahAnani@users.noreply.github.com>
Date: Sat, 12 Aug 2023 10:45:47 +0300
Subject: [PATCH 2/4] Set variable definitions
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 385d7b0..0a7cec2 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
[![npm-version]][npm] [![coveralls-status]][coveralls]
```js
-var slugify = require('slugify')
+const slugify = require('slugify')
slugify('some string') // some-string
@@ -69,7 +69,7 @@ Keep in mind that the `extend` method extends/overrides the default `charMap` fo
```js
delete require.cache[require.resolve('slugify')]
-var slugify = require('slugify')
+const slugify = require('slugify')
```
## Contribute
From 790687a7390db080d31c6c4f0eb6f5374895a3df Mon Sep 17 00:00:00 2001
From: Mahmoud Abdullah Anani
<99493135+MahmoudAbdullahAnani@users.noreply.github.com>
Date: Sat, 12 Aug 2023 10:47:30 +0300
Subject: [PATCH 3/4] add file readme Arabic Language
---
README[ar].md | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 98 insertions(+)
create mode 100644 README[ar].md
diff --git a/README[ar].md b/README[ar].md
new file mode 100644
index 0000000..0a7cec2
--- /dev/null
+++ b/README[ar].md
@@ -0,0 +1,98 @@
+
+# slugify
+
+[![npm-version]][npm] [![coveralls-status]][coveralls]
+
+```js
+const slugify = require('slugify')
+
+slugify('some string') // some-string
+
+// if you prefer something other than '-' as separator
+slugify('some string', '_') // some_string
+```
+
+- Vanilla ES2015 JavaScript
+ - If you need to use Slugify with older browsers, consider using [version 1.4.7](https://github.com/simov/slugify/releases/tag/v1.4.7)
+- 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
+ trim: true // trim leading and trailing replacement chars, defaults to `true`
+})
+```
+
+## Remove
+
+For example, to remove `*+~.()'"!:@` from the result slug, you can use `slugify('..', {remove: /[*+~.()'"!:@]/g})`.
+
+* If the value of `remove` is a regular expression, it should be a
+ [character class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Character_Classes)
+ and only a character class. It should also use the
+ [global flag](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global).
+ (For example: `/[*+~.()'"!:@]/g`.) Otherwise, the `remove` option might not
+ work as expected.
+* If the value of `remove` is a string, it should be a single character.
+ Otherwise, the `remove` option might not work as expected.
+
+## 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')]
+const 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
+
+---
+
+> Originally this was a vanilla javascript port of [node-slug][node-slug].
+> Note that the original [slug][slug] module has been ported to vanilla javascript too.
+
+
+ [npm-version]: https://img.shields.io/npm/v/slugify.svg?style=flat-square (NPM Package Version)
+ [coveralls-status]: https://img.shields.io/coveralls/simov/slugify.svg?style=flat-square (Test Coverage - Coveralls)
+
+ [npm]: https://www.npmjs.com/package/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
From 4f626962f31865d93b7a26a348c7203fb33da77e Mon Sep 17 00:00:00 2001
From: Mahmoud Abdullah Anani
<99493135+MahmoudAbdullahAnani@users.noreply.github.com>
Date: Sat, 12 Aug 2023 11:03:34 +0300
Subject: [PATCH 4/4] remove file ar readme
---
README[ar].md | 98 ---------------------------------------------------
1 file changed, 98 deletions(-)
delete mode 100644 README[ar].md
diff --git a/README[ar].md b/README[ar].md
deleted file mode 100644
index 0a7cec2..0000000
--- a/README[ar].md
+++ /dev/null
@@ -1,98 +0,0 @@
-
-# slugify
-
-[![npm-version]][npm] [![coveralls-status]][coveralls]
-
-```js
-const slugify = require('slugify')
-
-slugify('some string') // some-string
-
-// if you prefer something other than '-' as separator
-slugify('some string', '_') // some_string
-```
-
-- Vanilla ES2015 JavaScript
- - If you need to use Slugify with older browsers, consider using [version 1.4.7](https://github.com/simov/slugify/releases/tag/v1.4.7)
-- 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
- trim: true // trim leading and trailing replacement chars, defaults to `true`
-})
-```
-
-## Remove
-
-For example, to remove `*+~.()'"!:@` from the result slug, you can use `slugify('..', {remove: /[*+~.()'"!:@]/g})`.
-
-* If the value of `remove` is a regular expression, it should be a
- [character class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Character_Classes)
- and only a character class. It should also use the
- [global flag](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global).
- (For example: `/[*+~.()'"!:@]/g`.) Otherwise, the `remove` option might not
- work as expected.
-* If the value of `remove` is a string, it should be a single character.
- Otherwise, the `remove` option might not work as expected.
-
-## 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')]
-const 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
-
----
-
-> Originally this was a vanilla javascript port of [node-slug][node-slug].
-> Note that the original [slug][slug] module has been ported to vanilla javascript too.
-
-
- [npm-version]: https://img.shields.io/npm/v/slugify.svg?style=flat-square (NPM Package Version)
- [coveralls-status]: https://img.shields.io/coveralls/simov/slugify.svg?style=flat-square (Test Coverage - Coveralls)
-
- [npm]: https://www.npmjs.com/package/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