Files
TB-Docs/report/appendices/utils.typ

37 lines
841 B
Typst

#import "@preview/codly:1.3.0": codly-disable, codly-enable
#import "../requirements.typ": isc-hei-bthesis
#let format-ast-nodes(name, base-cls, code) = {
let nodes = code.text.split(regex(`\n\nclass`.text)).map(n => if n.starts-with("class") {n} else {"class" + n})
let cells = nodes.map(n => raw(n, block: true, lang: "python"))
if calc.rem(cells.len(), 3) == 2 {
let last-two = cells.slice(-2)
cells = cells.slice(0, -2)
let last = grid.cell(
colspan: 3,
stack(
dir: ltr,
spacing: 1fr,
none,
..last-two,
none
)
)
cells.push(last)
}
align(center)[*#name*]
if base-cls != none [Base class: #base-cls]
codly-disable()
grid(
columns: 3,
column-gutter: 1fr,
row-gutter: 2em,
align: left + top,
..cells
)
codly-enable()
}