Source files for our blog
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
blog/pblog.sh

75 lines
2.5 KiB

#!/bin/sh
source _config.sh
###################################################################################
# !WARNING!
# You probably don't need to tweak anything below this line. Edit at your own risk!
###################################################################################
# Create the $OUTPUT directory if it does not exist yet
mkdir -p $OUTPUT
if [[ $TOC = true ]]
then
TOC_TOGGLE="--toc";
else
TOC_TOGGLE="";
fi
if [[ $SYNTAX = true ]]
then
SYNTAX_TOGGLE="";
else
SYNTAX_TOGGLE="--no-highlight";
fi
# Create the web browser-focused HTML versions for all posts
for i in $POSTS; do pandoc --css=/blog/style.css --ascii --metadata lang="$HTML_LANG" $TOC_TOGGLE $SYNTAX_TOGGLE --wrap=none -A _footer.html -B _header.html -s $i -o ${i%.*}.html; done;
rsync $POSTS_DIR*.html $OUTPUT$WEB_HTML;
rm $POSTS_DIR*.html
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<?xml-stylesheet href=\"rss.xsl\" type=\"text/xsl\"?>
<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">
<channel>
<title>$TITLE</title>
<link>$DOMAIN</link>
<description>$DESCRIPTION</description>
<copyright>$COPYRIGHT</copyright>
<ttl>$TTL</ttl>
<atom:link href=\"https://vern.cc/blog/feed.xml\" rel=\"self\" type=\"application/rss+xml\" />";
for file in $OUTPUT$WEB_HTML*.html; do
POST_DATE=$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)
POST_TITLE=$(sed -n 's|^<h1 class="title">\([^<]*\)</h1>$|\1|p' $file)
POST_CONTENT=$(sed -n '/<article>/,/<\/article>/p' $file | sed -e '1s/.*<article>//' -e '$s/<\/article>.*//')
if [[ $OS = "BSD" ]]
then
CAT_DATE=$(gdate -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%Y/%m/%d/%u")
POST_DATE=$(gdate -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%a, %d %b %Y")
else
CAT_DATE=$(date -u -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%Y/%m/%d/%u")
POST_DATE=$(date -u -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%a, %d %b %Y")
fi
AUTHOR="$(cat $file | htmlq .author --text)"
echo "<item>
<pubDate>$POST_DATE $TIME</pubDate>
<category>$CAT_DATE</category>
<title>$POST_TITLE</title>
<link>$DOMAIN/$WEB_HTML$(basename ${file})</link>
<description><![CDATA[$POST_CONTENT]]></description>
<author>$AUTHOR</author>
<guid>$DOMAIN/$WEB_HTML$(basename ${file})</guid>
</item>";
done
echo " </channel>
</rss>";
# Copy XSLT, stylesheet files
rsync rss.xsl $OUTPUT/blog;
rsync style.css $OUTPUT/blog;