WIP gopher and gemini
parent
c40f060791
commit
9353b63496
114
make.sh
114
make.sh
|
@ -2,70 +2,70 @@
|
|||
|
||||
set -e
|
||||
|
||||
# global
|
||||
pd=/usr/bin/pandoc
|
||||
g=/bin/grep
|
||||
tr=/usr/bin/tr
|
||||
sed=/bin/sed
|
||||
postDir=/home/vilmibm/blog/posts
|
||||
|
||||
# TODO generalize into one loop
|
||||
htmlDir=/home/vilmibm/public_html/blog
|
||||
htmlIndexTmpl=/home/vilmibm/blog/index.tmpl.html
|
||||
htmlIndex=/home/vilmibm/public_html/blog/index.html
|
||||
|
||||
function makeHTML() {
|
||||
htmlDir=/home/vilmibm/public_html/blog
|
||||
htmlIndexTmpl=/home/vilmibm/blog/index.tmpl.html
|
||||
htmlIndex=/home/vilmibm/public_html/blog/index.html
|
||||
gopherPath=/home/vilmibm/public_gopher/blog
|
||||
geminiPath=/home/vilmibm/public_gemini/blog
|
||||
|
||||
cd $postDir > /dev/null
|
||||
|
||||
if [ -e "${htmlIndex}" ]
|
||||
# backup HTML index
|
||||
if [ -e "${htmlIndex}" ]
|
||||
then
|
||||
cp $htmlIndex "${htmlIndex}.bak"
|
||||
fi
|
||||
|
||||
cp $htmlIndexTmpl $htmlIndex
|
||||
|
||||
# Remove old gopher posts
|
||||
rm ${gopherPath}/*
|
||||
|
||||
# Initialize blog gophermap
|
||||
gopherIndex="${gopherPath}/gophermap"
|
||||
echo "!the phlog of vilmibm as it were" > $gopherIndex
|
||||
echo >> $gopherIndex
|
||||
|
||||
for p in $(ls *.md)
|
||||
do
|
||||
pubdate=$($g "pubdate:" $p | $sed 's/pubdate: //')
|
||||
title=$($g "title:" $p | $sed 's/title: //')
|
||||
slug=$($g "slug:" $p | $sed 's/slug: //' | $tr -d \[:blank:\])
|
||||
if [ -z "$pubdate" ] || [ -z "$title" ] || [ -z "$slug" ]
|
||||
then
|
||||
cp $htmlIndex "${htmlIndex}.bak"
|
||||
echo "warning: missing at least one of: pubdate, slug, title in ${p}"
|
||||
else
|
||||
# HTML
|
||||
echo "<h2 class=\"title\">${title}</h2>" >> $htmlIndex
|
||||
echo "<a class=\"pubdate\" name=\"${slug}\" href=\"https://tilde.town/~vilmibm/blog#${slug}\">${pubdate}</a>" >> $htmlIndex
|
||||
echo "<div class=\"post\">" >> $htmlIndex
|
||||
$g -v "pubdate:" $p | $g -v "title:" | $g -v "slug:" |$pd -fmarkdown -thtml >> $htmlIndex
|
||||
echo "</div>" >> $htmlIndex
|
||||
|
||||
# Gopher
|
||||
echo "0${title} ${slug}.txt" >> $gopherIndex
|
||||
gopherPostPath="${gopherPath}/${slug}.txt"
|
||||
echo "# ${title}" > $gopherPostPath
|
||||
echo >> $gopherPostPath
|
||||
echo "_published ${pubdate}_" >> $gopherPostPath
|
||||
$g -v "pubdate:" $p | $g -v "title:" | $g -v "slug:" >> $gopherPostPath
|
||||
|
||||
# TODO index for gemini
|
||||
|
||||
# Gemini
|
||||
geminiPostPath="${geminiPath}/${slug}.gmi"
|
||||
echo "# ${title}" > $geminiPostPath
|
||||
echo >> $geminiPostPath
|
||||
echo "_published ${pubdate}_" >> $geminiPostPath
|
||||
$g -v "pubdate:" $p | $g -v "title:" | $g -v "slug:" >> $geminiPostPath
|
||||
fi
|
||||
|
||||
cp $htmlIndexTmpl $htmlIndex
|
||||
|
||||
cd $postDir > /dev/null
|
||||
for p in $(ls *.md)
|
||||
do
|
||||
pubdate=$($g "pubdate:" $p | sed 's/pubdate://')
|
||||
title=$($g "title:" $p | sed 's/title://')
|
||||
slug=$($g "slug:" $p | sed 's/slug://' | tr -d \[:blank:\])
|
||||
if [ -z "$pubdate" ] || [ -z "$title" ] || [ -z "$slug" ]
|
||||
then
|
||||
echo "warning: missing at least one of: pubdate, slug, title in ${p}"
|
||||
else
|
||||
echo "<h2 class=\"title\">${title}</h2>" >> $htmlIndex
|
||||
echo "<a class=\"pubdate\" name=\"${slug}\" href=\"https://tilde.town/~vilmibm/blog#${slug}\">${pubdate}</a>" >> $htmlIndex
|
||||
echo "<div class=\"post\">" >> $htmlIndex
|
||||
$g -v "pubdate:" $p | $g -v "title:" | $g -v "slug:" |$pd -fmarkdown -thtml >> $htmlIndex
|
||||
echo "</div>" >> $htmlIndex
|
||||
fi
|
||||
done
|
||||
|
||||
echo "</body></html>" >> $htmlIndex
|
||||
}
|
||||
|
||||
function makeGopher() {
|
||||
gopherPath=/home/vilmibm/public_gopher/blog
|
||||
cd $postDir > /dev/null
|
||||
|
||||
for p in $(ls *.md)
|
||||
do
|
||||
pubdate=$($g "pubdate:" $p | sed 's/pubdate://')
|
||||
title=$($g "title:" $p | sed 's/title://')
|
||||
slug=$($g "slug:" $p | sed 's/slug://' | tr -d \[:blank:\])
|
||||
if [ -z "$pubdate" ] || [ -z "$title" ] || [ -z "$slug" ]
|
||||
then
|
||||
echo "warning: missing at least one of: pubdate, slug, title in ${p}"
|
||||
else
|
||||
postPath="${gopherPath}/${slug}.md"
|
||||
echo "# ${title}" > postPath
|
||||
$g -v "pubdate:" $p | $g -v "title:" | $g -v "slug:" >> $postPath
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
#
|
||||
#function makeGemini() {
|
||||
# # TODO
|
||||
#}
|
||||
|
||||
makeHTML
|
||||
makeGopher
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue