summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Huss <eric@huss.org>2021-01-04 14:01:30 -0800
committerGitHub <noreply@github.com>2021-01-04 14:01:30 -0800
commit33d3d9c3ec5bc33f32da1fa26c2bbc174a6bb128 (patch)
tree1b863f29a8e8dca834b68d5659b3f935312f1c5b
parente651f4d734c8e2f2df1d6048085711b774f7cbf2 (diff)
parent1038f0b7f5b45f1c593dcad9c21a41b803f506c0 (diff)
Merge pull request #1389 from avitex/search-chapter-name
Add chapter name to search result breadcrumbs
-rw-r--r--src/renderer/html_handlebars/search.rs2
-rw-r--r--tests/rendered_output.rs5
-rw-r--r--tests/searchindex_fixture.json168
3 files changed, 108 insertions, 67 deletions
diff --git a/src/renderer/html_handlebars/search.rs b/src/renderer/html_handlebars/search.rs
index 597bd940..8ee9b0af 100644
--- a/src/renderer/html_handlebars/search.rs
+++ b/src/renderer/html_handlebars/search.rs
@@ -95,6 +95,8 @@ fn render_item(
let mut breadcrumbs = chapter.parent_names.clone();
let mut footnote_numbers = HashMap::new();
+ breadcrumbs.push(chapter.name.clone());
+
while let Some(event) = p.next() {
match event {
Event::Start(Tag::Heading(i)) if i <= max_section_depth => {
diff --git a/tests/rendered_output.rs b/tests/rendered_output.rs
index 6234c29b..f0b50582 100644
--- a/tests/rendered_output.rs
+++ b/tests/rendered_output.rs
@@ -595,7 +595,10 @@ mod search {
docs[&summary]["body"],
"Dummy Book Introduction First Chapter Nested Chapter Includes Recursive Markdown Unicode Second Chapter Nested Chapter Conclusion"
);
- assert_eq!(docs[&summary]["breadcrumbs"], "First Chapter » Summary");
+ assert_eq!(
+ docs[&summary]["breadcrumbs"],
+ "First Chapter » Includes » Summary"
+ );
assert_eq!(docs[&conclusion]["body"], "I put &lt;HTML&gt; in here!");
}
diff --git a/tests/searchindex_fixture.json b/tests/searchindex_fixture.json
index 03ad164e..7e7e3359 100644
--- a/tests/searchindex_fixture.json
+++ b/tests/searchindex_fixture.json
@@ -27,234 +27,234 @@
"docInfo": {
"0": {
"body": 9,
- "breadcrumbs": 2,
+ "breadcrumbs": 4,
"title": 2
},
"1": {
"body": 3,
- "breadcrumbs": 1,
+ "breadcrumbs": 2,
"title": 1
},
"10": {
"body": 16,
- "breadcrumbs": 3,
+ "breadcrumbs": 4,
"title": 1
},
"11": {
"body": 3,
- "breadcrumbs": 4,
+ "breadcrumbs": 5,
"title": 2
},
"12": {
"body": 4,
- "breadcrumbs": 3,
+ "breadcrumbs": 4,
"title": 1
},
"13": {
"body": 12,
- "breadcrumbs": 3,
+ "breadcrumbs": 4,
"title": 1
},
"14": {
"body": 2,
- "breadcrumbs": 3,
+ "breadcrumbs": 4,
"title": 1
},
"15": {
"body": 3,
- "breadcrumbs": 3,
+ "breadcrumbs": 4,
"title": 1
},
"16": {
"body": 29,
- "breadcrumbs": 5,
+ "breadcrumbs": 6,
"title": 3
},
"17": {
"body": 20,
- "breadcrumbs": 2,
+ "breadcrumbs": 4,
"title": 2
},
"18": {
"body": 18,
- "breadcrumbs": 7,
+ "breadcrumbs": 9,
"title": 5
},
"19": {
"body": 0,
- "breadcrumbs": 3,
+ "breadcrumbs": 5,
"title": 1
},
"2": {
"body": 2,
- "breadcrumbs": 2,
+ "breadcrumbs": 4,
"title": 2
},
"20": {
"body": 3,
- "breadcrumbs": 1,
+ "breadcrumbs": 2,
"title": 1
},
"3": {
"body": 0,
- "breadcrumbs": 1,
+ "breadcrumbs": 3,
"title": 1
},
"4": {
"body": 4,
- "breadcrumbs": 4,
+ "breadcrumbs": 6,
"title": 2
},
"5": {
"body": 1,
- "breadcrumbs": 3,
+ "breadcrumbs": 5,
"title": 1
},
"6": {
"body": 21,
- "breadcrumbs": 9,
+ "breadcrumbs": 11,
"title": 7
},
"7": {
"body": 6,
- "breadcrumbs": 8,
+ "breadcrumbs": 10,
"title": 6
},
"8": {
"body": 6,
- "breadcrumbs": 6,
+ "breadcrumbs": 8,
"title": 4
},
"9": {
"body": 0,
- "breadcrumbs": 3,
+ "breadcrumbs": 4,
"title": 1
}
},
"docs": {
"0": {
"body": "This file is just here to cause the index preprocessor to run. Does a pretty good job, too.",
- "breadcrumbs": "Dummy Book",
+ "breadcrumbs": "Dummy Book » Dummy Book",
"id": "0",
"title": "Dummy Book"
},
"1": {
"body": "Here's some interesting text...",
- "breadcrumbs": "Introduction",
+ "breadcrumbs": "Introduction » Introduction",
"id": "1",
"title": "Introduction"
},
"10": {
"body": "Dummy Book Introduction First Chapter Nested Chapter Includes Recursive Markdown Unicode Second Chapter Nested Chapter Conclusion",
- "breadcrumbs": "First Chapter » Summary",
+ "breadcrumbs": "First Chapter » Includes » Summary",
"id": "10",
"title": "Summary"
},
"11": {
"body": "Tests for some markdown output.",
- "breadcrumbs": "First Chapter » Markdown tests",
+ "breadcrumbs": "First Chapter » Markdown » Markdown tests",
"id": "11",
"title": "Markdown tests"
},
"12": {
"body": "foo bar baz bim",
- "breadcrumbs": "First Chapter » Tables",
+ "breadcrumbs": "First Chapter » Markdown » Tables",
"id": "12",
"title": "Tables"
},
"13": {
"body": "Footnote example [1] , or with a word [2] . This is a footnote. A longer footnote. With multiple lines. Third line.",
- "breadcrumbs": "First Chapter » Footnotes",
+ "breadcrumbs": "First Chapter » Markdown » Footnotes",
"id": "13",
"title": "Footnotes"
},
"14": {
"body": "strikethrough example",
- "breadcrumbs": "First Chapter » Strikethrough",
+ "breadcrumbs": "First Chapter » Markdown » Strikethrough",
"id": "14",
"title": "Strikethrough"
},
"15": {
"body": "Apples Broccoli Carrots",
- "breadcrumbs": "First Chapter » Tasklisks",
+ "breadcrumbs": "First Chapter » Markdown » Tasklisks",
"id": "15",
"title": "Tasklisks"
},
"16": {
"body": "Please be careful editing, this contains carefully crafted characters. Two byte character: spatiëring Combining character: spatiëring Three byte character: 书こんにちは Four byte character: 𐌀‮𐌁‮𐌂‮𐌃‮𐌄‮𐌅‮𐌆‮𐌇‮𐌈‬ Right-to-left: مرحبا Emoticons: 🔊 😍 💜 1️⃣ right-to-left mark: hello באמת!‏ Zalgo: ǫ̛̖̱̗̝͈̋͒͋̏ͥͫ̒̆ͩ̏͌̾͊͐ͪ̾̚",
- "breadcrumbs": "First Chapter » Unicode stress tests",
+ "breadcrumbs": "First Chapter » Unicode » Unicode stress tests",
"id": "16",
"title": "Unicode stress tests"
},
"17": {
"body": "This makes sure you can insert runnable Rust files. fn main() { println!(\"Hello World!\");\n#\n# // You can even hide lines! :D\n# println!(\"I am hidden! Expand the code snippet to see me\");\n}",
- "breadcrumbs": "Second Chapter",
+ "breadcrumbs": "Second Chapter » Second Chapter",
"id": "17",
"title": "Second Chapter"
},
"18": {
"body": "When we link to the first section , it should work on both the print page and the non-print page. A fragment link should work. Link outside . Some image HTML Link",
- "breadcrumbs": "Second Chapter » Testing relative links for the print page",
+ "breadcrumbs": "Second Chapter » Nested Chapter » Testing relative links for the print page",
"id": "18",
"title": "Testing relative links for the print page"
},
"19": {
"body": "",
- "breadcrumbs": "Second Chapter » Some section",
+ "breadcrumbs": "Second Chapter » Nested Chapter » Some section",
"id": "19",
"title": "Some section"
},
"2": {
"body": "more text.",
- "breadcrumbs": "First Chapter",
+ "breadcrumbs": "First Chapter » First Chapter",
"id": "2",
"title": "First Chapter"
},
"20": {
"body": "I put &lt;HTML&gt; in here!",
- "breadcrumbs": "Conclusion",
+ "breadcrumbs": "Conclusion » Conclusion",
"id": "20",
"title": "Conclusion"
},
"3": {
"body": "",
- "breadcrumbs": "Some Section",
+ "breadcrumbs": "First Chapter » Some Section",
"id": "3",
"title": "Some Section"
},
"4": {
"body": "This file has some testable code. assert!(true);",
- "breadcrumbs": "First Chapter » Nested Chapter",
+ "breadcrumbs": "First Chapter » Nested Chapter » Nested Chapter",
"id": "4",
"title": "Nested Chapter"
},
"5": {
"body": "assert!(true);",
- "breadcrumbs": "First Chapter » Some Section",
+ "breadcrumbs": "First Chapter » Nested Chapter » Some Section",
"id": "5",
"title": "Some Section"
},
"6": {
"body": "// The next line will cause a `rendered_output` test to fail if the anchor feature is broken in\n// such a way that the content between anchors isn't included.\n// unique-string-for-anchor-test\nassert!(true);",
- "breadcrumbs": "First Chapter » Anchors include the part of a file between special comments",
+ "breadcrumbs": "First Chapter » Nested Chapter » Anchors include the part of a file between special comments",
"id": "6",
"title": "Anchors include the part of a file between special comments"
},
"7": {
"body": "# fn some_function() {\n# assert!(true);\n# }\n# fn main() { some_function();\n}",
- "breadcrumbs": "First Chapter » Rustdoc include adds the rest of the file as hidden",
+ "breadcrumbs": "First Chapter » Nested Chapter » Rustdoc include adds the rest of the file as hidden",
"id": "7",
"title": "Rustdoc include adds the rest of the file as hidden"
},
"8": {
"body": "# fn some_other_function() {\n# assert!(true);\n# }\n# fn main() { some_other_function();\n}",
- "breadcrumbs": "First Chapter » Rustdoc include works with anchors too",
+ "breadcrumbs": "First Chapter » Nested Chapter » Rustdoc include works with anchors too",
"id": "8",
"title": "Rustdoc include works with anchors too"
},
"9": {
"body": "",
- "breadcrumbs": "First Chapter » Includes",
+ "breadcrumbs": "First Chapter » Includes » Includes",
"id": "9",
"title": "Includes"
}
@@ -3048,7 +3048,7 @@
"df": 2,
"docs": {
"0": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
},
"10": {
"tf": 1.0
@@ -3222,7 +3222,7 @@
"df": 0,
"docs": {},
"r": {
- "df": 17,
+ "df": 18,
"docs": {
"10": {
"tf": 2.23606797749979
@@ -3246,31 +3246,34 @@
"tf": 1.0
},
"17": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
},
"18": {
- "tf": 1.0
+ "tf": 1.4142135623730951
},
"19": {
- "tf": 1.0
+ "tf": 1.4142135623730951
},
"2": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
+ },
+ "3": {
+ "tf": 1.0
},
"4": {
- "tf": 1.7320508075688772
+ "tf": 2.0
},
"5": {
- "tf": 1.0
+ "tf": 1.4142135623730951
},
"6": {
- "tf": 1.0
+ "tf": 1.4142135623730951
},
"7": {
- "tf": 1.0
+ "tf": 1.4142135623730951
},
"8": {
- "tf": 1.0
+ "tf": 1.4142135623730951
},
"9": {
"tf": 1.0
@@ -3379,7 +3382,7 @@
"tf": 1.0
},
"20": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
}
}
}
@@ -3467,7 +3470,7 @@
"df": 2,
"docs": {
"0": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
},
"10": {
"tf": 1.0
@@ -3672,7 +3675,7 @@
"df": 0,
"docs": {},
"t": {
- "df": 15,
+ "df": 16,
"docs": {
"10": {
"tf": 1.4142135623730951
@@ -3699,7 +3702,10 @@
"tf": 1.0
},
"2": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
+ },
+ "3": {
+ "tf": 1.0
},
"4": {
"tf": 1.0
@@ -3964,7 +3970,7 @@
"df": 5,
"docs": {
"10": {
- "tf": 1.0
+ "tf": 1.4142135623730951
},
"6": {
"tf": 1.7320508075688772
@@ -3976,7 +3982,7 @@
"tf": 1.4142135623730951
},
"9": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
}
}
},
@@ -4065,7 +4071,7 @@
"df": 2,
"docs": {
"1": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
},
"10": {
"tf": 1.0
@@ -4282,13 +4288,25 @@
"df": 0,
"docs": {},
"n": {
- "df": 2,
+ "df": 6,
"docs": {
"10": {
"tf": 1.0
},
"11": {
- "tf": 1.7320508075688772
+ "tf": 2.0
+ },
+ "12": {
+ "tf": 1.0
+ },
+ "13": {
+ "tf": 1.0
+ },
+ "14": {
+ "tf": 1.0
+ },
+ "15": {
+ "tf": 1.0
}
}
}
@@ -4361,13 +4379,31 @@
"df": 0,
"docs": {},
"t": {
- "df": 2,
+ "df": 8,
"docs": {
"10": {
"tf": 1.4142135623730951
},
+ "18": {
+ "tf": 1.0
+ },
+ "19": {
+ "tf": 1.0
+ },
"4": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
+ },
+ "5": {
+ "tf": 1.0
+ },
+ "6": {
+ "tf": 1.0
+ },
+ "7": {
+ "tf": 1.0
+ },
+ "8": {
+ "tf": 1.0
}
}
}
@@ -4843,7 +4879,7 @@
"tf": 1.0
},
"17": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
},
"18": {
"tf": 1.0
@@ -5385,7 +5421,7 @@
"tf": 1.0
},
"16": {
- "tf": 1.4142135623730951
+ "tf": 1.7320508075688772
}
}
},