agave-generator
v0.3.9
Published
Minimal markdown to HTML static site generator
Downloads
122
Readme

Minimal markdown to HTML for static sites with pretty URLs.
Written in ReasonML with native OCaml toolchain (opam + dune).
Install
Via npm
npm install -g agave-generatorBuild from source
Requires opam and OCaml 5.1+.
opam install . --deps-only -y
dune build
dune installLink locally for development
opam install . --deps-only -y
dune build
cp _build/default/bin/Agave.exe bin/agave-native
npm link --ignore-scriptsNow agave is available globally. To unlink:
npm unlink -g agave-generatorUse
mkdir blog
cd blog
mkdir markdown
touch markdown/index.md # home page
touch markdown/first-post.md # /first-post/ route
agave # reads all your readmes in ./markdown and outputs them to ./publicFor the full list of options run help.
agave --helpThemes
Simply pass the -t argument and the theme name
agave -t arrakisAvailable themes:
- arrakis - Deep desert, spice orange and warm ochre on dark sand
- caladan - Ocean world, lush blues and greens
- giediprime - Black and white minimalist, stark industrial
- ix - 90s cyberdelia, neon on dark
- salusasecundus - Brutalist, raw concrete with heavy type
- spice - Psychedelic melange, molten oranges and gold shimmer
Example Site with Theme Previews
The example/ directory contains a demo site with preview pages for every built-in theme. To build it:
cd example
bash build-examples.shThis generates the main site and a themed preview page for each theme at public/themes/<theme>/. To view it locally:
agave -m markdown -p public -s
# Visit http://localhost:8080/ and click through the Theme GalleryFull Customization
If you didn't find a theme for you you can add any base HTML and CSS you would like.
base.html will wrap every generated page.
base.html must contain <!-- MARKDOWN --> where you would like your content placed.
If you have a styles.css file in the markdown folder, it will be copied to the deployment folder.
touch markdown/base.html
touch markdown/styles.css
echo "<html><!-- MARKDOWN --></html>" > markdown/base.html
agave # run the generator againHere is an example of using custom base.html.
File structure
./markdown
└──base.html
└──index.md
└──another-page.md
└──topic.md
└──/topic
└──2019-1-1.md
└──2020-1-1.md
└──2021-1-1.mdresults in
./public
└──index.html
└──another-page/index.html
└──/topic
└──index.html
└──2019-1-1/index.html
└──2020-1-1/index.html
└──2021-1-1/index.htmlDeploy your site
Github Pages
agave --markdown myblog --public docs
git add --all
git commit -m"deploy"
git pushSetup your repo to look at the docs folder on your main branch in the repo settings.
Run your site locally
agave -s
# Server running at http://localhost:8080/You can also serve any existing directory without generating:
agave -p ./docs -sRelease
- Commit and tag:
git add -A && git commit -m "v0.2.0: description"
git tag v0.2.0
git push origin main --tagsGitHub Actions builds native binaries for
linux-x64,darwin-x64, anddarwin-arm64and attaches them to a GitHub Release.Publish to npm:
npm publishSupport
Want to support this project?
