summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/foot.gsp9
-rw-r--r--include/head.gsp5
-rw-r--r--m4/__base.m47
-rw-r--r--m4/foot.m411
-rw-r--r--m4/head.m41
-rw-r--r--m4/include.m43
-rw-r--r--src/index.gsp56
7 files changed, 92 insertions, 0 deletions
diff --git a/include/foot.gsp b/include/foot.gsp
new file mode 100644
index 0000000..9923499
--- /dev/null
+++ b/include/foot.gsp
@@ -0,0 +1,9 @@
+small {=
+ Page last edited:
+ @a
+ href="https://git.thomasvoss.com/www.thomasvoss.com/commit?id=__HASH"
+ target="_blank"
+ {=
+ __DATE
+ }
+}
diff --git a/include/head.gsp b/include/head.gsp
new file mode 100644
index 0000000..0b7ce95
--- /dev/null
+++ b/include/head.gsp
@@ -0,0 +1,5 @@
+meta charset="UTF-8" {}
+meta name="viewport" content="width=device-width, initial-scale=1.0" {}
+link href="/favicon.svg" rel="shortcut icon" type="image/svg" {}
+link href="/style.css" rel="stylesheet" {}
+title {-Thomas Voss}
diff --git a/m4/__base.m4 b/m4/__base.m4
new file mode 100644
index 0000000..611a256
--- /dev/null
+++ b/m4/__base.m4
@@ -0,0 +1,7 @@
+m4_dnl To avoid annoying conflicts with quote characters, use
+m4_dnl U+2068 FIRST STRONG ISOLATE and U+2069 POP DIRECTIONAL ISOLATE
+m4_changequote(⁨,⁩)
+
+m4_dnl We also need to avoid the comment character ever doing absolutely
+m4_dnl anything, so set it to U+FFFD REPLACEMENT CHARACTER
+m4_changecom(�)
diff --git a/m4/foot.m4 b/m4/foot.m4
new file mode 100644
index 0000000..243a84b
--- /dev/null
+++ b/m4/foot.m4
@@ -0,0 +1,11 @@
+m4_define(FOOT, ⁨
+ m4_define(⁨__HASH⁩, m4_esyscmd(
+ git rev-list --max-count=1 ⁨HEAD⁩ m4___file__
+ ))
+ m4_define(⁨__DATE⁩, m4_esyscmd(
+ git log --max-count=1 --pretty='format:%cI' m4___file__ \
+ | xargs --no-run-if-empty -- date '+%-d %B %Y (%A) — %T %Z' --date \
+ | ifne -n echo 'No commit yet…'
+ ))
+ m4_include(foot.gsp)
+⁩)
diff --git a/m4/head.m4 b/m4/head.m4
new file mode 100644
index 0000000..9161929
--- /dev/null
+++ b/m4/head.m4
@@ -0,0 +1 @@
+m4_define(HEAD, ⁨m4_include(head.gsp)⁩)
diff --git a/m4/include.m4 b/m4/include.m4
new file mode 100644
index 0000000..ef22bf1
--- /dev/null
+++ b/m4/include.m4
@@ -0,0 +1,3 @@
+m4_dnl Exactly the same as m4_include, but following the same naming conventions
+m4_dnl as the other macros I create.
+m4_define(INCLUDE, ⁨m4_include($1)⁩)
diff --git a/src/index.gsp b/src/index.gsp
new file mode 100644
index 0000000..530bfae
--- /dev/null
+++ b/src/index.gsp
@@ -0,0 +1,56 @@
+html lang="en" {
+ head { HEAD }
+ body {
+ header {
+ h1 {-Root Page}
+
+ figure .quote {
+ blockquote {
+ p {=
+ If Java had true garbage collection, most programs would delete
+ themselves upon execution.
+ }
+ }
+ figcaption {-Robert Sewell}
+ }
+ }
+
+ main {
+ p {-
+ Welcome to my plot of the internet. This site is mostly oriented
+ towards topics related to software development, but you might eventually
+ find some things that are completely unrelated as well. The ‘source
+ code’ for the site (if you can call m4_abbr(HTML) @x-ref{-1} and a basic
+ build system source code)
+ @a
+ href="https://git.thomasvoss.com/www.thomasvoss.com"
+ target="_blank"
+ {-are available through git}.
+ }
+
+ aside {
+ p data-ref="1" {-
+ The site is actually written in my own m4_abbr(GSP) language, but it
+ transpiles into m4_abbr(HTML). Also, this site doesn’t even have any
+ JavaScript. There truly is no code.
+ }
+ }
+
+ p {-
+ Now go branch off to a subsection of the site:
+ }
+
+ ul {
+ li {a href="man" {-Manual Pages}}
+ li {a href="prj" {-Documentation}}
+ li {a href="blog" {-Blog Posts}}
+ li {a href="www" {-Other Websites}}
+ li {a href="ame" {-About Me}}
+ }
+
+ hr{}
+
+ footer { FOOT }
+ }
+ }
+}