Test RSS Support

This commit is contained in:
2022-03-14 01:51:08 +08:00
parent cd2afeccfd
commit f07858bf79
4 changed files with 156 additions and 3 deletions

87
blog/.data.json Normal file
View File

@ -0,0 +1,87 @@
{"data":[
{
"title":"",
"published_date":"",
"guid":""
},
{
"title":"The First Entry",
"published_date":"Thu, 20 Jun 2019 00:00:00 +0800",
"guid":""
},
{
"title":"The Migration",
"published_date":"Wed, 07 Aug 2019 00:00:00 +0800",
"guid":""
},
{
"title":"Configuring Dynamic DNS Records",
"published_date":"Thu, 29 Aug 2019 00:00:00 +0800",
"guid":""
},
{
"title":"? Matched Expression Does Not Match in Perl",
"published_date":"Wed, 18 Sep 2019 00:00:00 +0800",
"guid":""
},
{
"title":"The SBC Change",
"published_date":"Mon, 02 Mar 2020 00:00:00 +0800",
"guid":""
},
{
"title":"A Hit of Kubernetes",
"published_date":"Thu, 21 May 2020 00:00:00 +0800",
"guid":""
},
{
"title":"Optimizing Web Pages and File Sizes",
"published_date":"Fri, 22 May 2020 00:00:00 +0800",
"guid":""
},
{
"title":"Some Website Design and CSS",
"published_date":"Mon, 08 Jun 2020 00:00:00 +0800",
"guid":""
},
{
"title":"Git and Bash The Site",
"published_date":"Thu, 02 Jul 2020 00:00:00 +0800",
"guid":""
},
{
"title":"A Birth In The Family",
"published_date":"Sun, 26 Jul 2020 00:00:00 +0800",
"guid":""
},
{
"title":"Programming Anxiety",
"published_date":"Thu, 13 Aug 2020 00:00:00 +0800",
"guid":""
},
{
"title":"LXC and Friends",
"published_date":"Thu, 20 Aug 2020 00:00:00 +0800",
"guid":""
},
{
"title":"Migrating Everything to Proxmox - Part 1",
"published_date":"Mon, 30 Nov 2020 00:00:00 +0800",
"guid":""
},
{
"title":"A Brief Goodbye to CentOS",
"published_date":"Wed, 09 Dec 2020 00:00:00 +0800",
"guid":""
},
{
"title":"A Walk Along The Side",
"published_date":"Tue, 27 Jul 2021 00:00:00 +0800",
"guid":""
},
{
"title":"A Taste of Progress",
"published_date":"Sat, 23 Oct 2021 00:00:00 +0800",
"guid":""
}
]}

13
blog/.rss.item.template Normal file
View File

@ -0,0 +1,13 @@
<item>
<title>TITLE</title>
<link>
https://www.clementchiew.me/blog/blog-CURRENTINT
</link>
<description>
$item
</description>
<pubDate>PUBDATE</pubDate>
<guid>
GUID
</guid>
</item>

15
blog/.rss.template Normal file
View File

@ -0,0 +1,15 @@
<rss version="2.0">
<channel>
<title>My Little Spot</title>
<link>https://www.clementchiew.me.</link>
<description> </description>
<language>en-us</language>
<pubDate>$pubdate</pubDate>
<lastBuildDate>$pubdate</lastBuildDate>
<docs>https://www.clement.chiew/blog/rss</docs>
<generator>Some random bash scripts</generator>
<managingEditor>clementchiew@disroot.org</managingEditor>
<webMaster>clementchiew@disroot.org</webMaster>
$itemlist
</channel>
</rss>

View File

@ -29,16 +29,51 @@ do
fi fi
# replace placeholders # replace placeholders
sed -i "s/PREVPADINT/$padintprev/g" "$tailname" sed " s/PREVPADINT/$padintprev/g;
sed -i "s/NEXTPADINT/$padintnext/g" "$tailname" s/NEXTPADINT/$padintnext/g" filetail > "$tailname"
fi fi
# cat together # cat together for blog page
if [[ -f $contentname ]] ;then if [[ -f $contentname ]] ;then
cat filehead "$contentname" "$tailname" "$quotename" > "$blogname" cat filehead "$contentname" "$tailname" "$quotename" > "$blogname"
fi fi
done done
# compile items for rss
cd ../blog || exit
# get replace point in templates
linereplace=$(grep -n '$itemlist' .rss.template | cut -f1 -d:)
itemlinereplace=$(grep -n '$item' .rss.item.template | cut -f1 -d:)
# build rss feed
cat \
<(head -n $(( linereplace -1 )) .rss.template) \
<(
for ((i=1;i<10;i++))
do
itemnum=$(( CONTENTNUM - i ))
padint=$(printf %03d $itemnum)
title=$(jq '.data | .['"$padint"'].title' .data.json )
pubdate=$(jq '.data | .['"$padint"'].published_date' .data.json )
guid=$(jq '.data | .['"$padint"'].guid' .data.json )
cat \
<(head -n $(( itemlinereplace -1 )) .rss.item.template |
sed "s/TITLE/$title/;
s/CURRENTINT/$padint/"
) \
<(cat content-$padint quote-$padint |
tidy -q -asxml |
xq -cx '.html.body' ) \
<(tail -n +$(( itemlinereplace +1 )) .rss.item.template |
sed "s/PUBDATE/$pubdate/;
s/GUID/$guid/"
)
done
) \
<(tail -n +$(( linereplace +1 )) .rss.template) \
> rss.xml
# clean up non prod files, lock down permissions, and self-destruct # clean up non prod files, lock down permissions, and self-destruct
cd ../blog || exit cd ../blog || exit
\rm filehead filetail content* quote* .blog.* tail* \rm filehead filetail content* quote* .blog.* tail*
@ -46,3 +81,6 @@ cd ../ || exit
\rm -rf .git scripts .index.html.* README.md Jenkinsfile \rm -rf .git scripts .index.html.* README.md Jenkinsfile
find . -type f -exec chmod 600 {} \; find . -type f -exec chmod 600 {} \;
find . -type d -exec chmod 700 {} \; find . -type d -exec chmod 700 {} \;