--- title: Kiln --- [Kiln](https://git.sr.ht/~adnano/kiln) is a simple static site generator aimed at Gemini use foremost, but it can be configured to support HTML and potentially Gopher. It supports using external tools as pre/post processors, allowing you to manipulate any file format int something it can use. ## Documentation [Kiln Man Page](https://git.sr.ht/~adnano/kiln/tree/master/item/docs/kiln.1.scd) [Introduction](https://kiln.adnano.co) [kiln-discuss mailing list](https://lists.sr.ht/~adnano/kiln-discuss) ## Iterating Subfolders on Templates Not described too much in the documentation, but you can use the `.Dirs` value passed to index templates to iterate down into the folders and list pages within the folders. ``` {{ range .Dirs }}## {{.Title }} {{ range .Pages }}=> {{ .Permalink }} {{ if not .Date.IsZero -}} {{.Date.Format "2006-01-02"}} {{end}}{{.Title}} {{ end }} {{ end -}} ``` Produces ``` ## Logs => /~nikdoof/logs/2021/06/29/first-post/ 2021-06-29 First Post ## Notes => /~nikdoof/notes/kiln/ Kiln ``` Calls to `.Title` require a `_index.md` to exist with `title` in the frontmatter, otherwise you'll hit an error. ## Handling Markdown Adding `preprocess.md` value to your tasks and adding `.md` to the input formats allows you to use Markdown files for generating out Gemini. ``` [[tasks]] input = [".gmi", ".md"] output = ".gmi" template = ".gmi" static_dir = "static" output_dir = "public" preprocess.md = "md2gmn" ```