# csg csg is the "complicated (static) site generator". It's a Markdown-based static site generator, which aims to be simple, small, extensible and fully POSIX-compliant. The primary provided features are: - Markdown conversion, supporting [the original spec](https://daringfireball.net/projects/markdown/syntax) and some common extensions like nested lists or fenced code-blocks - Customizing the Markdown conversion, allowing you to add elements around blocks - Customizing the resultant HTML with access to a variety of variables, including: - word count - (optional) git-based "created" and "edited" timestamps - Page title and description, based on document and user-customizable format string ## Getting started TODO ## Documentation TODO ## Limitations and alternatives The biggest bottleneck when using csg is the AWK-based Markdown converter. sed isn't powerful enough for the task and POSIX-compliant C will result in enormous code. From my research, only one other person has worked on an AWK-based converter: [Jesús Galán López](https://github.com/yiyus). His converter, [md2html.awk](https://github.com/yiyus/md2html.awk), supports only a subset of Markdown and, in my subjective opinion, isn't at all simple or extensible (though it may be faster). However, it has been used in multiple other POSIX-compliant site generators: - [zodiac](https://github.com/nuex/zodiac) by [Chase James](https://github.com/nuex) - [simple-static](https://github.com/wlangstroth/simple-static) by [Will Langstroth](https://github.com/wlangstroth) - [mksite](https://github.com/clehner/mksite) by [Charles Lehner](https://github.com/clehner) Other POSIX-compliant site generators: |Name|Author|Page markup|Parser| |----|------|-----------|------| |[ssg](https://romanzolotarev.com/ssg.html)|[Roman Zolotarev](https://romanzolotarev.com/)|Markdown|(external)| |[rawk](https://github.com/kisom/rawk)|[Kyle Isom](https://github.com/kisom)|Markdown|(external)| |[Pharox](https://phraxos.caffeine.computer/)|[caffeine](https://caffeine.computer/)|HTML|-| |[makesite](https://github.com/straumer/makesite)|[Matthías Ragnarsson](https://github.com/straumer)|HTML|-| |[suna](https://github.com/fuku77/suna)|[fuku77](https://github.com/fuku77)|Markdown|[interpreter](https://github.com/fuku77/suna/blob/main/.suna/interpreter), small subset of Markdown| |[dwfwb](https://github.com/fault2004/dwfweb)|[Supphakit Duanghoy](https://github.com/fault2004/dwfweb)|[smu](https://github.com/Gottox/smu)|(external)| Other shell (probably bash) site generators: |Name|Author|Page markup|Parser| |----|------|-----------|------| |[sw](https://github.com/jroimartin/sw)|[Roi Martin](https://github.com/jroimartin)|HTML|-| |[dsw](https://github.com/dfr62)|[Dan Rinaldi](https://github.com/dfr62)|Any|(external)| |[bashblog](https://github.com/cfenollosa/bashblog)|[Carlos Fenollosa](https://github.com/cfenollosa)|Markdown|(external)| |[utterson](https://github.com/stef/utterson)|[Stefan Marsiske](https://github.com/stef)|HTML|-| |[vee](https://git.sdf.org/pifty/vee)|[pifty](https://git.sdf.org/pifty)|TXT|-| |[NanoBlogger](https://nanoblogger.sourceforge.net/)|n1xt3r|HTML|-| |[simsalabash](https://github.com/markusfisch/simsalabash)|[Markus Fisch](https://github.com/markusfisch)|HTML|-| |[statix](https://gist.github.com/plugnburn/c2f7cc3807e8934b179e)|[plugnburn](https://gist.github.com/plugnburn)|HTML|-| Most work directly with HTML or use an external Markdown parser. A really good C-based parser is [lowdown](https://kristaps.bsd.lv/lowdown/) by [Kristaps Dzonsons](https://github.com/kristapsdz).