From ae12883d1e99627583a6b782b194b72ed9b98500 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 23 Feb 2024 00:08:10 +0100 Subject: Add www/ --- include/nav.gsp | 4 ++ m4/anchor-blank.m4 | 1 + src/style.css | 79 +++++++++++++++++++++++++++ src/www/index.gsp | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 238 insertions(+) create mode 100644 include/nav.gsp create mode 100644 m4/anchor-blank.m4 create mode 100644 src/style.css create mode 100644 src/www/index.gsp 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 } + } +} -- cgit v1.2.3