Files
@ 3207d998d598
Branch filter:
Location: Diana/src/diana/drawer/tikz.py - annotation
3207d998d598
957 B
text/x-python
reintroduced tikz output format
3207d998d598 3207d998d598 616c96178973 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 3207d998d598 d57d0d4ede15 616c96178973 3207d998d598 3207d998d598 616c96178973 3207d998d598 3207d998d598 3207d998d598 616c96178973 3207d998d598 3207d998d598 3207d998d598 3207d998d598 616c96178973 3207d998d598 616c96178973 3207d998d598 3207d998d598 3207d998d598 3207d998d598 616c96178973 3207d998d598 | from .base import Drawer
def stone_color(c):
if c == "b":
return "black"
elif c == "w":
return "white"
else:
return c
def label_color(c):
return stone_color("b" if c == "w" else "w" if c == "b" else c)
class Tikz(Drawer):
high_numbers = True
def render(self, template_name, bgcolor=""):
points = [p for (i, p) in sorted(self._index.values(), key=lambda x: x[0])]
stones = [p for p in points if p.color and p.label == ""]
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]
params = {
"stones": stones, "moves": moves, "labels": labels, "bgcolor": bgcolor,
"stone_color": stone_color, "label_color": label_color
}
return self._env.get_template(template_name).render(params)
def save(self, filename, template="templ.tex", bgcolor=""):
file = open(filename + ".tikz", 'w')
file.write(self.render(template, bgcolor))
file.close()
super().save(filename)
|