A static site generator that makes you want to write - frequently.
Change the values of
+site-content-dir+is meant to be the directory containing text files.
+site-webpage-dir+is meant to be the directory in which the HTML files should be generated.
+site-template-dir+is meant to be the directory containing the HTML templates.
+index-template-file+a path to a HTML template for the posts index page.
+post-template-file+a path to a HTML template for the posts.
Note: There should be a trailing slash for a directory
#P"path/to/foo/" instead of
#P"path/to/foo". You may also
need to ensure that those directories do actually exist.
Modify the structure of the generated HTML documents by editing the
relevant sections of
Millipode will have to be rebuilt for the changes in
Millipode is currently known to build on:
- SBCL 1.1.7
- CCL 1.9-r15757
- CLISP 2.49
- ECL 12.12.1
- ABCL 1.1.1
You'll need to first install Quicklisp.
After Quicklisp is installed:
Clone this repository into the
git clone https://github.com/samebchase/millipode.git ~/quicklisp/local-projects/
CL-USER> (ql:quickload :millipode)
Quicklisp will pull in all the dependencies of Millipode, and then build it.
- That's it! You are now ready to use Millipode.
After Millipode has been built, it can be used from the REPL and optionally, as a standalone executable.
CL-USER> (in-package :millipode) to get into the
package (i.e. namespace). If you don't do this, every command has to
be prefixed with the package name e.g.
You now have access to all of Millipode's functionality.
MILLIPODE> (help) to start exploring.
Instead of using Millipode from the REPL, you may instead prefer to use it as a command-line program.
Making executable images is supported on the following implementations:
To make the executable image:
This will create an executable image in the current working directory
with a name specified by
This executable image can be put in your
$PATH e.g. in
For example, if
"pode" you can use Millipode by:
$ ./pode help
Edit config.lisp as appropriate and then:
CL-USER> (ql:quickload :millipode) T CL-USER> (in-package :millipode) PODE> (status) ... PODE> (gen)
Millipode's core functionality is in these five functions:
(gen): Generates the html webpages for the new and modified posts in
+site-content-dir+. Updates the index, if necessary.
(gen-all): Generate everything. Not usually necessary, in normal usage of Millipode.
(status): Prints whether there are any new or modified posts in
(index): Generates the index.
(clean): Deletes files from
+site-webpage-dir+that don't have a corresponding content post in
Write your posts in Markdown, with the title on the first line. To get
reverse-chronological ordering of posts, save them as
Your title goes here This is some text in the first paragraph. This is some text in the second paragraph. etc.
Contributions are most welcome.
These are the ways of helping out:
Code: Make a pull request, or email patches.
Testing: Bug reports. Early testers will be provided with free (!!) email/IRC support.
Documentation: Let me know if anything is not described clearly in the documentation.
Feature requests: If I think the feature is within the scope of millipode, and I think I can implement it, I will definitely do so.
Known users of Millipode
- Samuel Chase :-)
Make a pull request if you want to be added here.