如何使rustdoc从子模块链接到私有项目?

dgsult0t  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(88)

bounty将在5天后过期。回答此问题可获得+50的声望奖励。Samuel Hapak正在寻找规范答案:关于rustdoc行为的资源很少,教程通常集中在最琐碎的需求上。我相信我的问题不是唯一的,但我还没有找到满意的答案。

我正在记录我的二进制项目,它被拆分为多个子模块。我在src/中有两个文件:

// src/main.rs

//! # My Lovely Crate
//! 
//! I can reference [`sub::Public`].
//! But, can't reference [`sub::Private`].

mod sub;

以及

// src/sub.rs

//! # My Lovely Sub

/// This struct is public.
pub struct Public {
    a: usize,
}

/// This struct is private.
struct Private {
    b: usize,
}

当我把这个和

cargo doc --document-private-items

结果文档是为sub中的两个结构生成的,但是对sub::Private的引用没有解析-链接没有生成。
有解决办法吗?或者,我做错了什么?

n3h0vuf2

n3h0vuf21#

最好的解决办法是把一个相对的markdown链接

//! But, can't reference [`sub::Private`](sub/struct.Private.html).

这在简单的情况下应该有效,但再出口或其他复杂的情况可能会破坏它。

相关问题