Projects
Fuglesteg.net
The website you are currently looking at
This website is written in Common Lisp using mainly Clack, Spinneret, Parenscript, and common-doc. Most pages are written in markdown and then translated to HTML using common-doc. To add metadata to the pages I have extended the commmondoc-markdown package to parse yaml frontmatter and add it to the metadata of the common-doc document. This was done easily using CLOS method qualifiers.
The rest of the application also uses a custom router that I am going to turn into a library soon. It allows me to define routes like this:
Oversimplified example:
(defroute article "/articles/{article-title}"
(content (find article-title *articles* :key #'title :test #'string=)))
The program is then packaged with a Guix package definition, a GitHub action builds the package as a docker image which is then deployed to Docker Hub. The image is then deployed to my self hosted server.