Bahasa Melayu

Teks & alat harian · Kit Alat Teks

Cara penjana slug melipat aksen: NFD penguraian dijelaskan

· Bagaimana ia berfungsi

url-slug penukaran teks javascript

Huruf beraksen dipisahkan menjadi huruf asas dan tanda sebelum menjadi URL slug
Ilustrasi vektor ToolAcre asal

Menerangkan cara penguraian kanonik Unicode memisahkan huruf asas daripada aksennya supaya 'Café Crème' menjadi cafe-creme dan bukannya caf-cr-me, dan apabila penguraian sahaja tidak mencukupi.

caf-cr-me — pepijat slug biasa yang merosakkan nama, dan sebab ia berlaku

Rutin slug yang lemah boleh menukar `Café Crème` kepada `caf-cr-me` apabila ia memadamkan setiap aksara di luar julat ASCII yang sempit. Aksen yang boleh dilihat hilang, tetapi huruf asas di bawahnya hilang bersamanya, meninggalkan URL yang tidak lagi menyerupai tajuk artikel. Kerosakan itu amat ketara dalam nama, tempat dan kategori editorial berulang.

ToolAcre mengambil jalan yang berbeza dalam `slugify`. Ia mula-mula menormalkan input, kemudian mengalih keluar julat tertentu gabungan tanda sambil mengekalkan huruf yang terhasil. Sahaja selepas itu ia menggunakan huruf kecil pemisah teks dan bentuk. Urutan itu ialah sebab `Café Crème` menjadi `cafe-creme` dan bukannya serpihan dengan vokal yang hilang.

Satu aksara, dua perwakilan — bagaimana é boleh menjadi satu titik kod atau e diikuti dengan gabungan aksen akut

Teks yang kelihatan sama boleh mempunyai urutan dalaman yang berbeza. `é` mungkin tiba sebagai satu aksara yang telah dirangka, atau sebagai `e` biasa diikuti dengan gabungan tanda akut. Editor kandungan biasanya tidak dapat melihat perwakilan mana yang datang daripada CMS, dokumen atau papan keratan, namun penapis aksara demi aksara boleh mengendalikan kedua-dua input secara berbeza.

Perbezaan tersembunyi itu penting apabila peraturan penggantian mengiktiraf satu bentuk tetapi tidak yang lain. ToolAcre mengelak daripada menulis penggantian yang berasingan untuk setiap ejaan yang diprakarang. Normalisasi memberikan saluran paip slug bentuk perantaraan yang lebih konsisten, jadi tanda aksen yang disokong boleh dialih keluar satu langkah kemudian sementara huruf asas kekal tersedia untuk URL.

Borang Normalisasi D — bagaimana penguraian kanonik menulis semula setiap huruf beraksen menjadi huruf asas ditambah tanda gabungan

Pelaksanaan memanggil `.normalize("NFD")` sebelum sebarang kerja kecil atau pemisah. Untuk aksara yang mempunyai penguraian kanonik yang dikendalikan oleh masa jalan JavaScript, ini menghasilkan aksara asas diikuti dengan satu atau lebih tanda gabungan. Fungsi ini tidak mengekalkan katalog sendiri ejaan Perancis atau Sepanyol dan tidak memeriksa perkataan secara semantik.

Garis besar mengatakan NFD menulis semula setiap huruf beraksen, tetapi sumber menyokong pernyataan yang lebih sempit. Penguraian bergantung pada aksara dan ungkapan penyingkiran berikut meliputi titik kod dari `U+0300` hingga `U+036F`. Oleh itu, artikel harus menerangkan tingkah laku yang ditunjukkan oleh kod dan bukannya menjanjikan penyingkiran aksen universal untuk setiap skrip atau tanda.

NFD menguraikan aksara yang disokong; pelaksanaannya tidak menjanjikan setiap huruf beraksen berpisah

Selepas penormalan, `slugify` menggunakan `/[̀-ͯ]/g` dan menggantikan setiap tanda padanan dengan rentetan kosong. Dalam bentuk terurai `é`, `e` tidak sepadan dengan julat itu, manakala tanda akut sepadan. Mengalih keluar sahaja tanda meninggalkan huruf asas yang boleh dibaca yang pendekatan ASCII-sahaja akan dibuang.

Ini ialah lipatan aksen, bukan pas pembersihan teks umum. Ungkapan biasa sengaja diletakkan sebelum peraturan untuk pemisah, membenarkan huruf asas untuk mengambil bahagian sebagai surat kemudian. Jika penyingkiran tanda berlaku selepas larian yang tidak disokong telah pun runtuh, tanda reput boleh mempengaruhi peletakan pemisah dan menghasilkan slug yang kurang setia.

Selebihnya saluran paip slug — sarung kecil, larian bukan abjad angka yang runtuh ke tanda sempang tunggal, memotong pemisah di hadapan dan di belakang, menjatuhkan emoji

Saluran paip yang selebihnya menggunakan huruf kecil teks yang dinormalkan dan menggantikan setiap larian yang bukan huruf atau nombor Unikod dengan pemisah yang dikonfigurasikan, yang lalai kepada tanda sempang. Ungkapan kedua memangkas pemisah berulang dari kedua-dua hujungnya. Oleh itu, emoji dan tanda baca hilang sebagai kandungan, manakala aksara yang tidak disokong bersebelahan menjadi satu sempadan dan bukannya beberapa sempang.

Garis besar menerangkan keruntuhan bukan abjad angka, tetapi corak sebenar menggunakan sifat Unicode pelepasan aksara, bukan abjad ASCII sahaja. Huruf daripada skrip bukan Latin boleh kekal dalam slug selepas huruf kecil. Konfigurasi mengesahkan tiada langkah transliterasi: simbol dialih keluar, tetapi huruf yang dikekalkan tidak ditulis semula secara automatik sebagai anggaran ejaan Latin.

Selebihnya saluran paip slug ini menyimpan huruf dan digit daripada mana-mana skrip sambil menggantikan larian lain dengan pemisah yang dipilih

Ikuti `Café Crème & Co. — Été 2024!` melalui pelaksanaan. NFD memisahkan aksara beraksen yang disokong kepada huruf asas dan tanda. Ungkapan penyingkiran tanda meninggalkan `Cafe Creme & Co. — Ete 2024!` dan huruf kecil menghasilkan `cafe creme & co. — ete 2024!` sebelum tanda baca diproses.

Larian bukan huruf dan bukan nombor kemudian menjadi tanda sempang, menghasilkan urutan yang bermakna `cafe-creme-co-ete-2024` selepas pemisah di hadapan dan di belakang dipangkas. Ampersan, noktah, sempang dan tanda seru tidak menerima nama yang disebut atau penggantian tersuai. Ia sahaja berfungsi sebagai sempadan antara larian huruf dan nombor dalam penukaran ini.

Perkara yang tidak boleh dilakukan oleh penguraian — huruf seperti ø, ł, ß dan æ tidak mempunyai aksen untuk dilucutkan dan memerlukan jadual transliterasi

Penguraian bukan transliterasi. Watak seperti `ø`, `ł`, `ß` dan `æ` masih huruf Unicode selepas saluran paip ini, jadi penapis berasaskan harta menyimpannya daripada merujuk jadual untuk `o`, `l`, `ss` atau `ae`. Mendakwa bahawa pengguna memerlukan jadual transliterasi mungkin nasihat reka bentuk yang berguna di tempat lain, tetapi tiada jadual sedemikian wujud dalam alat ini.

Perbezaan itu juga menerangkan sebab hasilnya mungkin slug projek yang sah tanpa ASCII-sahaja. Editor yang sistem penerbitannya memerlukan ASCII harus menyemak kekangan sistem yang berasingan itu sebelum menggunakan output. ToolAcre menjanjikan lipatan aksen untuk julat penguraian dan tanda yang dilaksanakan; ia tidak menjanjikan ejaan yang memahami bahasa, penukaran boleh balik atau output Latin untuk setiap tajuk.

Aksara tanpa tanda boleh tanggal kekal huruf; alat ini tidak mempunyai jadual transliterasi

Bawa pulang yang boleh dipercayai adalah prosedur: normalkan dahulu, keluarkan tanda gabungan yang disokong, huruf kecil, runtuhkan larian yang tidak disokong dan potong pemisah. Setiap peringkat mempunyai satu tanggungjawab yang boleh dilihat, dan urutannya mengekalkan huruf asas sebelum tanda baca dibuang. Itu sudah cukup untuk mengelakkan kegagalan `caf-cr-me` biasa tanpa mencipta peraturan bahasa yang tidak terkandung dalam sumber.

Tampalkan tajuk yang dikerjakan ke dalam penukar kes teks dan pilih pilihan slug untuk memeriksa hasil akhir dalam kotak teks yang sama. Jika tajuk termasuk huruf di luar kes aksen yang ditunjukkan, semak output terhadap platform destinasi. Penukar membekalkan transformasi sisi pelayar yang boleh diramal, manakala editor tetap bertanggungjawab untuk konvensyen laluan.