DEBUG.WIKI
V.PS:让项目靠近用户,亚太、欧洲、北美 KVM VPS
IPPeak:从目标地区访问网页,住宅代理、SEO 监测、广告验证
ZgoCloud:多地区部署,按需选节点;日本、美国、香港、德国

rustdoc 注释年份变成被裁切的编号,区分字面文本与列表

rustdoc 会把行首数字与句点识别为有序列表,年份文本因而可能显示成被裁切的编号。转义句点可保留字面文本,真正列表的布局问题需另行处理。

rustdoc 注释写了一个年份或编号,生成页面却只露出末尾几位,且模块列表里没有预期摘要,可以先检查这行是不是被 Markdown 解释成了有序列表。文本里的数字没有被 Rust 编译器截断;文档渲染与样式布局是两条需要区分的路径。

一个具体报告来自 Rust 1.97.1、Linux x86-64。注释类似:

/// 123.
pub struct B;

Markdown 把行首数字加句点当作列表标记,123 成了编号,而不是普通段落里的三个字符。生成列表标记遇到相关 overflow 布局时,还可能被裁掉左侧数字。模块摘要也不一定把这个列表当作原本期望的第一段文字。

如果实际意图是字面年份或编号,可以转义句点,并写清它后面的内容:

/// 2026\. 年的接口约定。
pub struct B;

反斜线用于 Markdown 转义,生成普通文字时不应原样显示。它不是 Rust 字符串转义,也不需要把注释中的年份改成字符串字面量。应把字面年份与真正列表分开处理,保持原来的文档语义。

只需要强调一个编号时,还可按文档语义使用行内代码,例如:

/// 接口编号为 `123`。
pub struct B;

这会改变文本的呈现方式,适合编号本来就是标识符的情况,不应该为了逃避布局问题把所有正文都包进代码块。

重新生成文档,保留一个真实列表作为对照:

rustc --version --verbose
rustdoc src/lib.rs

Cargo 项目应使用自己的 cargo doc 入口与特性配置。查看生成 HTML 中,字面年份是否作为段落文字出现,模块页摘要是否保留预期内容;再查看实际页面,确认反斜线没有显示出来。若仍得到 ol 列表,继续检查原注释的换行与其他 Markdown 标记。

确实想要从三位或四位数字开始编号的有序列表,不能靠转义句点修复,因为转义会取消列表身份。那时应保留列表语义,检查 HTML 的 start 值、列表 marker 与页面 overflow 样式,并沿实际布局问题处理。正式全局修复版本尚未确认,不能承诺更新 Rust 就自动解决所有编号裁切。

不要给整个 rustdoc 页面随意删除 overflow 规则作为默认办法。该规则还可能影响代码块、表格和侧栏布局,一个数字能完整显示不代表其他文档也正常。这里的执行法适用于本来应是字面文本却误成列表的注释;真正列表的样式缺陷和其他摘要提取限制仍需另行验收。