PageSourceSearch

https://demarches.dordogne.fr/static/js/modules/slugify.js

js dordogne.fr collected 2026-09-24 09:24:35 UTC 6,394 bytes, 430 lines download raw bytes

1/* the slugify code is adapted from the urlify code of django,
2 * django/contrib/admin/static/admin/js/urlify.js.
3 */
4
5const LATIN_MAP = {
6  'À': 'A',
7  'Á': 'A',
8  'Â': 'A',
9  'Ã': 'A',
10  'Ä': 'A',
11  'Å': 'A',
12  'Æ': 'AE',
13  'Ç': 'C',
14  'È': 'E',
15  'É': 'E',
16  'Ê': 'E',
17  'Ë': 'E',
18  'Ì': 'I',
19  'Í': 'I',
20  'Î': 'I',
21  'Ï': 'I',
22  'Ð': 'D',
23  'Ñ': 'N',
24  'Ò': 'O',
25  'Ó': 'O',
26  'Ô': 'O',
27  'Õ': 'O',
28  'Ö': 'O',
29  'Ő': 'O',
30  'Ø': 'O',
31  'Ù': 'U',
32  'Ú': 'U',
33  'Û': 'U',
34  'Ü': 'U',
35  'Ű': 'U',
36  'Ý': 'Y',
37  'Þ': 'TH',
38  'Ÿ': 'Y',
39  'ß': 'ss',
40  'à': 'a',
41  'á': 'a',
42  'â': 'a',
43  'ã': 'a',
44  'ä': 'a',
45  'Ã¥': 'a',
46  'æ': 'ae',
47  'ç': 'c',
48  'è': 'e',
49  'é': 'e',
50  'ê': 'e',
51  'ë': 'e',
52  'ì': 'i',
53  'í': 'i',
54  'î': 'i',
55  'ï': 'i',
56  'ð': 'd',
57  'ñ': 'n',
58  'ò': 'o',
59  'ó': 'o',
60  'ô': 'o',
61  'õ': 'o',
62  'ö': 'o',
63  'ő': 'o',
64  'ø': 'o',
65  'ù': 'u',
66  'ú': 'u',
67  'û': 'u',
68  'ü': 'u',
69  'ű': 'u',
70  'ý': 'y',
71  'þ': 'th',
72  'ÿ': 'y',
73}
74const LATIN_SYMBOLS_MAP = {
75  '©': 'c', '€': 'eur',
76}
77const GREEK_MAP = {
78  'α': 'a',
79  'β': 'b',
80  'γ': 'g',
81  'δ': 'd',
82  'ε': 'e',
83  'ζ': 'z',
84  'η': 'h',
85  'θ': '8',
86  'ι': 'i',
87  'κ': 'k',
88  'λ': 'l',
89  'μ': 'm',
90  'ν': 'n',
91  'ξ': '3',
92  'ο': 'o',
93  'π': 'p',
94  'ρ': 'r',
95  'σ': 's',
96  'τ': 't',
97  'υ': 'y',
98  'φ': 'f',
99  'χ': 'x',
100  'ψ': 'ps',
101  'ω': 'w',
102  'ά': 'a',
103  'έ': 'e',
104  'ί': 'i',
105  'ό': 'o',
106  'ύ': 'y',
107  'ή': 'h',
108  'ώ': 'w',
109  'ς': 's',
110  'ϊ': 'i',
111  'ΰ': 'y',
112  'ϋ': 'y',
113  'ΐ': 'i',
114  'Α': 'A',
115  'Β': 'B',
116  'Γ': 'G',
117  'Δ': 'D',
118  'Ε': 'E',
119  'Ζ': 'Z',
120  'Η': 'H',
121  'Θ': '8',
122  'Ι': 'I',
123  'Κ': 'K',
124  'Λ': 'L',
125  'Μ': 'M',
126  'Ν': 'N',
127  'Ξ': '3',
128  'Ο': 'O',
129  'Π': 'P',
130  'Ρ': 'R',
131  'Σ': 'S',
132  'Τ': 'T',
133  'Î¥': 'Y',
134  'Φ': 'F',
135  'Χ': 'X',
136  'Ψ': 'PS',
137  'Ω': 'W',
138  'Ά': 'A',
139  'Έ': 'E',
140  'Ί': 'I',
141  'Ό': 'O',
142  'Ύ': 'Y',
143  'Ή': 'H',
144  'Ώ': 'W',
145  'Ϊ': 'I',
146  'Ϋ': 'Y',
147}
148const TURKISH_MAP = {
149  'ş': 's',
150  'Ş': 'S',
151  'ı': 'i',
152  'İ': 'I',
153  'ç': 'c',
154  'Ç': 'C',
155  'ü': 'u',
156  'Ü': 'U',
157  'ö': 'o',
158  'Ö': 'O',
159  'ğ': 'g',
160  'Ğ': 'G',
161}
162const RUSSIAN_MAP = {
163  'а': 'a',
164  'б': 'b',
165  'в': 'v',
166  'г': 'g',
167  'д': 'd',
168  'е': 'e',
169  'ё': 'yo',
170  'ж': 'zh',
171  'з': 'z',
172  'и': 'i',
173  'й': 'j',
174  'к': 'k',
175  'л': 'l',
176  'м': 'm',
177  'н': 'n',
178  'о': 'o',
179  'п': 'p',
180  'р': 'r',
181  'с': 's',
182  'т': 't',
183  'у': 'u',
184  'ф': 'f',
185  'х': 'h',
186  'ц': 'c',
187  'ч': 'ch',
188  'ш': 'sh',
189  'щ': 'sh',
190  'ъ': '',
191  'ы': 'y',
192  'ь': '',
193  'э': 'e',
194  'ю': 'yu',
195  'я': 'ya',
196  'А': 'A',
197  'Б': 'B',
198  'В': 'V',
199  'Г': 'G',
200  'Д': 'D',
201  'Е': 'E',
202  'Ё': 'Yo',
203  'Ж': 'Zh',
204  'З': 'Z',
205  'И': 'I',
206  'Й': 'J',
207  'К': 'K',
208  'Л': 'L',
209  'М': 'M',
210  'Н': 'N',
211  'О': 'O',
212  'П': 'P',
213  'Р': 'R',
214  'С': 'S',
215  'Т': 'T',
216  'У': 'U',
217  'Ф': 'F',
218  'Ð¥': 'H',
219  'Ц': 'C',
220  'Ч': 'Ch',
221  'Ш': 'Sh',
222  'Щ': 'Sh',
223  'Ъ': '',
224  'Ы': 'Y',
225  'Ь': '',
226  'Э': 'E',
227  'Ю': 'Yu',
228  'Я': 'Ya',
229}
230const UKRAINIAN_MAP = {
231  'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', 'є': 'ye', 'і': 'i', 'ї': 'yi', 'ґ': 'g',
232}
233const CZECH_MAP = {
234  'č': 'c',
235  'ď': 'd',
236  'ě': 'e',
237  'ň': 'n',
238  'ř': 'r',
239  'Å¡': 's',
240  'Å¥': 't',
241  'ů': 'u',
242  'ž': 'z',
243  'Č': 'C',
244  'Ď': 'D',
245  'Ě': 'E',
246  'Ň': 'N',
247  'Ř': 'R',
248  'Å ': 'S',
249  'Ť': 'T',
250  'Å®': 'U',
251  'Ž': 'Z',
252}
253const POLISH_MAP = {
254  'ą': 'a',
255  'ć': 'c',
256  'ę': 'e',
257  'ł': 'l',
258  'ń': 'n',
259  'ó': 'o',
260  'ś': 's',
261  'ź': 'z',
262  'ż': 'z',
263  'Ą': 'A',
264  'Ć': 'C',
265  'Ę': 'E',
266  'Ł': 'L',
267  'Ń': 'N',
268  'Ó': 'O',
269  'Ś': 'S',
270  'Ź': 'Z',
271  'Å»': 'Z',
272}
273const LATVIAN_MAP = {
274  'ā': 'a',
275  'č': 'c',
276  'ē': 'e',
277  'Ä£': 'g',
278  'Ä«': 'i',
279  'Ä·': 'k',
280  'ļ': 'l',
281  'ņ': 'n',
282  'Å¡': 's',
283  'Å«': 'u',
284  'ž': 'z',
285  'Ā': 'A',
286  'Č': 'C',
287  'Ē': 'E',
288  'Ä¢': 'G',
289  'Ī': 'I',
290  'Ķ': 'K',
291  'Ä»': 'L',
292  'Ņ': 'N',
293  'Å ': 'S',
294  'Ū': 'U',
295  'Ž': 'Z',
296}
297const ARABIC_MAP = {
298  'Ø£': 'a',
299  'ب': 'b',
300  'ت': 't',
301  'Ø«': 'th',
302  'ج': 'g',
303  'Ø­': 'h',
304  'Ø®': 'kh',
305  'د': 'd',
306  'ذ': 'th',
307  'ر': 'r',
308  'ز': 'z',
309  'س': 's',
310  'Ø´': 'sh',
311  'ص': 's',
312  'ض': 'd',
313  'Ø·': 't',
314  'ظ': 'th',
315  'ع': 'aa',
316  'غ': 'gh',
317  'ف': 'f',
318  'ق': 'k',
319  'ك': 'k',
320  'ل': 'l',
321  'م': 'm',
322  'ن': 'n',
323  'ه': 'h',
324  'و': 'o',
325  'ي': 'y',
326}
327const LITHUANIAN_MAP = {
328  'ą': 'a',
329  'č': 'c',
330  'ę': 'e',
331  'ė': 'e',
332  'į': 'i',
333  'Å¡': 's',
334  'ų': 'u',
335  'Å«': 'u',
336  'ž': 'z',
337  'Ą': 'A',
338  'Č': 'C',
339  'Ę': 'E',
340  'Ė': 'E',
341  'Ä®': 'I',
342  'Å ': 'S',
343  'Ų': 'U',
344  'Ū': 'U',
345  'Ž': 'Z',
346}
347const SERBIAN_MAP = {
348  'ђ': 'dj',
349  'ј': 'j',
350  'љ': 'lj',
351  'њ': 'nj',
352  'ћ': 'c',
353  'џ': 'dz',
354  'đ': 'dj',
355  'Ђ': 'Dj',
356  'Ј': 'j',
357  'Љ': 'Lj',
358  'Њ': 'Nj',
359  'Ћ': 'C',
360  'Џ': 'Dz',
361  'Đ': 'Dj',
362}
363const AZERBAIJANI_MAP = {
364  'ç': 'c',
365  'ə': 'e',
366  'ğ': 'g',
367  'ı': 'i',
368  'ö': 'o',
369  'ş': 's',
370  'ü': 'u',
371  'Ç': 'C',
372  'Ə': 'E',
373  'Ğ': 'G',
374  'İ': 'I',
375  'Ö': 'O',
376  'Ş': 'S',
377  'Ü': 'U',
378}
379
380const ALL_DOWNCODE_MAPS = [
381  LATIN_MAP,
382  LATIN_SYMBOLS_MAP,
383  GREEK_MAP,
384  TURKISH_MAP,
385  RUSSIAN_MAP,
386  UKRAINIAN_MAP,
387  CZECH_MAP,
388  POLISH_MAP,
389  LATVIAN_MAP,
390  ARABIC_MAP,
391  LITHUANIAN_MAP,
392  SERBIAN_MAP,
393  AZERBAIJANI_MAP,
394]
395
396const Downcoder = {
397  'Initialize': function () {
398    if (Downcoder.map) { // already made
399      return
400    }
401    let k; let c
402    Downcoder.map = {}
403    Downcoder.chars = []
404    for (let i = 0; i < ALL_DOWNCODE_MAPS.length; i++) {
405      const lookup = ALL_DOWNCODE_MAPS[i]
406      for (c in lookup) {
407        if (Object.prototype.hasOwnProperty.call(lookup, c)) {
408          Downcoder.map[c] = lookup[c]
409        }
410      }
411    }
412    for (k in Downcoder.map) {
413      if (Object.prototype.hasOwnProperty.call(Downcoder.map, k)) {
414        Downcoder.chars.push(k)
415      }
416    }
417    Downcoder.regex = new RegExp(Downcoder.chars.join('|'), 'g')
418  },
419}
420
421export function slugify (value) {
422  Downcoder.Initialize()
423  let s = value.replace(Downcoder.regex, function (m) { return Downcoder.map[m] })
424  s = s.replace(/('|’)/g, ' ') // keep quotes as spaces
425  s = s.replace(/[^-\w\s]/g, '') // remove unneeded chars
426  s = s.trim() // trim leading/trailing spaces
427  s = s.replace(/[-\s]+/g, '-') // convert spaces to hyphens
428  s = s.toLowerCase() // convert to lowercase
429  return s
430}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.