Skip to content

fpindia/fpindia-site

Repository files navigation

FPIndia Site

Ema static site for https://functionalprogramming.in/

Install Nix and then run bin/run to get the site up and running locally. See further below for static site generation.

Getting Started

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

  • Install Nix
  • Run nix develop -c haskell-language-server to sanity check your environment
  • Open the repository as single-folder workspace in Visual Studio Code
    • Install the recommended extensions
    • Ctrl+Shift+P to run the command "Nix-Env: Select Environment" and select shell.nix. The extension will ask you to reload VSCode at the end.
  • Press Ctrl+Shift+B in VSCode, or run bin/run in terminal, to launch the Ema dev server, and navigate to http://localhost:8081/

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 ./Procfile)
  • Configuration:
    • To change the port (or the Ema CLI arguments, used by bin/run), see ./.ghcid (if you leave out --port a random port will be used)
    • To update Ema to the latest Git revision, run nix flake lock --update-input ema or just nix flake update (the latter updates all Nix inputs)
    • To add/remove Haskell dependencies, see https://zero-to-flakes.com/haskell-flake/dependency/
  • To generate the site, run:
    mkdir /tmp/site
    nix run . -- gen /tmp/site
    • You might want to change or remove the <base> tag in Main.hs depending on where you will be deploying the site.

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, run foreman start to start the Ema live server.