diff options
Diffstat (limited to 'weekly_planner_generator.py')
-rwxr-xr-x | weekly_planner_generator.py | 48 |
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() |