URL Slug 生成器

直接在瀏覽器中將任何標題轉換為乾淨的 URL Slug —— 可以逐個轉換,也可以一次性處理整個清單。內建準確的西里爾字母和重音符號音譯標準,規則可編輯,並且絕不上傳任何內容。

請輸入要轉換的文字
進階選項

Slug 是網址中可讀的末尾部分 —— 例如 example.com/blog/my-first-post 中的 my-first-post。這是使用者在決定是否點擊之前可以閱讀的部分,也是搜尋引擎將其作為頁面內容簡短描述的部分,這就是為什麼它比資料庫 ID 或日期更值得花心思。這個免費的生成器能將任何文字轉換為 Slug:將標題貼到「要轉換的文字」中,點擊「產生」,結果就會出現在旁邊,並帶有一個複製按鈕。預設設定是大多數網站希望的配置 —— 「轉為小寫」、單字間使用連字號、移除常見的停用詞、音譯非拉丁字母 —— 因此只需點擊一下即可獲得可用的 Slug,而且所有這些設定都可以透過開關進行更改。

所有的處理都在您自己的裝置上進行。頁面載入了一個小型的 JavaScript 引擎並在本機執行:您的標題絕不會被上傳,也不會被記錄,即使斷開網路連線,該工具也能繼續運作。這也是為什麼當您更改設定時結果會立即更新的原因。處理的順序值得說明,因為正是它使輸出變得可預測:貼上的連結首先被縮減為最後的路徑段,然後文字被轉為小寫,接著移除停用詞,之後非拉丁字元被音譯,如果勾選的話則移除數字和特殊字元,然後剩下的內容將使用您選擇的分隔符號連接起來,接著結果會被裁剪到最大長度,最後,重複的項目會獲得一個數字後綴。「要轉換的文字」一次最多可接受 500,000 個字元,相當於幾千篇文章的標題。

一行輸入對應一個 Slug。貼上整個標題清單,每一行都會變成一個帶編號的 Slug,其上方的灰色文字顯示它對應的原始標題,因此即使在一批五十個結果中,您仍然可以分辨出哪個 Slug 屬於哪個標題。如果清單已經存在於檔案中,則無需透過剪貼簿:點擊輸入框旁邊的「從檔案載入」按鈕,打開一個純文字檔案(如 .txt、.csv、.md、.json 等),其內容就會直接填入欄位中。您的瀏覽器讀取該檔案的方式與讀取您輸入的內容完全相同,且不會上傳到任何地方。「輸入分割方式」決定了如何分割清單。「自動偵測」是預設設定:換行符號總是會分隔項目,而逗號僅在輸入為單行且所有部分看起來都像獨立值時才會起分隔作用 —— 因此「價格 1,500 元」和「第 5 章: 結果, 結論」會保持完整,而不會碎裂成片段。如果您已經清楚資料的格式,「換行」、「逗號」和「空格」允許您強制進行分割。「輸出格式」決定了獲取批次結果的方式 —— 換行、「以空格分隔」或「以逗號分隔」 —— 「全部複製」和「儲存為檔案」都會遵循該格式。「紀錄」會在您自己的瀏覽器中保留最近 10 次的批次處理結果,因此您在一小時前轉換的清單依然存在。

非拉丁文字是大多數 Slug 生成器只能做到大致準確、很少能做到完全準確的部分。URL 在純 ASCII 碼下是最安全的,因此西里爾字母、希臘語、阿拉伯語、中文以及帶重音的歐洲字母必須進行轉換,唯一的問題是遵循什麼規則。本頁面透過兩個層面來解決。通用層面覆蓋所有書寫系統:一個音譯庫能為您輸入的幾乎任何字元提供合理的 ASCII 轉換,這就是「音譯來源語言」選單中「自動 (任何語言)」的含義。特定層面是一組為那些通用轉換與國家實際使用情況不符的語言手工建構的表格;「音譯來源語言」選單中列出了目前已有表格的語言,而且隨著工具支援更多需要的語言,這個集合還在不斷增加。選擇其中一個會在「音譯規則」下方載入其對應的可編輯網格,每個字母都是一個您可以修改的文字欄位,而「將規則重設為預設值」則能將其恢復原樣。烏克蘭語表格遵循 2010 年內閣第 55 號決議,即烏克蘭護照中使用的標準,包括一些容易遺漏的細節:зг 變為 zgh 而不是 zh,以與 ж 區分開;є、ї、й、ю 和 я 在詞首有一種形式,在詞中則有另一種形式;撇號和軟音符號會被直接刪除而不會開啟新詞,所以 Знам'янка 會轉換為 znamianka 而不是 znamyanka。德語預設使用德國地址實際採用的擴展形式 ä → ae、ö → oe、ü → ue,如果您更喜歡,也可以選擇簡單的 ä → a 變體。

「移除停用詞」預設開啟。它會去掉那些徒增 Slug 長度卻不增加含義的小連接詞 —— 如 a、the、and、of、for 等。「停用詞」下方的清單是完全可編輯的,並且預設已經填好內容:包含一個英語清單以及目前頁面語言對應的清單,所以烏克蘭語頁面認識 в、на、та 和 і,德語頁面認識 der、die 和 das。您可以添加自己的詞彙,刪除想要保留的詞彙,或者完全關閉此功能,此時該欄位會變為灰色而不是假裝仍起作用。關於它有兩點需要說明。移除停用詞主要是為了讓地址變得更短、更整潔,而不是提升排名的手段 —— 它不能帶來更好的位置。另外,如果標題中的每個詞碰巧都在清單裡,最終的結果就什麼都沒有,該工具會直接告訴您這一點,而不是給您一個空框。

其餘的開關決定了 Slug 的形態。「Slug 分隔符號」選擇單字之間放置什麼字元,預設使用連字號並不是品味問題:Google 將連字號視為單字間的分隔符號,而將底線視為連接字元,因此 my_first_post 會被爬蟲讀取為一個長詞,而 my-first-post 會被讀取為三個詞。「底線 (_)」提供給那些堅持使用它的系統。「轉為小寫」保持開啟,因為大多數伺服器區分地址的大小寫,混用大小寫很容易導致同一個頁面出現兩個 URL。「移除特殊字元」會剝離所有非字母、非數字、非空格、非連字號或底線的內容,這能將標點符號、引號和表情符號排除在地址之外 —— 特別是表情符號會在音譯之前被移除,以防止火箭表情變成 rocket 這個詞。預設沒有勾選「移除數字」,因為標題中的數字通常是標題的一部分。「最大長度」範圍從 10 到 200,預設值為 80;當 Slug 超過該長度時,引擎會在放得下的最後一個完整單字處截斷,而不是從中間切斷某個詞。每個結果旁邊的數字代表其字元長度,超過 60 時會變紅 —— 這並非硬性限制,而是 Slug 在搜尋結果中開始被截斷、且貼上到訊息中變得尷尬的臨界點。

還有兩個開關,因為它們能讓批次轉換回歸一鍵操作。「使 Slug 保持唯一」用於捕捉兩個不同標題轉化為相同 Slug 的情況 —— 「熱門 10 技巧」和「熱門-10 技巧」都會變成 remen-10-jiqiao —— 它會給第二個添加 -2,第三個添加 -3,如果後綴會超出您的最大長度,它會先縮短基礎部分。兩個頁面使用同一個地址的問題,在這個清單中捕捉要比在您的 CMS 中處理便宜得多。「從貼上的 URL 提取 Slug」則反向運作:貼上完整的連結,工具會提取路徑的最後一部分,去掉查詢字串以及任何 .html 或 .php 後綴,並解碼百分號編碼。例如,一個以 %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 結尾的維基百科連結,轉換後會得到 lviv 而不是一串十六進位數字。它僅在整行都是連結時才會觸發,因此句子內部引用的網址會保持原樣。

為什麼選擇這款 Slug 生成器?

任何需要攜帶可讀地址的頁面都需要 Slug。部落格或新聞網站會將每個標題都轉換為一個 Slug,這也是這款工具設計的初衷所在:貼上一週的頭條,獲取一週的 URL。線上商店針對產品和類別名稱進行相同的操作,通常在匯入後批次處理,且通常使用地址無法支援的字母系統語言。文件和知識庫也以同樣的方式建構錨點和檔案名稱。除了網址,同樣的乾淨字串也是跨作業系統不會出錯的檔案名稱、日誌中人眼可讀的資料庫鍵、分支名稱、媒體庫中的圖片名稱,或者是靜態網站產生器中區塊的識別碼。凡是人類可讀名稱需要存活於機器可讀欄位的地方,就是 Slug 的用武之地。

在依賴它之前,有幾個限制值得了解。這是一個生成器,而不是驗證器:它不會檢查某個 Slug 在您的網站上是否已被佔用,因為它完全不知道您的網站包含什麼 —— 它所保證的唯一性僅限於您面前的這批資料中。重新導向也是您的工作;更改已發布頁面的 Slug 會破壞其舊地址,這是由您的 CMS 而不是此工具決定的。「儲存為檔案」寫入的是純文字,不是 CSV 或 JSON。自動分割功能對逗號做出的判斷在絕大多數情況下都是正確的,但並非完美無缺,這正是「輸入分割方式」允許您推翻它的原因。而且音譯是一種約定而不是翻譯 —— 臺北(Taipei)的通用拼寫並非拼音 taibei,高雄(Kaohsiung)也不是 gaoxiong —— 因此,如果某個頁面在目標語言中已經有既定名稱,那麼該名稱將比對原文的任何自動轉換更適合作為 Slug。

FAQ

如何建立一個 URL Slug?

將您的標題貼到「要轉換的文字」中,然後點擊「產生」。結果連同一個複製按鈕會出現在旁邊。預設設定採用了大多數網站想要的配置:小寫、單字之間用連字號、移除連接詞以及非拉丁字母音譯。所有這些設定都是您可以調整的開關,而「進階選項」則包含了其餘內容 —— 分隔符號、最大長度、停用詞清單以及音譯規則。

我可以一次性轉換整個標題清單嗎?

可以。您可以貼上多達 500,000 個字元 —— 相當於幾千個頭條新聞 —— 或者透過輸入框旁邊的「從檔案載入」按鈕直接從檔案中讀取,它會在瀏覽器中讀取而無需上傳。每一行都會成為一個帶編號的獨立 Slug,它的原始標題顯示在上方,以便您對應檢查。「輸入分割方式」控制清單的分割方式,「輸出格式」決定批次結果是按行返回、「以空格分隔」還是「以逗號分隔」,而「全部複製」和「儲存為檔案」都能一次性提取所有內容。

這個生成器如何處理西里爾字母和重音字母?

它分兩層將它們音譯為 ASCII 碼。任何書寫系統 —— 西里爾文、希臘文、阿拉伯文、中文、帶重音的拉丁文 —— 都在通用音譯庫的覆蓋範圍內,這也是「自動 (任何語言)」所使用的。在此之上,對於那些通用轉換與國家實際使用不符的語言,還提供了手工建構的表格;「音譯來源語言」選單中列出了目前已有表格的語言。選擇其中一個即可載入其對應的表格,且每個字母都支援編輯。繁體中文沒有單獨的表格,由通用層處理:它會正確識別繁體字並按字給出無聲調的漢語拼音,臺灣 變成 taiwan,臺北 變成 taibei,高雄 變成 gaoxiong。有兩點需要事先知道。第一是破音字。通用層為每個字取最常見的讀音,所以讀音不止一個的字有時會選錯 —— 重慶 會變成 zhongqing 而不是 chongqing,銀行 會變成 yinxing 而不是 yinhang,長城 會變成 zhangcheng 而不是 changcheng。第二是沒有詞的邊界,整句會連成一串:中文網站 變成 zhongwenwangzhan。想要乾淨的結果,直接輸入拼音並用空格分詞即可 —— zhong wen wang zhan 會變成 zhong-wen-wang-zhan。

烏克蘭語使用哪種音譯標準?

遵循 2010 年 1 月 27 日內閣第 55 號決議 —— 烏克蘭護照中使用的標準。它包括了那些容易出錯的部分:зг 變為 zgh 以保持與 ж 區分,字母 є、ї、й、ю 和 я 在詞首和詞中有不同的形式,撇號和軟音符號會被丟棄且不會作為新詞的開頭,因此 Знам'янка 會變成 znamianka 而不是 znamyanka。如果您更喜歡簡單的外觀,也可以選擇到處都使用 ya、yu 和 yi 的第二種變體。

我可以修改某個特定字母的音譯方式嗎?

可以。打開「音譯規則」,表格中的每一個字母都是一個文字欄位:您可以輸入任何想要的轉換結果,輸出也會隨之即時更新。清空欄位會完全移除該字母。您的修改會被保存在您自己的瀏覽器中供下次使用,而點擊「將規則重設為預設值」即可隨時恢復標準表格。

什麼是停用詞,我應該移除它們嗎?

它們是那些沒有實際含義卻會讓 Slug 變長的小連接詞,如 a、the、and、of、for 等。移除它們預設是開啟的,並且「停用詞」下方的清單是可編輯的,預先填入了一個英語清單以及目前頁面語言對應的清單。不過要對它的好處保持誠實:這只會產生更短、更整潔的地址,而不會帶來更好的搜尋排名。如果一個標題完全由停用詞組成,工具會提示您,而不是返回一個空 Slug。

Slug 中應該使用連字號還是底線?

使用連字號,除非您的技術堆疊有其他要求。Google 將連字號視為單字間的分隔符號,而將底線視為連接字元,因此 my_first_post 會被解讀為一個長詞,而 my-first-post 會被解讀為三個詞。生成器出於這個原因預設使用連字號;「Slug 分隔符號」則為需要的系統提供了「底線 (_)」的選項。

URL Slug 應該多長?

足夠短以至於一眼就能讀懂 —— 前幾個詞承載了含義,剩下的通常是句子的尾巴。每個結果旁邊的數字表示其字元長度,超過 60 時會變紅,這大致是搜尋結果開始截斷,以及貼上到訊息中變得尷尬的地方。「最大長度」設定了 10 到 200 個字元的硬上限,預設值為 80。

當 Slug 過長時,它會把單字從中間切斷嗎?

不會。當 Slug 超過最大長度時,引擎會退回到放得下的最後一個完整單字並在那裡截斷,因此截斷後的 Slug 讀起來依然是一個個單字,而不是在音節中間結束。這同樣適用於重複項添加數字後綴的情況:它會先縮短基礎部分,確保最終的 Slug 仍符合您的限制。

如果兩個標題生成了相同的 Slug 會怎樣?

「使 Slug 保持唯一」預設開啟並負責處理這種情況:第一次出現的保持原始 Slug,第二次添加 -2,第三次添加 -3,以此類推。它捕捉了兩個不同標題轉化為相同內容的常見情況 —— 熱門 10 技巧 和 熱門-10 技巧 都會變成 remen-10-jiqiao。將其關閉會給您包含重複項的原始輸出。請注意,唯一性僅在您剛才轉換的那批資料中得到保證;工具無法知曉您的網站上已經存在哪些內容。

我可以貼上一個 URL 而不是標題嗎?

可以。「從貼上的 URL 提取 Slug」預設是開啟的,當整行是一個連結時,工具會提取路徑的最後一部分,丟棄查詢字串和任何 .html 或 .php 後綴,並解碼百分號編碼 —— 所以一個以 %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 結尾的維基百科地址轉換後會得到 lviv,而不是一串十六進位代碼。它僅在整行都是連結時才會觸發,因此句子內部引用的 URL 將被視為普通文字。

我的文字會被發送到伺服器嗎?

不會。轉換作為本機 JavaScript 執行在您的瀏覽器中。不會上傳任何內容,也不會記錄任何內容,並且在頁面載入完成後,即使斷開網路連線也能繼續運作。未發布的頭條新聞、內部產品名稱和客戶工作都保留在您的裝置上,這也是對於這類特定任務,首選本機工具而非伺服器端工具的實際原因。

為什麼我的單句被分成了兩個 Slug?

因為它包含了一個逗號,而且「輸入分割方式」被設定為了「自動偵測」。該模式將換行符號視為明確的分隔符號,將逗號視為可能的分隔符號。只有當單行的所有部分看起來都像獨立值時,它才會以逗號進行分割 —— 像 3,5 這樣的十進位數(或 1,500 元等金額)或帶有冒號的句子會故意保留完整。如果標題仍然被錯誤地分割了,請將「輸入分割方式」設定為「換行」,這樣輸入只會在您實際按下 Enter 鍵的地方被切斷。