2026-04-16 Use Oddμ to watch over a directory ============================================== I was wondering how to expand on the use of Oddμ as a static site generator. Here's an idea. To implement a static site that gets updated whenever the page files are updated, use a Makefile to produce a HTML file for every Markdown file and then use a directory watcher such as entr to run make whenever Markdown files change or get added. Makefile: SHELL = sh all: $(patsubst %.md,%.html,$(wildcard *.md)) feed.xml run: while true; do sleep 0.1; ls *.md | entr -d make; done %.html: %.md if test "$<" != index.md -a "$<" != changes.md; then oddmu notify "$<"; fi oddmu html -template static.html "$<" > "$@" feed.xml: index.md oddmu feed - < "$<" > "$@" To start: make run The while loop of make run works as follows: The ls command feeds all the Markdown files in the current directory to entr. The -d flag causes entr to exit if a new file is added to the directory, redoing the loop and sending an updated list of Markdown files in the current directory to entr. The rules ensure that any Markdown file that's changed triggers oddmu notify except for index.md and change.md (since oddmu notify changes these two) and oddmu html is used to generate the HTML using the static.html template. The feed is regenerated using oddmu feed if index.md changes. Now you can update the Markdown files with an editor, or upload Markdown files using rsync or scp and it'll work. To learn more, see the man pages of oddmu notify, oddmu html and oddmu feed. #Oddμ 2026-04-21. I feel the urge to implement a daemon or watch subcommand that watches over the filesystem and regenerates the files as necessary. The benefit would be that it already knows about all the subdirectories and it work on platforms such as Windows without a decent scripting environment. Then again, if you're really into Windows, you can figure out how to do it. I also don't know if there is even one Windows user.