1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017 年 7 月 26 日 |
---|
#581 在 文本处理
10,243 每月下载量
用于 40 个 crates (18 直接)
14KB
209 代码行
Slugify
一个用于灵活生成 slug 并处理 Unicode 的实用宏。
slugify!
宏实现了一个灵活的 slug 生成器,允许使用停用词、自定义分隔符和最大长度选项。该宏提供了一种简单的调用格式,具有合理的默认参数,但在需要时也可以覆盖这些默认参数。
功能
- 支持 Unicode 字符串(音译转换)。
- 支持自定义 slug 分隔符。
- 停用词过滤。
- 支持 slug 最大长度。
使用方法
此 crate 位于 crates.io 上,您可以通过将 slugify
添加到项目 Cargo.toml
文件中的依赖项来使用它
[dependencies]
slugify = "0.1.0"
并在 crate 根目录中添加以下内容
#[macro_use] extern crate slugify;
use slugify::slugify;
示例
基本 slug 生成
assert_eq!(slugify!("hello world"), "hello-world");
使用自定义分隔符
assert_eq!(slugify!("hello world", separator = "."), "hello.world");
assert_eq!(slugify!("hello world", separator = " "), "hello world");
停用词过滤
assert_eq!(slugify!("the quick brown fox jumps over the lazy dog", stop_words = "the,fox"), "quick-brown-jumps-over-lazy-dog");
最大 slug 长度
assert_eq!(slugify!("the hello world", stop_words = "the", max_length = 5), "hello");
音译转换和带重音的文本
assert_eq!(slugify!("影師嗎"), "ying-shi-ma");
assert_eq!(slugify!("Æúű--cool?"), "aeuu-cool");
assert_eq!(slugify!("Nín hǎo. Wǒ shì zhōng guó rén"), "nin-hao-wo-shi-zhong-guo-ren");
传递多个可选参数。
注意:可选参数的顺序很重要:停用词、分隔符然后是最大长度。所有这些都是可选的,但是在指定多个可选参数时,必须遵守此顺序。
assert_eq!(slugify!("the hello world", stop_words = "the", separator = "-"), "hello-world");
assert_eq!(slugify!("the hello world", separator = ".", max_length = 10), "the.hello");
assert_eq!(slugify!("the hello world", stop_words = "the", max_length = 5), "hello");
assert_eq!(slugify!("the hello world", stop_words = "the", separator = "-", max_length = 20), "hello-world");
依赖项
~2MB
~66K SLoC