laravel-slug
Advanced tools
Comparing version 1.1.0 to 1.2.0
478
index.js
@@ -0,72 +1,418 @@ | ||
/** | ||
* Laravel Slug | ||
* | ||
* Scroll to the bottom of the file for the good stuff. | ||
*/ | ||
var char_map = { | ||
// Latin | ||
'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç': 'C', | ||
'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I', 'Ï': 'I', | ||
'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö': 'O', 'Ő': 'O', | ||
'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', | ||
// 0 | ||
'°': '0', '₀': '0', '۰': '0', | ||
// 1 | ||
'¹': '1', '₁': '1', '۱': '1', | ||
// 2 | ||
'²': '2', '₂': '2', '۲': '2', | ||
// 3 | ||
'³': '3', '₃': '3', '۳': '3', | ||
// 4 | ||
'⁴': '4', '₄': '4', '۴': '4', '٤': '4', | ||
// 5 | ||
'⁵': '5', '₅': '5', '۵': '5', '٥': '5', | ||
// 6 | ||
'⁶': '6', '₆': '6', '۶': '6', '٦': '6', | ||
// 7 | ||
'⁷': '7', '₇': '7', '۷': '7', | ||
// 8 | ||
'⁸': '8', '₈': '8', '۸': '8', | ||
// 9 | ||
'⁹': '9', '₉': '9', '۹': '9', | ||
// a | ||
'à': 'a', 'á': 'a', 'ả': 'a', 'ã': 'a', 'ạ': 'a', 'ă': 'a', 'ắ': 'a', | ||
'ằ': 'a', 'ẳ': 'a', 'ẵ': 'a', 'ặ': 'a', 'â': 'a', 'ấ': 'a', 'ầ': 'a', | ||
'ẩ': 'a', 'ẫ': 'a', 'ậ': 'a', 'ā': 'a', 'ą': 'a', 'å': 'a', 'α': 'a', | ||
'ά': 'a', 'ἀ': 'a', 'ἁ': 'a', 'ἂ': 'a', 'ἃ': 'a', 'ἄ': 'a', 'ἅ': 'a', | ||
'ἆ': 'a', 'ἇ': 'a', 'ᾀ': 'a', 'ᾁ': 'a', 'ᾂ': 'a', 'ᾃ': 'a', 'ᾄ': 'a', | ||
'ᾅ': 'a', 'ᾆ': 'a', 'ᾇ': 'a', 'ὰ': 'a', 'ά': 'a', 'ᾰ': 'a', 'ᾱ': 'a', | ||
'ᾲ': 'a', 'ᾳ': 'a', 'ᾴ': 'a', 'ᾶ': 'a', 'ᾷ': 'a', 'а': 'a', 'أ': 'a', | ||
'အ': 'a', 'ာ': 'a', 'ါ': 'a', 'ǻ': 'a', 'ǎ': 'a', 'ª': 'a', 'ა': 'a', | ||
'अ': 'a', 'ا': 'a', | ||
// b | ||
'б': 'b', 'β': 'b', 'Ъ': 'b', 'Ь': 'b', 'ب': 'b', 'ဗ': 'b', 'ბ': 'b', | ||
// c | ||
'ç': 'c', 'ć': 'c', 'č': 'c', 'ĉ': 'c', 'ċ': 'c', | ||
// d | ||
'ď': 'd', 'ð': 'd', 'đ': 'd', 'ƌ': 'd', 'ȡ': 'd', 'ɖ': 'd', 'ɗ': 'd', | ||
'ᵭ': 'd', 'ᶁ': 'd', 'ᶑ': 'd', 'д': 'd', 'δ': 'd', 'ض': 'd', 'د': 'd', | ||
'ဍ': 'd', 'ဒ': 'd', 'დ': 'd', | ||
// e | ||
'é': 'e', 'è': 'e', 'ẻ': 'e', 'ẽ': 'e', 'ẹ': 'e', 'ê': 'e', 'ế': 'e', | ||
'ề': 'e', 'ể': 'e', 'ễ': 'e', 'ệ': 'e', 'ë': 'e', 'ē': 'e', 'ę': 'e', | ||
'ě': 'e', 'ĕ': 'e', 'ė': 'e', 'ε': 'e', 'έ': 'e', 'ἐ': 'e', 'ἑ': 'e', | ||
'ἒ': 'e', 'ἓ': 'e', 'ἔ': 'e', 'ἕ': 'e', 'ὲ': 'e', 'έ': 'e', 'е': 'e', | ||
'ё': 'e', 'э': 'e', 'є': 'e', 'ə': 'e', 'ဧ': 'e', 'ေ': 'e', 'ဲ': 'e', | ||
'ე': 'e', 'ए': 'e', 'ئ': 'e', 'إ': 'e', | ||
// f | ||
'ф': 'f', 'φ': 'f', 'ف': 'f', 'ƒ': 'f', 'ფ': 'f', | ||
// g | ||
'ĝ': 'g', 'ğ': 'g', 'ġ': 'g', 'ģ': 'g', 'г': 'g', 'ґ': 'g', 'γ': 'g', | ||
'ဂ': 'g', 'გ': 'g', 'گ': 'g', | ||
// h | ||
'ĥ': 'h', 'ħ': 'h', 'η': 'h', 'ή': 'h', 'ه': 'h', 'ح': 'h', 'ဟ': 'h', | ||
'ှ': 'h', 'ჰ': 'h', | ||
// i | ||
'í': 'i', 'ì': 'i', 'ỉ': 'i', 'ĩ': 'i', 'ị': 'i', 'î': 'i', 'ï': 'i', | ||
'ī': 'i', 'ĭ': 'i', 'į': 'i', 'ı': 'i', 'ι': 'i', 'ί': 'i', 'ϊ': 'i', | ||
'ΐ': 'i', 'ἰ': 'i', 'ἱ': 'i', 'ἲ': 'i', 'ἳ': 'i', 'ἴ': 'i', 'ἵ': 'i', | ||
'ἶ': 'i', 'ἷ': 'i', 'ὶ': 'i', 'ί': 'i', 'ῐ': 'i', 'ῑ': 'i', 'ῒ': 'i', | ||
'ΐ': 'i', 'ῖ': 'i', 'ῗ': 'i', 'і': 'i', 'ї': 'i', 'и': 'i', 'ဣ': 'i', | ||
'ိ': 'i', 'ီ': 'i', 'ည်': 'i', 'ǐ': 'i', 'ი': 'i', 'इ': 'i', | ||
// j | ||
'ĵ': 'j', 'ј': 'j', 'Ј': 'j', 'ჯ': 'j', 'ج': 'j', | ||
// k | ||
'ķ': 'k', 'ĸ': 'k', 'к': 'k', 'κ': 'k', 'Ķ': 'k', 'ك': 'k', 'ك': 'k', | ||
'က': 'k', 'კ': 'k', 'ქ': 'k', 'ک': 'k', | ||
// l | ||
'ł': 'l', 'ľ': 'l', 'ĺ': 'l', 'ļ': 'l', 'ŀ': 'l', 'л': 'l', 'λ': 'l', | ||
'ل': 'l', 'လ': 'l', 'ლ': 'l', | ||
// m | ||
'м': 'm', 'μ': 'm', 'م': 'm', 'မ': 'm', 'მ': 'm', | ||
// n | ||
'ñ': 'n', 'ń': 'n', 'ň': 'n', 'ņ': 'n', 'ʼn': 'n', 'ŋ': 'n', 'ν': 'n', | ||
'н': 'n', 'ن': 'n', 'န': 'n', 'ნ': 'n', | ||
// o | ||
'ó': 'o', 'ò': 'o', 'ỏ': 'o', 'õ': 'o', 'ọ': 'o', 'ô': 'o', 'ố': 'o', | ||
'ồ': 'o', 'ổ': 'o', 'ỗ': 'o', 'ộ': 'o', 'ơ': 'o', 'ớ': 'o', 'ờ': 'o', | ||
'ở': 'o', 'ỡ': 'o', 'ợ': 'o', 'ø': 'o', 'ō': 'o', 'ő': 'o', 'ŏ': 'o', | ||
'ο': 'o', 'ὀ': 'o', 'ὁ': 'o', 'ὂ': 'o', 'ὃ': 'o', 'ὄ': 'o', 'ὅ': 'o', | ||
'ὸ': 'o', 'ό': 'o', 'о': 'o', 'و': 'o', 'θ': 'o', 'ို': 'o', 'ǒ': 'o', | ||
'ǿ': 'o', 'º': 'o', 'ო': 'o', 'ओ': 'o', | ||
// p | ||
'п': 'p', 'π': 'p', 'ပ': 'p', 'პ': 'p', 'پ': 'p', | ||
// q | ||
'ყ': 'q', | ||
// r | ||
'ŕ': 'r', 'ř': 'r', 'ŗ': 'r', 'р': 'r', 'ρ': 'r', 'ر': 'r', 'რ': 'r', | ||
// s | ||
'ś': 's', 'š': 's', 'ş': 's', 'с': 's', 'σ': 's', 'ș': 's', 'ς': 's', | ||
'ص': 's', 'س': 's', 'စ': 's', 'ſ': 's', 'ს': 's', | ||
// t | ||
'ť': 't', 'ţ': 't', 'т': 't', 'τ': 't', 'ț': 't', 'ط': 't', 'ت': 't', | ||
'ဋ': 't', 'တ': 't', 'ŧ': 't', 'თ': 't', 'ტ': 't', | ||
// u | ||
'ú': 'u', 'ù': 'u', 'ủ': 'u', 'ũ': 'u', 'ụ': 'u', 'ư': 'u', 'ứ': 'u', | ||
'ừ': 'u', 'ử': 'u', 'ữ': 'u', 'ự': 'u', 'û': 'u', 'ū': 'u', 'ů': 'u', | ||
'ű': 'u', 'ŭ': 'u', 'ų': 'u', 'µ': 'u', 'у': 'u', 'ဉ': 'u', 'ု': 'u', | ||
'ူ': 'u', 'ǔ': 'u', 'ǖ': 'u', 'ǘ': 'u', 'ǚ': 'u', 'ǜ': 'u', 'უ': 'u', | ||
'उ': 'u', | ||
// v | ||
'в': 'v', 'ვ': 'v', 'ϐ': 'v', | ||
// w | ||
'ŵ': 'w', 'ω': 'w', 'ώ': 'w', 'ဝ': 'w', 'ွ': 'w', | ||
// x | ||
'χ': 'x', 'ξ': 'x', | ||
// y | ||
'ý': 'y', 'ỳ': 'y', 'ỷ': 'y', 'ỹ': 'y', 'ỵ': 'y', 'ÿ': 'y', 'ŷ': 'y', | ||
'й': 'y', 'ы': 'y', 'υ': 'y', 'ϋ': 'y', 'ύ': 'y', 'ΰ': 'y', 'ي': 'y', | ||
'ယ': 'y', | ||
// z | ||
'ź': 'z', 'ž': 'z', 'ż': 'z', 'з': 'z', 'ζ': 'z', 'ز': 'z', 'ဇ': 'z', | ||
'ზ': 'z', | ||
// aa | ||
'ع': 'aa', 'आ': 'aa', 'آ': 'aa', | ||
// ae | ||
'ä': 'ae', 'æ': 'ae', 'ǽ': 'ae', | ||
// ai | ||
'ऐ': 'ai', | ||
// at | ||
'@': 'at', | ||
// ch | ||
'ч': 'ch', 'ჩ': 'ch', 'ჭ': 'ch', 'چ': 'ch', | ||
// dj | ||
'ђ': 'dj', 'đ': 'dj', | ||
// dz | ||
'џ': 'dz', 'ძ': 'dz', | ||
// ei | ||
'ऍ': 'ei', | ||
// gh | ||
'غ': 'gh', 'ღ': 'gh', | ||
// ii | ||
'ई': 'ii', | ||
// ij | ||
'ij': 'ij', | ||
// kh | ||
'х': 'kh', 'خ': 'kh', 'ხ': 'kh', | ||
// lj | ||
'љ': 'lj', | ||
// nj | ||
'њ': 'nj', | ||
// oe | ||
'ö': 'oe', 'œ': 'oe', 'ؤ': 'oe', | ||
// oi | ||
'ऑ': 'oi', | ||
// oii | ||
'ऒ': 'oii', | ||
// ps | ||
'ψ': 'ps', | ||
// sh | ||
'ш': 'sh', 'შ': 'sh', 'ش': 'sh', | ||
// shch | ||
'щ': 'shch', | ||
// ss | ||
'ß': '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', | ||
'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', | ||
'ÿ': 'y', | ||
// Latin symbols | ||
'©': '(c)', | ||
// sx | ||
'ŝ': 'sx', | ||
// Greek | ||
'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z', 'Η': 'H', 'Θ': '8', | ||
'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N', 'Ξ': '3', 'Ο': 'O', 'Π': 'P', | ||
'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y', 'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W', | ||
'Ά': 'A', 'Έ': 'E', 'Ί': 'I', 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I', | ||
'Ϋ': 'Y', | ||
'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', 'θ': '8', | ||
'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', 'ο': 'o', 'π': 'p', | ||
'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f', 'χ': 'x', 'ψ': 'ps', 'ω': 'w', | ||
'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o', 'ύ': 'y', 'ή': 'h', 'ώ': 'w', 'ς': 's', | ||
'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y', 'ΐ': 'i', | ||
// th | ||
'þ': 'th', 'ϑ': 'th', 'ظ': 'th', 'ذ': 'th', 'ث': 'th', | ||
// Turkish | ||
'Ş': 'S', 'İ': 'I', 'Ç': 'C', 'Ü': 'U', 'Ö': 'O', 'Ğ': 'G', | ||
'ş': 's', 'ı': 'i', 'ç': 'c', 'ü': 'u', 'ö': 'o', 'ğ': 'g', | ||
// ts | ||
'ц': 'ts', 'ც': 'ts', 'წ': 'ts', | ||
// Russian | ||
'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo', 'Ж': 'Zh', | ||
'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M', 'Н': 'N', 'О': 'O', | ||
'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', 'Ф': 'F', 'Х': 'H', 'Ц': 'C', | ||
'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '', 'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu', | ||
'Я': 'Ya', | ||
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', 'ж': 'zh', | ||
'з': 'z', 'и': 'i', 'й': 'y', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', | ||
'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'ts', | ||
'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': '', 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', | ||
// ue | ||
'ü': 'ue', | ||
// uu | ||
'ऊ': 'uu', | ||
// ya | ||
'я': 'ya', | ||
// Ukrainian | ||
'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', | ||
'є': 'ye', 'і': 'i', 'ї': 'yi', 'ґ': 'g', | ||
// yu | ||
'ю': 'yu', | ||
// Czech | ||
'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', 'Š': 'S', 'Ť': 'T', 'Ů': 'U', | ||
'Ž': 'Z', | ||
'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't', 'ů': 'u', | ||
'ž': 'z', | ||
// zh | ||
'ж': 'zh', 'ჟ': 'zh', 'ژ': 'zh', | ||
// Polish | ||
'Ą': 'A', 'Ć': 'C', 'Ę': 'e', 'Ł': 'L', 'Ń': 'N', 'Ó': 'o', 'Ś': 'S', 'Ź': 'Z', | ||
'Ż': 'Z', | ||
'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', 'ź': 'z', | ||
'ż': 'z', | ||
// (c) | ||
'©': '(c)', | ||
// Latvian | ||
'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'i', 'Ķ': 'k', 'Ļ': 'L', 'Ņ': 'N', | ||
'Š': 'S', 'Ū': 'u', 'Ž': 'Z', | ||
'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', 'ņ': 'n', | ||
'š': 's', 'ū': 'u', 'ž': 'z', | ||
// A | ||
'Á': 'A', 'À': 'A', 'Ả': 'A', 'Ã': 'A', 'Ạ': 'A', 'Ă': 'A', 'Ắ': 'A', | ||
'Ằ': 'A', 'Ẳ': 'A', 'Ẵ': 'A', 'Ặ': 'A', 'Â': 'A', 'Ấ': 'A', 'Ầ': 'A', | ||
'Ẩ': 'A', 'Ẫ': 'A', 'Ậ': 'A', 'Å': 'A', 'Ā': 'A', 'Ą': 'A', 'Α': 'A', | ||
'Ά': 'A', 'Ἀ': 'A', 'Ἁ': 'A', 'Ἂ': 'A', 'Ἃ': 'A', 'Ἄ': 'A', 'Ἅ': 'A', | ||
'Ἆ': 'A', 'Ἇ': 'A', 'ᾈ': 'A', 'ᾉ': 'A', 'ᾊ': 'A', 'ᾋ': 'A', 'ᾌ': 'A', | ||
'ᾍ': 'A', 'ᾎ': 'A', 'ᾏ': 'A', 'Ᾰ': 'A', 'Ᾱ': 'A', 'Ὰ': 'A', 'Ά': 'A', | ||
'ᾼ': 'A', 'А': 'A', 'Ǻ': 'A', 'Ǎ': 'A', | ||
// B | ||
'Б': 'B', 'Β': 'B', 'ब': 'B', | ||
// C | ||
'Ç': 'C', 'Ć': 'C', 'Č': 'C', 'Ĉ': 'C', 'Ċ': 'C', | ||
// D | ||
'Ď': 'D', 'Ð': 'D', 'Đ': 'D', 'Ɖ': 'D', 'Ɗ': 'D', 'Ƌ': 'D', 'ᴅ': 'D', | ||
'ᴆ': 'D', 'Д': 'D', 'Δ': 'D', | ||
// E | ||
'É': 'E', 'È': 'E', 'Ẻ': 'E', 'Ẽ': 'E', 'Ẹ': 'E', 'Ê': 'E', 'Ế': 'E', | ||
'Ề': 'E', 'Ể': 'E', 'Ễ': 'E', 'Ệ': 'E', 'Ë': 'E', 'Ē': 'E', 'Ę': 'E', | ||
'Ě': 'E', 'Ĕ': 'E', 'Ė': 'E', 'Ε': 'E', 'Έ': 'E', 'Ἐ': 'E', 'Ἑ': 'E', | ||
'Ἒ': 'E', 'Ἓ': 'E', 'Ἔ': 'E', 'Ἕ': 'E', 'Έ': 'E', 'Ὲ': 'E', 'Е': 'E', | ||
'Ё': 'E', 'Э': 'E', 'Є': 'E', 'Ə': 'E', | ||
// F | ||
'Ф': 'F', 'Φ': 'F', | ||
// G | ||
'Ğ': 'G', 'Ġ': 'G', 'Ģ': 'G', 'Г': 'G', 'Ґ': 'G', 'Γ': 'G', | ||
// H | ||
'Η': 'H', 'Ή': 'H', 'Ħ': 'H', | ||
// I | ||
'Í': 'I', 'Ì': 'I', 'Ỉ': 'I', 'Ĩ': 'I', 'Ị': 'I', 'Î': 'I', 'Ï': 'I', | ||
'Ī': 'I', 'Ĭ': 'I', 'Į': 'I', 'İ': 'I', 'Ι': 'I', 'Ί': 'I', 'Ϊ': 'I', | ||
'Ἰ': 'I', 'Ἱ': 'I', 'Ἳ': 'I', 'Ἴ': 'I', 'Ἵ': 'I', 'Ἶ': 'I', 'Ἷ': 'I', | ||
'Ῐ': 'I', 'Ῑ': 'I', 'Ὶ': 'I', 'Ί': 'I', 'И': 'I', 'І': 'I', 'Ї': 'I', | ||
'Ǐ': 'I', 'ϒ': 'I', | ||
// K | ||
'К': 'K', 'Κ': 'K', | ||
// L | ||
'Ĺ': 'L', 'Ł': 'L', 'Л': 'L', 'Λ': 'L', 'Ļ': 'L', 'Ľ': 'L', 'Ŀ': 'L', | ||
'ल': 'L', | ||
// M | ||
'М': 'M', 'Μ': 'M', | ||
// N | ||
'Ń': 'N', 'Ñ': 'N', 'Ň': 'N', 'Ņ': 'N', 'Ŋ': 'N', 'Н': 'N', 'Ν': 'N', | ||
// O | ||
'Ó': 'O', 'Ò': 'O', 'Ỏ': 'O', 'Õ': 'O', 'Ọ': 'O', 'Ô': 'O', 'Ố': 'O', | ||
'Ồ': 'O', 'Ổ': 'O', 'Ỗ': 'O', 'Ộ': 'O', 'Ơ': 'O', 'Ớ': 'O', 'Ờ': 'O', | ||
'Ở': 'O', 'Ỡ': 'O', 'Ợ': 'O', 'Ø': 'O', 'Ō': 'O', 'Ő': 'O', 'Ŏ': 'O', | ||
'Ο': 'O', 'Ό': 'O', 'Ὀ': 'O', 'Ὁ': 'O', 'Ὂ': 'O', 'Ὃ': 'O', 'Ὄ': 'O', | ||
'Ὅ': 'O', 'Ὸ': 'O', 'Ό': 'O', 'О': 'O', 'Θ': 'O', 'Ө': 'O', 'Ǒ': 'O', | ||
'Ǿ': 'O', | ||
// P | ||
'П': 'P', 'Π': 'P', | ||
// R | ||
'Ř': 'R', 'Ŕ': 'R', 'Р': 'R', 'Ρ': 'R', 'Ŗ': 'R', | ||
// S | ||
'Ş': 'S', 'Ŝ': 'S', 'Ș': 'S', 'Š': 'S', 'Ś': 'S', 'С': 'S', 'Σ': 'S', | ||
// T | ||
'Ť': 'T', 'Ţ': 'T', 'Ŧ': 'T', 'Ț': 'T', 'Т': 'T', 'Τ': 'T', | ||
// U | ||
'Ú': 'U', 'Ù': 'U', 'Ủ': 'U', 'Ũ': 'U', 'Ụ': 'U', 'Ư': 'U', 'Ứ': 'U', | ||
'Ừ': 'U', 'Ử': 'U', 'Ữ': 'U', 'Ự': 'U', 'Û': 'U', 'Ū': 'U', 'Ů': 'U', | ||
'Ű': 'U', 'Ŭ': 'U', 'Ų': 'U', 'У': 'U', 'Ǔ': 'U', 'Ǖ': 'U', 'Ǘ': 'U', | ||
'Ǚ': 'U', 'Ǜ': 'U', | ||
// V | ||
'В': 'V', | ||
// W | ||
'Ω': 'W', 'Ώ': 'W', 'Ŵ': 'W', | ||
// X | ||
'Χ': 'X', 'Ξ': 'X', | ||
// Y | ||
'Ý': 'Y', 'Ỳ': 'Y', 'Ỷ': 'Y', 'Ỹ': 'Y', 'Ỵ': 'Y', 'Ÿ': 'Y', 'Ῠ': 'Y', | ||
'Ῡ': 'Y', 'Ὺ': 'Y', 'Ύ': 'Y', 'Ы': 'Y', 'Й': 'Y', 'Υ': 'Y', 'Ϋ': 'Y', | ||
'Ŷ': 'Y', | ||
// Z | ||
'Ź': 'Z', 'Ž': 'Z', 'Ż': 'Z', 'З': 'Z', 'Ζ': 'Z', | ||
// AE | ||
'Ä': 'AE', 'Æ': 'AE', 'Ǽ': 'AE', | ||
// CH | ||
'Ч': 'CH', | ||
// DJ | ||
'Ђ': 'DJ', | ||
// DZ | ||
'Џ': 'DZ', | ||
// GX | ||
'Ĝ': 'GX', | ||
// HX | ||
'Ĥ': 'HX', | ||
// IJ | ||
'IJ': 'IJ', | ||
// JX | ||
'Ĵ': 'JX', | ||
// KH | ||
'Х': 'KH', | ||
// LJ | ||
'Љ': 'LJ', | ||
// NJ | ||
'Њ': 'NJ', | ||
// OE | ||
'Ö': 'OE', 'Œ': 'OE', | ||
// PS | ||
'Ψ': 'PS', | ||
// SH | ||
'Ш': 'SH', | ||
// SHCH | ||
'Щ': 'SHCH', | ||
// SS | ||
'ẞ': 'SS', | ||
// TH | ||
'Þ': 'TH', | ||
// TS | ||
'Ц': 'TS', | ||
// UE | ||
'Ü': 'UE', | ||
// YA | ||
'Я': 'YA', | ||
// YU | ||
'Ю': 'YU', | ||
// ZH | ||
'Ж': 'ZH', | ||
// Spaces | ||
' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', | ||
' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', ' ': ' ', | ||
' ': ' ', | ||
}; | ||
// Instantiated here for performance | ||
var char_regex = RegExp("("+Object.keys(char_map).join('|')+")", 'g'); | ||
module.exports = function url_slug(s, opt) | ||
{ | ||
module.exports = function (s, opt) { | ||
s = String(s); | ||
@@ -100,16 +446,24 @@ opt = Object(opt); | ||
// Replace non-alphanumeric characters with our delimiter | ||
var alnum = RegExp('[^a-z0-9]+', 'ig'); | ||
s = s.replace(alnum, opt.delimiter); | ||
// Convert all dashes/underscores into separator | ||
var underscores = RegExp('\_', 'ig'); | ||
s = s.replace(underscores, opt.delimiter); | ||
// Remove all characters that are not the separator, letters, numbers, or whitespace | ||
var alnum = RegExp('[^' + opt.delimiter + '\\d\\w\\s]+', 'ig'); | ||
s = s.replace(alnum, ''); | ||
// Replace all separator characters and whitespace by a single separator | ||
var spaces = RegExp('[' + opt.delimiter + '\\s]+', 'ig'); | ||
s = s.replace(spaces, opt.delimiter); | ||
// Remove duplicate delimiters | ||
s = s.replace(RegExp('[' + opt.delimiter + ']{2,}', 'g'), opt.delimiter); | ||
// Truncate slug to max. characters | ||
s = s.substring(0, opt.limit); | ||
// Remove delimiter from ends | ||
s = s.replace(RegExp('(^' + opt.delimiter + '|' + opt.delimiter + '$)', 'g'), ''); | ||
// Truncate slug to max characters | ||
s = s.substring(0, opt.limit); | ||
return opt.lowercase ? s.toLowerCase() : s; | ||
} |
{ | ||
"name": "laravel-slug", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Tries to mimick the slugs produced by Laravel", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
14514
4
377
1
8