diff options
Diffstat (limited to 'panfry/page.py')
| -rwxr-xr-x | panfry/page.py | 9 |
1 files changed, 8 insertions, 1 deletions
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) |
