From 0426fce3b39ebedf6b92bfe6b18aa08987b11ea2 Mon Sep 17 00:00:00 2001 From: Scott Bahling Date: Sat, 23 Mar 2013 17:28:08 +0100 Subject: Improve header id generation --- panfry/page.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'panfry/page.py') diff --git a/panfry/page.py b/panfry/page.py index 01d9fcb..42eda1e 100755 --- a/panfry/page.py +++ b/panfry/page.py @@ -35,7 +35,14 @@ class TOCItem: @property def header_id(self): - remove = re.compile('[+~!@#$%^&*\(\){}\[\];:"\',.<>?/\`]') + # - Remove all formatting, links, etc. + # - Remove all punctuation, except underscores, hyphens, and periods. + # - Replace all spaces and newlines with hyphens. + # - Convert all alphabetic characters to lowercase. + # - Remove everything up to the first letter (identifiers may not begin + # with a number or punctuation mark). + + remove = re.compile('^[^a-zA-Z]|[+~!@#$%^&*\(\){}\[\];:"\',<>?/\`]') header_id = self.heading.lower().replace('\n', ' ').replace(' ', '-') return remove.sub('', header_id) -- cgit v1.2.3