sudo apt install ruby
- If installing gems doesn't work due to environment variables, add
export GEM_HOME=$HOME/gems
andexport PATH=$HOME/gems/bin:$PATH
lines to the~/.bashrc
, and restart the terminal. If it still doesn't work due to build errors,sudo apt install ruby-dev
. Still doesn't work?sudo apt install g++
.gem
is a package manager much likepip
. They're going to tell you to usebundler
, but I honestly think it's more confusion than it's worth. It's hung on me before with no good explanation. gem install github-pages
should pull down and install basically everything gh-pages uses to render stuff, includingjekyll
andjekyll-remote-theme
- Pay attention to where the gems were installed, and make a symlink with
ln -s /var/..path/jekyll /usr/bin/jekyll
so you can just calljekyll
from command line. jekyll serve
from the site's root directory, and visit it atlocalhost:4000
in a browser.
markdown +html ---> [Jekyll] ---> static website +liquid template language ^ | configs
- Continuous integration listens for a push and, when one is recieved, if there is a
_config.yml
file, Jekyll is called. For Project Pages, this occurs on thegh-pages
branch. User Pages are confusingly a special case where this occurs on the master branch. - Any remote themes are fetched, and Jekyll runs through its order of operations to produce static site output. There are so many gotchas in here that it's crazy, so I've started writing down the most infuriating ones
It used to be that this process happened in the dark, but you can now see the site compilation and deployment through github actions. I still recommend working locally to quickly iterate through most bugs. Jekyll is really good about re-serving updated pages, so you can see your changes immediately at localhost:4000 with a refresh.
_config.yaml
contains basic Jekyll configuration._writing/
is a collections of not-repo-associated articles I've put togetherCNAME
(short for "custom domain name") is necessary so github's servers know where to forward queries.