Bits
/
2019
/
Upgrade sodaware.net
sodaware.net has been going since 2005. Originally it was a collection of php files with a little bit of database access thrown in. Then it moved to a CMS platform called etomite, but with a blog powered by WordPress.
After a couple of years I updated the entire site to run on WordPress.
In 2016 I rebuilt the site (again) to run on a combination of Middleman and Jekyll. Since then I haven’t really worked on things, and it’s starting to show.
If you thought the build process for this site was convoluted, look away now.
To publish a new post, I have to:
- Convert the post from org-mode to html using Emacs
- Copy converted HTML to the Jekyll directory
- Build the blog in Jekyll
- Copy the Jekyll output to the middleman blog directory
- Build the site using Middleman
- Upload everything
I only write a few posts a year so it’s not a huge burden, but it still feels like the whole site is stuck together with sticky tape and hope.
There’s also a lot of pages that are built by hand when they could be built automatically. Data for projects and libraries also has to be updated manually.
For 2019 I’d like to make a couple of improvements:
- Switch everything to run on a single platform. Either full Jekyll, full Middleman or full something-else.
- Support rebuilding directly on the server (either via a git push or scheduled job)
- Clean up pages in
/dev/
to use reusable templates - Clean up pages that use hard-coded lists of sub-pages
- Update project pages to use auto-generated data files where possible. For example, the “Last Update” date can be pulled from commit logs rather than manually typed in.
Goal steps
☑ Evaluate replacing Jekyll with middleman-blog
☑ Evaluate Hugo
☑ Create git hook to rebuild site when files are committed
☑ Setup a cron job to rebuild site regularly
☑ Setup a cron job to rebuild data sources
☑ Update server to automatically renew SSL certificates
☑ Create a script to setup a server with all of the above features
Targets
33% of goal steps complete.
66% of goal steps complete.
All goal steps complete.