Jekyll
Jekyll is the default static site generator used by github pages to render repo markdown as html.
This very minimal repo is a good demo of using remote_theme:
setting in _config.yml
for beautifying default github page themes.
Github Pages
The only requirements to sprucing up your account.github.io
repository is a _config.yml
file at the root level with the default page settings “deploy from main branch root”.
_config.yml
title: LNCD
description: Laboratory of Neuro-Cognitive Development
url: "https://lncd.github.io/"
remote_theme: just-the-docs/just-the-docs
Local Development
Only _config.yml
is need to change how github pages themes the markdown content. But running locally can be useful for testing out themes and markdown formatting.
Makefile
records commands (recipes) for serving the site locally.Gemfile
lists the ruby packages needed.
The meat of the Makefile is simply bundle exec jekyll serve
Mac OS
For make to work, you’ll need ruby
. get it with homebrew’s brew
command
brew install ruby
if brew: command not found
get homebrew first
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Tree
lncd.github.io/
├── colophon.md # this page
├── _config.yml # where the theme is set (remote_theme: just-the-docs/just-the-docs)
├── Gemfile # ruby libaries needed for serving/testing jekyll on locally
├── index.md # landing page
└── Makefile # recipies for "make" to bundle ruby gems and serve jekyll locally
Alternatives
mkdocs-material
is specialized for code documentation. It has more features with simpler configuration for it’s use case.mkdocs gh-deploy
writes the static site to a separate github branch (requires changing github page settings).hugo
is fast and has a more robust theme (sub-folder) mechanism. GitHub Actions are the preferred deployment method.dokuwiki
is not a static generator (requires php host). Wiki pages are edited dynamically and user accounts allow for private pages and finer access controlwordpress
is also dynamic and requires a php host. It provides what-you-see-is-what-you-get editing and website/GUI driven settings and theme selection