fra*_*pps 7 rust rust-cargo rustdoc cargo-doc
可以使用以下命令为 crate 设置favicon和rustdoc徽标:
#![doc(html_favicon_url = "<url_to>/favicon.ico")]
#![doc(html_logo_url = "<url_to>/logo.png")]
如此处记录的。
但是,我不想公开上传我的徽标,因此希望自动包含这些文件/target/doc
并从那里引用它们。
目前,我已将相应的数据 url(base64 编码)放入这些字段中,它工作正常,但它极大地膨胀了设置这些属性的源文件。
我知道我可以在使用脚本生成文档后将图像复制到其中target/doc
,然后使用相对 url 引用它们,但我想避免这种情况,以便我仍然可以使用cargo doc
.
评论中设置using in--output
标志的建议也不起作用,因为它会导致. 除此之外,它不适合我,因为(至少据我所知)我只能在那里给出绝对路径,而我需要一个使用图像相对路径的解决方案,因为我将这些图像存储在Cargo 根目录的子目录,以便使用 git 等轻松传输到另一个系统。rustdoc
rustdocflags
.cargo/config.toml
error: Option 'output' given more than once
感谢Eggyal的最新评论,我终于弄清楚了如何做到这一点:
在我的文件中build.rs
,我将文件复制到target/doc/
:
fn main() {
// Copy the images to the output when generating documentation
println!("cargo:rerun-if-changed=assets/doc");
std::fs::copy("assets/doc/logo.ico", "target/doc/logo.ico").expect("Failed to copy crate favicon when building documentation.");
std::fs::copy("assets/doc/logo.png", "target/doc/logo.png").expect("Failed to copy crate logo when building documentation.");
}
Run Code Online (Sandbox Code Playgroud)
然后我只需要确保在引用它们时使用绝对路径,如下所示:
#![doc(html_favicon_url = "/logo.ico")]
#![doc(html_logo_url = "/logo.png")]
Run Code Online (Sandbox Code Playgroud)
CARGO_TARGET_DIR
一般来说,读取环境变量而不是硬编码会更好target/doc
,但这在构建脚本中尚不可用。
归档时间: |
|
查看次数: |
671 次 |
最近记录: |