1
#import "@preview/zebraw:0.4.6": zebraw-html
3
#show heading.where(level: 1): it => html.elem("h1", it.body)
4
#show raw.where(block: true): zebraw-html.with(lang: true)
6
#let note = body => html.elem("div", attrs: (class: "note"))[
12
#let details = (summary, body) => html.elem("details")[
13
#html.elem("summary", summary)
19
Depuis la version 0.13, #link("https://typst.app")[Typst] supporte
20
l'export en HTML (encore expérimental pour le moment). Et comme je
21
suis une grosse fangirl et que j'ai la chance d'utiliser un
22
#link("/web")[générateur de site] super modulaire
23
(#link("https://soupault.app/")[Soupault]),
24
j'ai configuré mon blog pour pouvoir écrire en Typst en plusse de Markdown.
26
Ça tiens en deux lignes de configuration : la première c'est de
27
dire que les fichiers `.typ` sont des pages.
32
page_file_extensions = [
35
"typ", # On ajoute cette ligne
39
La deuxième c'est d'indiquer à Soupault qu'il faut passer ces fichiers
40
à la moulinette et pas juste les copier bêtement :
44
typ = "bash -c 'typst c --features html --format html $1 -' --"
47
La commande est un peu bizarre, pourquoi passer par `bash` au lieu de juste
48
appeler `typst` directement ? La réponse c'est que Soupault ajoute le nom du
49
fichier d'entrée comme dernier argument, mais Typst a besoin du fichier d'entrée
50
_puis_ du fichier de sortie (ici `-` pour la sortie standard, que Soupault lit).
51
Donc on a besoin d'une petite astuce pour inverser l'ordre des arguments.
54
Le CSS n'est pas du tout géré par Typst (en tout cas pas pour le moment,
55
peut-être que ça sera le cas quand ça sera une option), j'ai une feuille
56
de style écrite à la main, que j'insère automatiquement dans le document
57
HTML aussi avec Soupault :
61
widget = "insert_html"
62
html = '<link rel="stylesheet" href="unique.css">'
64
after = ["base-style"]
68
#details[Preuve que ça marche : le code source de cette page][
69
#raw(block: true, lang: "typst", read("typst-blog.typ"))
72
#details[Du coup j'ai envie de faire des bêtises][
73
#show math.equation: html.frame
75
Regardez je peux écrire des maths :
78
sum_(k=1)^n k = (n(n+1)) / 2
1
#import "@preview/zebraw:0.4.6": zebraw-html
3
#show heading.where(level: 1): it => html.elem("h1", it.body)
4
#show raw.where(block: true): zebraw-html.with(lang: true)
6
#let note = body => html.elem("div", attrs: (class: "note"))[
12
#let details = (summary, body) => html.elem("details")[
13
#html.elem("summary", summary)
19
Depuis la version 0.13, #link("https://typst.app")[Typst] supporte
20
l'export en HTML (encore expérimental pour le moment). Et comme je
21
suis une grosse fangirl et que j'ai la chance d'utiliser un
22
#link("/web")[générateur de site] super modulaire
23
(#link("https://soupault.app/")[Soupault]),
24
j'ai configuré mon blog pour pouvoir écrire en Typst en plusse de Markdown.
26
Ça tiens en deux lignes de configuration : la première c'est de
27
dire que les fichiers `.typ` sont des pages.
32
page_file_extensions = [
35
"typ", # On ajoute cette ligne
39
La deuxième c'est d'indiquer à Soupault qu'il faut passer ces fichiers
40
à la moulinette et pas juste les copier bêtement :
44
typ = "bash -c 'typst c --features html --format html $1 -' --"
47
La commande est un peu bizarre, pourquoi passer par `bash` au lieu de juste
48
appeler `typst` directement ? La réponse c'est que Soupault ajoute le nom du
49
fichier d'entrée comme dernier argument, mais Typst a besoin du fichier d'entrée
50
_puis_ du fichier de sortie (ici `-` pour la sortie standard, que Soupault lit).
51
Donc on a besoin d'une petite astuce pour inverser l'ordre des arguments.
54
Le CSS n'est pas du tout géré par Typst (en tout cas pas pour le moment,
55
peut-être que ça sera le cas quand ça sera une option), j'ai une feuille
56
de style écrite à la main, que j'insère automatiquement dans le document
57
HTML aussi avec Soupault :
61
widget = "insert_html"
62
html = '<link rel="stylesheet" href="unique.css">'
64
after = ["base-style"]
68
#details[Preuve que ça marche : le code source de cette page][
69
#raw(block: true, lang: "typst", read("typst-blog.typ"))
72
#details[Du coup j'ai envie de faire des bêtises][
73
#show math.equation: html.frame
75
Regardez je peux écrire des maths :
78
sum_(k=1)^n k = (n(n+1)) / 2