Creating personal blog
Creating personal blog based on GitHub.
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.
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
Links
Now your site is available at https://yourname.github.io
.
How I’m Using Jekyll in 2016 (link).