This is the personal website of David Foster.
You may be interested in reading the source code if you want an example of how a complex Jekyll site is structured. Notable features include:
- breadcrumbs on all pages
- clean URLs that lack file extensions (or query parameters)
- advanced Markdown with footnotes and multi-level bulleted lists
- deployment automation to GitHub Pages via git
- a tag index for blog posts
- ...including anchor-based header highlighting
- building/running the site from inside Docker so that I don't have to upgrade Ruby, Jekyll, etc just to keep things running the way they always have
-
Clone this repository:
git clone https://github.com/davidfstr/dafoster.net
cd dafoster.net
-
Install Docker
-
Build Docker image:
docker build -t dafoster.net .
-
Create and start Docker container, if not already created:
-
docker run --name dafoster.net -it -v `pwd`:/home -v $HOME/.ssh:/root/.ssh:ro -p 4000:4000 -d dafoster.net:latest
-
-
Start Docker container, if already created:
docker start dafoster.net --attach
Run local webserver with the website at: http://127.0.0.1:4000/
docker start dafoster.net
# (Wait 5-10 seconds for the server to start)
docker exec -it dafoster.net bash --login -c "rake prism" # Optional
open http://127.0.0.1:4000/
docker exec -it dafoster.net bash --login -c "rake dist"
$ docker exec -it dafoster.net bash --login
$$ eval "$(ssh-agent -s)" # start SSH agent
$$ ssh-add # login to GitHub
$$ rake deploy
$$ exit
docker exec -it dafoster.net bash --login
Copyright © 2013-2021 by David Foster. All rights reserved.