Jekyll, Where is the Pagination? (rant)
When I thought of starting my second ever self-hosted blog (my first self-hosted blog was powered by WordPress), I immediately thought of Jekyll. I had previously attended a townhall meeting of Jekyll developers, and although I didn’t do much apart from building a static website (with pages, not posts), I decided to use it as a platform for my blog.
For Day 0 operations, it was perfect. I could use a text editor to build the content, and Markdown is very easy to write even for somebody who has not been employed in any technical capacity (at one time, people were expected to hand-code Markdown in wikis… then WYSIWYG editors were not just preferable but they were required for product acceptance). I could write content, click Refresh, and there it appeared in HTML! All was good in Wonderland.
Then came Day 20 (the so-called “Day 2 operations”). I had more blog posts to add and, yes, in 20 days, I was already on almost two dozen posts. And then it occurred to me. Jekyll was not splitting content into pages. I had a looong home page with every post I ever created (or does it stop at the current month? It was too long ago to remember). I looked up what the community had to say, and sure enough - the paginate gem was split from the core, and there was a choice between paginate, supported by GitHub pages, and paginate2.
Why would they do that? Pushing out the logic into a separate gem is perfectly okay, because some blog owners might want to have Next-Previous pagination while others might want to have numbered pages (with ellipsis after a certain number of pages), but if Jekyll does not include any pagination out-of-the-box and the default theme does not have built-in support for the chosen, mainstream pagination gem then it makes that much harder for somebody to adopt Jekyll - think of the average Joe who had no coding skills and only wants to run a blog about bird watching or plane spotting.
I included the paginate gem and coded in pagination but then my focus shifted from creating content to coding the template for the blog, and then I decided to just move off the platform. I decided to try Hugo and the first thing I did was to check if it included pagination out-of-the-box. And that’s how I got here.