文字與日常工具·文字工具包
URL slug 約定:連字號、小寫字母以及 RFC 3986 允許的內容
· 背景
url-slugs 內容管理 文字工具
解釋 slug 的來源、RFC 3986 保留哪些字元、為什麼連字符勝過下劃線、為什麼小寫字母很重要,以及這些規則如何塑造 slug 產生器產生的內容。
沒人可以大聲朗讀的 URL — 空格為 %20、破壞連結的大寫字母以及為什麼存在 slugs
直接複製到 URL 時,諸如 `New Product Launch 2026` 之類的頁面路徑會很尷尬。空格需要另一種表示方式,混合大寫字母會導致打字不一致,標點符號會使位址更難以掃描。 slug 為頁面提供了人們可以在網站名稱旁邊識別的緊湊路徑段。
儲存庫沒有記錄 slugs 的起源時間或證明其採用的普遍原因,因此這裡有用的問題是可操作的。網站擁有者需要進行一次從可編輯標題到可發佈路徑的可重複轉換。 ToolAcre 提供了這種轉換,而不假裝結果保留了每個印刷細節。
沒有人可以大聲朗讀的 URL,而無需將未記錄的起源故事分配給蛞蝓
ToolAcre 不會實作通用 RFC 3986 解析器或驗證器。它的 `slugify` 函數規範化輸入,刪除組合標記,小寫結果,用選定的分隔符號替換字母和數字以外的字符,並修剪兩端的分隔符。這些由來源支援的規則比廣泛的標準標籤更精確地定義了該產生器。
在製定內容管理策略時,這種差異很重要。某個字元可能在 URL 中的某個位置可用,但仍會被該特定的 slug 轉換刪除。將產生的路徑視為編輯約定,而不是視為其他系統接受的每個合法 URL 字元、保留分隔符號或百分比編碼表示的完整清單。
這個 slug 實作接受什麼,而不是完整的 RFC 3986 解釋
連字符是 `slugify` 中的預設分隔符,連續的標點符號或空格會折疊到同一分隔符中。因此,標題 `Quarterly report: costs & margins` 變成 `quarterly-report-costs-margins`,而不是暴露路徑中的冒號、與號或空格。輸出仍然明顯地分為單字。
來源並未確定連字符透過特定的搜尋引擎決策擊敗了下劃線,因此歷史不應在此作為事實呈現。合理的指導更簡單:為網站選擇一種分隔符,一致地應用它,並避免手動混合僅因為不同的編輯遵循不同的習慣而有所不同的表單。
連字符作為此產生器的分隔符,而不宣告不受支援的搜尋引擎歷史記錄
在傳回 slug 之前套用小寫。這使得 `About Our Team`、`ABOUT OUR TEAM` 和 `about our team` 在此轉換下收斂於 `about-our-team`。可預測的小寫路徑更容易從標題中複製,並避免創建唯一可見差異是大寫的編輯變體。
兩個不同大小寫的路徑是否解析為相同資源取決於周圍的主機、路由器、部署和重定向規則;此文字實用程式無法確定該行為。實際的 CMS 規則是發布一個小寫規範路徑,並使任何重定向策略在其他地方明確顯示,而不是依賴有關案例處理的未經驗證的假設。
長度、停用詞和穩定性 - 關於在 slug 中保留什麼和刪除什麼的實用指南
並不是越短越好。保留可以讓編輯將頁面與附近內容區分開來的詞語,尤其是產品、任務或主題名稱。僅當剩餘路徑仍然具體時才刪除措辭。當多篇文章隨後爭奪相同的候選路徑時,簡短但不明確的 slug 會產生維護工作。
ToolAcre 在其底層函數中支援 `maxLength` 選項,但大小寫轉換器配置描述的是整個文字 slug 操作,而不是可見的長度控制。更重要的是,截斷不是一種編輯策略。在發布之前決定哪些單字很重要,然後在發布後標題措辭發生變化時保持所選的標題穩定。
工作範例 - 將三個真實的標題變成標題並根據規則檢查每個標題
考慮三個標題。 `Cafes, Costs & Margins` 變成 `cafes-costs-margins`;`Launch Notes: Version 2` 變成 `launch-notes-version-2`;並 `A Guide to Better Page Names` 變成 `a-guide-to-better-page-names`。每個結果都是小寫的,在保留的單字之間使用連字符,並刪除非字母或數字的標點符號。
第一個範例故意是純 ASCII,但相同的來源規則可以將分解的重音從拉丁字母折疊為其基本形式。在將每個結果分配給內容之前先對其進行審查:該功能不了解品牌拼字、首選縮寫、重複路線或編輯團隊認為不必要的單字。
這不包括什麼 — 國際化網域名稱以及在 URL 中保留非拉丁文字的選擇
此實作不會普遍丟棄非拉丁字母。正規表示式保留跨腳本的字母和數字,而配置規定 slugs 將非拉丁腳本保持小寫而不進行音譯。因此,聲稱該工具始終將標題轉換為 ASCII 將與原始程式碼和已發布的工具限制相矛盾。
此轉換也不配置國際化網域名稱、選擇主機名稱或在書寫系統之間音譯單字。這些是單獨的政策決定。對於多語言站點,測試實際 CMS 和路由堆疊中產生的路徑,然後確定保留的腳本還是單獨編寫的翻譯最適合該站點。
非拉丁字母被保留;音譯和網域不在此轉換範圍內
有用的 slug 策略可以很簡潔:從頁面標題開始,將其小寫,用連字符連接識別的單詞執行,刪除周圍的分隔符,保留有意義的數字,並在發布之前檢查結果是否清晰。在 CMS 規則中記錄衝突和重新導向行為,因為文字轉換無法檢查現有路由或保護入站連結。
文字大小寫轉換器在一個動作中應用機械部分。貼上標題,選擇 slug 轉換,並在將輸出複製到頁面路徑之前檢查輸出。它會折疊受支援的重音符號、刪除符號、折疊分隔符號並產生小寫文字,從而將內容含義和長期 URL 穩定性留給編輯器。