I’m unable to get my modified script to work.
The original script works fine:
#import "@preview/genealotree:0.2.0": *
// https://codeberg.org/drloiseau/genealogy
#import "@preview/cetz:0.3.1": canvas, draw
#import draw: *
#set page(width: auto, height: auto, margin: 1cm)
#set text(size: 11pt)
#let family-tree = genealogy-init()
#(family-tree.config.union-dist = 5.5)
#(family-tree.config.siblings-dist = 8)
#(family-tree.config.union-vline = 3)
#(family-tree.config.person-radius = 2)
#let family-tree = add-persons(
family-tree,
(
"1": (sex: "m", label: "1 name lastname\n\nm: 0000\nd: 0000"),
"2": (sex: "f", label: "2 name lastname\n\nm: 0000\nd: 0000"),
"3": (sex: "m", label: "3 name lastname\n\nm: 0000\nd: 0000"),
"4": (sex: "f", label: "4 name lastname\n\nm: 0000\nd: 0000"),
"5": (sex: "f", label: "5 name lastname\n\nm: 0000\nd: 0000"),
"6": (sex: "m", label: "6 name lastname\n\nm: 0000\nd: 0000"),
"7": (sex: "m", label: "7 name lastname\n\nm: 0000\nd: 0000"),
"8": (sex: "f", label: "8 name lastname\n\nm: 0000\nd: 0000"),
"9": (sex: "f", label: "9 name lastname\n\nm: 0000\nd: 0000"),
"10": (sex: "m", label: "10 name lastname\n\nm: 0000\nd: 0000"),
"11": (sex: "m", label: "11 name lastname\n\nm: 0000\nd: 0000"),
)
)
#let family-tree = add-unions(
family-tree,
(("1", "2"), ("3", "5")),
(("3", "4"), ()),
(("5", "6"), ("7",)),
(("7", "8"), ("9", "10", "11")),
)
#canvas({
// Draw the tree
draw-tree(family-tree)
})
But when I updated my script to get it’s data from an external toml file,
I can’t get it to work.
#import "@preview/genealotree:0.2.0": *
// https://codeberg.org/drloiseau/genealogy
#import "@preview/cetz:0.3.1": canvas, draw
#import draw: *
#set page(width: auto, height: auto, margin: 1cm)
#set text(size: 11pt)
#let family-tree = genealogy-init()
#(family-tree.config.union-dist = 5.5)
#(family-tree.config.siblings-dist = 8)
#(family-tree.config.union-vline = 3)
#(family-tree.config.person-radius = 2)
#let gen = toml("gen.toml")
#for c in gen.family_tree [
#let family-tree = add-persons(
family-tree,
(str(c.id): (sex: c.sex, label: c.label))
)
]
#for c in gen.unions.unions [
#let family-tree = add-unions(family-tree, (c.at(0), c.at(1)))
]
#canvas({
// Draw the tree
draw-tree(family-tree)
})
And the toml:
# gen.toml
[unions]
unions = [
[["1", "2"], ["3", "5"]],
[["3", "4"], []],
[["5", "6"], ["7",]],
[["7", "8"], ["9", "10", "11"]]
]
[[family_tree]]
id = 1
sex = "m"
label = "1 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 2
sex = "f"
label = "2 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 3
sex = "m"
label = "3 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 4
sex = "f"
label = "4 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 5
sex = "f"
label = "5 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 6
sex = "m"
label = "6 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 7
sex = "m"
label = "7 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 8
sex = "f"
label = "8 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 9
sex = "f"
label = "9 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 10
sex = "m"
label = "10 name lastname\n\nm: 0000\nd: 0000"
[[family_tree]]
id = 11
sex = "m"
label = "11 name lastname\n\nm: 0000\nd: 0000"
How can I get my script to work?