Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/eeue56/elm-static-html

Statically render html from Elm!
https://github.com/eeue56/elm-static-html

Last synced: about 1 month ago
JSON representation

Statically render html from Elm!

Awesome Lists containing this project

README

        

# elm-static-html

Turn an Elm app into a static HTML site.

Your modules must look like this:

```elm
module Main exposing (..)

import Html
import Html.Attributes exposing (class, href)

view : Html.Html msg
view =
Html.div []
[ Html.h1 [ class "hello" ] [ Html.text "new!" ]
, Html.a [ href "/login" ] [ Html.text "Login" ]
, Html.text "hello"
]

```

then you can use

```bash

elm-static-html --filename Main.elm --output index.html

```

which will produce

```html


new!


Loginhello

```

## Flags

`elm-static-html -f Main.elm` will print the output to stdout by default
You can create an initial config file through `elm-static-html --init-config`, though it's not needed to work.

You can use the config file to generate multiple files through `elm-static-html -c elm-static-html.json`.
The config file looks like this:

```js
{
"files": {
"": {
"output": "",
"viewFunction": "view"
},
"",
"viewFunction": "someViewFunc"
}
/* ... */
}
}
```

To generate multiple output files from a single elm file, supply an array of outputFile/viewFunction pairs:

```js
{
"files": {
"": [{
"output": "",
"viewFunction": "view"
}, {
"output": "",
"viewFunction": "anotherView"
}]
}
}
```

## Notes

An .elm-static-html folder is created in order to generate the correct HTML and JS needed. You can delete it if you want, but it'll make builds a little slower.