This page documents the correct way to blog in 2015.
Use Jekyll to generate your site.
Use Git to manage your site’s history, and GitHub to visualize it.
Makefile
. Edit the S3 bucket URL below to the name of the bucket you’ve just created.default: localserve
_site: vendor
bundle exec jekyll build
vendor:
bundle install --path vendor/bundle --binstubs vendor/bundle/bin
localserve: vendor
bundle exec jekyll serve
clean:
rm -rf tmp _site
distclean: clean
rm -rfv vendor
deploy: _site
git commit -a
git push
.gitignore
file._site
.sass-cache
vendor
.bundle
Gemfile
.source 'https://rubygems.org'
gem 'jekyll'
_config.yml
(edit to suit.)# Site settings
title: My Blog Title
email: me@example.com
description: > # this means to ignore newlines until "baseurl:"
My interesting blog site.
baseurl: "" # the subpath of your site, e.g. /blog/
url: "https://example.com" # the base hostname & protocol for your site
twitter_username: exampleuser
github_username: exampleuser
exclude: # these are important!
- Makefile
- .gitignore
- Gemfile
- Gemfile.lock
- vendor
- README.markdown
# Build settings
markdown: kramdown
sass:
style: compressed
permalink: /:year:month:day/:title/
git init
git commit Makefile .gitignore Gemfile -m "initial"
bundle exec jekyll new .
make
will serve your site at http://127.0.0.1:4000/.make deploy
.Use StartSSL to get a TLS certificate for free.
Do not perform these steps in your blog directory.
openssl
. Generate a 2048 bit RSA key. (CloudFront won’t support 4096.)openssl req -new -newkey rsa:2048 \
-keyout example.com.key.pem \
-out example.com.csr
www
, with the value githubusername.github.io
._pages
, _posts
, et c.Jeffrey Paul is a hacker and security researcher living in Berlin and the founder of EEQJ, a consulting and research organization.