Skip to content
This repository has been archived by the owner on Apr 28, 2023. It is now read-only.

CancerAidDev/elm-pages

 
 

Repository files navigation

elm-pages Netlify Status Build Status npm Elm package

All Contributors

Deploy to Netlify

A statically typed site generator, written with pure Elm.

Why a fork?

We want to add in the metaRedirect function:

metaRedirect : AttributeValue -> Tag
metaRedirect content =
    node "meta"
        [ ( "http-equiv", Raw "refresh" )
        , ( "content", content )
        ]

The work being done to create this fork is:

  1. We are starting at 46853ca6176071f01061366e5e1fbaf78a65aeb4, which is tagged as v2.1.9.
  2. We need to remove all of the tags on both remote and local:

git tag -l | xargs -n 1 git push --delete origin git tag | xargs git tag -d

3. The published versions are: https://package.elm-lang.org/packages/canceraiddev/elm-pages/
4. Checkout commit `46853ca6176071f01061366e5e1fbaf78a65aeb4`, on the `dev` branch.
5. We need to update the following files:
1. DONE `src/Head.elm` Add in the new function, and associated documentation
2. DONE `package.json` Update the version to 1.2.1-fork
3. DONE `elm.json` Update version to 1.2.1.
6. Test compile with `elm-make`
7. Make new commit


## Getting Started Resources

- [elm-pages Docs Site](https://elm-pages.com/docs)
- [elm-pages Elm API Docs](https://package.elm-lang.org/packages/dillonkearns/elm-pages/latest/)
- [Quick start repo](https://github.com/dillonkearns/elm-pages-starter) [(live site hosted here)](https://elm-pages-starter.netlify.com)
- [Introducing `elm-pages` blog post](https://elm-pages.com/blog/introducing-elm-pages)
- [`examples` folder](https://github.com/dillonkearns/elm-pages/blob/master/examples/) (includes https://elm-pages.com site source)

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

```elm
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!

About

A statically typed site generator for Elm.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elm 81.0%
  • JavaScript 19.0%