Wednesday September 21, 2016
I recently did some volunteer work to upgrade the website for a podcast. I chose to re-write the site from scratch, but needed to migrate all of the existing content. After some research, I determined that Jekyll fit our needs best because:
When I took over the web presence of the podcast, it had roughly 4 years of content that needed to be preserved. The old site was driven by WordPress.
I wanted the new site to be simple, easy (for me) to update, version controlled, and as automated as possible. First, I had to work out the mechanics of how to actually do podcasting with Jekyll. After publishing several new episodes, I’ve found the setup to be quite nice:
_postsfolder with some YAML frontmatter.
After developing the Jekyll site, I had to migrate all of the content off of the old WordPress site and into the new Jekyll site. Fortunately, since the audio files were already in a separate folder, they did not require any migration.
Since I was now generating the RSS feed with Jekyll, I needed to import all the necessary metadata into a markdown file for each existing episode. To accomplish this, I wrote a script that will generate Jekyll posts (markdown files) from an existing RSS feed. This was the most difficult (and riskiest) part of the migration because I needed these Jekyll posts to produce an RSS feed nearly identical to the existing one (which was not managed by Jekyll).
After importing all the old episodes, all that was left was to deploy the site.
Again, because Jekyll generates static HTML, this was easy. I deployed all
pages except index.html while the wordpress site was still live. Finally,
index.php and replacing it with the new
switched the new site on with no downtime. Because the location of the iTunes
RSS feed didn’t move, iTunes and other podcast scrapers did not need to be
changed and immediately started picking up any new episodes deployed with
Exporting the old website from WordPress and importing it to Jekyll was easier than I could have hoped it would be, thanks to a few simple scripts. So far, Jekyll has been easier and more enjoyable to work with than WordPress. It’s also proving to be a great platform for serving a podcast. I’m working on a solution for automated deployment, but that’s a topic for a different post.