summaryrefslogtreecommitdiff
path: root/docs/src/html.rs
diff options
context:
space:
mode:
Diffstat (limited to 'docs/src/html.rs')
-rw-r--r--docs/src/html.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/docs/src/html.rs b/docs/src/html.rs
index 4eb3954c..9077d5c4 100644
--- a/docs/src/html.rs
+++ b/docs/src/html.rs
@@ -301,7 +301,10 @@ impl<'a> Handler<'a> {
return;
}
- let default = self.peeked.as_ref().map(|text| text.to_kebab_case());
+ let body = self.peeked.as_ref();
+ let default = body.map(|text| text.to_kebab_case());
+ let has_id = id_slot.is_some();
+
let id: &'a str = match (&id_slot, default) {
(Some(id), default) => {
if Some(*id) == default.as_deref() {
@@ -316,10 +319,10 @@ impl<'a> Handler<'a> {
*id_slot = (!id.is_empty()).then_some(id);
// Special case for things like "v0.3.0".
- let name = if id.starts_with('v') && id.contains('.') {
- id.into()
- } else {
- id.to_title_case().into()
+ let name = match &body {
+ _ if id.starts_with('v') && id.contains('.') => id.into(),
+ Some(body) if !has_id => body.as_ref().into(),
+ _ => id.to_title_case().into(),
};
let mut children = &mut self.outline;