First, update your
_config.yml and set
future to false. By doing this, jekyll will not publish any post with future date.
Setup a cronjob to check and rebuild the site if there’re posts to be published. Since I already setup a hook on
post-receive (trigger on receving a git push) to rebuild the site, I’m going to set a cronjob to execute this script instead of writing something new. The content of the
post-receive looks like this.
# post-receive #!/bin/bash -l GIT_REPO=$HOME/repos/myblog.git TMP_GIT_CLONE=$HOME/tmp/git/myblog PUBLIC_WWW=/var/www/myblog git clone $GIT_REPO $TMP_GIT_CLONE jekyll build --source $TMP_GIT_CLONE --destination $PUBLIC_WWW rm -Rf $TMP_GIT_CLONE exit
Cronjob that execute
post-receive every hour at 0 minute, everyday.
The only downside of this is you need to be able to setup cronjob. GitHub Pages and shared hostings are probably not going to work in this case. You will need to verify this yourself.