metaforge
about
metaforge was created because i couldn’t find a tool for pattern based static site generation that fit my needs.
some things i wanted:
- write in markdown
- mirrored source to site file structure
- consolidate repeated patterns
- fine grained control over resulting html
- easily change similar patterns in files
- per file variation on patterns
- single binary
- non-proprietery
- multithreaded
- runs on my machine
i didn’t need something to abstract away all of the html, or give me a bunch of themes and widgets to decorate my pages with.
i wanted something that let me write the html for my top navigation bar once, and have it exist exactly the same across my entire site without endless copying and pasting, or resorting to javascript. essentially an html ‘includes’ or ‘requires’ function, or a snippet/macro expander.
so i made metaforge
it lets you write a pattern once, and re-use it across your site. you can nest patterns in patterns, and use variables scoped to a single file, or everything called down the chain. you can specify ‘classes’ of patterns, allowing variation in a single pattern across separate files. arrays exist to map a pattern across a group of values, making it easy to create large collections of repeated sections with small variations, such as lists or gallerys.
to find out more you can check out the documentation.
the repository linked below contains the source to generate the docs as a working example of a site.
this entire site is generated with metaforge.