Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 2.1 KB

README.md

File metadata and controls

44 lines (32 loc) · 2.1 KB

The interactive Dhall example from https://dhall-lang.org uses GHCJS to add dhall-haskell functionality to a webpage. Because it registers Haskell functions as callbacks directly, the functions aren't neatly exposed to the JS environment, making it difficult to build more logic and interactivity to writing Dhall in a browser.

I Frankensteined the original code with this example of calling Haskell functions from JS https://github.com/dc25/ghcjsCallback and so far:

  • js_getHello will compile a Dhall expression JSON
  • parsableDhall will return true if the input string is valid Dhall.

TODO:

Also it doesn't build unless it's re-inserted as a subdirectory of dhall-haskell :D

For installation or development instructions, see:

How to contribute

You will most likely want to edit index.html if you want to improve the site. The vast majority of the site logic is embedded within that monolithic document, including a substantial amount of inline JavaScript, inline CSS, and all of the code examples.

The src directory contains the code for interpreting the live code demo, powered by the dhall/dhall-json packages compiled to JavaScript using GHCJS. You only need to modify that Haskell source code if you would like to extend the site with new Haskell-derived functionality.

The website.nix file contains the top-level logic for building the site, including bundling of JavaScript/CSS/image assets. You will also want to refer to shared.nix for related logic to build each bundled dependency.