blob: 1a4adec376a305da06d047f400df08d0f4b32c19 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/bin/sh
# Generate URL slugs from Unicode input
# This script is licensed under the MIT License
# I copied many of the characters in this script from another project,
# but I cannot remember which. However, for a more professional solution
# check:
# - https://github.com/mattgathu/slugify
# - https://github.com/un33k/python-slugify
# I only wrote this because I wanted to use it in my website builder script
# ~ Ahmed
# slugify.sh
# $* input string
# stdout slug
printf '%s\n' "$*" |
sed \
-e 's/[ _]/_/g' \
-e 's/[-+/&,:;]/-/g' \
-e 's/[.]/./g' \
-e 's/[~]/~/g' \
-e 's/[0°₀]/0/g' \
-e 's/[1¹₁]/1/g' \
-e 's/[2²₂]/2/g' \
-e 's/[3³₃]/3/g' \
-e 's/[4⁴₄]/4/g' \
-e 's/[5⁵₅]/5/g' \
-e 's/[6⁶₆]/6/g' \
-e 's/[7⁷₇]/7/g' \
-e 's/[8⁸₈]/8/g' \
-e 's/[9⁹₉]/9/g' \
-e 's/[AaªáÁàÀăĂâÂǎǍǻǺãÃαΑάΆءأاى]/a/g' \
-e 's/[åÅع]/aa/g' \
-e 's/[äÄæÆ]/ae/g' \
-e 's/[ǽǼ]/ae/g' \
-e 's/[@]/at/g' \
-e 's/[Bbب]/b/g' \
-e 's/[Cc©ĉĈċĊçÇ]/c/g' \
-e 's/[χΧ]/ch/g' \
-e 's/[DdđĐδΔدض]/d/g' \
-e 's/[ðÐ]/dj/g' \
-e 's/[EeéÉèÈĕĔêÊëËėĖεΕέΈئ]/e/g' \
-e 's/[FfƒφΦف]/f/g' \
-e 's/[GgĝĜġĠγΓج]/g/g' \
-e 's/[غ]/gh/g' \
-e 's/[HhĥĤħĦحهة]/h/g' \
-e 's/[IiíÍìÌĭĬîÎǐǏïÏĩĨįĮηΗήΉιΙίΊϊΪϒύΎϋΫΰ]/i/g' \
-e 's/[ijIJ]/ij/g' \
-e 's/[JjĵĴ]/j/g' \
-e 's/[KkκΚقك]/k/g' \
-e 's/[خ]/kh/g' \
-e 's/[LlĺĹľĽŀĿλΛل]/l/g' \
-e 's/[MmμΜم]/m/g' \
-e 's/[NnñÑʼnνΝن]/n/g' \
-e 's/[OoºóÓòÒŏŎôÔǒǑőŐõÕǿǾōŌơƠοΟόΌωΩώو]/o/g' \
-e 's/[öÖøØœŒ]/oe/g' \
-e 's/[PpπΠ]/p/g' \
-e 's/[ψΨ]/ps/g' \
-e 's/[Qq]/q/g' \
-e 's/[RrŕŔŗŖρΡر]/r/g' \
-e 's/[SsŝŜșȘſσςΣسص]/s/g' \
-e 's/[ش]/sh/g' \
-e 's/[ßẞ]/ss/g' \
-e 's/[TtţŢțȚŧŦτΤتط]/t/g' \
-e 's/[þÞθϑΘثذظ]/th/g' \
-e 's/[UuúÚùÙŭŬûÛǔǓüÜǘǗǜǛǚǙǖǕűŰũŨųŲưƯυΥ]/u/g' \
-e 's/[VvβϐΒ]/v/g' \
-e 's/[WwŵŴ]/w/g' \
-e 's/[XxξΞ]/x/g' \
-e 's/[YyýÝŷŶÿŸي]/y/g' \
-e 's/[ZzζΖز]/z/g' \
-e 's/[^a-z0-9_.~-]/_/g' |
tr -s -- '_-'
|