From 13c8f931b3edc89d8d67c816dac8965608648bd0 Mon Sep 17 00:00:00 2001 From: Johannes Löthberg Date: Tue, 15 Nov 2016 11:47:14 +0100 Subject: Move scripts to scripts/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johannes Löthberg --- Makefile | 4 ++ build.py | 96 ---------------------------------------------- scripts/build.py | 98 +++++++++++++++++++++++++++++++++++++++++++++++ scripts/utils/__init__.py | 0 scripts/utils/reST.py | 13 +++++++ utils/__init__.py | 0 utils/reST.py | 13 ------- 7 files changed, 115 insertions(+), 109 deletions(-) create mode 100644 Makefile delete mode 100644 build.py create mode 100644 scripts/build.py create mode 100644 scripts/utils/__init__.py create mode 100644 scripts/utils/reST.py delete mode 100644 utils/__init__.py delete mode 100644 utils/reST.py diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f478fa4 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +build: $(wildcard entries/*.rst) $(wildcard templates/*.html) entries.json + python scripts/build.py + +.PHONY: build diff --git a/build.py b/build.py deleted file mode 100644 index 60f4510..0000000 --- a/build.py +++ /dev/null @@ -1,96 +0,0 @@ -import os.path -import json - -from jinja2 import Environment, FileSystemLoader - -from utils.reST import reST_to_html - - -def build_entry(jenv, entry, older=None, newer=None): - entry_template = jenv.get_template('entry.html') - - source_file = 'entries/{}.rst'.format(entry['file']) - with open(source_file, 'r') as f: - source = f.read() - - rendered_source = reST_to_html(source) - - rendered = entry_template.render(entry=entry, - older=older, - newer=newer, - content=rendered_source) - with open('out/{}.html'.format(entry['file']), 'w+') as f: - f.write(rendered) - - -def build_index(jenv, entry, older=None): - index_template = jenv.get_template('index.html') - - source_file = 'entries/{}.rst'.format(entry['file']) - with open(source_file, 'r') as f: - source = f.read() - - rendered_source = reST_to_html(source) - - rendered = index_template.render(entry=entry, - older=older, - content=rendered_source) - with open('out/index.html', 'w+') as f: - f.write(rendered) - - -def build_archive(jenv, entries): - archive_template = jenv.get_template('archive.html') - rendered = archive_template.render(entries=entries) - with open('out/archive.html', 'w+') as f: - f.write(rendered) - - -def split_entries(entries): - published = [] - unpublished = [] - - for entry in entries: - path = 'entries/{}.rst'.format(entry['file']) - if not os.path.isfile(path): - print('''Source file '{}' for entry '{}' does not exist. Skipping.''' - .format(path, entry['title'])) - continue - - if entry.get('published', "True") == "True": - published.append(entry) - else: - unpublished.append(entry) - - return (published, unpublished) - - -if __name__ == '__main__': - jenv = Environment(loader=FileSystemLoader('templates'), - trim_blocks=True, - lstrip_blocks=True) - - with open('entries.json') as f: - entries = json.load(f) - - published, unpublished = split_entries(entries) - - for entry in unpublished: - build_entry(jenv, entry) - - for index, entry in enumerate(published): - older = None - newer = None - if index > 0: - older = published[index-1] - if index < len(published) - 1: - newer = published[index+1] - - build_entry(jenv, entry, older, newer) - - if len(published) > 1: - build_index(jenv, published[-1], published[-2]) - else: - build_index(jenv, published[-1], None) - - build_archive(jenv, published) diff --git a/scripts/build.py b/scripts/build.py new file mode 100644 index 0000000..52f2775 --- /dev/null +++ b/scripts/build.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 + +import os.path +import json + +from jinja2 import Environment, FileSystemLoader + +from utils.reST import reST_to_html + + +def build_entry(jenv, entry, older=None, newer=None): + entry_template = jenv.get_template('entry.html') + + source_file = 'entries/{}.rst'.format(entry['file']) + with open(source_file, 'r') as f: + source = f.read() + + rendered_source = reST_to_html(source) + + rendered = entry_template.render(entry=entry, + older=older, + newer=newer, + content=rendered_source) + with open('out/{}.html'.format(entry['file']), 'w+') as f: + f.write(rendered) + + +def build_index(jenv, entry, older=None): + index_template = jenv.get_template('index.html') + + source_file = 'entries/{}.rst'.format(entry['file']) + with open(source_file, 'r') as f: + source = f.read() + + rendered_source = reST_to_html(source) + + rendered = index_template.render(entry=entry, + older=older, + content=rendered_source) + with open('out/index.html', 'w+') as f: + f.write(rendered) + + +def build_archive(jenv, entries): + archive_template = jenv.get_template('archive.html') + rendered = archive_template.render(entries=entries) + with open('out/archive.html', 'w+') as f: + f.write(rendered) + + +def split_entries(entries): + published = [] + unpublished = [] + + for entry in entries: + path = 'entries/{}.rst'.format(entry['file']) + if not os.path.isfile(path): + print('''Source file '{}' for entry '{}' does not exist. Skipping.''' + .format(path, entry['title'])) + continue + + if entry.get('published', "True") == "True": + published.append(entry) + else: + unpublished.append(entry) + + return (published, unpublished) + + +if __name__ == '__main__': + jenv = Environment(loader=FileSystemLoader('templates'), + trim_blocks=True, + lstrip_blocks=True) + + with open('entries.json') as f: + entries = json.load(f) + + published, unpublished = split_entries(entries) + + for entry in unpublished: + build_entry(jenv, entry) + + for index, entry in enumerate(published): + older = None + newer = None + if index > 0: + older = published[index-1] + if index < len(published) - 1: + newer = published[index+1] + + build_entry(jenv, entry, older, newer) + + if len(published) > 1: + build_index(jenv, published[-1], published[-2]) + else: + build_index(jenv, published[-1], None) + + build_archive(jenv, published) diff --git a/scripts/utils/__init__.py b/scripts/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/utils/reST.py b/scripts/utils/reST.py new file mode 100644 index 0000000..d99758c --- /dev/null +++ b/scripts/utils/reST.py @@ -0,0 +1,13 @@ +from docutils import core + +def reST_to_html(source): + settings_overrides = { + 'footnote_references': 'superscript', + 'auto_id_prefix': 'id-', + 'initial_header_level': 3, + 'doctitle_xform': False, + } + formatted = core.publish_parts(source, + writer_name='html4css1', + settings_overrides=settings_overrides) + return formatted['body'] diff --git a/utils/__init__.py b/utils/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/utils/reST.py b/utils/reST.py deleted file mode 100644 index d99758c..0000000 --- a/utils/reST.py +++ /dev/null @@ -1,13 +0,0 @@ -from docutils import core - -def reST_to_html(source): - settings_overrides = { - 'footnote_references': 'superscript', - 'auto_id_prefix': 'id-', - 'initial_header_level': 3, - 'doctitle_xform': False, - } - formatted = core.publish_parts(source, - writer_name='html4css1', - settings_overrides=settings_overrides) - return formatted['body'] -- cgit v1.2.3-54-g00ecf