1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017 年 7 月 26 日

#581文本处理

Download history 3396/week @ 2024-03-15 3224/week @ 2024-03-22 2987/week @ 2024-03-29 3299/week @ 2024-04-05 3037/week @ 2024-04-12 3921/week @ 2024-04-19 2897/week @ 2024-04-26 2500/week @ 2024-05-03 2882/week @ 2024-05-10 2833/week @ 2024-05-17 3466/week @ 2024-05-24 3104/week @ 2024-05-31 2760/week @ 2024-06-07 3101/week @ 2024-06-14 2357/week @ 2024-06-21 1537/week @ 2024-06-28

10,243 每月下载量
用于 40 个 crates (18 直接)

MIT 许可证

14KB
209 代码行

Slugify

Build Status Build status Crates.io docs.rs License: MIT

一个用于灵活生成 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