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 上方都會顯示源標題
- 提供各語言真實的音譯標準,而非對所有語言使用單一通用表
- 烏克蘭語遵循 2010 年第 55 號決議 —— 護照中使用的拼寫規範
- 每一個規則都可以逐個字母進行編輯,並支援一鍵重設
- 自動添加 -2 和 -3 後綴,確保批次處理時沒有兩個 Slug 發生衝突
- 貼上連結即可提取出 Slug,並自動解碼百分號編碼
- 帶有可編輯的停用詞清單,自動為您目前語言填好預設詞彙
- 確保在完整單字處安全截斷,並在每個結果旁顯示字元數
- 免費且無限制:無需註冊,沒有額度限制,我們的伺服器不保留任何內容
任何需要攜帶可讀地址的頁面都需要 Slug。部落格或新聞網站會將每個標題都轉換為一個 Slug,這也是這款工具設計的初衷所在:貼上一週的頭條,獲取一週的 URL。線上商店針對產品和類別名稱進行相同的操作,通常在匯入後批次處理,且通常使用地址無法支援的字母系統語言。文件和知識庫也以同樣的方式建構錨點和檔案名稱。除了網址,同樣的乾淨字串也是跨作業系統不會出錯的檔案名稱、日誌中人眼可讀的資料庫鍵、分支名稱、媒體庫中的圖片名稱,或者是靜態網站產生器中區塊的識別碼。凡是人類可讀名稱需要存活於機器可讀欄位的地方,就是 Slug 的用武之地。
在依賴它之前,有幾個限制值得了解。這是一個生成器,而不是驗證器:它不會檢查某個 Slug 在您的網站上是否已被佔用,因為它完全不知道您的網站包含什麼 —— 它所保證的唯一性僅限於您面前的這批資料中。重新導向也是您的工作;更改已發布頁面的 Slug 會破壞其舊地址,這是由您的 CMS 而不是此工具決定的。「儲存為檔案」寫入的是純文字,不是 CSV 或 JSON。自動分割功能對逗號做出的判斷在絕大多數情況下都是正確的,但並非完美無缺,這正是「輸入分割方式」允許您推翻它的原因。而且音譯是一種約定而不是翻譯 —— 臺北(Taipei)的通用拼寫並非拼音 taibei,高雄(Kaohsiung)也不是 gaoxiong —— 因此,如果某個頁面在目標語言中已經有既定名稱,那麼該名稱將比對原文的任何自動轉換更適合作為 Slug。