diff options
| author | kennytm <kennytm@gmail.com> | 2018-12-14 22:10:13 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-14 22:10:13 +0800 |
| commit | facad1d6f241b9b551ffeb3cf9ce83b2d110cdde (patch) | |
| tree | 0719c90f817398af0fede486175a253fbf18ddc9 | |
| parent | 27c3631d826aaad964f42ee94f26f9e80d658e3f (diff) | |
| parent | 987bf2ed29b591178ed4a520b295eb40e6328ba8 (diff) | |
| download | rust-facad1d6f241b9b551ffeb3cf9ce83b2d110cdde.tar.gz rust-facad1d6f241b9b551ffeb3cf9ce83b2d110cdde.zip | |
Rollup merge of #56709 - GuillaumeGomez:reduce-search-index, r=QuietMisdreavus
Remove unneeded extra chars to reduce search-index size Before: ``` 2013782 Dec 11 10:16 build/x86_64-unknown-linux-gnu/doc/search-index.js ``` After: ``` 1736597 Dec 11 10:50 build/x86_64-unknown-linux-gnu/doc/search-index.js ``` No changes in the output of the search. r? @QuietMisdreavus
| -rw-r--r-- | src/librustdoc/html/markdown.rs | 20 | ||||
| -rw-r--r-- | src/librustdoc/html/render.rs | 16 |
2 files changed, 30 insertions, 6 deletions
diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs index 00ca4fed2f4..536ea39d298 100644 --- a/src/librustdoc/html/markdown.rs +++ b/src/librustdoc/html/markdown.rs @@ -806,6 +806,10 @@ impl<'a> fmt::Display for MarkdownSummaryLine<'a> { } 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> { inner: Parser<'a>, is_in: isize, @@ -852,7 +856,21 @@ pub fn plain_summary_line(md: &str) -> String { s.push_str(&t); } } - s + if limit_length && s.chars().count() > 60 { + 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 { + s + } } pub fn markdown_links(md: &str) -> Vec<(String, Option<Range<usize>>)> { diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 6ce9ace587a..4b10c23fd3f 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -698,7 +698,7 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> String { ty: item.type_(), name: item.name.clone().unwrap(), 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_idx: None, 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| { - plain_summary_line(module.doc_value()) + plain_summary_line_short(module.doc_value()) }).unwrap_or(String::new()); let mut crate_data = BTreeMap::new(); @@ -1481,7 +1481,7 @@ impl DocFolder for Cache { ty: item.type_(), name: s.to_string(), path: path.join("::"), - desc: plain_summary_line(item.doc_value()), + desc: plain_summary_line_short(item.doc_value()), parent, parent_idx: None, search_type: get_index_search_type(&item), @@ -1674,7 +1674,7 @@ impl<'a> Cache { ty: item.type_(), name: item_name.to_string(), path: path.clone(), - desc: plain_summary_line(item.doc_value()), + desc: plain_summary_line_short(item.doc_value()), parent: None, parent_idx: None, search_type: get_index_search_type(&item), @@ -2389,7 +2389,13 @@ fn shorter<'a>(s: Option<&'a str>) -> String { #[inline] fn plain_summary_line(s: Option<&str>) -> String { 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 { |
