This version is intended to be the last release that is marked as a beta / pre-1.0 version.
New features:
- Support for arbitrary SVG node contents, via the
node_builderdecorator - Support for handling of custom tree node classes, via the
TreeOptionsoptiontree_split, as well as a pre-provided handler for nltk'sProbabilisticTreeclass - Built-in node builder (
svgling.core.subscript_node) for nodes that have a subscript - A figure class
HTMLSideBySidethat allows mixing hybrid HTML diagrams with SVG diagrams
Documentation:
- Major documentation improvements, convert docs to quarto
Fixes, improvements, changes:
- Support a repeated call notation for most TreeLayout public functions
- Improvements to the
draw_treeandtree2svgAPIs - Fix for constituent underlines at the exact lower edge of a figure
- Compatibility mode for rendering (some)
svgling.htmldiagrams in quarto - Refactor of the node construction API that goes along with the
node_builderchange - Build/install improvements
As of 0.3.1, svgling is the default tree-drawing package for nltk Trees
in Jupyter; this update provides better compatibility for that. It also
improves some styling options, and direct support for format conversion.
New features:
- Limited per-node styling in trees: supports changing font style, size, and color/fill
- convenience wrappers to make conversion to PNG/PDF via the
cairosvgpackage easier (cairosvgis now an optional package dependency) - Support
nltk.Treeobjects directly insvgling.figureclasses
Fixes, improvements, changes:
- Simplify import code for nltk, remove monkeypatching
- The option
global_font_styleis renamed to justfont_style - Refactor
TreeOptionsto make it easier to pass around options bundles - Default change:
relative_units=False. This provides better compatibility with inkscape, among other things. This option is now deprecated. - Documentation improvements
New feature:
- Compatibility mode aimed at Inkscape: allow using
pxinstead of relativeemunits. This allows current versions of Inkscape to load the output SVGs. This mode is not on by default.
Fixes, improvements, changes:
- Update documentation to reflect some issues in MathJax math mode delimeter choice for hybrid mode.
New features:
- Basic support for drawing trees using a mix of HTML/CSS (for positioning) and SVG (for line drawing). This is much more limited than the core drawing algorithms, but allows for arbitrary node labels + MathJax.
Fixes, improvements, changes:
- Improve documentation
New features:
- Support for multi-line nodes.
- Edge styles, muti-segment descents for level skipping.
- Wrote a manual.
- Tree annotations: movement arrows, constituent highlighting / underlining.
- Complex figures: grids of trees, captioning.
Fixes, improvements, changes:
- Massively improve responsivity of svgling diagrams.
- TreeLayout objects manage font size directly.
distance_to_daughteris now a distance between levels, i.e. excluding node height.
- Fix for non-leaf nodes that are larger than the leaf nodes they dominate.
- More flexible arguments to
draw_tree(will accept the top node + children via variable arguments, rather than a list/tuple as the first argument.) - Documentation improvements.
- Support for basic tree drawing with lists and
nltk.tree.Treeobjects.