1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
// Entrypoint for the kumardamani.net bundle. Compiling this file with
// typst compile --root . --features bundle,html -f bundle main.typ <outdir>
// emits the whole site: one HTML document per page plus all assets.
#import "/global/common.typ": *
#import "/site.typ": site-info
#import "/index.typ" as index-page
#import "/software.typ" as software-page
#import "/contact.typ" as contact-page
#import "/post/a-rack-finally.typ" as a-rack-finally
#import "/post/framework-server-p2.typ" as post-framework-server-p2
#import "/post/nas-upgrade.typ" as post-nas-upgrade
#import "/post/listing-my-fav-advice.typ" as post-listing-my-fav-advice
#import "/post/framework-server.typ" as post-framework-server
#import "/post/nixos-p1.typ" as post-nixos-p1
#import "/post/programming-as-art.typ" as post-programming-as-art
#import "/post/self-host.typ" as post-self-host
#import "/post/programs.typ" as post-programs
#let title-for(id) = site-info.pages.at(id).title + " – " + site-info.title
#document("index.html", title: title-for("index"))[
#page("index", site-info, index-page.doc)
] <index>
#document("software.html", title: title-for("software"))[
#page("software", site-info, software-page.doc)
] <software>
#document("contact.html", title: title-for("contact"))[
#page("contact", site-info, contact-page.doc)
] <contact>
#document("post/a-rack-finally.html", title: title-for("post/a-rack-finally"))[
#post-page("post/a-rack-finally", site-info, a-rack-finally.doc)
] <post-a-rack-finally>
#document("post/framework-server-p2.html", title: title-for("post/framework-server-p2"))[
#post-page("post/framework-server-p2", site-info, post-framework-server-p2.doc)
] <post-framework-server-p2>
#document("post/nas-upgrade.html", title: title-for("post/nas-upgrade"))[
#post-page("post/nas-upgrade", site-info, post-nas-upgrade.doc)
] <post-nas-upgrade>
#document("post/listing-my-fav-advice.html", title: title-for("post/listing-my-fav-advice"))[
#post-page("post/listing-my-fav-advice", site-info, post-listing-my-fav-advice.doc)
] <post-listing-my-fav-advice>
#document("post/framework-server.html", title: title-for("post/framework-server"))[
#post-page("post/framework-server", site-info, post-framework-server.doc)
] <post-framework-server>
#document("post/nixos-p1.html", title: title-for("post/nixos-p1"))[
#post-page("post/nixos-p1", site-info, post-nixos-p1.doc)
] <post-nixos-p1>
#document("post/programming-as-art.html", title: title-for("post/programming-as-art"))[
#post-page("post/programming-as-art", site-info, post-programming-as-art.doc)
] <post-programming-as-art>
#document("post/self-host.html", title: title-for("post/self-host"))[
#post-page("post/self-host", site-info, post-self-host.doc)
] <post-self-host>
#document("post/programs.html", title: title-for("post/programs"))[
#post-page("post/programs", site-info, post-programs.doc)
] <post-programs>
// global assets
#asset("main.css", read("/global/main.css", encoding: none))
#asset("extlink.svg", read("/global/extlink.svg", encoding: none))
#asset("favicon.ico", read("/global/favicon.ico", encoding: none))
#asset("favicon.svg", read("/global/favicon.svg", encoding: none))
// image assets collected from pages via the img/fig helpers
#context {
for path in _asset-paths.final().dedup() {
asset(path, read("/" + path, encoding: none))
}
}
|