What is Fornax?
Fornax is a static site generator written in F#. I think it's pretty neat. Fornax generates static sites through a pipeline of F# scripts called loaders that inject content into a global context that is then consumed by more F# scripts called generators that mold the content its final form. The workflow is decidedly hands-on with a distinct code first approach. This gives Fornax incredible flexibility.
Getting Started
Fornax is installed as a global .NET Core tool on the command line with:
dotnet tool install fornax -g
We can then create a new folder for our new Fornax site, move into it, then:
fornax new
This will create a new Fornax site using the default blog template.
Now that we have a default Fornax site set up we can run fornax watch
which will spin up a little server that watches for changes to our project.
Let's take a look at the folder structure now that we have a working Fornax site.
- _lib
- Any external libraries we might like to use go in here and can be referenced from the script files.
- By default this contains:
- Fornax.Core.dll
- Markdig.dll
- _public
- This is where the final production built files are created after a build.
- loaders
- Contains all scripts that load data into the global context.
- generators
- Contains all scripts that generate files in _public based on the global context created by loaders.
- images
- Images used by our app
- js
- JS used by our app
- posts
- This is a domain specific folder used to hold blog posts written in markdown.
- style
- CSS used by the app
- config.fsx
- This script runs first, we use it to configure the behavior of our generators and add any additional data like secret keys or SQL connection strings.
Next time we'll take a look an in depth look at loaders and generators and what they can do.
Top comments (0)