Coleslaw: Static Site Generator in Common Lisp
Czeslaw Milosz was the writer-in-residence at UNC c. 1992.I used to see him all the time at the Hardback Cafe, always sitting at a two-topdrinking coffee, reading, writing, eating chips and salsa. I remember a gentlenessbehind the enormous bushy eyebrows and that we called him Coleslaw. – anon Coleslaw is Flexible Lisp Blogware similar to Frog, Jekyll, or Hakyll. Have questions? Features Example Sites See the wiki for a list of coleslaw-powered blogs. Hacking A core goal of coleslaw is to be both pleasant to read and easy tohack on and extend. If you want to understand the internals and bendcoleslaw to do new and interesting things, I strongly encourage youto read the Hacker’s Guide to Coleslaw. You’ll find somecurrent TODO items towards the bottom. Installation Coleslaw should run on any conforming Common Lisp implementation buttesting is primarily done on SBCL andCCL. Coleslaw can either be run manually on a local machine ortriggered automatically on git push to a server. If you want aserver install, run these commands on your server after setting up agit bare repo.Otherwise, run the commands on your local machine. Install a Common Lisp implementation (we recommend SBCL) andQuicklisp. Place a config file for coleslaw in your $HOME directory. If youwant to run multiple blogs with coleslaw, you can keep each blog’sconfig file in that blog’s repo. Feel free to copy and edit theexample config or consult the config docsto create one from scratch. This step depends on whether you’re setting up a local or server install. Optionally, point the web server of your liking at your config-specified:deploy-dir. Or “deploy-dir/.curr” if the versioned plugin is enabled. If you use Emacs, consider installingcoleslaw-mode to author yourposts. Now just write posts, git commit and build by hand or by push. The Content Format Coleslaw expects content to have a file extension matching the classof the content. (I.e. .post for blog posts, .page for staticpages, etc.) There should also be a metadata header on all filesstarting and ending with the config-specified :separator, “;;;;;” bydefault. Example: ;;;;; title: foo tags: bar, baz date: yyyy-mm-dd hh:mm:ss format: html (for raw html) or md (for markdown) excerpt: Can also be extracted from content (see :excerpt-sep config param) ;;;;; your post Posts require the title: and format: fields.Pages require the title: and url: fields. To omit a field, simply do not have the line present, empty lines andfields (e.g. “tags:” followed by whitespace) will be ignored. Theming Two themes are provided: hyde, the default, and readable (based onbootswatch readable). A guide to creating themes for coleslaw liveshere. URL Out – https://github.com/coleslaw-org/coleslawAuthor – github.comDate – 2019-10-08 04:30:02
Like to keep reading?
This article first appeared on github.com. If you'd like to keep reading, follow the white rabbit.