summaryrefslogtreecommitdiff
path: root/weekly_planner_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'weekly_planner_generator.py')
-rwxr-xr-xweekly_planner_generator.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/weekly_planner_generator.py b/weekly_planner_generator.py
new file mode 100755
index 0000000..d5bd90c
--- /dev/null
+++ b/weekly_planner_generator.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python3
+
+import argparse
+import calendar
+import os
+
+import jinja2
+
+
+def main():
+ env = jinja2.Environment()
+ loader = jinja2.FileSystemLoader('templates')
+ template_verso = loader.load(env, 'week_on_two_pages-A6-v.svg')
+ template_recto = loader.load(env, 'week_on_two_pages-A6-r.svg')
+
+ os.makedirs("build", exist_ok=True)
+
+ year = 2022
+
+ cal = calendar.Calendar()
+ weeks = sum([r[0] for r in cal.yeardatescalendar(2022, width=1)], [])
+
+ last_monday = None
+ page = 1
+ for week in weeks:
+ # yeardatescalendar will have the same week twice at the margin
+ # of a month, but we want to skip one of those
+ if week[0] == last_monday:
+ continue
+ last_monday = week[0]
+
+ with open("build/week_on_two_pages-A6-{year}-{page:02}.svg".format(
+ year=year,
+ page=page,
+ ), 'w') as fp:
+ fp.write(template_verso.render(week=week))
+ page += 1
+
+ with open("build/week_on_two_pages-A6-{year}-{page:02}.svg".format(
+ year=year,
+ page=page,
+ ), 'w') as fp:
+ fp.write(template_recto.render(week=week))
+ page += 1
+
+
+if __name__ == '__main__':
+ main()