A very simple example Ema site that is based on Blaze HTML & TailwindCSS 3. Use it to bootstrap your next static site using Ema.
The generated HTML site can be previewed here: https://srid.github.io/ema-template/
To develop with full IDE support in Visual Studio Code, follow these steps:
- Install Nix
- And setup direnv
- Run
nix develop -i -c haskell-language-server
to sanity check your environment - Open the repository as single-folder workspace in Visual Studio Code
- Install the recommended extensions
- Active the direnv environment
- Press Ctrl+Shift+B in VSCode, or run
nix develop -c just run
in terminal (just run
if direnv is already active), to launch the Ema dev server, and navigate to http://localhost:9001/
All but the final step need to be done only once. Check the Ema tutorial next.
- This project uses relude as its prelude, as well as Tailwind+Blaze as CSS utility and HTML DSL. Even though the author highly recommends them, you are of course free to swap them out for the library of your choice.
- Tailwind CSS is compiled, alongside Ghcid, via foreman (see
flake.nix
)
- Tailwind CSS is compiled, alongside Ghcid, via foreman (see
- As a first step to using this template, rename your project using https://srid.ca/haskell-template/start#rename-the-project (use
ema-template
in place ofhaskell-template
) - Configuration:
- To change the port (or the Ema CLI arguments, used by
nix develop -c just run
), see./.ghcid
(if you leave out--port
a random port will be used) - To add/remove Haskell dependencies, see https://community.flake.parts/haskell-flake/dependency
- To change the port (or the Ema CLI arguments, used by
- To generate the site, run:
nix build .#site # Alternatively: # > mkdir ../output # > nix run . -- --base-url=/ gen ../output
To use this repository without Nix (such as with plain Cabal or Stack) you need to have the following installed manually:
- ghcid
- tailwind runner along with tailwind CLI
- foreman (or one of its rewrites)
- Add a
Procfile
; see flake.nix to determine what should go in itsProcfile
Once all the above are installed and setup, run foreman start
to start the Ema live server.