Creating personal blog

4 minute read

Creating personal blog based on GitHub.

Jekyll

Objective

I decided to start document every step I made during my learning path.

The other reason was to make a CV (Curriculm vitae) for interview. A friend of mine said to me that I have to include CV in .doc format in placement letter. I was shocked that I had to write a document in Microsoft Word in the 21st century. I did it when I was at school and university in late 1990’s. Starting from Word 6.0 for Windows 3.1 and ending with Word 2000 for Windows 2000. That’s enough for me!

So instead I used GitHub with its ability to make personal site like yourname.github.io. This service is called GitHub Pages.

You have to make new repository named yourname.github.io. In my case it is dmlaziuk.github.io.

In addition to supporting regular HTML content, GitHub Pages supports Jekyll server. It allows us to write pages using Markdown syntax, and use custom themes for styling.

In my blog I use Minimal Mistakes theme.

Blog

Installation

Jekyll is a Ruby gem. To install type:

$ gem install bundler
$ gem install jekyll
$ jekyll new dmlaziuk.github.io
$ cd dmlaziuk.github.io
$ git init
$ git remote add origin https://github.com/dmlaziuk/dmlaziuk.github.io.git

Directory structure

|-_data
| |-navigation.yml
| |-skills.yml
|
|-_includes
| |-archive-custom.html
|
|-_pages
| |-404.html
| |-about.md
| |-achievements.md
| |-courses.md
| |-projects.md
| |-skills.md
|
|-_includes
| |-svg_mime_type.rb
|
|-_posts
| |-2017-09-18-first-step.md
|
|-assets
| |-css
|   |-main.scss
|
|-images
| |-avatar.png
|
|-_config.yml
|-Gemfile
|-index.html

Config

# Gemfile
gem 'minimal-mistakes-jekyll'
group :jekyll_plugins do
  gem 'github-pages'
end
# _config.yml
title: Learning curve
author: Dzmitry Laziuk
email: dm.laziuk@gmail.com
description: This blog is about learning curve of mature programmer. He who tries to compete with newbies in constantly changing environment.
baseurl: "/"
url: "https://dmlaziuk.github.io"
github_username:  dmlaziuk
repository: "dmlaziuk/dmlaziuk.github.io"
remote_theme: "mmistakes/minimal-mistakes"
markdown: kramdown

words_per_minute: 100

paginate: 20
paginate_path: /page:num/

author:
  name   : "Dzmitry Laziuk"
  avatar : "/images/avatar.png"
  bio    : "Personal blog"
  email  : "dm.laziuk@gmail.com"
  uri    : "https://github.com/dmlaziuk"
  home   : "/about/"
  location : "Minsk, Belarus"
  facebook : "dzmitry.laziuk"
  linkedin : "dm-laziuk"
  github   : "dmlaziuk"

teaser: /images/avatar.png

include: ["_pages"]

defaults:
  # _posts
  - scope:
      path: "_posts"
      type: posts
    values:
      layout: single
      author_profile: true
      read_time: true
      comments: false
      share: false
      related: false
  # _pages
  - scope:
      path: "_pages"
      type: pages
    values:
      layout: single
      author_profile: true
<!-- index.html -->

---
layout: archive
author_profile: true
---

<h3 class="archive__subtitle">
  {{ site.data.ui-text[site.locale].recent_posts | default: "Recent Posts" }}
</h3>

{% for post in paginator.posts %}
    {% include archive-custom.html %}
{% endfor %}

{% include paginator.html %}

After installsation and configuration you can start Jekyll server locally:

$ jekyll serve

Then you can preview your site in browser at http://localhost:4000.

When everything looks great you just commit and push changes to GitHub:

$ git add .
$ git commit -m 'initial commit'
$ git push origin master

Now your site is available at https://yourname.github.io.

How I’m Using Jekyll in 2016 (link).