diff --git a/.hgignore b/.hgignore --- a/.hgignore +++ b/.hgignore @@ -2,3 +2,4 @@ __pycache__/ ^in/ ^out/ +\.pyc$ diff --git a/src/diana.py b/src/diana.py --- a/src/diana.py +++ b/src/diana.py @@ -2,6 +2,8 @@ import re import sys +from jinja2 import Environment,FileSystemLoader + import go from go import BLACK,WHITE,EMPTY from sgfParser.collection import Collection @@ -11,8 +13,7 @@ from drawer.tikz import Tikz templateDir=os.path.join(os.path.dirname(__file__),"templ") -with open(os.path.join(templateDir,"templ.svg")) as f: - template=f.read() +env=Environment(loader=FileSystemLoader(templateDir)) if len(sys.argv)>1: @@ -99,7 +100,7 @@ def processFile(fileName): # finish and save the diagram t=open(os.path.join("out","{0}-{1}.{2}".format(shortName,i+1,diagram.extension)),'w') # a new file - t.write(diagram.render(template)) + t.write(diagram.render(env.get_template("templ.svg"))) t.close() notes=open(os.path.join("out","{0}.txt".format(shortName)),'w') diff --git a/src/drawer/svg.py b/src/drawer/svg.py --- a/src/drawer/svg.py +++ b/src/drawer/svg.py @@ -48,10 +48,9 @@ class Svg: moves = [p for p in points if p.color and p.label] labels = [p for p in points if not p.color and p.label] - svg = Template(template) params = {"boardSize":self.boardSize, "padding":self.padding, "stones":stones, "moves":moves, "labels":labels} - return svg.render(params) + return template.render(params) # def getFontSize(self,text): # if len(text)<2: return round(0.7*c) diff --git a/src/templ/templ-pleb.svg b/src/templ/templ-pleb.svg new file mode 100644 --- /dev/null +++ b/src/templ/templ-pleb.svg @@ -0,0 +1,18 @@ +{% extends "templ.svg" %} + +{% block style %} +rect{fill:white;stroke:black;stroke-width:1px} +text{font-family:"DejaVu Sans";text-anchor:middle;} +line{stroke:black;stroke-width:0.7px} +circle{stroke:black} +circle.b, text.w, text.e{fill:black} +circle.w, text.b{fill:white} +circle.e {stroke:none;fill:white} +{% endblock %} + +{% macro labeledPoint(p) %} + + + {{p.label}} + +{% endmacro %} diff --git a/src/templ/templ.svg b/src/templ/templ.svg --- a/src/templ/templ.svg +++ b/src/templ/templ.svg @@ -1,20 +1,31 @@ - + {% set cellSize=boardSize/18 %} {% set stoneRadius=cellSize/2-1 %} - +{% if not labeledPoint %} + {% macro labeledPoint(p) %} + + + {{p.label}} + + {% endmacro %} +{% endif %} + + - + {# grid #} {% for i in range(1,18) %} @@ -36,18 +47,12 @@ {# moves #} {% for p in moves %} - - - {{p.label}} - + {{labeledPoint(p)}} {% endfor %} {# labels #} {% for p in labels %} - - - {{p.label}} - + {{labeledPoint(p)}} {% endfor %}