Building a tech blog in 2019, an introduction
The who and the what now
Squarespace, Wix, Wordpress, static site generators, ya da ya da - there are so many options nowadays to a get a blog going that it takes a certain type of crazy to want to roll your own or use something seemingly over the top like Drupal. Yes, remember Drupal, the No. 3 most popular CMS? Well some of us haven't forgotten and even though it's probably (probably?) a terrible choice for someone who just wants to getshitdonenow it is perhaps a fine choice for someone who likes to shave yaks, tinker with features and lean toward extreme value delivery.
Given that, it is no surprise that this blog is running on Drupal and I'm going to spend a few posts going over what is under the hood and pointing out some tricks that this old dog can still perform. Woof!
Yeah yeah, that's nice, but really why?
So I maybe crazy but I'm not stark raving. There be method to the madness or at least I want to do stuff that I would find annoying on other setups, namely:
- Different types of categorisation
- Automated image handling
- Patterns for auto generating URLs
- Content modelling
- Full markdown support
- Posting via API
- Scheduling, published at vs update dates
- Sync via cli
- Fully flexible sane themeing for fluid typography
- Schmancy things like proper quotes, punctuation
- Lazy loading of all the things
- Posting to 3rd party services
Yes I don't need some of those things but I sure as hell wants them and as a dev I can have them so let's get cracking.
The base setup
Let's kick off with what's going on at a base level. Here are the Drupal 8 contributed modules "of note" that are installed to get us a part of the way:
- Admin Toolbar + Adminimal Admin Toolbar for better drop down menus and shortcuts when in the backend
- Viewfield to show views / lists of information inside a blog post
- Markdown for markdown support (more on that later)
- Pathologic for correcting paths in posts
- Insert for inserting images into the markdown
- Entity Pager for simple next and previous buttons lazy stylee
- Publication Date to have a separate date of publication vs updated
- Popular Tags to make tagging of posts a bit more sensible
- Draggable Views for arranging posts that are in series with ye olde drag and drop
...plus a bunch of the usual suspects: Entity Browser, File Entity, Media Entity Browser, Pathauto, Redirect, Scheduler, Token, Metatag, Adminimal Theme, Prism etc.
That's all well and good but that is just a grab bag of stuff that doesn't really add up to a blogging system that fits together into a cohesive whole. So that's what I hope to put out over the next few months, including:
- How to get markdown going with all the bells and gfm whistles
- Implementing the concept of Series of posts
- Front matter API support (actually I am currently developing that from scratch!)
- Optimisation etc.
Eventually I hope to make a profile (Drupal for distribution) out of it with a couple of themes but let's see how we go.