Level 0: Hello Jekyll

4 minute read

It’s a fresh Monday Tuesday morning.

The goal of today is to get my technical blog up and running before the afternoon.

We’ll leave the why for now and get charging towards the how.

Time check: 2017-12-26 10:12:46

I’ve got my favourite text editor/IDE pumping (Visual Studio Code) and a few pages opened on Jekyll blogs and Github Pages. Something about that seems important. My terminal is also ready to go.

I updated my ruby environment earlier this morning and installed bundler and jekyll for this mini-project.

jekyll new temp and it’s done. I have a fake environment for the time being before I port it over to my free github domain. By the time this post is finished, you should all be able to view it.

While reading documentation, a few ideas pop out:

  • A little bit chunky for documentation in terms of UX, but it gets the job done
  • There’s a detach function so that you can serve your app and let it run in the background – neat!

Jekyll is, at its core, a text transformation engine.

Jekyll people — https://jekyllrb.com/docs/structure/

  • Wow, that’s exactly what I’m looking for. I wasn’t aware of this, but the architectural design calls for the engine being specifically created to serve up static content. This removes the majority of the concern for security, scalability, databases, backend, etc. It’s just simple text.

  • Drafts seem cool, nts: check them out _drafts
  • Y-M-D-title.MARKUP, got it
  • Well-formatted site data in _data, hrrmm, not sure what that means.

Do not use tabs in configuration files

  • Finally, someone has ended the debate, lel
  • Starting to tune out, too much documentation for one Pomodoro run.

Time check: 2017-12-26 10:27:34

Alright, time to have some fun. jekyll serve and we’re on our way.

welcome!

Yay, we did something. Time to add in a cool custom layout so we can bootstrap this thing even quicker. I did some perusing earlier in the morning and I found a few templates/layouts worth noting:

Pomodoro Break 1 - Went to chill with my niece

I tried forking the minimal mistakes one but it didn’t work out so well for me. I didn’t really like the idea of taking in all that git history and there was just a lot of chaff. Instead, the goal is to do it fresh with whatever plugin import required. That way, I can build on my own terms.

ruby install

Now that’s what I’m talking about!

# update Gemfile as instructed
bundle
# ran into some issue with dependencies
bundle update
bundle
# no more bundle errors!

ruby install

Alright, running jekyll serve and then bundle exec jekyll serve kinda crapped out. I’m missing my github link and other required configurations. I set my git remote origin to my repo, added my karma semantic commit message, and then pushed.

barebones

Yay, I have some barebones stuff working. I just discovered an unsightly gotcha with the whole ruby/Gemfile setup that seems like a smell.

exec problems

If I try to run jekyll serve in a directory that already has a Gemfile with an inconsistent dependency version of something that I’m using, I’ll get this error. It seems like it needs the bundler to do a resolution of the dependencies first, in this case. Running bundle exec jekyll serve is fine, but it seems strange. The community has some opinion on this as well. I’ll explore it later, given the time, but it’s not a big deal.

alias bejs="bundle exec jekyll serve"
# if you want the changes to take place in your terminal immediately
source ~/.bashrc 

I added an alias in my ~/.bashrc instead, so I don’t have to type the long command each time. Now, it’s just bejs.

So, now I have my blog up and running, with zero content and near zero config. Layout is good, at least. I want to tackle this problem next - the build warnings.

Pomodoro Break 2 - Water

warnings

The missing layout warnings come from the fact that my _layouts directory is missing the corresponding template for that markdown file. It’s missing because it doesn’t exist. To test out the idea, I created an empty file in _layouts/post.html and the build error went away. That being said, nothing changed on the site, so I knew something was still up. More documentation time!

Took me some more fiddling but I got it. Had to follow a special set of instructions for starting from jekyll new and after importing some missing dependencies (remote-theme, the actual theme itself in the _config.yml). Time to do some more configuring.

Pomodoro Break 3 - Water break

Time check: 2017-12-26 11:36:41

Almost finished, and my time limit is cutting it close too! The wiring is almost done and all that’s left is to get rid of that pesky Github metadata warning. The fix is simply to enable a personal access token for my terminal and that should be that.

all clean

Poof, it’s gone. Success! If you’re reading this, we’re done!