bob/bob2
2024-10-26 16:39:45 +02:00

106 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
usage()
{
echo
echo "This script is made for those who want to blog and are also addicted to the command line"
echo
echo "Run the initiation for a start. After that, place all your future blog
posts, written in markdown (.md or .markdown), in the draft folder."
echo
echo "Once you publish your blog, all the drafts in the said folder will be
converted to html, added to the posts folder and append to the index.html"
echo
echo "To remove a post, just remove it from the draft folder and republish
your blog"
echo
echo "bob commands :"
echo " help display this help"
echo " init initiate a blog"
echo " publish publish the blog"
}
init()
{
echo Name of the author of the blog :
read author
echo "author=$author" > .blog.conf
echo Name of the blog :
read blog
echo "blog=$blog" >> .blog.conf
echo "Language of the blog : [en]"
read lang
if [ -z $lang ]; then
lang=en
fi
echo "lang=$lang" >> .blog.conf
echo "Activate dark mode : (y/N)"
read dark
if [ -z $dark ]; then
dark=n
fi
echo "dark=$dark" >> .blog.conf
mkdir drafts
# mkdir templates
mkdir posts
# mkdir css
# _init_css
# _index "$blog" "$lang" "$dark"
}
update_index()
{
ls -t ./posts | awk '
BEGIN {
print "<ul>"
}
{
ref=$0
gsub(".html","",ref)
gsub(/[_-]/, " ", ref)
print "<li><a href=\"./posts/" $0 "\">" ref "</a></li>"
}
END {
print "</ul>"
}'
}
publish()
{
post=$(awk -f lib/markdown.awk ./drafts/$1.md)
template="./lib/template/post.html"
awk -v content="$post" '{gsub(/{{article}}/, content); print}' "$template" > "./posts/$1.html"
mv ./drafts/$1.md ./drafts/published/$1.md
}
unpublish()
{
rm ./posts/$1.html
mv ./drafts/published/$1.md ./drafts/$1.md
}
if [[ $# -eq 0 ]]; then
usage
elif [[ "$1" == "help" ]]; then
usage
elif [[ "$1" == "usage" ]]; then
usage
elif [[ "$1" == "init" ]]; then
init
elif [[ "$1" == "publish" ]]; then
if [[ $# -eq 1 ]]; then
echo "Usage : bob publish <draft_name>"
else
publish $2
fi
elif [[ "$1" == "unpublish" ]]; then
if [[ $# -eq 1 ]]; then
echo "Usage : bob unpublish <post_name>"
else
unpublish $2
fi
elif [[ "$1" == "help" ]]; then
usage
fi