add attachments to example.typ

This commit is contained in:
2025-10-03 19:28:00 +02:00
parent f22b16a803
commit 5c35389dca
4 changed files with 38 additions and 4 deletions

View File

@@ -392,6 +392,30 @@ Při dalších použití bude vypadat takto: #abbr("ZK").
Tedy zkratku _nepřidáváte_ přímo do seznamu zkratek, ale elegantně používáte přímo v textu. Tedy zkratku _nepřidáváte_ přímo do seznamu zkratek, ale elegantně používáte přímo v textu.
] ]
== Přílohy
V některých typech dokumentů budete chtít přidat přílohy. Přílohy se přikládají v různých podobách:
- Jako odkaz (URL/URI adresa)
- Zmínka externího souboru (například další soubor nahraný do systému)
- Přiložený obsah (vygenerovaný Typstem v tomto dokumentu -- je tedy součástí tohoto kódu)
- Externí PDF soubor přiložený jako obsah (jiný PDF dokument, vložený do příloh v kompletní
podobě -- to je dobré například do tisku, kde můžete přílohy vytisknout s dokumentem)
#highlight[
Přílohy lze definovat *pouze na jednom* místě v dokumentu, aby se zabránilo omylnému opakování
příloh. Přílohy doporučujeme definovat *na konci* souboru pro přehlednost.
]
Zde je ukázka definice příloh (je také použita na konci tohoto ukázkového souboru):
```typst
#attachments(
attach_link("Zdrojový kód této šablony", "https://git.zumepro.cz/tul/tultemplate2"),
attach_content("Testovací obsah vygenerovaný Typstem", [Sem lze psát _stylovaný_ obsah.]),
)
```
= Workflow a jak si zjednoduššit práci = Workflow a jak si zjednoduššit práci
Tyhle věci používat _nemusíte_, aby vám šablona fungovala. Nicméně často jsou poměrně fajn. Tyhle věci používat _nemusíte_, aby vám šablona fungovala. Nicméně často jsou poměrně fajn.
@@ -454,3 +478,8 @@ Takhle si můžete předpřipravit délku odstavců a vyzkoušet si, jestli se r
do požadavků. Pak můžete postupně přepisovat/vyplňovat. do požadavků. Pak můžete postupně přepisovat/vyplňovat.
Funkce `todo` vám zároveň zabrání v tom, aby se text Lorem Ipsum vyskytl ve výsledném dokumentu. Funkce `todo` vám zároveň zabrání v tom, aby se text Lorem Ipsum vyskytl ve výsledném dokumentu.
#attachments(
attach_link("Zdrojový kód této šablony", "https://git.zumepro.cz/tul/tultemplate2"),
attach_content("Testovací obsah vygenerovaný Typstem", [Sem lze psát _stylovaný_ obsah.]),
)

View File

@@ -60,7 +60,8 @@
} }
} }
#let attachments(attachments) = { #let attachments(..attachments) = {
let attachments = attachments.pos();
assert_type_signature( assert_type_signature(
attachments, "array[array[string | content]] | array[string | content]", "attachments" attachments, "array[array[string | content]] | array[string | content]", "attachments"
); );
@@ -117,6 +118,9 @@
return; return;
} }
let data = eval(data); let data = eval(data);
if data == false {
return;
}
heading(get_lang_item(language, "attachments"), numbering: none); heading(get_lang_item(language, "attachments"), numbering: none);
// listing // listing

View File

@@ -33,7 +33,7 @@
faculty_id, faculty_id,
faculty_color(faculty_id), faculty_color(faculty_id),
language, language,
assignment_document, map_none(assignment_document, (v) => "../../" + v),
map_none(citation_file, (v) => "../../" + v), map_none(citation_file, (v) => "../../" + v),
title, title,
author, author,

View File

@@ -123,6 +123,7 @@
) = { ) = {
let info_name_value_padding = 5em; let info_name_value_padding = 5em;
let info_name_min_width = 10em; let info_name_min_width = 10em;
let gutter = .7em;
// document type // document type
if type(document_type) != type(none) { if type(document_type) != type(none) {
@@ -156,7 +157,7 @@
}), info_name_min_width.to-absolute()); }), info_name_min_width.to-absolute());
grid( grid(
columns: 2, columns: 2,
gutter: .7em, gutter: gutter,
..info_fields.filter((v) => { type(v.at(1)) != type(none) }).map((v) => { ..info_fields.filter((v) => { type(v.at(1)) != type(none) }).map((v) => {
( (
align(top, block( align(top, block(
@@ -168,7 +169,7 @@
}).flatten(), }).flatten(),
); );
v(1em); v(1em);
h(max_field_name_width + info_name_value_padding); h(max_field_name_width + info_name_value_padding + gutter);
text(get_lang_item(language, "city") + " " + str(datetime.today().year()), font: base_font); text(get_lang_item(language, "city") + " " + str(datetime.today().year()), font: base_font);
} }
} }