summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-02-23 00:08:10 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-02-23 00:08:10 +0100
commitae12883d1e99627583a6b782b194b72ed9b98500 (patch)
tree02a5a6f19cb5f9ef0c2b0e5ce28abc7ed36dfe41
parent1fea2c7f5e576766b08502572c799270b4bea3ef (diff)
Add www/
-rw-r--r--include/nav.gsp4
-rw-r--r--m4/anchor-blank.m41
-rw-r--r--src/style.css79
-rw-r--r--src/www/index.gsp154
4 files changed, 238 insertions, 0 deletions
diff --git a/include/nav.gsp b/include/nav.gsp
new file mode 100644
index 0000000..93a7ae5
--- /dev/null
+++ b/include/nav.gsp
@@ -0,0 +1,4 @@
+menu {
+ li {a href="/" {-Home}}
+ li {a href=".." {-Back}}
+}
diff --git a/m4/anchor-blank.m4 b/m4/anchor-blank.m4
new file mode 100644
index 0000000..c687d7c
--- /dev/null
+++ b/m4/anchor-blank.m4
@@ -0,0 +1 @@
+m4_define(ANCHOR_BLANK, ⁨a target="_blank"⁩)
diff --git a/src/style.css b/src/style.css
new file mode 100644
index 0000000..cdde775
--- /dev/null
+++ b/src/style.css
@@ -0,0 +1,79 @@
+*, *::before, *::after {
+ box-sizing: border-box;
+}
+
+:root {
+ color-scheme: light dark;
+}
+
+body {
+ text-align: justify;
+ width: min(800px, 90%);
+ margin-inline: auto;
+}
+
+blockquote > p:first-child::before { content: '‘'; }
+blockquote > p:last-child::after { content: '’'; }
+blockquote.de > p:first-child::before { content: '„'; }
+blockquote.de > p:last-child::after { content: '“'; }
+blockquote + figcaption::before { content: '— '; }
+
+blockquote,
+blockquote + figcaption {
+ font-style: italic;
+}
+
+@media (prefers-color-scheme: light) {
+ .quote {
+ border-left: 4px solid black;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ .quote {
+ border-left: 4px solid white;
+ }
+}
+
+.quote {
+ padding: .4rem .8rem;
+ margin-inline: 1rem 0;
+ margin-block: 2rem;
+}
+
+.quote blockquote {
+ margin-inline-start: 1rem;
+}
+.quote blockquote,
+.quote blockquote p {
+ margin-block: .5rem;
+}
+
+.quote figcaption {
+ margin-inline-start: 2rem;
+ margin-block: .5rem;
+}
+
+header > div menu {
+ display: flex;
+ gap: 2ch;
+}
+
+header > div li {
+ list-style: none;
+}
+
+header div.head {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+header div.head menu {
+ display: flex;
+ gap: 2ch;
+}
+
+header div.head li {
+ list-style: none;
+}
diff --git a/src/www/index.gsp b/src/www/index.gsp
new file mode 100644
index 0000000..400ea4c
--- /dev/null
+++ b/src/www/index.gsp
@@ -0,0 +1,154 @@
+html lang="en" {
+ head { HEAD }
+ body {
+ header {
+ div .head {
+ h1 {-Other Websites}
+ INCLUDE(nav.gsp)
+ }
+
+ figure .quote {
+ blockquote {
+ p {=
+ The essence of XML is this: the problem it solves it not hard, and
+ it does not solve the problem well.
+ }
+ }
+ figcaption {-Phil Wadler}
+ }
+ }
+
+ main {
+ p {=
+ On this section of the website you can find links to all sorts of other
+ websites I think are somewhat interesting. Some of these are my own
+ sites, and some of them aren’t. Feel free to explore.
+ }
+
+ h3 {-My Websites}
+ ul {
+ li {
+ ANCHOR_BLANK href="https://archive.thomasvoss.com" {=
+ @cite{-archive} — Mario Kart Wii time trials archive
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://cv.thomasvoss.com" {=
+ @cite{-cv} — my résumé/curriculum vitæ
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://euro.thomasvoss.com" {=
+ @cite{-euro} — my euro coin and -banknote collection
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://git.thomasvoss.com" {=
+ @cite{-git} — my git server
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://paste.thomasvoss.com" {=
+ @cite{-paste} — my paste server
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://retime.mcbe.wtf" {=
+ @cite{-retime} — a webtool for retiming speedruns
+ }
+ }
+ }
+
+ h3 {-Not My Websites}
+ ul {
+ li {
+ ANCHOR_BLANK href="https://classicshorts.com" {=
+ @cite{-classicshorts} — a collection of short stories
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://iannis.io" {=
+ @cite{-iannis.io} — blog posts on programming topics
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://redblobgames.com" {=
+ @cite{-redblobgames} — algorithms in the context of video games
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://tdmm.eu" {=
+ @cite{-tdmm} — blog posts on low-level development
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://bal-e.org/blog" {=
+ @cite{-bal-e} — it’s like tdmm.eu I guess
+ }
+ }
+ li {
+ ANCHOR_BLANK href="http://textfiles.com" {=
+ @cite{-textfiles} — a collection of thousands of plain-text files
+ }
+ }
+ li {
+ ANCHOR_BLANK href="https://cat-v.org" {=
+ @cite{-cat-v} — @q{-The Internet is not for sissies.}
+ }
+ }
+ }
+
+ h3 {-Assorted Links}
+ p {-For those unfamiliar with Lisp:}
+ ul {
+ li {
+ ANCHOR_BLANK
+ href="https://web.archive.org/web/20230619115633/http://lists.warhead.org.uk/pipermail/iwe/2005-July/000130.html"
+ {
+ cite {-Why Lisp Macros are Cool}
+ }
+ }
+ }
+
+ p {-Alternative approaches to common problems:}
+ ul {
+ li {
+ ANCHOR_BLANK
+ href="https://doc.cat-v.org/plan_9/4th_edition/papers/rc"
+ {
+ cite {-Rc — The Plan 9 Shell}
+ }
+ }
+ li {
+ ANCHOR_BLANK
+ href="https://doc.cat-v.org/inferno/4th_edition/inferno_shell"
+ {
+ cite {-Sh — The Inferno Shell}
+ }
+ }
+ li {
+ ANCHOR_BLANK
+ href="https://doc.cat-v.org/bell_labs/structural_regexps/se.pdf"
+ {
+ cite {-Structural Regular Expressions — Rob Pike}
+ }
+ }
+ }
+
+ p {-Interesting talks (these are videos):}
+ ul {
+ li {
+ ANCHOR_BLANK
+ href="https://www.youtube.com/watch?v=HxaD_trXwRE"
+ {
+ cite {-Lexical Scanning in Go — Rob Pike}
+ }
+ }
+ }
+ }
+
+ hr{}
+
+ footer { FOOT }
+ }
+}