This site was originally managed using Blogger and hosted at a
blogspot.com domain. In August 2014, I converted it
to a static site generated
using Jekyll hosted on GitHub Pages at a custom domain
registered at Hover. Images continue to be stored on Flickr, and
video content on YouTube.
Since January 2015, photos are taken on a smartphone, first a Sony Xperia Z3, then a Google Pixel. If I have time and care enough, I mount the phone on a GorillaPod. Prior to that, I used various Canon point and shoots, e.g. PowerShot S110, PowerShot S90, PowerShot A520. Most of the time, I take photos of food near a window or outside, but I’ve recently acquired a Foldio2, a portable lightbox.
If the photos need post-processing, I fix simple stuff like white balance or exposure using Mac OS X’s Preview or on Google Photos. For montages, I use ImageMagick.
Migration from Blogger
Here is a very detailed list of things I did to move my content out of Blogger:
- Purchased a domain name (from Hover).
- Created a repository on GitHub, and set up GitHub Pages to use Jekyll and a custom domain
- Installed Jekyll locally so that I could make use of plugins, which GitHub Pages doesn’t support
- Copied and customized the Hyde theme
- Configured Google Web Fonts, Font Awesome
- Tweaked styling in CSS
- Replaced the RSS template with one from https://github.com/snaptortoise/jekyll-rss-feeds, augmenting it with a thumbnail image
- Installed some Jekyll plugins
- Wrote custom ones for monthly and yearly archive pages, followed ideas in http://www.mitsake.net/2012/04/archives-in-jekyll/
- Forked blogger2jekyll, a tool
written in Node.js to ease migrating from Blogger to Jekyll. I extended
the tool to include a few more things in the YAML front matter:
- Generate array of tags from labels
- Generate post excerpt
- Extract Flickr thumbnail from first image
- Added a
redirect_fromto handle domain migration (see below)
- There were a number of existing HTML problems I had to fix in the
- A few links were absolute, pointing to a hosting provider I’ve long since abandoned.
- Some of the embedded Flickr images were using a very old URL path that has since changed.
- Most of the internal links were absolute, rather than relative. These were cleaned up after importing the posts into Jekyll.
- Created a Disqus account for comments
- Included the Universal Code in my post template
- Imported my old Blogger comments into Disqus
- Created a Google Custom Search Engine to provide site search
- To redirect users from the old pages hosted at Blogger to the new
site, I had to jump through some hoops.
- These two pages were of immense help:
- [http://blog.coolaj86.com/articles/migrate-from-blogger-to-ruhoh-with-proper-redirects.html] (http://blog.coolaj86.com/articles/migrate-from-blogger-to-ruhoh-with-proper-redirects.html)
- Blogger does not provide the ability to automatically set up a 301 redirect. Nor does it provide a template variable that has just the permalink path, only the complete URL. Otherwise, redirection would have been easy, as the pages migrated over to Jekyll use the same permalink structure.
- To workaround this, I first modified the migration tool to
redirect_fromkey and a relative path value containing the Blogger post ID (UUID).
- Next, I added
<meta>entries in my Blogger classic template to redirect users to the new domain, as well as redirect individual posts to the path containing the post ID.
- This approach isn’t perfect, as search pages (
/search?q=term) and archives (
/2014/08/) can’t be redirected.
- Even though the classic template is required to add the
<meta>fields and to provide redirection, the mobile version in the upgraded template interferes with redirection. That is, Blogger appends a
?m=1query when the user agent is detected to be mobile. To disable this, you need to switch to the upgraded template, disable the mobile version, then switch back to classic.
- Once I verified the redirection was working in desktop and mobile browsers, I deleted the sidebar, post body and footer in the classic Blogger template which should speed load times.
- These two pages were of immense help: