diff options
Diffstat (limited to 'panfry/document.py')
| -rwxr-xr-x | panfry/document.py | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/panfry/document.py b/panfry/document.py index 0013254..969d5f4 100755 --- a/panfry/document.py +++ b/panfry/document.py @@ -64,7 +64,12 @@ class Document: @property def title(self): if self.header.firstline.startswith('%'): - return self.header.firstline.split('%')[1].strip() + title = self.header.firstline.split('%')[1].strip() + for line in self.header.lines[1:]: + if line.startswith('%'): + break + title = '%s %s' % (title, line.strip()) + return title else: return pages[0].title @@ -140,7 +145,7 @@ class Document: return links @property - def pdf_filename(self): + def filename_base(self): filename = self.title filename = re.sub(r'\s+', ' ', filename) filename = re.sub(r'[\n ]', '_', filename) @@ -149,7 +154,15 @@ class Document: filename = re.sub(r'-_', '-', filename) filename = re.sub(r'-+', '-', filename) - return filename + '.pdf' + return filename + + @property + def pdf_filename(self): + return self.filename_base + '.pdf' + + @property + def epub_filename(self): + return self.filename_base + '.epub' def publish_pdf(self, pub_path): pdf_path = os.path.join(pub_path, self.pdf_filename) @@ -161,11 +174,27 @@ class Document: doc.markdown = src pandoc.set_cwd(os.path.abspath(self.src_path)) + doc.add_argument('latex-engine=xelatex') doc.to_file(pdf_path) pandoc.set_cwd(None) return self.pdf_filename + def publish_epub(self, pub_path): + epub_path = os.path.join(pub_path, self.epub_filename) + src = self.header.source + for page in self.pages: + src += '\n%s' % page.source + + doc = pandoc.Document() + doc.markdown = src + + pandoc.set_cwd(os.path.abspath(self.src_path)) + doc.to_file(epub_path) + pandoc.set_cwd(None) + + return self.epub_filename + def publish_css(self, pub_path): src = os.path.join(self.src_path, 'css') dst = os.path.join(pub_path, 'css') |
