While a company doesn’t give you space to grow and do your own things, you had to make up for lost years and things you really want to experiment and build.
I´m finally proud to release this upgraded blog and restyled elements to my wishes. More will come. To be continued...
The Challenges
Looking for Docker solution
I love the idea not to having to install a mess and ruining my system files only for running an app or apps for that matter. Luckily Ghost Blog has docker versions, which it was a good time to finally upgrade my old blog that’s running on version 1.
How to attach independent docker-compose.yml to custom Docker Shared Network
Since I created this amazing Docker Nginx Stack and I was wrapping my head around how to deal with apps that are running same ports, but with docker it’s okay without exposing ports to your system and let Nginx proxy configuration deal with them all with ease.
I even know how to create another docker-compose.yml running with multi ghost versions, connect them with Docker Nginx Stack network and access them trough browser for example:
I’ll make a guide how to configure your Nginx Docker Stack with other networks.
Upgrading from Ghost v1 to v3
My previous blog was so old it was running version 1.0. At that time whenever there is an upgrade, I felt there was a lot of work for upgrading it. Download new version, running correct Node version, deal with node warnings, and then found out I'm running too new Node version, that I should downgrade again to see which version should run this app. Then I have to search their website or forums which versions it was correct one. It was tedious. So I was holding off and I should be content with it, which I was not. Also I've edit Ghost backend and create my own features and that upgrading was never an option.
When I do things, I tend to do shortcut first and see I could spare some time. So I exported my old one, and import to the latest. What a surprise; I’ve been greeted with error message, that I should do the upgrades on version 1 first. The longcut then it is.
So I imported my data to the latest of version 1 first. Check if all are there, and got little worried with all those warning messages. But everything seems to be all right. Let’s export from this version then, and so I did.
I’m still curious to do the imports in v3 instead of v2. And to my surprise, it worked!
I finally have all my posts and migrate all my images and files.
Remember another long password
The first registration needed to make much longer password than I’m used to. So I needed some time to create a new one and remember it by heart. Practise my muscles to remember them.
Getting to know the whole file structure of Casper theme
Before theming it’s great to know what tech stack it use, and hopefully learn something new.
Migrate Mizu v1 own custom theme to v3
Migrating things is without issues. Trying to migrate on v3 I get bunch of errors, which mean I have to start from v1 and work way up from there.
Luckily after dealing some warnings by changing some variables, I can skip v2 and made my old theme work for the latest version.
Migrate Injected Codes to the latest and update libraries
Refactored CSS and Javascript, updating libraries and hope for the best.
Migrate old Posts to v3
By accident my posts got doubled or tripled by exporting them, and I was expecting that the posts have an id and only updates the ones that already exist. So I had to reset the blog by Delete all content in the Settings / Lab / Delete All Content.
I don’t like my old Mizu theme anymore and start Casper default theme as base
While it’s a comfort to see your old theme back, I don’t feel like it aged well. It’s doesn't meet today’s tech and what you expect in a blog and its features.
I don’t like how gulpfile was written, so I reformat and refactor into ES6
Since this is going to be my own theme, I might make it all mine with all my coding rules.
The horrendous one big pile of CSS file
When you want to style any component, you look up for the class name and check if it’s within the CSS. The CSS is horrendous big and very long to scroll and why isn’t this in small chunks of components written LESS or SCSS? Good thing there are commented titles, so I could start splitting in beautiful chunks and organise a bit and make sure Gulp compile SCSS for me.
Gulp nanocss is bugged and replace with gulp-clean-css
Who’d’ve tought creating numbered headers in CSS can be so hard, and had to found out that nanocss is bugged and replaces variables into single letters. Which is good in first glance, but it converts same variables in other places too such as line-numbers for hightlight/prism js, that doesn't make sense at all. Which made me look for an alternative.
Restyled components into BEM methodology
This methodology helps with legacy projects and it’s a good way to write CSS.
Replace highlight.js with prism.js
I wanted line-numbers for code highlighting, but highlight.js isn't the right tool for this.
Finalised styling and publish work-in-progress to GitHub
Something that I’m proud of and finally pushed to GitHub, because working on any project I never had to worry about colours and feelings, but I’m used to translate designs to HTML/CSS. Designing stuff is too emotional for me.
Ghost
Settings
Code injection
Subscribe to Harianto van Insulinde
Get the latest posts delivered right to your inbox
You've successfully subscribed to Harianto van Insulinde!
Subscribe to Harianto van Insulinde
Stay up to date! Get all the latest & greatest posts delivered straight to your inbox