Files @ 686166c7d5bc
Branch filter:

Location: Diana/src/diana/drawer/svg.py

Laman
added more whitespace
from .base import Base


def adjustFont(base,text):
	text = str(text)
	if len(text) < 2:
		return round(0.7*base)
	elif len(text) < 3:
		return round(0.55*base)
	else:
		return round(0.4*base)


class Svg(Base):
	extension = "svg"

	padding = 15
	highNumbers = True
	
	def __init__(self, start=0):
		super().__init__(start)
		self.boardSize = 480
		self.padding = 30

	def render(self, templateName, 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 = {
			"boardSize": self.boardSize, "padding": self.padding, "stones": stones, "moves": moves,
			"labels": labels, "adjustFont": adjustFont, "bgcolor": bgcolor}

		return self._env.get_template(templateName).render(params)

	def save(self, filename, template="templ.svg", bgcolor=""):
		file = open(filename+".svg", 'w')
		file.write(self.render(template, bgcolor))
		file.close()

		super().save(filename)