summaryrefslogtreecommitdiff
path: root/panfry/document.py
diff options
context:
space:
mode:
authorScott Bahling <sbahling@mudgum.net>2013-03-19 17:07:19 +0100
committerScott Bahling <sbahling@mudgum.net>2013-03-19 17:07:19 +0100
commit59e2443d531ace2005de5a9e830e063d79808427 (patch)
tree6d08f41f9e55fcdf5d4e75c6113fb1963649a984 /panfry/document.py
parent1db2cd359e91fe8983814605405e07b83d674a22 (diff)
downloadpanfry-59e2443d531ace2005de5a9e830e063d79808427.tar.gz
panfry-59e2443d531ace2005de5a9e830e063d79808427.tar.xz
panfry-59e2443d531ace2005de5a9e830e063d79808427.zip
Cleanup and prepare for full level TOC generation
Diffstat (limited to 'panfry/document.py')
-rwxr-xr-xpanfry/document.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/panfry/document.py b/panfry/document.py
index 7bb06b4..0b450da 100755
--- a/panfry/document.py
+++ b/panfry/document.py
@@ -5,6 +5,7 @@ import re
import pandoc
from tempfile import NamedTemporaryFile
from panfry.util import *
+from panfry.page import TextFile, Page
class Document:
@@ -19,16 +20,20 @@ class Document:
@property
def title(self):
- header = self.meta['HEADER'].strip()
- if header.startswith('%'):
- return header.split('%')[1].strip()
+ if self.header.firstline.startswith('%'):
+ return self.header.firstline.split('%')[1].strip()
else:
return pages[0].title
def get_pages(self, path):
pages = []
- filelist = get_lines(self.meta['TOC'])
+ filelist = self.toc.lines
+ print filelist
for filename in filelist:
+ print("Reading in %s..." % filename)
+ if not filename: # blank line in toc
+ print("WARNING: %s contains blank lines" % self.toc.filename)
+ continue
source = read_file(os.path.join(path, filename))
if source:
pages.append(Page(filename, source))
@@ -43,7 +48,8 @@ class Document:
for filename in metafiles:
source = read_file(os.path.join(path, filename))
if source:
- meta[filename] = source
+ metafile = TextFile(filename, source)
+ setattr(self, filename.lower(), metafile)
else:
print("!E: %s not found or is empty. Aborting..." % filename)
exit(1)
@@ -90,7 +96,6 @@ class Document:
@property
def pdf_filename(self):
filename = self.title
- filename = self.meta['HEADER'].split('%')[1].strip()
filename = re.sub(r'\s+', ' ', filename)
filename = re.sub(r'[\n ]', '_', filename)
filename = re.sub(r'[:,]', '-', filename)
@@ -102,7 +107,7 @@ class Document:
def publish_pdf(self, pub_path):
pdf_path = os.path.join(pub_path, self.pdf_filename)
- src = self.meta['HEADER']
+ src = self.header.source
for page in self.pages:
src += '\n%s' % page.source
@@ -146,7 +151,7 @@ class Document:
doc.add_argument('toc')
doc.add_argument('template=%s' % template_file.name)
doc.add_argument('css=%s' % self.css_file)
- doc.markdown = '%s\n%s' % (self.meta['HEADER'], page.source)
+ doc.markdown = '%s\n%s' % (self.header.source, page.source)
content = doc.html
write_file(os.path.join(pub_path, page.htmlfile),
unicode(content, 'utf-8'))