Split on words instead
This commit is contained in:
parent
24031466b7
commit
987bf2ed29
2 changed files with 27 additions and 7 deletions
|
@ -806,6 +806,10 @@ impl<'a> fmt::Display for MarkdownSummaryLine<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn plain_summary_line(md: &str) -> String {
|
pub fn plain_summary_line(md: &str) -> String {
|
||||||
|
plain_summary_line_full(md, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn plain_summary_line_full(md: &str, limit_length: bool) -> String {
|
||||||
struct ParserWrapper<'a> {
|
struct ParserWrapper<'a> {
|
||||||
inner: Parser<'a>,
|
inner: Parser<'a>,
|
||||||
is_in: isize,
|
is_in: isize,
|
||||||
|
@ -852,8 +856,18 @@ pub fn plain_summary_line(md: &str) -> String {
|
||||||
s.push_str(&t);
|
s.push_str(&t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if s.len() > 60 {
|
if limit_length && s.chars().count() > 60 {
|
||||||
s.chars().take(60).collect::<String>()
|
let mut len = 0;
|
||||||
|
let mut ret = s.split_whitespace()
|
||||||
|
.take_while(|p| {
|
||||||
|
// + 1 for the added character after the word.
|
||||||
|
len += p.chars().count() + 1;
|
||||||
|
len < 60
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.join(" ");
|
||||||
|
ret.push('…');
|
||||||
|
ret
|
||||||
} else {
|
} else {
|
||||||
s
|
s
|
||||||
}
|
}
|
||||||
|
|
|
@ -698,7 +698,7 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> String {
|
||||||
ty: item.type_(),
|
ty: item.type_(),
|
||||||
name: item.name.clone().unwrap(),
|
name: item.name.clone().unwrap(),
|
||||||
path: fqp[..fqp.len() - 1].join("::"),
|
path: fqp[..fqp.len() - 1].join("::"),
|
||||||
desc: plain_summary_line(item.doc_value()),
|
desc: plain_summary_line_short(item.doc_value()),
|
||||||
parent: Some(did),
|
parent: Some(did),
|
||||||
parent_idx: None,
|
parent_idx: None,
|
||||||
search_type: get_index_search_type(&item),
|
search_type: get_index_search_type(&item),
|
||||||
|
@ -736,7 +736,7 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> String {
|
||||||
}
|
}
|
||||||
|
|
||||||
let crate_doc = krate.module.as_ref().map(|module| {
|
let crate_doc = krate.module.as_ref().map(|module| {
|
||||||
plain_summary_line(module.doc_value())
|
plain_summary_line_short(module.doc_value())
|
||||||
}).unwrap_or(String::new());
|
}).unwrap_or(String::new());
|
||||||
|
|
||||||
let mut crate_data = BTreeMap::new();
|
let mut crate_data = BTreeMap::new();
|
||||||
|
@ -1487,7 +1487,7 @@ impl DocFolder for Cache {
|
||||||
ty: item.type_(),
|
ty: item.type_(),
|
||||||
name: s.to_string(),
|
name: s.to_string(),
|
||||||
path: path.join("::"),
|
path: path.join("::"),
|
||||||
desc: plain_summary_line(item.doc_value()),
|
desc: plain_summary_line_short(item.doc_value()),
|
||||||
parent,
|
parent,
|
||||||
parent_idx: None,
|
parent_idx: None,
|
||||||
search_type: get_index_search_type(&item),
|
search_type: get_index_search_type(&item),
|
||||||
|
@ -1679,7 +1679,7 @@ impl<'a> Cache {
|
||||||
ty: item.type_(),
|
ty: item.type_(),
|
||||||
name: item_name.to_string(),
|
name: item_name.to_string(),
|
||||||
path: path.clone(),
|
path: path.clone(),
|
||||||
desc: plain_summary_line(item.doc_value()),
|
desc: plain_summary_line_short(item.doc_value()),
|
||||||
parent: None,
|
parent: None,
|
||||||
parent_idx: None,
|
parent_idx: None,
|
||||||
search_type: get_index_search_type(&item),
|
search_type: get_index_search_type(&item),
|
||||||
|
@ -2396,7 +2396,13 @@ fn shorter<'a>(s: Option<&'a str>) -> String {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn plain_summary_line(s: Option<&str>) -> String {
|
fn plain_summary_line(s: Option<&str>) -> String {
|
||||||
let line = shorter(s).replace("\n", " ");
|
let line = shorter(s).replace("\n", " ");
|
||||||
markdown::plain_summary_line(&line[..])
|
markdown::plain_summary_line_full(&line[..], false)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn plain_summary_line_short(s: Option<&str>) -> String {
|
||||||
|
let line = shorter(s).replace("\n", " ");
|
||||||
|
markdown::plain_summary_line_full(&line[..], true)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn document(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item) -> fmt::Result {
|
fn document(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item) -> fmt::Result {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue