From 958150ae610a555b6f34e1e1de48598107027bdb Mon Sep 17 00:00:00 2001 From: Unrud Date: Sat, 18 Apr 2020 13:01:06 +0200 Subject: [PATCH] Check for duplicate ids and dead internal links --- documentation-generator/postprocessor.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/documentation-generator/postprocessor.py b/documentation-generator/postprocessor.py index 76e36370..10aed2e7 100755 --- a/documentation-generator/postprocessor.py +++ b/documentation-generator/postprocessor.py @@ -43,6 +43,22 @@ def main(): header.append(" ") header.append(link) + # Check for duplicate ids + visited_ids = set() + for element in soup.select("*[id]"): + if element["id"] in visited_ids: + print("ERROR: Duplicate id %r" % element["id"], + file=sys.stderr) + exit(1) + visited_ids.add(element["id"]) + + # Check for dead internal links + for link in soup.select("a[href^=\\#]"): + if link["href"][1:] not in visited_ids: + print("ERROR: Dead internal link %r" % link["href"], + file=sys.stderr) + exit(1) + sys.stdout.buffer.write(soup.encode(formatter="html5") + b"\n")