1 个不稳定版本
0.1.0 | 2024 年 8 月 2 日 |
---|
#823 在 文本处理
93 每月下载量
27KB
730 行
count-md
一个简单的、可配置的命令行工具和 Rust 库,用于在 Markdown 文档中进行 Unicode、Markdown 和 HTML 感知的单词计数。
也就是说,这个工具将以 Unicode 感知的方式正确地计数单词,而不错误地包含 Markdown 语法或 HTML 标签。它可以包含或排除如块引用、脚注、代码块等内容,并且自带合理的默认设置!
示例
您可能有一个包含如下内容的文件
# Title
This is some text!
> Here is a quote from someone else.
Here is more text.
如果您想了解非引号单词的数量,包括标题但不包括块引用,您只需运行 count-md <文件路径>
即可,它将友好地报告总共有 9 个单词。相比之下,wc -w
将报告有 18 个单词:当然包括块引用,但它还包含了标题的 #
和块引用的 >
,这两者都不是所需的!
状态
支持包含或排除以下 Markdown 功能
- 标题
- 块引用
- 嵌套块引用
- 注意[^admonitions]
- 代码块
- 内联代码
- 块 HTML 🚧 部分
- 脚注
- 表格
- 数学
[^admonitions]: 注意不是块引用,但在这里列出是因为它们的语法方式。
库
这里的核心功能可以用作 Rust 库[^c]。有两个主要入口点
-
count
: 接受一个&str
并使用默认选项集进行计数,相当于在命令行上以零选项运行count-md
。 -
count_with_options
: 接受一个&str
和一个Options
值(一个位掩码),允许您直接配置每个选项。对于运行count-md
并具有一些选项的等效操作,使用Options::DEFAULT
并结合其他标志-
直接使用位掩码:
Options::DEFAULT | Options::IncludeBlockquotes
-
使用由
bitflags
库提供的方法,insert
和remove
let mut options = Options::DEFAULT; options.insert(Options::IncludeBlockquotes); options.remove(Options::IncludeHeadings);
-
更多详情请参阅文档!
[^c]: 未来,我可能也会提供 C 绑定,但在做之前还需要做相当多的审核!
依赖项
~5–16MB
~153K SLoC