bundle install bundle exec rake serve
This site uses mostly vanilla Jekyll, so read the docs for more info. There are a few custom things going on though:
- The actual source files are under the
sourcedirectory instead of the repo root. Jekyll compiles the source to the build directory.
- jekyll-assets is used to compile SCSS files, located in
source/_assets/stylesheets, into CSS. Jekyll 2.0 has builtin support for SCSS, but jekyll-assets appends a hash to the generated asset files which ensures updated assets aren't cached downstream. It also plays nicely with images.
- The alias generator plugin is being used to generate redirect pages.
I love when people fork and redeploy this code, but a few times it's been done while still using my site's Google Anaytics or Disqus configs. To stop that from happening, I've removed the hardcoded ids and split out configuration into global and personal config files.
Standard Jekyll settings are in the
_config.yml file and config specific to my site is in an uncommitted file called
_local_config.yml. An example of what my personal config looks is in
When calling Jekyll, just specify both config files and the values will be merged.
bundle exec jekyll serve --config _config.yml,_local_config.yml
rake serve task wraps that call up so you don't have to remember the
--config flag each time:
bundle exec rake serve
My site is hosted on S3 and served with CloudFront. I've created a small rake task that builds the site and deploys it to an S3 bucket. It only uploads new or changed files, so deploys are fast even for large sites. It'll also remove any stale files left from previous deploys.
Your AWS keys and bucket are through
ENV variables. I'm using the dotenv gem to load variables from a
.env file before deploying. Since AWS keys are sensitive, the
.env file isn't committed to source. Take a look at the
.env.example file to see what your
.env file should look like.
To deploy, just run:
You can probably also deploy this to Github pages, though I haven't tried it in a few years.