A statically typed site generator, written with pure Elm.
- elm-pages Docs Site
- elm-pages Elm API Docs
- Quick start repo (live site hosted here)
- Introducing
elm-pages
blog post examples
folder (includes https://elm-pages.com site source)
With elm-pages
, SEO is as easy
as calling a type-safe, high-level Elm API
and passing in data from your content's metadata.
The metadata is just Elm data that you define however you want, using a Json Decoder to grab data out of your markdown frontmatter.
import MyMetadata exposing (MyMetadata)
head : BlogMetadata -> List (Head.Tag Pages.PathKey)
head meta =
Seo.summaryLarge
{ canonicalUrlOverride = Nothing
, siteName = "elm-pages"
, image =
{ url = PagesNew.images.icon
, alt = meta.description
, dimensions = Nothing
, mimeType = Nothing
}
, description = meta.description
, locale = Nothing
, title = meta.title
}
|> Seo.article
{ tags = []
, section = Nothing
, publishedTime = Just (Date.toIsoString meta.published)
, modifiedTime = Nothing
, expirationTime = Nothing
}
elm-pages
has a set of features built-in to make
sure your page is blazing fast on any device.
- Automatic page pre-rendering
- Page content is split up per-page so page content downloads and parses just-in-time
- Page pre-fetching on link hover
Try out elm-pages
, open up Lighthouse, and
see for yourself! Or check out https://elm-pages.com
(find the source code in the examples/docs/
folder).
Take a look at the current projects to see the current priorities!
https://github.com/dillonkearns/elm-pages/projects
Thanks goes to these wonderful people (emoji key):
Daniel Marín 💻 |
Steven Vandevelde 💻 |
Johannes Maas 📓 💻 |
Wiktor Toporek 💻 |
Luke Westby 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!