1 个不稳定版本
0.1.0 | 2023年6月22日 |
---|
#1619 在 文本处理
69 每月下载量
在 2 个Crate中使用(通过 markdown-it-heading-anchors…)
43KB
github-slugger
生成类似于GitHub为markdown标题生成的slug。它还确保slug的唯一性与GitHub相同。本包的整体目标是尽可能模拟GitHub处理生成markdown标题锚点的方式。它基于github-slugger JavaScript包。
此项目不是markdown或HTML解析器:传递 alpha *bravo* charlie
或 alpha <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