Website automation: write a post for the future, and then publish it on the correct date.09 Sep 2023
Sometimes I write something for a future date, and I want to then
- generate my website so I can see the new pages and check them,
- set up a script to regenerate on the date of the next new post.
Ok, so this worked out to be easier than I thought. First, generate the site to see the future posts, something like
jekyll serve --future
Take a look around. Is it good? Then create a script that will regenerate the site on the date of a new post. I created a script in a directory
_scripts. It looks like
#!/bin/sh jekyll build -d docs/ git -C ~/amy-tabb.github.io add . git -C ~/amy-tabb.github.io commit -am "automated build" git -C ~/amy-tabb.github.io push origin master
jekyll build -d docs/ generates the site in development mode, and sets the destination to
git -C ~/amy-tabb.github.io **** commands specify from which directory to run git, see this SO answer.
I then use a single use cron job to run the script, Red Hat:
chmod _scripts/build-and-push-script.sh at 0:04 -f _scripts/build-and-push-script.sh
at command creates a one-time cron job that will run at
0:04, or 4 minutes past midnight. The only new published pages are those dated for tomorrow.