Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Typst Package

twig

Twig is a Typst package for easily creating trees with edge labels.
It takes a list and converts it into a tree structure, then renders it using cetz.

#import"@preview/twig:0.1.0": list-to-tree, tree-to-cetz#import"@preview/cetz:0.4.0"// suffix tree for "babidibidi"#cetz.canvas({
importcetz.draw: *tree-to-cetz(
list-to-tree([
- #[]
/ abidibidi\$: 2
/ di: #[]
/ bidi\$: 5
/ \$: 9
/ b: #[]
/ abidibidi\$: 1
/ idi: #[]
/ \$: 7
/ bidi\$: 3
/ i: #[]
/ \$: 10
/ di: #[]
/ bidi\$: 4
/ \$: 8
/ bidi\$: 6
/ \$: 11
]),
draw-node: (node, ..) => {
circle((), radius: 0.3, fill: blue, stroke: none)
content((), text(white, [#node.content]))
},
grow: 3,
spread: 1.5,
parent-position: "center",
)
})

twig to draw suffix tree

Usage

To start using twig, just use the following code:

#import"@preview/twig:0.1.0": tree-to-cetz, list-to-tree#import"@preview/cetz:0.4.0"#cetz.canvas({
importcetz.draw: *tree-to-cetz(
list-to-tree([
- root node
// Continue here
]),
grow: 2,
spread: 2
)
})

TODOs

  • Add bounding boxes to prevent elements from intersecting
  • Simplify the syntax for empty nodes (currently #[])

Changelog

0.1.0

  • Initial release

About

twig

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages