From cf670de12685a94e7a53f0a126ae77cbf548cf91 Mon Sep 17 00:00:00 2001 From: Alex Karle Date: Thu, 25 Feb 2021 15:42:40 -0500 Subject: [PATCH] gopher: Add small mdoc -> gopher generation script In my time off this week, I took a deep dive on gopher, and it's a really cool niche blogging space! I intend to host all my posts there, which is pretty easy because mdoc(7) translates nicely to ascii with mandoc(1). This patch adds a script to generate a *very* primitive gopherhole for use with gophernicus. The key elements are: 1. Generates a TXT file for each blog post / page 2. Moves the blogs to phlog/ 3. Sets the mtime of the blog posts so that the default DIR view shows them I hope to expand on this in future commits by creating a gophermap for the blog(7) page with links to the content (rather than just using the DIR view). But for now... we're live! --- gengopher.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 gengopher.sh diff --git a/gengopher.sh b/gengopher.sh new file mode 100755 index 0000000..5b7726a --- /dev/null +++ b/gengopher.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# generates my gopherhole based on the checkout of the files +# in the html area +set -e + +WWW=/var/www/htdocs/akcom +DEPLOY=/var/gopher +PHLOG=$DEPLOY/phlog + +# First generate the content +for f in $WWW/*.7; do + # col -b to strip backspace underlines, see mandoc(1) + mandoc -Tascii -Owidth=72 $f | col -b > $PHLOG/`basename $f .7`.txt +done + +# Remove/move some non-phlog cruft +mv $PHLOG/intro.txt $DEPLOY/intro.txt +rm $PHLOG/template.txt + +# Set the mtimes so they show nicely in the directory listing +# by parsing the .Dd lines using grep(1) and date(1) +# TODO: create a real gophermap for this directory based on blog(7) +for f in $PHLOG/*.txt; do + grep '\.Dd' $WWW/`basename $f .txt`.7 \ + | grep -v Mdocdate \ + | sed "s#\.Dd #$f #" +done > /tmp/mtimes + +IFS=" " # tab to split file/date for read (see ksh(1)) +while read f d; do + touch -m -d `date -j -f "%b %d, %Y" "+%Y-%m-%dT%H:%M:%S" "$d"` "$f" +done < /tmp/mtimes -- libgit2 1.1.1