M README.md => README.md +36 -5
@@ 1,9 1,26 @@
Static Site generator for generating blogs in Chicken Scheme
Static Site generator for buildings blogs written in Chicken Scheme.
- Fast and easy CLI to setup blog, create new posts, or publish posts.
- Use SXML to configure page layouts.
- Automatically create and update atom feed.
Ensure you have necessary native dependencies:
On Alpine Linux:
doas apk add chicken cmark-dev util-linux-dev
wing uses the [cmark](https://github.com/commonmark/cmark) native C library as part of its
markdown rendering process. Make sure that is installed before installing the egg.
It also uses the native C uuid library.
The easiest way to get started is to simply run:
@@ 16,7 33,7 @@ This will use the egg file to download dependencies, compile the code, and insta
Use the chicken compiler to create the static wing binary.
csc wing.scm -static
@@ 27,13 44,13 @@ Use the chicken compiler to create the static wing binary.
To initialize a project run wing init in a new directory.
To initialize a project make a new directory. Inside the empty directory run `wing init`.
`init` - Prompt to fill in config file fields.
`new` - Prompt to fill in post fields.
`publish` - List unpublished posts and prompt the user to select one.
`publish` - List unpublished posts and prompt the user to select one to publish. Publishing means the meta information is stored in the posts database.
`revert` - Remove the head (most recent) of the published posts list in posts.scm.
@@ 124,10 141,24 @@ The most important thing to know about this file is don't touch this file!
For the most part I consider wing to be feature complete, but I am open to bug fixes and quality of life improvements.
Before sending patches make sure your changes pass the integration test:
Once you are confident in your changes you can send patches to:
In the case you are new to email based git workflows please refer to this [tutorial](https://git-send-email.io/).
wing: Simple Static Site generator for Chicken Scheme
Copyright (C) 2020 firstname.lastname@example.org
Copyright (C) 2020 email@example.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
M test.sh => test.sh +1 -0
@@ 8,6 8,7 @@ cp wing example
if ./wing init < ../prompts/config.txt ; then
if ./wing new < ../prompts/post.txt ; then
echo "# foobar\n" >> posts/cool-post.md
if ./wing publish < ../prompts/publish.txt ; then
if ./wing build ; then
if ./wing revert ; then
M wing.egg => wing.egg +1 -1
@@ 1,5 1,5 @@
((author "Harley Swick")
(synopsis "SXML+Markdown based blog engine")
(dependencies cmark sxml-transforms atom uuid srfi-19 srfi-13 srfi-1 simple-md5)