#let ovensvg = ``````.text
#let clocksvg = ``````.text
#let template(
title: "",
persons: none,
preptime: none,
cooktime: none,
doc
) = {
set page(
paper: "a4",
numbering: "1",
)
set par(justify: true, leading: 0.6em)
set text(
font: "Linux Libertine",
size: 12pt,
)
show heading: set text(font: "Roboto")
v(0.5cm)
align(center, text(35pt, font: "Roboto")[
#text(title, weight: "medium")
])
v(-0.8cm)
align(center, {
let l = [#v(-0.25em)#line(length: 1.5em, angle: 90deg)]
let data = ()
if persons != none or persons != 0 {
data.push([#box([*#persons* pers], baseline: 3.5mm)])
data.push(l)
}
if preptime != none or preptime == "" {
data.push([#box(image.decode(clocksvg, format: "svg", height: 4.5mm), baseline: 1mm) *#preptime*])
data.push(l)
}
if cooktime != none or cooktime == "" {
data.push([#box(image.decode(ovensvg, format: "svg", height: 4.5mm), baseline: 1mm) *#cooktime*])
data.push(l)
}
let _ = data.pop()
grid(
columns: data.len(),
rows: 1,
gutter: 3.5mm,
..data
)
})
v(1cm)
doc
}
#let step(ingredients, procedure) = {
style(styles => {
let space = measure(par(ingredients, leading: 0.8em), styles).height - 0.75em
grid(columns: (1fr, 1fr), par(ingredients, leading: 0.8em), [#v(space)#procedure])
})
v(5mm)
}