A site engine for Go
A folder of markdown in. A finished website out.
Quire bakes your words, pictures and diagrams into one binary and serves them. It looks good by default, and every layer of it can be replaced.
go get github.com/lahickey/quireOne binary
Words, pictures and diagrams are baked into the site's own binary. It serves from any directory and carries none of the tooling that made it.
PicturesImages, end to end
Refer to a picture beside a document and get a responsive ladder in WebP, sized for where it is placed.
DiagramsMermaid, drawn once
A mermaid fence is drawn by the bake and inlined as SVG, so it takes the site's palette and fonts.
The lookGood by default
Palette, fonts, a light and dark toggle, navigation and a sitemap, with no templates or CSS of your own.
WiringEvery layer replaceable
Swap the palette, a stylesheet, a component, a page or the whole header. Dropping one layer is not a rewrite.
PluginsLive when it needs to be
Pages are server-rendered HTML from templ. Live features are plugins that stream through Datastar.
This is a whole site
Home page, post index, post pages, navigation, a colour-scheme toggle, sitemap and robots.txt. Add markdown to content/posts and run it.
package main
import (
"github.com/lahickey/quire"
"github.com/lahickey/quire/model"
)
func main() {
quire.Run(
model.Site{Name: "Example", BaseURL: "https://example.com"},
func(e *quire.Engine) error {
_, err := e.AddCollection(model.Basic{ID: "posts"})
return err
})
}