Haskell web site.
If you're just here to contribute a content change, read this section.
All pages that are produced by markdown are here. To contribute changes simply fork this repo and open a pull request. It will be merged and redeployed in short order.
If you want to edit a page which has some custom code in it, you'll want to see the next sections for building and running instructions. Maybe also take a look at architecture.
If you want to include Haskell code samples in markdown, use:
``` haskell main = putStrLn "Hello, World!" ```
If you want to include Haskell code samples in Haskell code pages, use:
haskellPre "main = print 123" haskellCode "peyton `simon` jones"
<pre> block, code for
<code> span snippet.
Clone the repo:
$ git clone email@example.com:chrisdone/hl.git
You need one of these GHC versions:
- GHC 7.6
- GHC 7.8
Create an hsenv:
$ cd hl $ hsenv $ source .hsenv/bin/activate
You need the right package set. Add the following to your
.hsenv/cabal/config, replacing the Hackage reference:
If you have GHC 7.6:
If you have GHC 7.8:
Now just run:
$ sh scripts/pull-build
To do the above cabal update, submodule, install, etc.
It runs at: http://localhost:1990/
Manually running the binary:
Running from inside GHCi:
> :l DevelMain > DevelMain.update
Run this every time you want to update the web handler in-place, as in this demo.
If you use Emacs, you can just bind it to a key:
(define-key html-mode-map [f12] 'haskell-process-reload-devel-main)
Just hit f12 to recompile and restart.
It uses Yesod and an MVC organization.
Templates are written in senza, a convenience wrapper to blaze-html. There is presently no database.
I use this style for code. You don't have to use this style, I can reformat patches as they come in.