diff options
Diffstat (limited to 'panfry/document.py')
| -rwxr-xr-x | panfry/document.py | 21 |
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')) |
