This repository contains the code powering the haskell-lang.org web site. This website is a community driven website for the Haskell programming language. Its primary motivators are:
- A destination that Haskellers can happily send non-Haskellers to in order to discover Haskell and get started with modern best practices
- A source of information for existing Haskellers to discover up-to-date information
- A collection of links to various online communities
- A hub for sharing and hosting documentation for all levels of Haskellers
This list is not meant to be exclusive. If there are other ideas people have for content on this website, feel free to raise it in the issue tracker, on Reddit, or on Twitter.
We're going to make a more straight-forward story for contributing
content changes that should simply involve editing markdown files
under static/markdown/
.
For each of the packages listed on
the packages page, we can have a
tutorial in the
static/markdown directory. The
naming is simple: for a package http-client
, for instance, the file
is
package-http-client.md
. Feel
free at any time to contribute pull requests to improve this content.
For tutorials not connected to a specific package, you can create a Markdown
file in the static/tutorial
directory.
If you would like to write a new tutorial, please follow this procedure to "claim" a tutorial and avoid multiple people working on the same content at once:
- Fork the project
- Create a new branch with a dummy Markdown file for the new content
- Open a pull request titled "Adding tutorial for package
foo
" - Add your content on your branch
- When you're done writing content, add a comment to the pull request indicating that it's ready for review
Before starting on new content, you should make sure that no pull request already exists for that topic.
Run these steps:
- Clone the repo:
$ git clone git@github.com:haskell-lang/haskell-lang.git
- Install dependencies and build:
$ stack build
If text-icu
fails to build, you'll want to install the icu dev
libraries (the appropriate include/lib directories are configured in
the stack.yaml
already):
- Mac OS X:
brew install icu4c
- Ubuntu/Debian:
$ sudo apt-get install libicu-dev
It runs at: http://localhost:1990/
- Manually running the binary:
$ stack exec haskell-lang
- Running from inside GHCi: Load
DevelMain
and runDevelMain.update
It uses Yesod and an MVC organization.
- HL.Model.* -- models
- HL.View.* -- views
- HL.Controller.* -- controllers
Templates are written in Lucid. There is presently no database.
In addition to builds on Travis CI, certain branches are automatically deployed to live websites:
Branch | Site |
---|---|
master |
ci.haskell-lang.org |
prod (protected) |
haskell-lang.org |