HTML
Как уже ответил Фрэнсис, вам нужно использовать HTML, если вы хотите иметь короткие строки.rustdoc
использует pulldown-cmark и поддержка того, что вы хотите, не поддерживается.
Включает внешнюю документацию
nightly & doc
Отслеживаниепроблема: rfc 1990 - добавить внешний атрибут doc к rustc .В случае набора инструментов nightly
вы можете включить функцию external_doc
и включить внешние файлы Markdown с помощью #[doc(include = "../some/path")]
.
Стоит отметить, что независимо от того, в каком модуле вы будете использовать #[doc(include = "...")]
, путь всегда относительно корня ящика (lib.rs
, main.rs
, ...).
Пример:
.
|____Cargo.toml
|____Cargo.lock
|____doc
| |____foo-bar-bar.md
|____src
| |____main-hallo.md
| |____foo
| | |____mod.rs
| | |____bar.rs
| |____main.rs
src/main.rs
:
#![feature(external_doc)]
pub mod foo;
#[doc(include = "main-hallo.md")]
pub fn hallo() {}
fn main() {}
src/foo/bar.rs
:
#[doc(include = "../doc/foo-bar-bar.md")]
pub struct Bar;
Вы можете хранить отдельную документацию по Markdown в папке src/
, вы можете хранить ее в отдельной папке, например doc/
и т. Д. Нопуть всегда указывается относительно корня ящика.
nightly & rdoc
Существует также плагин компилятора rdoc (требуется nightly
), который в основном делает то же самое.Как включить и использовать это описано в проекте README.md .
stable
Для стабильного я бы сделал следующее:
- документация в отдельных файлах Markdown,
- custom
build.rs
, которая сканирует файлы .md
и выводит их в виде .rs
файлов (одинаковое содержимое, просто добавьте каждую строку с ///
или //!
), - поместите их в папку
std::env::var("OUT_DIR")
,
- включите их в свой исходный код,
- через
include!(concat!(env!("OUT_DIR"), "/main-hallo-md.rs"));
.
rustfmt & nightly
Есть опция comment_width
(по умолчанию 80
) и wrap_comments
(по умолчанию false
).Это поможет вам сохранить комментарии до некоторой ширины.Но я попробовал это с длинной строкой таблицы Markdown, и она обернулась -> сломанная таблица.Не используйте его.