Publish Script For My RSS And Blog
This is the script that I’ve written to publish my RSS and Blog
#!/bin/bash
# Change the user and username in your script
BLOG=(/home/user/username.github.io/blog)
MD=(/home/user/blog)
blog_count=$(ls $BLOG | wc -l)
md_count=$(ls $MD | wc -l)
# Get the latest markdown file name
latest_md=$(ls $MD -t | sort -r | head -n 1)
# file name for new blog html
blog_name=$(find $MD -name "*" | sort -r | head -n 1 | xargs cat | head -n 1 | cut -c 3- | sed 's/ /_/g')
# File count dose not match
if [[ $blog_count != $md_count ]];then
i=$( ls $BLOG -t | head -n 1 | cut -d "." -f 1 )
j=$( ls $MD -t | head -n 1 | cut -d "." -f 1 )
# check if the index is unequal
if [[ $i != $j ]]; then
echo -e "New markdown found for the blog\nCreating HTML file for $latest_md"
echo -e "Blog HTML file name will be:\t $blog_count.$blog_name.html\t and RSS feed will be updated\n"
((blog_count++))
read -p "Confirm: (y/n) " response
if [[ $response =~ [yY]$ ]]; then
pandoc $MD/$latest_md -t html -o $BLOG/$blog_count.$blog_name.html
echo "$blog_count.$blog_name.html file crated"
mdrss update
echo "rss.xml updated"
else
echo "Blog post abort"
exit 1
fi
echo "Publish Blog and RSS"
read -p "Confirm: (y/n) " response
if [[ $response =~ [yY]$ ]]; then
cd $WEBSITE
git add .
read -p "Enter your commit message" commit_message
git commit -m "$commit_message"
git push
echo "Blog article added & RSS update successful"
else
echo "Blog post abort"
exit 1
fi
else
if [[ $i != $j ]]; then
echo -e "The index of markdown and blog does not match\n!!!Attention needed\n\n$BLOG\n&\n$MD"
else
exit 0
fi
fi
else
if [[ $blog_count == $md_count ]]; then
if [[ $i != $j ]]; then
echo "The index of markdown and blog does not match\n!!!Attention needed"
else
echo "All up to date"
exit 0
fi
fi
fi
I use mdrss
which I’ve mentioned in my previous post, this is a simple golang tool to convert your markdown files into rss feed file. Here is the link
I also use md2html
which convert the markdown file into unformatted html file. You can install using npm install -g markdown
.
I do suggest to set alias to change directory into your blog markdown files and your website in your ~/.bashrc
file
This file can be stored in the /usr/local/bin/
to make accessible from any dir.
I hope this was useful to you and find some inspiration