curry the example webpage() function in a common lib.typ

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2026-06-17 22:12:31 +02:00
parent 7fe9b99535
commit 500a6ad181
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
5 changed files with 46 additions and 81 deletions

View file

@ -39,12 +39,18 @@
/// Concatenate all css found in css-list at the end of the document
#let get-css(page-label) = context {
html.style(css-list.at(label(str(page-label) + "-end")).join("\n\n"))
let end-page-label = label(str(page-label) + "-end")
if css-list.at(end-page-label) != () {
html.style(css-list.at(end-page-label).join("\n\n"))
} else {}
}
/// Concatenate all js found in js-list at the end of the document
#let get-js(page-label) = context {
html.script(js-list.at(label(str(page-label) + "-end")).join("\n\n"))
let end-page-label = label(str(page-label) + "-end")
if js-list.at(end-page-label) != () {
html.script(js-list.at(end-page-label).join("\n\n"))
} else {}
}
#let reset-page-states() = {

35
test_template/lib.typ Normal file
View file

@ -0,0 +1,35 @@
#import "@local/template-web:0.0.1": webpage as webpage-org, icons
#let webpage = webpage-org.with(
logo: image(
"/assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 100pt,
width: 100pt, // TODO 0.15 regression? in 0.14 setting the height was enough
),
footer: context [
#sym.copyright #document.date.display("[year]") Histausse \
Please don't train AI on my stuff without explicit permission
],
nav-elements: (
/*
link(
"http://test.example.com",
image(
"/assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 2em,
)
),*/
html.a(href: "http://test.example.com", aria-label: "Home", icons.home-icon), // /!\ aria-label is important for accessibility /!\
html.a(href: "/feed.rss", aria-label: "RSS feed", icons.rss-icon),
),
menu: [
- #link(<index-page>)[Home]
- #link(<pyscript-page>)[Demo Pyscript]
- #link(<cards-page>)[Demo the summary card system]
],
site-name: "TTT",
icon: "/img/platypus.png", // TODO: use <ico> somehow? probably not supported in 0.15
)

View file

@ -1,4 +1,5 @@
#import "@local/template-web:0.0.1": *
#import "/lib.typ": webpage
#let summ = summary(
base-url: "http://test.example.com",
@ -17,40 +18,10 @@
#show: webpage.with(
..summ.template-args,
logo: image(
"/assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 100pt,
width: 100pt, // TODO 0.15 regression? in 0.14 setting the height was enough
),
header: [
= Summary Cards
Showcase summary cards
],
footer: context [
#sym.copyright #document.date.display("[year]") Histausse \
Please don't train AI on my stuff without explicit permission
],
menu: [
- #link(<index-page>)[Home]
- #link(<pyscript-page>)[Demo Pyscript]
- #link(<cards-page>)[Demo the card system]
],
site-name: "TTT",
icon: "/img/platypus.png", // TODO: use <ico> somehow? probably not supported in 0.15
// Pyscript:
pyscript-data-list: (
"remote-2026.3.1": pyscript-data(
"https://pyscript.net/releases/2026.3.1/core.js",
additionnal-head-tags: {
html.elem("script", attrs: (src: "/mini-coi.js")) // TODO: use <mini-coi> somehow? probably not supported in 0.15
html.elem("link", attrs: (rel: "stylesheet", href: "https://pyscript.net/releases/2026.3.1/core.css"))
},
)
),
pyscript-version: "remote-2026.3.1",
)

View file

@ -1,4 +1,5 @@
#import "@local/template-web:0.0.1": *
#import "/lib.typ": webpage
#let summ = summary(
base-url: "http://test.example.com",
@ -17,41 +18,10 @@
#show: webpage.with(
..summ.template-args,
logo: image(
"/assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 100pt,
width: 100pt, // TODO 0.15 regression? in 0.14 setting the height was enough
),
header: [
= Test TeTyTe
Hello World!
],
footer: context [
#sym.copyright #document.date.display("[year]") Histausse \
Please don't train AI on my stuff without explicit permission
],
nav-elements: (
/*
link(
"http://test.example.com",
image(
"/assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 2em,
)
),*/
html.a(href: "http://test.example.com", aria-label: "Home", icons.home-icon), // /!\ aria-label is important for accessibility /!\
html.a(href: "/feed.rss", aria-label: "RSS feed", icons.rss-icon),
),
menu: [
- #link(<index-page>)[Home]
- #link(<pyscript-page>)[Demo Pyscript]
- #link(<cards-page>)[Demo the summary card system]
],
site-name: "TTT",
icon: "/img/platypus.png", // TODO: use <ico> somehow? probably not supported in 0.15
)

View file

@ -1,4 +1,5 @@
#import "@local/template-web:0.0.1": *
#import "/lib.typ": webpage
#let summ = summary(
base-url: "http://test.example.com",
@ -17,28 +18,10 @@
#show: webpage.with(
..summ.template-args,
logo: image(
"/assets/platypus.png",
alt: "A drawing of a blue-ish round-ish platypus with big eyes, holding a laptop. This platypus is quite cute, but I might be biased.",
height: 100pt,
width: 100pt, // TODO 0.15 regression? in 0.14 setting the height was enough
),
header: [
= Showcase Pyscript
Show how to run Python in the browser
],
footer: context [
#sym.copyright #document.date.display("[year]") Histausse \
Please don't train AI on my stuff without explicit permission
],
site-name: "TTT",
icon: "/img/platypus.png", // TODO: use <ico> somehow? probably not supported in 0.15
menu: [
- #link(<index-page>)[Home]
- #link(<pyscript-page>)[Demo Pyscript]
- #link(<cards-page>)[Demo the summary card system]
],
// Pyscript:
pyscript-data-list: (
"remote-2026.3.1": pyscript-data(