Skip to content

srid/ema-template

Repository files navigation

Ema Template

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/

Getting Started

To develop with full IDE support in Visual Studio Code, follow these steps:

  • Install Nix
  • 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.

Note

  • 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)
  • 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 of haskell-template)
  • Configuration:
  • To generate the site, run:
    nix build .#site
    # Alternatively:
    # > mkdir ../output 
    # > nix run . -- --base-url=/ gen ../output

Non-Nix workflow

To use this repository without Nix (such as with plain Cabal or Stack) you need to have the following installed manually:

Once all the above are installed and setup, run foreman start to start the Ema live server.