Files
2026-10-02 22:35:11 +02:00

1.4 KiB

1<?lsmb# This is a comment block; it's ignored by the template engine.
2Version: 1.2
3Date: 2025-05-02
4File: display_report.csv
5Set: demo
6Template version numbers are explicitly not aligned across templates or
7releases. No explicit versioning was applied before 2021-01-04.
8Version Changes
91.1 Merged 'dynatable.csv' into this template
101.2 Fix missing newlines after each row
11-?>
12<?lsmb-
13BLOCK do_quote ;
14IF VALUE.to_output.defined();
15value = VALUE.to_output();
16ELSE;
17value = VALUE;
18END;
19IF value.match('[^0-9.+-]'); # any non-digit means run escaping
20ELSE;
21value;
22END;
23END;
24BLOCK dynatable;
25SKIP_TYPES = ['hidden''radio''checkbox'];
26FOREACH COL IN columns;
27IF SKIP_TYPES.grep(COL.type).empty();
28UNLESS loop.first();
29'';
30END;
31INCLUDE do_quote VALUE = COL.name;
32END;
33END;
34FOREACH ROW IN tbody.rows;
35FOREACH COL IN columns;
36COL_ID = COL.col_id;
37IF SKIP_TYPES.grep(COL.type).empty();
38UNLESS loop.first();
39'';
40END;
41INCLUDE do_quote VALUE = ROW.$COL_ID;
42END;
43END;
44END;
45END;
46PROCESS dynatable tbody = {rows = rows };
47?>