refactor
This commit is contained in:
parent
4fb5b12ea7
commit
baa288bff3
11 changed files with 401 additions and 780 deletions
|
|
@ -1,4 +1,5 @@
|
|||
# This file ensures the fonts directory is tracked by git
|
||||
# Place TTF font files here as described in README.md
|
||||
# Place TTF font files here
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12,36 +12,42 @@
|
|||
margin: (top: 1.2cm, bottom: 1.2cm, left: 1.0cm, right: 1.0cm)
|
||||
)
|
||||
|
||||
#set text(size: 9pt)
|
||||
#set text(size: 9pt, hyphenate: true)
|
||||
#set heading(numbering: none)
|
||||
|
||||
// Enable text wrapping in table cells
|
||||
#show table.cell: it => box(width: 100%)[#it]
|
||||
|
||||
#let data = sys.inputs.elixir_data
|
||||
#let columns = data.at("columns", default: ())
|
||||
#let rows = data.at("rows", default: ())
|
||||
#let meta = data.at("meta", default: (generated_at: "", member_count: rows.len()))
|
||||
#let title = data.at("title", default: "Member Export")
|
||||
#let created_at_label = data.at("created_at_label", default: "Created at:")
|
||||
#let member_count_label = data.at("member_count_label", default: "Member count:")
|
||||
|
||||
// Title
|
||||
#align(center)[
|
||||
#text(size: 14pt, weight: "bold")[Mitglieder-Export]
|
||||
#text(size: 14pt, weight: "bold")[#title]
|
||||
]
|
||||
|
||||
#v(0.4cm)
|
||||
|
||||
// Export metadata
|
||||
#set text(size: 8pt, fill: gray)
|
||||
#set text(size: 8pt, fill: black)
|
||||
#grid(
|
||||
columns: (1fr, 1fr),
|
||||
gutter: 1cm,
|
||||
[*Erstellt am:* #meta.at("generated_at", default: "")],
|
||||
[*Anzahl Mitglieder:* #meta.at("member_count", default: rows.len())],
|
||||
[*#created_at_label* #meta.at("generated_at", default: "")],
|
||||
[*#member_count_label* #meta.at("member_count", default: rows.len())],
|
||||
)
|
||||
|
||||
#v(0.6cm)
|
||||
|
||||
// ---- Horizontal paging config ----
|
||||
#let fixed_count = calc.min(2, columns.len())
|
||||
#let max_dynamic_cols = 6
|
||||
#let fixed_col_width = 1.6fr
|
||||
#let max_dynamic_cols = 5
|
||||
#let fixed_col_widths = (32mm, 32mm)
|
||||
|
||||
#let fixed_cols = columns.slice(0, fixed_count)
|
||||
#let dynamic_cols = columns.slice(fixed_count, columns.len())
|
||||
|
|
@ -54,8 +60,12 @@
|
|||
#let page_cols = fixed_cols + dyn_cols_chunk
|
||||
#let headers = page_cols.map(c => c.at("label", default: ""))
|
||||
|
||||
// widths: fixe breiter, dynamische gleichmäßig
|
||||
#let widths = (fixed_col_width,) * fixed_count + (1fr,) * dyn_count
|
||||
// widths: first two columns fixed (32mm, 42mm), rest distributed as 1fr
|
||||
#let widths = (
|
||||
if fixed_count >= 1 { fixed_col_widths.at(0) } else { 1fr },
|
||||
if fixed_count >= 2 { fixed_col_widths.at(1) } else { 1fr },
|
||||
..((1fr,) * dyn_count)
|
||||
)
|
||||
|
||||
#let header_cells = headers.map(h => text(weight: "bold", size: 9pt)[#h])
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue