diff --git a/README.md b/README.md index 83e2e93..ec1ec12 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ ## Hellapagos Traduko de [Hellapagos](http://www.hellapagos.com/) + +## Generado + +Uzu `python generate.py`. Vi bezonas krome: + +* inkscape +* imagemagic, aka `convert` + * mi havis [jena](https://stackoverflow.com/questions/52998331/imagemagick-security-policy-pdf-blocking-conversion) problemo, kun permesojn, sed facile adapteblas diff --git a/generate.py b/generate.py new file mode 100644 index 0000000..3bc67ab --- /dev/null +++ b/generate.py @@ -0,0 +1,18 @@ +import jinja2, yaml +import subprocess, textwrap + +kartoj = yaml.safe_load(open("kartoj.yaml").read()) # listo de kartoj +for k in kartoj: #trancxu tekston al sammlongaj lineoj + k["titolo"] = textwrap.wrap(k["titolo"], 13) + k["teksto"] = textwrap.wrap(k["teksto"], 23) +kartoj = [k for k in kartoj for i in range(k["kvanto"])] # adpatas la liston por kvanto de karto +pagxoj = [kartoj[i:i+9] for i in range(0, len(kartoj), 9)] #disigas la kartaro en pagxojn po de 9 kartoj + +for i, pagxo in enumerate(pagxoj): + template_str = open("templates/sxablono.svg.jinja2").read() + t = jinja2.Template(template_str) + kartoj_offsets = zip(pagxo, [(0,0), (61,0), (122,0), (0,91), (61,91), (122,91), (0,182), (61,182), (122,182)]) + r = t.render(kartoj_offsets=kartoj_offsets) + open('svg/{}.svg'.format(i), "w").write(r) + subprocess.check_output(['inkscape','-z', 'svg/{}.svg'.format(i), '-e', 'svg/{}.png'.format(i)]) +subprocess.check_output(['convert', 'svg/*.png', 'ludo.pdf']) diff --git a/templates/sxablono.svg.jinja2 b/templates/sxablono.svg.jinja2 new file mode 100644 index 0000000..d429cc5 --- /dev/null +++ b/templates/sxablono.svg.jinja2 @@ -0,0 +1,32 @@ + +{% macro karto(name, value='', type='text', size=20) %} + +{% endmacro %} + + + + {% for k, offset in kartoj_offsets %} + {% set oloop=loop %} + + + + {% for titolo_lineo in k["titolo"] %} + + {{ titolo_lineo }} + + {% endfor %} + + + {% for tekstlineo in k["teksto"] %} + + {{ tekstlineo }} + + {% endfor %} + + + {% endfor %} + +