summaryrefslogtreecommitdiff
path: root/panfry/page.py
diff options
context:
space:
mode:
Diffstat (limited to 'panfry/page.py')
-rwxr-xr-xpanfry/page.py22
1 files changed, 15 insertions, 7 deletions
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 = ''