Changelog for svgling
[0.5.0] - Documentation and node rendering - 2024-08-20
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_builder
decorator - Support for handling of custom tree node classes, via the
TreeOptions
optiontree_split
, as well as a pre-provided handler for nltk’sProbabilisticTree
class - Built-in node builder (
svgling.core.subscript_node
) for nodes that have a subscript - A figure class
HTMLSideBySide
that 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_tree
andtree2svg
APIs - Fix for constituent underlines at the exact lower edge of a figure
- Compatibility mode for rendering (some)
svgling.html
diagrams in quarto - Refactor of the node construction API that goes along with the
node_builder
change - Build/install improvements
[0.4.0] - Node styling and compatibility - 2023-09-25
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
cairosvg
package easier (cairosvg
is now an optional package dependency) - Support
nltk.Tree
objects directly insvgling.figure
classes
Fixes, improvements, changes:
- Simplify import code for nltk, remove monkeypatching
- The option
global_font_style
is renamed to justfont_style
- Refactor
TreeOptions
to 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
[0.3.1] - Inkscape compatibility - 2021-10-11
New feature:
- Compatibility mode aimed at Inkscape: allow using
px
instead of relativeem
units. 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.
[0.3.0] - Hybrid HTML/SVG tree drawing - 2018-12-10
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
[0.2.0] - Core features complete - 2018-11-26
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_daughter
is now a distance between levels, i.e. excluding node height.
[0.1.3] - Bugfix release - 2018-11-8
- 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.
[0.1.2] - First real release - 2018-11-7
- Support for basic tree drawing with lists and
nltk.tree.Tree
objects.