summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile20
-rwxr-xr-xcgi-bin/cv.sh6
-rwxr-xr-xcgi-bin/index.sh82
-rwxr-xr-xcgi-bin/rss.sh28
-rw-r--r--index.html98
-rw-r--r--info.html37
-rw-r--r--out.pdfbin0 -> 603736 bytes
-rw-r--r--posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.html19
-rw-r--r--posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.html5
-rw-r--r--rss.xml42
10 files changed, 152 insertions, 185 deletions
diff --git a/Makefile b/Makefile
index 3f7c13c..f7acbd1 100644
--- a/Makefile
+++ b/Makefile
@@ -2,23 +2,8 @@
EDITOR = $$EDITOR
POST_T = templates/template.html
-INDEX_HEAD_T = templates/index_head.html
-INDEX_FOOT_T = templates/index_foot.html
-RSS_HEAD_T = templates/rss_head.xml
-RSS_FOOT_T = templates/rss_foot.xml
-all: index.html rss.xml cv.pdf
-
-index.html: posts/*.html
- @grep h1 $> | sort -r | sed 's#^\(posts/\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\)[^:]*\):[ \t]*<h1>\(.*\)</h1>#<li><a href="/\1">\3 <code>\2</code></a></li>#' | cat $(INDEX_HEAD_T) - $(INDEX_FOOT_T) > index.html
-
-rss.xml: posts/*.html
- @grep h1 $> | sort -r | sed 's#^\(posts/[^:]*\):[ \t]*<h1>\(.*\)</h1>#<item><title>\2</title><link>https://www.53hor.net/posts/\1</link></item>#' | cat $(RSS_HEAD_T) - $(RSS_FOOT_T) > rss.xml
-
-cv.pdf: cv.html
- @mutool convert -o cv.pdf cv.html
-
-.PHONY: serve post clean
+.PHONY: serve post
serve:
python3.7 -m http.server 3000
@@ -30,6 +15,3 @@ post:
cp $(POST_T) $$FILENAME; \
sed -i '' "s/{{ title }}/$$TITLE/g" $$FILENAME; \
$$EDITOR $$FILENAME
-
-clean:
- rm -f index.html rss.xml
diff --git a/cgi-bin/cv.sh b/cgi-bin/cv.sh
new file mode 100755
index 0000000..b61e9b3
--- /dev/null
+++ b/cgi-bin/cv.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Converts CV to downloadable PDF.
+
+printf 'content-type: application/pdf\n\n'
+mutool convert -F pdf cv.html
diff --git a/cgi-bin/index.sh b/cgi-bin/index.sh
new file mode 100755
index 0000000..3fea5c9
--- /dev/null
+++ b/cgi-bin/index.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+
+# Generates a site index from posts and pages.
+
+cat << EOH
+content-type: text/html
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <link rel="stylesheet" href="/includes/stylesheet.css" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta
+ property="og:description"
+ content="The World Wide Web pages of Adam Carpenter"
+ />
+ <meta
+ property="og:image"
+ content="https://nextcloud.53hor.net/index.php/s/Nx9e7iHbw4t99wo/preview"
+ />
+ <meta property="og:site_name" content="53hor.net" />
+ <meta property="og:title" content="Home" />
+ <meta property="og:type" content="website" />
+ <meta property="og:url" content="https://www.53hor.net" />
+ <title>53hornet ➙ Home</title>
+ </head>
+
+ <body>
+ <nav>
+ <ul>
+ <li>
+ <a href="/">
+ <img alt="home" src="/includes/icons/home-roof.svg" />
+ Home
+ </a>
+ </li>
+ <li>
+ <a href="/info.html">
+ <img alt="information" src="/includes/icons/information-variant.svg" />
+ Info
+ </a>
+ </li>
+ <li>
+ <a href="https://git.53hor.net">
+ <img alt="git" src="/includes/icons/git.svg" />
+ Repos
+ </a>
+ </li>
+ <li>
+ <a href="/software.html">
+ <img alt="software" src="/includes/icons/floppy-variant.svg" />
+ Software
+ </a>
+ </li>
+ <li>
+ <a type="application/rss+xml" href="/rss.xml">
+ <img alt="rss" src="/includes/icons/rss.svg" />
+ RSS
+ </a>
+ </li>
+ </ul>
+ </nav>
+
+ <header>
+ <noscript>
+ JavaScript? Where we're going we don't need JavaScript.
+ </noscript>
+ </header>
+
+ <article>
+ <h1 style="text-align: center">
+ The World Wide Web pages of Adam Carpenter (53hornet)
+ </h1>
+ <ul>
+EOH
+
+grep '<h1>' posts/*\
+ | sort -r\
+ | sed -e 's#^#<li><a href="/#' -e 's#:# #' -e 's#<h1#"#' -e 's#</h1>#</a></li>#'
+
+echo '</ul></article></body></html>'
diff --git a/cgi-bin/rss.sh b/cgi-bin/rss.sh
new file mode 100755
index 0000000..6987745
--- /dev/null
+++ b/cgi-bin/rss.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# Generates an RSS feed from all posts.
+
+cat << EOH
+content-type: application/xml
+
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xml>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+ <channel>
+ <title>53hornet's Feed</title>
+ <link>https://www.53hor.net</link>
+ <atom:link href="https://www.53hor.net/rss.xml" rel="self" type="application/rss+xml" />
+ <description>The World Wide Web pages of Adam Carpenter</description>
+ <image>
+ <url>https://www.53hor.net/includes/logo_diag.png</url>
+ <title>53hornet's Feed</title>
+ <link>https://www.53hor.net</link>
+ </image>
+EOH
+
+grep '<h1>' posts/*\
+ | sort -r\
+ | sed -e 's#h1#title#g' -e 's#:#</link>#' -e 's#$#</item>#' -e 's#^#<item><link>https://www.53hor.net/#'
+
+echo '</channel></rss>'
+
diff --git a/index.html b/index.html
deleted file mode 100644
index 8e623a2..0000000
--- a/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <link rel="stylesheet" href="/includes/stylesheet.css" />
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta
- property="og:description"
- content="The World Wide Web pages of Adam Carpenter"
- />
- <meta
- property="og:image"
- content="https://nextcloud.53hor.net/index.php/s/Nx9e7iHbw4t99wo/preview"
- />
- <meta property="og:site_name" content="53hor.net" />
- <meta property="og:title" content="Home" />
- <meta property="og:type" content="website" />
- <meta property="og:url" content="https://www.53hor.net" />
- <title>53hornet ➙ Home</title>
- </head>
-
- <body>
- <nav>
- <ul>
- <li>
- <a href="/">
- <img alt="home" src="/includes/icons/home-roof.svg" />
- Home
- </a>
- </li>
- <li>
- <a href="/info.html">
- <img alt="information" src="/includes/icons/information-variant.svg" />
- Info
- </a>
- </li>
- <li>
- <a href="https://git.53hor.net">
- <img alt="git" src="/includes/icons/git.svg" />
- Repos
- </a>
- </li>
- <li>
- <a href="/software.html">
- <img alt="software" src="/includes/icons/floppy-variant.svg" />
- Software
- </a>
- </li>
- <li>
- <a type="application/rss+xml" href="/rss.xml">
- <img alt="rss" src="/includes/icons/rss.svg" />
- RSS
- </a>
- </li>
- </ul>
- </nav>
-
- <header>
- <noscript>
- JavaScript? Where we're going we don't need JavaScript.
- </noscript>
- </header>
-
- <article>
- <h1 style="text-align: center">
- The World Wide Web pages of Adam Carpenter (53hornet)
- </h1>
- <ul>
-<li><a href="/posts/2021-05-23-web-designers-please-don-t-animate-page-titles.html">Web Designers, Please Don't "Animate" Page Titles <code>2021-05-23</code></a></li>
-<li><a href="/posts/2021-04-20-how-to-make-your-website-boring-and-why.html">How to Make Your Website Boring and Why! <code>2021-04-20</code></a></li>
-<li><a href="/posts/2021-03-19-how-to-automate-certbot-renewal-with-haproxy.html">How to Automate Certbot Renewal with HAProxy <code>2021-03-19</code></a></li>
-<li><a href="/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.html">Louis Vierne Is a BAMF (and Proof That Organists Are Metal) <code>2021-02-12</code></a></li>
-<li><a href="/posts/2021-01-28-undefined-javasript-is-undefined.html">Undefined? JavaSript Is Undefined. <code>2021-01-28</code></a></li>
-<li><a href="/posts/2021-01-15-root-on-zfs-a-zpool-of-mirror-vdevs-the-easy-way.html">Root on ZFS: A ZPool of Mirror VDEVs <code>2021-01-15</code></a></li>
-<li><a href="/posts/2021-01-15-adam-s-2020-reading-list.html">Adam's <del>2020</del> <ins>Quarantine</ins> Reading List <code>2021-01-15</code></a></li>
-<li><a href="/posts/2020-12-29-antivirus-software-is-a-hack.html">Antivirus Software is a Hack <code>2020-12-29</code></a></li>
-<li><a href="/posts/2020-12-22-why-does-everyone-use-adobe-acrobat-reader.html">Why Does Everyone Use Adobe Acrobat [Reader]? <code>2020-12-22</code></a></li>
-<li><a href="/posts/2020-12-08-useful-sprint-planning-from-a-certified-scrum-master.html">Useful Sprint Planning from a Certified Scrum Master <code>2020-12-08</code></a></li>
-<li><a href="/posts/2020-12-04-aoc-2020-day-1-in-cbm-basic.html">AOC 2020 Day 1 in CBM Basic <code>2020-12-04</code></a></li>
-<li><a href="/posts/2020-12-01-the-guides.html">𝔗𝔥𝔢 𝔊𝔲𝔦𝔡𝔢𝔰 <code>2020-12-01</code></a></li>
-<li><a href="/posts/2020-11-30-titanics-last-signals.html">Titanic's Last Signals <code>2020-11-30</code></a></li>
-<li><a href="/posts/2020-07-26-now-this-is-a-minimal-install.html">Now This is a Minimal Install! <code>2020-07-26</code></a></li>
-<li><a href="/posts/2020-07-11-why-computer-science-at-w-m.html">Why Computer Science at William and Mary <code>2020-07-11</code></a></li>
-<li><a href="/posts/2020-04-10-wedding-photos-are-here.html">Wedding Photo Debacle <code>2020-04-10</code></a></li>
-<li><a href="/posts/2020-04-10-the-obligatory-covid-19-post.html">Obligatory COVID-19 Post <code>2020-04-10</code></a></li>
-<li><a href="/posts/2019-09-28-my-preferred-method-for-data-recovery.html">How I Do Data Recovery <code>2019-09-28</code></a></li>
-<li><a href="/posts/2019-08-30-keep-right-except-to-pass.html">Left Lane is for Passing, Not Cruising <code>2019-08-30</code></a></li>
-<li><a href="/posts/2019-08-11-marrying-my-best-friend.html">I Married My Best Friend! <code>2019-08-11</code></a></li>
-<li><a href="/posts/2019-07-28-i-finally-found-a-drink-i-like.html">Finally Found a Drink I Like <code>2019-07-28</code></a></li>
-<li><a href="/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.html">Dancing the Shag & Two Left Feet <code>2019-07-21</code></a></li>
-<li><a href="/posts/2019-07-04-yabs-yet-another-bad-shop.html">YABS: Yet Another Bad Shop <code>2019-07-04</code></a></li>
-<li><a href="/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.html">Offloading GoPro Footage the Easy Way! <code>2019-07-04</code></a></li>
-<li><a href="/posts/2019-06-07-how-to-start-and-drive-a-hudson-hornet.html">How to Start and Drive a Hudson Hornet <code>2019-06-07</code></a></li>
-<li><a href="/posts/2019-04-06-why-have-a-website-in-2019.html">Why Have a Web Site in 2019? <code>2019-04-06</code></a></li>
- </ul>
- </article>
- </body>
-</html>
diff --git a/info.html b/info.html
index 924d803..b3ae26d 100644
--- a/info.html
+++ b/info.html
@@ -30,7 +30,10 @@
</li>
<li>
<a href="/info.html">
- <img alt="information" src="/includes/icons/information-variant.svg" />
+ <img
+ alt="information"
+ src="/includes/icons/information-variant.svg"
+ />
Info
</a>
</li>
@@ -68,7 +71,7 @@
</p>
<p>
You can find my <a href="/cv.html">CV here</a>. If you want a PDF you
- can <a href="/cv.pdf">get that here</a>.
+ can <a href="/cgi-bin/cv.sh">get that here</a>.
</p>
<p>
@@ -245,29 +248,23 @@
<img
src="https://nextcloud.53hor.net/index.php/s/G3QG8FNb8aDmzcc/preview"
/>
+
<img
src="https://nextcloud.53hor.net/index.php/s/nKmSsrxa4LkRHdM/preview"
/>
- <p>
- <a href="https://jigsaw.w3.org/css-validator/check/referer">
- <img
- style="border: 0; width: 88px; height: 31px"
- src="https://jigsaw.w3.org/css-validator/images/vcss-blue"
- alt="Valid CSS!"
- />
- </a>
- </p>
+ <img
+ style="border: 0; width: 88px; height: 31px"
+ src="https://jigsaw.w3.org/css-validator/images/vcss-blue"
+ alt="Valid CSS!"
+ />
- <p>
- <a href="http://www.anybrowser.org/campaign/"
- ><img
- src="path-to-graphic/graphicname"
- width="graphic-width-in-pixels"
- height="graphic-height-in-pixels"
- alt="Viewable With Any Browser"
- /></a>
- </p>
+ <img
+ src="https://nextcloud.53hor.net/index.php/s/JMqd6ACCdskmS5J/preview"
+ width="graphic-width-in-pixels"
+ height="graphic-height-in-pixels"
+ alt="Viewable With Any Browser"
+ />
</article>
</body>
</html>
diff --git a/out.pdf b/out.pdf
new file mode 100644
index 0000000..c8f9106
--- /dev/null
+++ b/out.pdf
Binary files differ
diff --git a/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.html b/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.html
index 9ca4e97..8fb1dfb 100644
--- a/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.html
+++ b/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.html
@@ -8,12 +8,18 @@
property="og:description"
content="The World Wide Web pages of Adam Carpenter"
/>
- <meta property="og:image" content="https://nextcloud.53hor.net/index.php/s/Nx9e7iHbw4t99wo/preview" />
+ <meta
+ property="og:image"
+ content="https://nextcloud.53hor.net/index.php/s/Nx9e7iHbw4t99wo/preview"
+ />
<meta property="og:site_name" content="53hor.net" />
- <meta property="og:title" content="Dancing the Shag & Two Left Feet" />
+ <meta
+ property="og:title"
+ content="Dancing the Shag &amp; The [New] Lion King"
+ />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.53hor.net" />
- <title>53hornet ➙ Dancing the Shag & Two Left Feet</title>
+ <title>53hornet ➙ Dancing the Shag &amp; The [New] Lion King</title>
</head>
<body>
@@ -27,7 +33,10 @@
</li>
<li>
<a href="/info.html">
- <img alt="information" src="/includes/icons/information-variant.svg" />
+ <img
+ alt="information"
+ src="/includes/icons/information-variant.svg"
+ />
Info
</a>
</li>
@@ -53,7 +62,7 @@
</nav>
<article>
- <h1>Dancing the Shag & Two Left Feet</h1>
+ <h1>Dancing the Shag &amp; The [New] Lion King</h1>
<p>
Not all of my posts are huge, and they probably shouldn't be. Amy and I
had a really great time yesterday at Two Left Feet Dance Studio,
diff --git a/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.html b/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.html
index 2e7a528..d0f2938 100644
--- a/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.html
+++ b/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.html
@@ -35,7 +35,10 @@
</li>
<li>
<a href="/info.html">
- <img alt="information" src="/includes/icons/information-variant.svg" />
+ <img
+ alt="information"
+ src="/includes/icons/information-variant.svg"
+ />
Info
</a>
</li>
diff --git a/rss.xml b/rss.xml
deleted file mode 100644
index d704b7b..0000000
--- a/rss.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE xml>
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
- <channel>
- <title>53hornet's Feed</title>
- <link>https://www.53hor.net</link>
- <atom:link href="https://www.53hor.net/rss.xml" rel="self" type="application/rss+xml" />
- <description>The World Wide Web pages of Adam Carpenter</description>
- <image>
- <url>https://www.53hor.net/includes/logo_diag.png</url>
- <title>53hornet's Feed</title>
- <link>https://www.53hor.net</link>
- </image>
-<item><title>Web Designers, Please Don't "Animate" Page Titles</title><link>https://www.53hor.net/posts/posts/2021-05-23-web-designers-please-don-t-animate-page-titles.html</link></item>
-<item><title>How to Make Your Website Boring and Why!</title><link>https://www.53hor.net/posts/posts/2021-04-20-how-to-make-your-website-boring-and-why.html</link></item>
-<item><title>How to Automate Certbot Renewal with HAProxy</title><link>https://www.53hor.net/posts/posts/2021-03-19-how-to-automate-certbot-renewal-with-haproxy.html</link></item>
-<item><title>Louis Vierne Is a BAMF (and Proof That Organists Are Metal)</title><link>https://www.53hor.net/posts/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.html</link></item>
-<item><title>Undefined? JavaSript Is Undefined.</title><link>https://www.53hor.net/posts/posts/2021-01-28-undefined-javasript-is-undefined.html</link></item>
-<item><title>Root on ZFS: A ZPool of Mirror VDEVs</title><link>https://www.53hor.net/posts/posts/2021-01-15-root-on-zfs-a-zpool-of-mirror-vdevs-the-easy-way.html</link></item>
-<item><title>Adam's <del>2020</del> <ins>Quarantine</ins> Reading List</title><link>https://www.53hor.net/posts/posts/2021-01-15-adam-s-2020-reading-list.html</link></item>
-<item><title>Antivirus Software is a Hack</title><link>https://www.53hor.net/posts/posts/2020-12-29-antivirus-software-is-a-hack.html</link></item>
-<item><title>Why Does Everyone Use Adobe Acrobat [Reader]?</title><link>https://www.53hor.net/posts/posts/2020-12-22-why-does-everyone-use-adobe-acrobat-reader.html</link></item>
-<item><title>Useful Sprint Planning from a Certified Scrum Master</title><link>https://www.53hor.net/posts/posts/2020-12-08-useful-sprint-planning-from-a-certified-scrum-master.html</link></item>
-<item><title>AOC 2020 Day 1 in CBM Basic</title><link>https://www.53hor.net/posts/posts/2020-12-04-aoc-2020-day-1-in-cbm-basic.html</link></item>
-<item><title>𝔗𝔥𝔢 𝔊𝔲𝔦𝔡𝔢𝔰</title><link>https://www.53hor.net/posts/posts/2020-12-01-the-guides.html</link></item>
-<item><title>Titanic's Last Signals</title><link>https://www.53hor.net/posts/posts/2020-11-30-titanics-last-signals.html</link></item>
-<item><title>Now This is a Minimal Install!</title><link>https://www.53hor.net/posts/posts/2020-07-26-now-this-is-a-minimal-install.html</link></item>
-<item><title>Why Computer Science at William and Mary</title><link>https://www.53hor.net/posts/posts/2020-07-11-why-computer-science-at-w-m.html</link></item>
-<item><title>Wedding Photo Debacle</title><link>https://www.53hor.net/posts/posts/2020-04-10-wedding-photos-are-here.html</link></item>
-<item><title>Obligatory COVID-19 Post</title><link>https://www.53hor.net/posts/posts/2020-04-10-the-obligatory-covid-19-post.html</link></item>
-<item><title>How I Do Data Recovery</title><link>https://www.53hor.net/posts/posts/2019-09-28-my-preferred-method-for-data-recovery.html</link></item>
-<item><title>Left Lane is for Passing, Not Cruising</title><link>https://www.53hor.net/posts/posts/2019-08-30-keep-right-except-to-pass.html</link></item>
-<item><title>I Married My Best Friend!</title><link>https://www.53hor.net/posts/posts/2019-08-11-marrying-my-best-friend.html</link></item>
-<item><title>Finally Found a Drink I Like</title><link>https://www.53hor.net/posts/posts/2019-07-28-i-finally-found-a-drink-i-like.html</link></item>
-<item><title>Dancing the Shag & Two Left Feet</title><link>https://www.53hor.net/posts/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.html</link></item>
-<item><title>YABS: Yet Another Bad Shop</title><link>https://www.53hor.net/posts/posts/2019-07-04-yabs-yet-another-bad-shop.html</link></item>
-<item><title>Offloading GoPro Footage the Easy Way!</title><link>https://www.53hor.net/posts/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.html</link></item>
-<item><title>How to Start and Drive a Hudson Hornet</title><link>https://www.53hor.net/posts/posts/2019-06-07-how-to-start-and-drive-a-hudson-hornet.html</link></item>
-<item><title>Why Have a Web Site in 2019?</title><link>https://www.53hor.net/posts/posts/2019-04-06-why-have-a-website-in-2019.html</link></item>
-</channel>
-</rss>
-