If you're ready to crack a bit, it's entirely possible to use your own index.html with an elm reactor . Just put the following in the index.html file and open it in the reactor (e.g. http: // localhost: 8000 / src / index.html ):
<html> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div style="width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #9A9A9A; font-family: 'Source Sans Pro';"> <div style="font-size: 3em;">Building your project!</div> <img src="/_reactor/waiting.gif"> <div style="font-size: 1em">With new projects, I need a bunch of extra time to download packages.</div> </div> </body> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.4/ace.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.4/theme-chrome.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.4/worker-lua.js"></script> <script type="text/javascript" src="/_compile/src/YourApp.elm"></script> <script type="text/javascript"> while (document.body.firstChild) { document.body.removeChild(document.body.firstChild); } runElmProgram(); </script> </html>
If you want to use ports or flags, use the following example (you need Elm.App.fullscreen(flags)
, etc. use ports, but runElmProgram()
to show errors):
<!doctype html> <meta charset=utf-8> <title>a title</title> <link href=/bundle.css rel=stylesheet> <body></body> <script src="/_compile/Main.elm"></script> <script src="/elm-bundle.js"></script> <script> var app var flags = {} try { app = Elm.App.fullscreen(flags) } catch (e) { </script>
source share