diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2025-01-22 12:47:06 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2025-01-22 12:55:22 +1300 |
commit | b511a1a64e9076a040baf3c02a1587c40d0ec172 (patch) | |
tree | 3598712d164762cf81aa4eaf697bc434b93fcc8b /src/collect_files.rs | |
parent | e9f25c69e1e37d038ab05e7a69ea961799615141 (diff) | |
download | toaster-b511a1a64e9076a040baf3c02a1587c40d0ec172.zip |
Remove 'appendix' from the links of appendix headings
If a heading is prefixed with 'Appendix #:', the link to that heading
will not include that prefix. This is to make it possible to rearrange
appendices in a document without breaking existing links.
Diffstat (limited to 'src/collect_files.rs')
-rw-r--r-- | src/collect_files.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/collect_files.rs b/src/collect_files.rs index 14bf0c3..de577cf 100644 --- a/src/collect_files.rs +++ b/src/collect_files.rs @@ -167,7 +167,7 @@ impl Website { let headings = document.blocks.iter() .filter_map(|block| if let Block::Heading { line, level } = block { let name = line.to_string(); - let url = make_url_safe(&name); + let url = make_url_safe(strip_appendix(&name)); let level = level.to_owned(); if !heading_set.insert(url.clone()) { duplicates.insert(url.clone()); @@ -281,7 +281,8 @@ impl Website { if page.full_url == path { let root = from.root(); if let Some(heading) = heading { - if !page.headings.iter().any(|h| h.url == make_url_safe(heading)) { + let heading = make_url_safe(strip_appendix(heading)); + if !page.headings.iter().any(|h| h.url == heading) { warn!("Page {:?} contains link to nonexistent heading {heading:?} on page {path:?}", from.name()); } return Some(format!("{root}{path}.{ext}#{heading}")); |