By Samuel Johnson Stoever.
Screenshot of output with the stock set of example entries can be found in 'screenshot.png'.
A (very) simple blog-style static html 'notebook' generator with layout and design adopted from the bbv1 Wordpress theme by Aaron Adams, as used by the MIT Disobedience Project webpage.
The project consists of a pair of a very simple shell scripts, and a CSS style sheet. Notebook 'entries' are stored as markdown documents named so that the shell automatically orders them in chronological order as to avoid doing sorting within the script itself.
I'm not sure if the shell scripts are POSIX-compliant, though they have been tested (and work) both on OS X and Ubuntu Linux.
The only dependency normally not included in vanilla flavors of the aforementioned unix-like distributions is a markdown parser -- I use peg-multimarkdown by the marvelous Penney Fletcher. In fact, this project started out because Pelican, a static blog generator I used to use for my 'notebooks' does not support multimarkdown syntax, that and pelican has a bunch of dependencies that i didn't want to bother installing onto my girlfriend's laptop that I borrow from time to time.
To generate the notebook (example entries are provided) simply navigate to the base directory for the project and run publish.sh.
In order to make the notebook your own, simply delete all the entries in the 'entries' directory, and add a new entry by running 'newEntry.sh'. A new file will be created in the 'entries' directory using specific conventions.
Remember to leave two lines of whitespace after the last markdown header (e.g., Date: 2012-11-06 23:17:21) and the body of your entry. This condition will probably be removed as this software matures.
Also, remember to not add any extra markdown headers, or to remove any, even if you don't use them (e.g., the tags header).
The first task would be to customize the files in the 'site' directory, each one is resposible for text rendered in different parts of the page. Each of these can contain markdown syntax.
- head1.md - The larger, top-most text in the header
- head2.md - The smaller, bottom-most text in the header.
- blogLinks.md - The links that are rendered in the leftPane, underneath the links for the in-document links for the notebook entries.
- credit.md - The text that is rendered at the very bottom of the page.
The newEntry.sh script contains the variable editor (default is emacs) which is the editor that opens up the notebook entry once is has been generated.
The 'publish.sh' script contains the following variables:
- ouputpath: where the html files generated by the software should be stored, default is 'output', so a sub-directory the project directory itself.
- mdparser: the default markdown parser to use, default is multimarkdown.
Both scripts contain the variable dnbpath which should be used to set the path to the package if you'll be calling the scripts from outside the project directory. I recommend to leave the default value of '.', and to change directories within the shell alias, functions, or scripts that you'll use to call the scripts.