7 个版本

0.3.0 2022 年 3 月 26 日
0.2.5 2021 年 4 月 10 日
0.1.1 2021 年 3 月 8 日

#4 in #msrv

Download history 25/week @ 2024-03-27 27/week @ 2024-04-03 4/week @ 2024-05-01 1/week @ 2024-05-08 14/week @ 2024-05-15 125/week @ 2024-05-22 27/week @ 2024-05-29 29/week @ 2024-06-05 2/week @ 2024-06-12 3/week @ 2024-06-19 12/week @ 2024-06-26 48/week @ 2024-07-03

63 每月下载量
用于 nested_containment_list

MIT/Apache

22KB
144

doc_item

GitHub Workflow Status crates.io docs.rs MSRV License

项目级文档定制属性。

此软件包提供属性,以便在通过 rustdoc 进行文档时向项目添加各种功能。这包括定义项目信息文档框、注释项目的最低版本以及标记项目在模块列表中显示为半透明。

这允许增强文档,类似于标准库中通过 staged_api 功能和夜间版中的 doc_cfg 功能所做的那样。然而,此软件包提供了更多的定制,允许使用自定义 CSS 类和文档框内的文本。

使用方法

定义实验性 API

将项目标记为实验性(类似于通过标准库中的 #[unstable] 属性所做的那样)可以按照以下方式完成

/// This is an experimental API.
///
/// The docbox will indicate the function is experimental. It will also appear semi-transparent on
/// module lists.
#[doc_item::docbox(content="<span class='emoji'>🔬</span> This is an experimental API.", class="unstable")]
#[doc_item::short_docbox(content="Experimental", class="unstable")]
#[doc_item::semi_transparent]
pub fn foo() {}

创建自定义样式的文档框

您可以创建自己的自定义样式来自定义文档框的显示。按照以下方式定义您的项目文档框

/// An item with a custom docbox.
///
/// The docbox will be a different color.
#[doc_item::docbox(content="A custom docbox", class="custom")]
#[doc_item::short_docbox(content="Custom", class="custom")]
pub fn foo() {}

然后,在单独的 HTML 文件中创建一个样式定义。

<style>
    .custom {
        background: #c4ffd7;
        border-color: #7bdba1;
    }
</style>

最后,将 HTML 文件的全部内容包含到您的文档中

$ RUSTDOCFLAGS="--html-in-header custom.html" cargo doc --no-deps --open

并指示 docs.rs 也包含该 HTML 文件的内容,通过向您的 Cargo.toml 添加

[package.metadata.docs.rs]
rustdoc-args = [ "--html-in-header", "custom.html" ]

示例

/examples 目录中提供了几个示例。生成的示例文档可在此查看 这里

如果您想自己运行这些示例,请运行以下命令

cargo rustdoc --example <example>

其中 <example> 是您想要运行的示例名称。如果示例需要自定义样式,请按照以下方式包含相关的HTML文件:

cargo rustdoc --example <example> -- --html-in-header examples/<example>.html

最低支持的Rust版本

本库保证在 rustc 1.58.0 及更高版本上正常工作。它可能在更早的版本上编译,但不能保证所有功能都能正常显示。

夜间稳定性

由于 docs.rsnightly 频道上构建文档,因此本库将尝试在 nightly 上保持功能。由于本库的功能依赖于将HTML注入到生成的文档中,而HTML的内部布局可能会更改,因此 nightly 的功能可能会偶尔中断。请在GitHub仓库中报告您发现的问题。

许可协议

本项目采用以下任一许可协议:

任您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可协议定义的,您有意提交以包含在本作品中的任何贡献,都将如上所述双重许可,没有附加条款或条件。

依赖关系

~2MB
~43K SLoC