r/lisp • u/Worth_Percentage7170 • 10h ago
Common Lisp sta6: static site generator for Common Lisp
hi everyone,
I'm new to Common Lisp, although I have tried other lisp dialect (i.e., Clojure, Racket) to attempt making a static site and/or leetcode(s). This is my first attempt of porting the SSG into a library.
sta6: sta(six), static -- is a tiny SSG that turns pages/*.lisp into build/*.html, with support for dynamic routes (e.g., /blog/+slug+).
the usage of sta6 is as follows (src/pages/page.lisp):
(defpackage #:pages/page
(:use #:cl)
(:export #:render))
(defun pages/page:render ()
(sta6:html5
(:img :width (/ 500.0 3)
:src "https://twobithistory.org/images/sicp.jpg")
(:br)
(:br)
(:span "Hello, from Common Lisp.")
(:ul
(loop for x from 1 to 3 do
(:li x)))))
which yields the image above, the full example can be found here.
sta6 uses an external HTML generator under the hood:
if you're in need of a personal site, give sta6 a try! here's an example of my site built with sta6:
why use sta6?:
- You do not need (to learn) an external templating language (e.g., Nunjucks, Handlebars, EJS).
resources: