summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/collect_files.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/collect_files.rs b/src/collect_files.rs
index d9cfb37..49f5cc0 100644
--- a/src/collect_files.rs
+++ b/src/collect_files.rs
@@ -96,15 +96,23 @@ impl Website {
"md" => {
let markdown = std::fs::read_to_string(&source_path).unwrap();
let document = MarkdownDocument::from_str(&markdown);
+ let mut heading_set = HashSet::new();
+ let mut duplicates = HashSet::new();
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 level = level.to_owned();
+ if !heading_set.insert(url.clone()) {
+ duplicates.insert(url.clone());
+ }
Some(Heading { name, url, level })
} else {
None
}).collect();
+ for url in duplicates {
+ warn!("Page {name:?} contains multiple headings with ID \"#{url}\"");
+ }
if name_url == "+index" {
if parents.is_empty() {
// This is the index file for the whole site.