From d993b951fdeea80d9b292e8a2d611a7d5e22d273 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Sat, 13 Jul 2024 18:19:48 -0400 Subject: Update README to reflect directory structure and dropping ox-haunt --- README.md | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 634923f..c682e75 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,6 @@ This repository contains the source code for my personal website. In particular: - The Guile API server implementing all of the website's dynamic functionality - Org source files for all of the articles published on the website -The first two are under `haunt/`, and the last is under `org/`. - ## Building My website is, in theory, reproducible. @@ -15,6 +13,7 @@ If you find that to not be the case, please let me know. ### Dependencies +- GNU Emacs `>= 29.3` - GNU Guile `>= 2.2.7` - `haunt == 0.2.4` - `guile-commonmark >= 0.1.2` @@ -25,29 +24,21 @@ If you find that to not be the case, please let me know. - `git` - `pagefind = 0.12.0` (optional) -### Articles - -Posts must be compiled before the website can be built (otherwise `haunt/posts` is unpopulated). - -1. Install [ox-haunt](https://git.sr.ht/~jakob/ox-haunt). -2. `(setq ox-haunt-images-dir "./haunt/static/image/")` -2. For every `$article` in `ls org/*/*.org`, - 1. `M-x find-file RET $article` - 2. `M-x org-export-dispatch RET s h` - ### Website -When all of the articles have been compiled, the website can be built by running `haunt build` in the `haunt/` directory. -When `haunt build` completes, the output will be at `haunt/site/`. +When all of the dependencies have been installed, the website can be built by running `haunt build` from the directory this README file resides in. +When `haunt build` completes, the output will be at `site/`. It may take a minute to fetch comments and webmentions. The build process can be sped up by setting the `HAUNT_SKIP_COMMENTS` environment variable. +It may also take a few minutes to compile all of the posts using Emacs, but unless explicitly disabled, the results are cached. +Hence, subsequent builds will not take as long. If using `pagefind`, the index will need to be build after running `haunt build`. This can be done with `pagefind -s site/ -b _pagefind/`. ## Deploying -Recommend using `rsync -azv --delete --progress haunt/site/ [DESTINATION]` to update the static components on a remote. +Recommend using `rsync -azv --delete --progress site/ [DESTINATION]` to update the static components on a remote. The following OpenRC service will manage the API server: @@ -79,11 +70,11 @@ Ideas for a better name are appreciated 🙂 Before running the API server, the following databases will need to be created: - `jakob_rsvp` - - Initialized with `haunt/jakob/dynamic/schema-rsvp.sql` + - Initialized with `jakob/dynamic/schema-rsvp.sql` - `jakob_gallery` - - Initialized with `haunt/jakob/dynamic/schema-gallery.sql` + - Initialized with `jakob/dynamic/schema-gallery.sql` - `jakob_comments` - - Initialized with `haunt/jakob/dynamic/schema-comments.sql` + - Initialized with `jakob/dynamic/schema-comments.sql` ### Dependencies @@ -93,13 +84,13 @@ Before running the API server, the following databases will need to be created: - `latex` and `dvipng` - PostgreSQL `>= 14.0` -[squee](https://notabug.org/cwebber/guile-squee/) is currently vendored at `haunt/squee.scm`. +[squee](https://notabug.org/cwebber/guile-squee/) is currently vendored at `squee.scm`. **TODO**: Should we package `squee` for Gentoo? Or use something more standard? I don't like vendoring code. ## API -Dynamic capabilities such as comments are implemented by the Guile API server (`haunt/api.scm`). +Dynamic capabilities such as comments are implemented by the Guile API server (`api.scm`). It is assumed that the web server proxies all requests matching a `/api` prefix to this server. By default, the API server runs on port `8081`. @@ -226,6 +217,6 @@ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR I ## Static Assets -| Tor Logo | haunt/static/tor.svg | The Tor Project, Inc. | [CC BY 3.0 US](https://creativecommons.org/licenses/by/3.0/us/deed.en) | -| I2P Logo | haunt/static/i2p.svg | I2P Project | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) | +| Tor Logo | static/tor.svg | The Tor Project, Inc. | [CC BY 3.0 US](https://creativecommons.org/licenses/by/3.0/us/deed.en) | +| I2P Logo | static/i2p.svg | I2P Project | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) | -- cgit v1.3