diff options
author | alexbiehl <alex.biehl@gmail.com> | 2017-08-21 20:05:42 +0200 |
---|---|---|
committer | alexbiehl <alex.biehl@gmail.com> | 2017-08-21 20:05:42 +0200 |
commit | 7a71af839bd71992a36d97650004c73bf11fa436 (patch) | |
tree | e64afbc9df5c97fde6ac6433e42f28df8a4acf49 /README.md | |
parent | c8a01b83be52e45d3890db173ffe7b09ccd4f351 (diff) | |
parent | 740458ac4d2acf197f2ef8dc94a66f9b160b9c3c (diff) |
Merge remote-tracking branch 'origin/master' into ghc-head
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 66 |
1 files changed, 24 insertions, 42 deletions
@@ -1,52 +1,21 @@ -# Haddock, a Haskell Documentation Tool +# Haddock, a Haskell Documentation Tool [![Build Status](https://travis-ci.org/haskell/haddock.svg?branch=master)](https://travis-ci.org/haskell/haddock) -#### About haddock +## About haddock -This is Haddock, a tool for automatically generating documentation -from annotated Haskell source code. It is primary intended for -documenting library interfaces, but it should be useful for any kind -of Haskell code. +See [Description on Hackage](https://hackage.haskell.org/package/haddock). -Haddock lets you write documentation annotations next to the -definitions of functions and types in the source code, in a syntax -that is easy on the eye when writing the source code (no heavyweight -mark-up). The documentation generated by Haddock is fully hyperlinked -- click on a type name in a type signature to go straight to the -definition, and documentation, for that type. +## Source code documentation -Haddock understands Haskell's module system, so you can structure your -code however you like without worrying that internal structure will be -exposed in the generated documentation. For example, it is common to -implement a library in several modules, but define the external API by -having a single module which re-exports parts of these implementation -modules. Using Haddock, you can still write documentation annotations -next to the actual definitions of the functions and types in the -library, but the documentation annotations from the implementation -will be propagated to the external API when the documentation is -generated. Abstract types and classes are handled correctly. In -fact, even without any documentation annotations, Haddock can generate -useful documentation from your source code. - - -#### Documentation formats - -Haddock can generate documentation in multiple formats; currently HTML -is implemented, and there is partial support for generating LaTeX and -Hoogle. - - -#### Source code documentation - -Full documentation can be found in the doc/ subdirectory, in DocBook +Full documentation can be found in the `doc/` subdirectory, in +[reStructedText format](http://www.sphinx-doc.org/en/stable/rest.html) format. - -#### Contributing +## Contributing Please create issues when you have any problems and pull requests if you have some code. -##### Hacking +## Hacking To get started you'll need a latest GHC release installed. @@ -59,7 +28,15 @@ Clone the repository: and then proceed using your favourite build tool. -###### Using Cabal sandboxes +#### Using [`cabal new-build`](http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html) + +```bash +cabal new-build -w ghc-8.2.1 +# build & run the test suite +cabal new-test -w ghc-8.2.1 +``` + +#### Using Cabal sandboxes ```bash cabal sandbox init @@ -75,7 +52,7 @@ export HADDOCK_PATH="dist/build/haddock/haddock" cabal test ``` -###### Using Stack +#### Using Stack ```bash stack init @@ -85,9 +62,14 @@ export HADDOCK_PATH="$HOME/.local/bin/haddock" stack test ``` +### Git Branches If you're a GHC developer and want to update Haddock to work with your -changes, you should be working on `ghc-head` branch instead of master. +changes, you should be working on `ghc-head` branch instead of `master`. See instructions at https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules for an example workflow. + +The `master` branch usually requires a GHC from the latest GHC stable +branch. The required GHC version can be inferred from the version +bounds on `ghc` in the respective `.cabal` files. |