summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/bupa56
1 files changed, 24 insertions, 32 deletions
diff --git a/scripts/bupa b/scripts/bupa
index eca289a..b982ec8 100755
--- a/scripts/bupa
+++ b/scripts/bupa
@@ -18,15 +18,16 @@ def filename_to_id(file_name):
split('-')[0].
split('.')[0])
-class Entry(object):
- def __init__(self, entry_dict):
+class Page(object):
+ def __init__(self, page_dict):
self.id = None
- self.title = entry_dict['title']
- self.date = entry_dict['date']
- self.author = entry_dict['author']
- if 'author_link' in entry_dict:
- self.author_link = entry_dict['author_link']
- self.body = entry_dict['body'][0]
+ self.title = page_dict['title']
+ self.header = page_dict['header']
+ self.date = page_dict['date']
+ self.author = page_dict['author']
+ if 'author_link' in page_dict:
+ self.author_link = page_dict['author_link']
+ self.body = page_dict['body'][0]
def parse(filename):
with open(filename, 'r') as file:
@@ -36,15 +37,16 @@ def parse(filename):
frontmatter = frontmatter.partition('\n')[2]
frontmatter = yaml.load(frontmatter)
- entry_dict = frontmatter.copy()
- entry_dict['body'] = body
+ page_dict = frontmatter.copy()
+ page_dict['body'] = body
+ if not 'header' in page_dict:
+ page_dict['header'] = page_dict['title']
- entry = Entry(entry_dict)
- return entry
+ page = Page(page_dict)
+ return page
def build_journal(env):
template = env.get_template('journal.html')
-
files = os.listdir('src/journal')
files.sort(key=filename_to_id, reverse=True)
@@ -56,27 +58,17 @@ def build_journal(env):
entries += [entry]
with open('build/journal.html', 'w') as file:
- file.write(template.render(entries=entries, title='~/journal'))
-
-def build_index(env):
- template = env.get_template('page.html')
-
- page = parse('src/index.rst')
- page.body = reST_to_html(page.body)
- page.article_id = 'index'
-
- with open('build/index.html', 'w') as file:
- file.write(template.render(page=page, title=page.title))
+ file.write(template.render(entries=entries, title='~/journal', header='The lost journal'))
-def build_about(env):
- template = env.get_template('page.html')
+def build_page(env, templ_name, pagename):
+ template = env.get_template(templ_name)
- page = parse('src/about.rst')
+ page = parse('src/'+pagename+'.rst')
page.body = reST_to_html(page.body)
- page.article_id = 'about'
+ page.article_id = pagename
- with open('build/about.html', 'w') as file:
- file.write(template.render(page=page, title='~/about'))
+ with open('build/'+pagename+'.html', 'w') as file:
+ file.write(template.render(page=page, title=page.title, header=page.header))
def main():
arguments = docopt.docopt(__doc__)
@@ -85,9 +77,9 @@ def main():
if arguments['<filename>'] == 'journal.html':
build_journal(env)
elif arguments['<filename>'] == 'index.html':
- build_index(env)
+ build_page(env, 'page.html', 'index')
elif arguments['<filename>'] == 'about.html':
- build_about(env)
+ build_page(env, 'page.html', 'about')
if __name__ == '__main__':
main()