Python-Slugify:创建对搜索引擎友好的 Unicode 网址别名
Python-Slugify: 您的首选工具,旨在生成简洁、对搜索引擎友好的“短语网址”
在网络开发和数据管理领域,将人类可读的文本转换为对 URL 友好的字符串(即“短语网址”或“slug”)是一项常见的需求。无论是博客文章的 URL、图片文件名,还是数据库中的唯一标识符,短语网址在提高可用性和搜索引擎优化(SEO)方面都扮演着关键角色。
python-slugify 应运而生,它是一个功能强大且高度可配置的 Python 库,旨在以出色的优雅方式处理这项任务,尤其是在处理复杂的 Unicode 字符时。
什么是短语网址(Slug)?
短语网址是 URL 的一部分,它以人类可读的关键词格式识别特定页面。例如,在 yourwebsite.com/blog/my-awesome-post-title
中,my-awesome-post-title
就是短语网址。
为什么选择 python-slugify?
该库在处理 Unicode 字符串方面表现出色,这是更简单的短语网址生成工具常常忽视的一个特性。它能智能地将各种语言的字符转换为对应的 ASCII 字符,确保您的短语网址具有普遍兼容性和实际意义。
主要特点:
- Unicode 支持: 无缝转换国际字符(例如,'C\'est déjà l\'été.' 变为 'c-est-deja-l-ete';'影師嗎' 变为 'ying-shi-ma')。
- 可定制选项: 提供多种参数来控制输出,包括:
entities
、decimal
、hexadecimal
:处理 HTML 实体。max_length
、word_boundary
、save_order
:控制短语网址长度和单词完整性。separator
:定义用于分隔单词的字符(默认为连字符-
)。stopwords
:移除常用的词,例如“the”、“in”、“a”,以保持短语网址简洁。regex_pattern
:应用自定义正则表达式进行高级字符过滤。lowercase
:可选择保留原始大小写。replacements
:定义自定义字符或字符串替换(例如[['|', 'or']]
)。allow_unicode
:如果需要,保留原始 Unicode 字符。
-
易于安装: 可通过 pip 安装,轻松集成到您的 Python 项目中。
pip install python-slugify # 或者,使用替代的 unidecode 包: pip install python-slugify[unidecode]
-
命令行工具: 附带一个便捷的
slugify
命令行工具,可直接在终端中进行快速转换。echo "Taking input from STDIN" | slugify --stdin # 输出:taking-input-from-stdin slugify taking input from the command line # 输出:taking-input-from-the-command-line
如何使用:
使用 python-slugify
非常直观。只需导入 slugify
函数并传入您的文本即可:
from slugify import slugify
# 基本用法
txt = "This is a test ---"
r = slugify(txt)
print(r) # 输出:this-is-a-test
# 处理非英文字符
txt = 'Компьютер'
r = slugify(txt)
print(r) # 输出:kompiuter
# 结合 max_length 和 word_boundary
txt = 'jaja---lol-méméméoo--a'
r = slugify(txt, max_length=15, word_boundary=True)
print(r) # 输出:jaja-lol-a
# 移除停用词
txt = 'the quick brown fox jumps over the lazy dog'
r = slugify(txt, stopwords=['the'])
print(r) # 输出:quick-brown-fox-jumps-over-lazy-dog
# 自定义替换
txt = '10 | 20 %'
r = slugify(txt, replacements=[['|', 'or'], ['%', 'percent']])
print(r) # 输出:10-or-20-percent
许可证和依赖
python-slugify
采用 MIT 许可证发布,可供商业和个人免费使用。默认情况下,它使用 text-unidecode
进行解码,该库受 GPL 和 Perl Artistic 许可证保护。对于有偏好的用户,也可以安装替代的 Unidecode
(GPL)包。
贡献
本项目欢迎贡献。开发者在提交拉取请求前,请务必阅读贡献指南。
python-slugify
在 GitHub 上拥有超过 1.5k 颗星和 110 个分支,是一个维护良好且广泛使用的工具,它简化了网络内容管理中的一个关键环节。其灵活性和全面的功能集使其成为任何 Python 开发者工具箱中宝贵的补充。