A statically typed site generator for Elm.
Go to file
2022-09-21 09:11:36 -07:00
.github/workflows Fix command. 2022-09-14 14:53:10 -07:00
codegen Update codegen branch and add more code for generating update function. 2022-09-21 09:11:36 -07:00
cypress Fix bug that causes extra navigation for form POSTs. 2022-08-09 08:44:12 -07:00
docs Start upgrade notes document. 2022-03-25 09:03:30 -07:00
examples Add withType helper for temporary incorrect type in codegen. 2022-09-15 07:56:59 -07:00
generator Print better message on error. 2022-09-20 13:22:40 -07:00
plugins Review fixes. 2022-08-25 11:57:33 -07:00
review Update elm-review dependencies. 2022-08-22 07:40:20 -07:00
src Wire up elm-codegen init function. 2022-09-19 18:58:47 -07:00
tests Handle endings in toModuleName. 2022-09-15 10:39:22 -07:00
.all-contributorsrc docs: update .all-contributorsrc [skip ci] 2020-07-19 18:23:51 +00:00
.gitignore Add boilerplate for elm-codegen. 2022-09-12 10:16:00 -07:00
.gitmodules Add git submodule for vendoring elm-codegen. 2022-09-20 13:18:02 -07:00
.nvmrc Use newer node version. 2022-01-20 19:20:15 -08:00
.prettierrc Add prettier config. 2021-07-10 07:53:14 -07:00
CHANGELOG-ELM.md Update changelog. 2021-08-03 13:39:00 -07:00
CHANGELOG-NPM.md Update changelog. 2021-08-27 11:52:11 -07:00
CONTRIBUTING.md Add webpack performance profiling instructions 2020-08-18 14:41:26 -07:00
cypress.config.ts Migrate to latest cypress. 2022-08-09 06:32:47 -07:00
docs.json Update docs. 2022-09-15 08:10:01 -07:00
elm-tooling.json Update elm-test and elm-test-rs, and remove redundant describe in test. 2022-06-30 11:42:49 -07:00
elm.json Address review error. 2022-09-15 07:43:46 -07:00
jsconfig.json Set up proof of concept for webpack-free build. 2020-10-10 18:07:36 -07:00
LICENSE Add LICENSE file. 2019-09-20 13:58:20 -07:00
netlify.toml Install elm-format before running build. 2022-02-13 14:56:41 -08:00
package-lock.json Add boilerplate for elm-codegen. 2022-09-12 10:16:00 -07:00
package.json Run elm-codegen install in prepare script. 2022-09-14 14:44:51 -07:00
README.md Update readme. 2021-07-30 14:47:24 -07:00
test.sh Fix build cache corruption ordering issue 2022-08-21 09:27:04 +01:00

elm-pages Netlify Status Build Status npm Elm package

All Contributors

Deploy to Netlify

A statically typed site generator, written with pure Elm.

Getting Started Resources

Key features

SEO made easy

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
      }

Optimized for performance

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).

What's next?

Take a look at the current projects to see the current priorities!

https://github.com/dillonkearns/elm-pages/projects

Contributors

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!