Blogging with Jekyll (Part 2, Jekyll Setup)
Yesterday I wrote about getting started with Jekyll, which was really just recounting my difficulties getting Ruby set up and configured correctly. Once Ruby was configured and the Jekyll gem installed, I assumed that it would be a fairly straightforward process. It wasn’t. But it probably should have been.
The blog had already been set up (via Tinypress.co) to publish on Github Pages, so it was already configured/structured/formatted using Jekyll. I cloned the repo locally and just wanted to be able to run a local version for writing, previewing, and development.
I went back to the Jekyll Quick Start Guide and skimmed it. I probably should have read a bit more carefully. I ran:
$ jekyll new . --force
$ jekyll serve
And, when I went to view the site locally, it had blown away the entire existing setup and posts, replacing them with the default Jekyll base installation. Oops. No harm though; I figured that running a hard reset on the repo would fix everything:
$ git fetch origin
$ git reset --hard origin/master
The site still wasn’t showing correctly, possibly because the server instance was still running. The easiest route, it seemed, would just be to start over. From their docs, I ran the command to kill the server instance:
ps aux | grep jekyll, which was probably excessive, but got the job done. Then I deleted everything in the directory.
I pulled a clean copy of the blog repo again from Github, navigated to the directory, and ran
jekyll serve, which got me a bit closer. The site was now showing correctly… except that the posts weren’t being listed on the homepage. There was an error message in the terminal response:
Message: "Deprecation: You appear to have pagination turned on, but you haven't included the `jekyll-paginate` gem. Ensure you have `gems: [jekyll-paginate]` in your configuration file."
The first route I tried was to just install the gem:
$ gem install -n /usr/local/bin jekyll-paginate
$ jekyll build
$ jekyll serve
Unsurprisingly, given my track record at this point, this didn’t work and I got the same error message. This is where I finally gain a small bit of common sense, and went back to the documentation, like I really, really should have from the start.