From dd7e8daa4be941de64ccef4d8d8c5044f01777b2 Mon Sep 17 00:00:00 2001 From: Scott Bahling Date: Sat, 23 Mar 2013 13:51:22 +0100 Subject: Fix generation of cross page header referencing --- panfry/page.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'panfry/page.py') diff --git a/panfry/page.py b/panfry/page.py index 76620bc..fdf7c86 100755 --- a/panfry/page.py +++ b/panfry/page.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import re +import pandoc class TextFile: @@ -32,9 +33,10 @@ class TOCItem: self.heading = heading self.level = level - @property - def section_id(self): - return self.heading.lower().replace(' ', '-') + def header_id(self): + remove = re.compile('[+~!@#$%^&*\(\){}\[\];:"\',.<>?/\`]') + header_id = self.heading.lower().replace('\n', ' ').replace(' ', '-') + return remove.sub('', header_id) class Page(TextFile): @@ -42,6 +44,15 @@ class Page(TextFile): Represents single page source file. ''' + def __init__(self, filename, source, format='markdown'): + TextFile.__init__(self, filename, source) + self.doc = pandoc.Document() + self.doc._input(self.source, format=format) + + @property + def markdown(self): + return self.doc.markdown + @property def title(self): ''' @@ -74,10 +85,7 @@ class Page(TextFile): @property def toc(self): ''' - Returns a list of tuples representing the headings/sub-heading - structure of the page. - The first element of each tuple is the heading text. - The second element of each tuple is the heading level. + Returns a list of TOCItems of the page. ''' toc = [] heading = '' -- cgit v1.2.3