summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorJohannes Löthberg <johannes@kyriasis.com>2016-11-15 15:16:23 +0100
committerJohannes Löthberg <johannes@kyriasis.com>2016-11-15 15:16:23 +0100
commitbda028e1db07d786ec0cf48feeae199679f07d70 (patch)
tree2f12358e308c41ed5d5f48e281f35c817e914522 /scripts
parent5f78f881b64e451c446f5f69b71a1dad0eae9fa3 (diff)
downloadkyblo-bda028e1db07d786ec0cf48feeae199679f07d70.tar.xz
Add support for entry tags
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/scripts/build.py b/scripts/build.py
index 4b3eddf..b6d4870 100755
--- a/scripts/build.py
+++ b/scripts/build.py
@@ -2,6 +2,7 @@
import os.path
import json
+from collections import OrderedDict
from jinja2 import Environment, FileSystemLoader
@@ -35,6 +36,7 @@ def load_metadata(name):
published = []
unpublished = []
+ tags = {}
for entry in entries:
path = 'entries/{}.rst'.format(entry['file'])
@@ -48,7 +50,13 @@ def load_metadata(name):
else:
unpublished.append(entry)
- return (published, unpublished)
+ for tag in entry.get('tags', []):
+ if not tag in tags:
+ tags[tag] = []
+
+ tags[tag].append(entry)
+
+ return (published, unpublished, tags)
if __name__ == '__main__':
@@ -57,8 +65,9 @@ if __name__ == '__main__':
lstrip_blocks=True)
entry_tmpl = jenv.get_template('entry.html')
archive_tmpl = jenv.get_template('archive.html')
+ tags_tmpl = jenv.get_template('tags.html')
- published, unpublished = load_metadata('metadata.json')
+ published, unpublished, tags = load_metadata('metadata.json')
for entry in unpublished:
build_entry(entry_tmpl, entry['file'], entry)
@@ -69,5 +78,11 @@ if __name__ == '__main__':
build_entry(entry_tmpl, entry['file'], entry, older, newer)
build_entry(entry_tmpl, 'index', published[-1], older=published[-2:-1])
-
build_archive(archive_tmpl, 'archive', 'Archive', published)
+
+ tag_list = OrderedDict(sorted(map(lambda k: (k, 0), tags.keys())))
+ for tag in tags:
+ build_archive(archive_tmpl, 'tag-{}'.format(tag), tag, tags[tag])
+ tag_list[tag] = len(tags[tag])
+
+ build_archive(tags_tmpl, 'tags', 'Tags', tag_list)