多语言URL别名生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/generate-stable-url-slugs-from-multilingual-titles-before-publishing-pages-docs-or-filenames
技能介绍
当标题需要变成 URL 时,你会遇到的问题
无论是发布技术文档、生成静态页面,还是输出可下载的文件,标题里一旦混入中文、日文、阿拉伯文或各种 emoji,直接拼接 URL 往往会带来:
- Unicode 字符导致路径不可读:
/blog/你好,世界在部分服务器或代理上可能被截断,甚至触发 404。 - 大小写、空格、标点不统一:同一篇文章可能因为
Hello World、hello-world、hello_world三种写法得到三个不同的路径,搜索引擎会认为是重复内容。 - 重复标题产生不同别名:
如何设计 API和如何设计-API看起来一样,但生成的 slug 可能完全不同,导致链接无法复用。 - 特殊符号破坏 URL 结构:
#、?、&等字符如果不处理,会直接改变请求的含义。
这个技能做了什么
它把“标题 → slug”这件事拆成两个核心动作:
- 转写与规范化:基于
python-slugify,将任意语言的标题先进行 Unicode 分解和音译,再统一转成 ASCII 安全字符。例如你好会被转写为ni-hao,café变成cafe。 - 可选 Unidecode 增强:如果安装了
python-slugify[unidecode],非拉丁语系的音译效果会更自然,尤其是中文、日文、韩文等没有直接 ASCII 对应字符的语言。
调用时只需把标题字符串传入,技能会自动完成:
- 移除 HTML 标签和多余空白;
- 将大写转为小写;
- 用连字符
-替代空格和标点; - 生成一个可重复、可预测的 slug。
它不依赖任何网络请求,所有操作都在本地完成,适合在 CI/CD 脚本、文档生成器或文件名批量处理工具里直接调用。
适用边界与注意点
- 只做转写,不做发布:它不会帮你创建路由规则、生成重定向或部署页面,输出的 slug 需要你自己接到现有流程里。
- 音译结果受依赖影响:默认的 ASCII 音译在部分生僻字或少数民族语言上可能效果一般,安装 Unidecode 可以覆盖更多场景,但需要额外安装 GPL 许可的依赖。
- 不处理语义去重:如果标题本身是“苹果”和“apple”,它不会知道这两个词含义相同,只会分别转写。语义层面的合并需要额外逻辑。
使用场景
- 在 CMS 发布后台中,把中文或日文标题转成 ASCII slug 作为页面 URL 别名
- 在静态博客生成器里,为多语言 Markdown 文章标题生成一致的文件名
- 在 API 文档站点中,将含中文的接口名转为稳定的英文 slug 用于路由路径
- 在批量文件上传服务中,用原始多语言标题生成安全的下载文件名
适合人员
- 内容管理系统开发者,需要在后台为多语言文章自动生成 URL 别名
- 静态站点生成器维护者,需要让含中文标题的 Markdown 文章生成一致的文件名
- 后端工程师,需要从用户提交的多语言标题中生成稳定的记录 ID 或文件名
- 文档平台开发者,需要为多语言 API 文档生成统一的路由 slug