GitHub offers unlimited hosting for users or organizations and project site. Both Jekyll and static files are available.
Here are the steps in hosting your Jekyll blog on Github.
$ git clone https://github.com/username/username.github.io
$ cd username.github.io
$ bundle install
$ bundle exec jekyll serve
$ git add --all
$ git commit -m "Initial commit"
$ git push -u origin master
Now you should be able to go to username.github.io to see your blog.
Project site can be enabled in every repository including private repositories.
Enable project site.
Go to Settings-GitHub Pages-Sources, choose a source to switch on GitHub Pages for the repository.
Build site
You may build a Jekyll site from scratch or use Theme Chooser to find a theme for your project site.
Edit content
Commit
Now you should be able to go to username.github.io/your-project to see your project site.
CNAME
file:
$ cd username.github.io
$ echo "example.com" > CNAME
$ git commit -m "Add CNAME" CNAME
$ git push -u origin master
Jekyll has a plugin system with hooks that allow you to create custom generated content specific to your site. However, GitHub Pages only allows a white list of plugins for security reasons.
Here is the white list:
To avoid the inconsistency with GitHub Pages, you may use --safe
to serve in local.
You can still use all plugins by publishing your generated site to GitHub Pages, by converting the site locally and pushing the generated static files to your GitHub repository instead of the Jekyll source files.
Since 01/05/2016, GitHub Pages supports only kramdown as Markdown engine.
See https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0 for more detail.
GitHub allows you to set Jekyll sources to either master
branch, gh-pages
branch or /docs
folder in master
branch.
A full tutorial is available at https://pages.github.com/