1 个不稳定版本

0.1.0 2023年6月22日

#1619文本处理

Download history • Rust 包仓库 27/week @ 2024-04-05 • Rust 包仓库 32/week @ 2024-04-12 • Rust 包仓库 26/week @ 2024-04-19 • Rust 包仓库 22/week @ 2024-04-26 • Rust 包仓库 28/week @ 2024-05-03 • Rust 包仓库 17/week @ 2024-05-10 • Rust 包仓库 8/week @ 2024-05-17 • Rust 包仓库 28/week @ 2024-05-24 • Rust 包仓库 22/week @ 2024-05-31 • Rust 包仓库 22/week @ 2024-06-07 • Rust 包仓库 30/week @ 2024-06-14 • Rust 包仓库 25/week @ 2024-06-21 • Rust 包仓库 5/week @ 2024-06-28 • Rust 包仓库 11/week @ 2024-07-05 • Rust 包仓库 24/week @ 2024-07-12 • Rust 包仓库 27/week @ 2024-07-19 • Rust 包仓库

69 每月下载量
2 个Crate中使用(通过 markdown-it-heading-anchors…

Apache-2.0

43KB

github-slugger

crates.io

生成类似于GitHub为markdown标题生成的slug。它还确保slug的唯一性与GitHub相同。本包的整体目标是尽可能模拟GitHub处理生成markdown标题锚点的方式。它基于github-slugger JavaScript包。

此项目不是markdown或HTML解析器:传递 alpha *bravo* charliealpha <em>bravo</em> charlie 不会工作。相反,传递标题的纯文本值:alpha bravo charlie

用法

let mut slugger = github_slugger::Slugger::default();

slugger.slug("foo")
// returns 'foo'

slugger.slug("foo")
// returns 'foo-1'

slugger.slug("bar")
// returns 'bar'

slugger.slug("foo")
// returns 'foo-2'

slugger.slug("Привет non-latin 你好")
// returns 'привет-non-latin-你好'

slugger.slug("😄 emoji")
// returns '-emoji'

slugger.reset()

slugger.slug("foo")
// returns 'foo'

查看tests/fixtures.json获取更多示例。

如果需要,您还可以使用底层实现,该实现不跟踪之前生成的slug字符串

github_slugger::slug("foo bar baz")
// returns 'foo-bar-baz'

github_slugger::slug("foo bar baz")
// returns the same slug 'foo-bar-baz' because it does not keep track

依赖

~2.2–3MB
~54K SLoC