1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
实现源码:[mod.rs](mod.rs)
提取 Markdown 文档的 **ATX 标题**(`#` … `######`)目录;**围栏代码块**(` ``` ` / `~~~`)内的行不计入目录。
路径解析与 `fs` 一致:相对路径相对 [`MdContext`](mod.rs) 的工作区根目录;`allow_outside_root == false` 时不得越出根目录。
**返回**
统计 **非空白字符数**(字数)、段落数、ATX 标题数、总行数。`characters` / `paragraphs` **不包含围栏代码块**内文本;`headings` 仅统计 ATX 标题且同样忽略代码块;`lines` 为全文行数(含代码块与空行)。
段落按 **空行分隔**(`\n\n`)粗略计数。不提供「词数」:中英文分词无统一口径,字数用 `characters` 即可。
**返回**
读路径时的错误与 `fs` 类似(见 [`error.rs`](error.rs)):