Skip to content

Commit

Permalink
Rollup merge of rust-lang#82351 - notriddle:docs-meta-description, r=…
Browse files Browse the repository at this point in the history
…jyn514

Use the first paragraph, instead of cookie-cutter text, for rustdoc descriptions

Partially addresses rust-lang#82283.
  • Loading branch information
JohnTitor authored Feb 22, 2021
2 parents 20c1fa1 + 575c75b commit 1dba8ce
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/librustdoc/html/markdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1124,6 +1124,7 @@ crate fn plain_text_summary(md: &str) -> String {
Event::HardBreak | Event::SoftBreak => s.push(' '),
Event::Start(Tag::CodeBlock(..)) => break,
Event::End(Tag::Paragraph) => break,
Event::End(Tag::Heading(..)) => break,
_ => (),
}
}
Expand Down
1 change: 1 addition & 0 deletions src/librustdoc/html/markdown/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ fn test_plain_text_summary() {
t("code `let x = i32;` ...", "code `let x = i32;` ...");
t("type `Type<'static>` ...", "type `Type<'static>` ...");
t("# top header", "top header");
t("# top header\n\nfollowed by some text", "top header");
t("## header", "header");
t("first paragraph\n\nsecond paragraph", "first paragraph");
t("```\nfn main() {}\n```", "");
Expand Down
5 changes: 4 additions & 1 deletion src/librustdoc/html/render/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1548,7 +1548,10 @@ impl Context<'_> {
}
title.push_str(" - Rust");
let tyname = it.type_();
let desc = if it.is_crate() {
let desc = it.doc_value().as_ref().map(|doc| plain_text_summary(&doc));
let desc = if let Some(desc) = desc {
desc
} else if it.is_crate() {
format!("API documentation for the Rust `{}` crate.", self.shared.layout.krate)
} else {
format!(
Expand Down
24 changes: 24 additions & 0 deletions src/test/rustdoc/description.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#![crate_name = "foo"]
//! # Description test crate
//!
//! This is the contents of the test crate docstring.
//! It should not show up in the description.
// @has 'foo/index.html' '//meta[@name="description"]/@content' \
// 'Description test crate'
// @!has - '//meta[@name="description"]/@content' 'should not show up'

// @has 'foo/foo_mod/index.html' '//meta[@name="description"]/@content' \
// 'First paragraph description.'
// @!has - '//meta[@name="description"]/@content' 'Second paragraph'
/// First paragraph description.
///
/// Second paragraph should not show up.
pub mod foo_mod {
pub struct __Thing {}
}

// @has 'foo/fn.foo_fn.html' '//meta[@name="description"]/@content' \
// 'Only paragraph.'
/// Only paragraph.
pub fn foo_fn() {}
14 changes: 14 additions & 0 deletions src/test/rustdoc/description_default.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#![crate_name = "foo"]

// @has 'foo/index.html' '//meta[@name="description"]/@content' \
// 'API documentation for the Rust `foo` crate.'

// @has 'foo/foo_mod/index.html' '//meta[@name="description"]/@content' \
// 'API documentation for the Rust `foo_mod` mod in crate `foo`.'
pub mod foo_mod {
pub struct __Thing {}
}

// @has 'foo/fn.foo_fn.html' '//meta[@name="description"]/@content' \
// 'API documentation for the Rust `foo_fn` fn in crate `foo`.'
pub fn foo_fn() {}

0 comments on commit 1dba8ce

Please # to comment.