A lightweight JavaScript library that generates a Goban representation as layered sets of SVG shapes
Generate a SVG sample output from this repository:
node demo/test_19classic_4stones.js > sample.svg
SVGoban may be installed as a NPM package: npm install svgoban --save
"Pseudo-" elements are regular objects with a type attribute matching the target SVG element and other related attributes.
size
= a number between 9
and 19
color
= "black"
or "white"
position
= an object containing coordinates and colors as keys and valuesconfig
= an object containing size
and theme
attributesnoMargin
and hideMargin
= booleanscoordSystem
= "A1"
or "aa"
zoom
= an object describing either:
mode
= "zone"
] a region ("NW"
/"NE"
/"SE"
/"SW"
)mode
= "point"
] or a center point and a zoom ratioshapeBackground(noMargin)
returns 1 pseudo-square whose area may include the marginshapeGrid(size)
returns an array of 2*size pseudo-linesshapeStarPoints(size)
returns an array of pseudo-circlesshapeLabels(size, coordSystem)
returns an array of 4*size pseudo-textshapeStones(size, positions)
returns an array of size*size pseudo-circles (stones and placeholders)shapeStone(size, intersection, color)
returns 1 pseudo-circleshapeMarkers(size, markers, positions)
returns an array of pseudo-elements drawing triangles, squares,...shapeArea(hideMargin, zoom, size)
returns a view box with optional margin and zoom indefineRadialColors(color)
returns gradient colorsThemes
is an array of predefined themes: "classic"
and "paper"
serialize(config, position, markers)
returns a string containing a full SVG goban