usage info & srcs upgrades

This commit is contained in:
Robert Pearce 2020-11-01 21:50:24 -05:00
parent bb8ae74eba
commit 9244c2e20f
No known key found for this signature in database
GPG key ID: 07A0E482E5616C9B
2 changed files with 36 additions and 6 deletions

View file

@ -4,7 +4,37 @@
[Hakyll](https://jaspervdj.be/hakyll/) + [Nix](https://nixos.org/) template
## Usage
1. Click the "Use this template" button and create your repository
1. Renaming
1. Rename all instances of `hakyll-nix-template` and `my-site` with a name for
your project
1. Rename `generator/my-site.cabal` to reflect your project name
1. Cachix
1. Create a cachix cache for your project on https://app.cachix.org
1. Follow the cachix instructions to generate a signing keypair
1. Copy the signing keypair value to a new `CACHIX_SIGNING_KEY` secret on
https://github.com/<MYUSER>/<MY-PROJECT>/settings/secrets
1. Run `nix-build` to build the project and `nix-shell` to open the nix shell
1. If you want to update `niv` and the other pinned dependencies, then in the
`nix-shell` run `niv init` and then `niv update` and then `exit` to leave the
nix shell
1. To start an environment for running hakyll commands like `hakyll-site watch`
(the dev server) and `hakyll-site build`: `cd generator && nix-shell`. You'll
then have access to the `hakyll-site` executable defined in
`generator/my-site.cabal`. While you can do `nix-shell` in the root and then
`cd generator && hakyll-site watch`, you get some more tools if you
`nix-shell` from within the `generator/` folder.
1. Once you're satisfied, create a branch, push your project up there, and check
that the GitHub Actions successfully build. If so, you're good to merge your
project with your main branch.
1. Once you have a successful build on your main branch, open
https://github.com/<MYUSER>/<MY-PROJECT>/settings and set the GitHub Pages
branch to be the `gh-pages` branch
## Features
tl;dr: `nix-build` will collect all your pinned dependencies, build your hakyll
site, and output the built site in a `result/` directory. If you set up the
[main GitHub Action](./.github/workflows/main.yml) with what it needs (your