798401539f54af416b7ff984ed088aeb6a3bd7f6
The static/ directory lookup was hardcoded as a relative path from the Quartz working directory (QUARTZ_PATH). However, ox-hugo places static files in output_dir/static, while Quartz runs with --directory pointing to output_dir/content. This fix resolves static/ relative to argv.directory's parent (the output_dir), matching where ox-hugo actually places the files. Images referenced as /ox-hugo/... in exported markdown now display correctly.
org-garden
- Usage
- Running with Nix (recommended)
- Running with Mix
- NixOS Service
- Health Checks
- Environment Variables
An org-roam to static website publishing pipeline. Converts .org notes into a rendered site using
Emacs/ox-hugo for export and Quartz 4 for site generation.
Usage
org-garden serve <notes-dir> # dev server with live reload org-garden build <notes-dir> # production static build org-garden export <notes-dir> # org -> markdown only
Running with Nix (recommended)
nix run . -- serve <notes-dir>
nix run . -- build <notes-dir>
Running with Mix
mix deps.get
mix escript.build
./org_garden serve <notes-dir>
Requires QUARTZ_PATH to point to a Quartz install with node_modules for serve and build commands.
NixOS Service
A NixOS module is provided for running org-garden as a systemd service:
{
inputs.org-garden.url = "git+https://gitea.bueso.eu/ignacio.ballesteros/org-garden";
outputs = { self, nixpkgs, org-garden }: {
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
modules = [
org-garden.nixosModules.default
{
services.org-garden = {
enable = true;
notesDir = /path/to/notes;
port = 8080;
};
}
];
};
};
}
Health Checks
When running in serve mode, health endpoints are available on port 9090:
GET /health/live— liveness probe (always 200)GET /health/ready— readiness probe (200 if all components ready)GET /health— JSON status of all components
Environment Variables
| Variable | Default | Description |
|---|---|---|
QUARTZ_PATH |
(required for serve/build) | Path to Quartz installation |
NODE_PATH |
node |
Node.js executable |
NOTES_DIR |
(cli arg) | Source notes directory |
OUTPUT_DIR |
. |
Output base directory |
ZOTERO_URL |
http://localhost:23119 |
Zotero Better BibTeX URL |
BIBTEX_FILE |
(none) | Fallback BibTeX file |
CITATION_MODE |
warn |
silent, warn, or strict |
PORT |
8080 |
HTTP server port |
WS_PORT |
3001 |
WebSocket hot reload port |
HEALTH_PORT |
9090 |
Health check endpoint port |
Description
Languages
Elixir
83.9%
Nix
9.3%
TypeScript
4.4%
Shell
2%
HTML
0.4%