#slug #slugify #string #generate #friendly #url #hash

str_slug

从给定字符串生成URL友好的slug

4个版本

0.1.3 2020年4月10日
0.1.2 2020年4月10日
0.1.1 2020年4月10日
0.1.0 2020年4月10日

#5 in #slug

33 每月下载
4 个crate中使用 (3 直接使用)

MIT 许可证

11KB
173 代码行

从给定字符串生成URL友好的'slug'

str_slug 从给定字符串生成URL友好的slug

特性

  • 正确的Unicode支持。
  • 能够将给定值的哈希值附加/添加到生成的slug中。
  • 提供简单易用的APIs slug, slug_hash, slag_hash_len
  • 当你需要时,通过StrSlug::new进行完全自定义

示例

更多示例请查看文档

简单用法

正常

use str_slug::slug;

let slug = slug("hello world");
assert_eq!(slug, "hello-world");

带哈希

use str_slug::slug_hash;

let slug = slug_hash_len("Hello, world ;-)", 6);
assert_eq!("hello-world_ea1ac5", slug);

选项

pub struct StrSlug {
    pub use_hash: bool,

    /// if its set to false the hash will be prepended
    pub append_hash: bool,

    /// use full hash if `hash_len` = 0
    pub hash_len: usize,

    /// separator to use to separate slug and hash
    pub hash_separator: char,

    pub separator: char,
    pub remove_duplicate_separators: bool,

    /// Trim leading and trailing separators after slugifying the given string.
    pub trim_separator: bool,
    pub trim_separator_start: bool,
    pub trim_separator_end: bool,
}

默认值

pub fn new() -> Self {
    Self {
        use_hash: false,
        append_hash: true,
        hash_len: 6,
        hash_separator: '_',

        separator: '-',
        remove_duplicate_separators: true,

        trim_separator: true,
        trim_separator_start: false,
        trim_separator_end: false,
    }
}

trim_separator 当设置为 true 时将优先使用。

依赖

~170–560KB
~10K SLoC