hl/README.md

86 lines
1.7 KiB
Markdown
Raw Normal View History

2014-03-01 18:51:02 +00:00
haskell-lang
=====
Haskell web site.
2014-05-27 15:53:23 +00:00
2014-05-27 15:59:14 +00:00
## Building
2014-05-27 15:53:23 +00:00
Clone the repo:
$ git clone git@github.com:chrisdone/hl.git
2014-05-27 16:10:52 +00:00
You need this GHC version:
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.2
2014-05-27 16:09:29 +00:00
Create an [hsenv](http://hackage.haskell.org/package/hsenv):
2014-05-27 15:53:23 +00:00
$ cd hl
$ hsenv
$ source .hsenv/bin/activate
Get the right packakge set:
Add the following to your `.hsenv/cabal/config`, replacing the Hackage reference:
2014-05-27 15:59:35 +00:00
remote-repo: stackage:http://www.stackage.org/stackage/1ba546f8f281c02d135ec3babd86516f726b4453
2014-05-27 15:53:23 +00:00
Update with Stackage packages and grab submodules:
$ cabal update
$ git submodule init
$ git submodule update
Install project:
$ cabal install . submodules/senza
2014-05-27 16:04:35 +00:00
**OR** just run:
$ sh scripts/pull-build
To do the above cabal update, submodule, install, etc.
2014-05-27 15:53:23 +00:00
Done!
## Running
It runs at: http://localhost:1990/
Manually running the binary:
$ dist/build/hl/hl
Running from inside GHCi:
> :l DevelMain
> DevelMain.update
Run this every time you want to restart.
If you use Emacs, you can just bind it to a key:
``` lisp
(define-key html-mode-map [f12] 'haskell-process-reload-devel-main))
```
Just hit f12 to recompile and restart.
2014-05-27 15:56:16 +00:00
## Architecture
It uses Yesod and an MVC organization.
* HL.M.* -- [models](https://github.com/chrisdone/hl/tree/master/src/HL/M)
* HL.V.* -- [views](https://github.com/chrisdone/hl/tree/master/src/HL/V)
* HL.C.* -- [controllers](https://github.com/chrisdone/hl/tree/master/src/HL/C)
Templates are written in [senza](https://github.com/chrisdone/senza),
a convenience wrapper to blaze-html. There is presently no database.
2014-05-27 15:59:14 +00:00
## Style
I use [this style](https://github.com/chrisdone/haskell-style-guide)
for code.