The haddock package

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

Warnings:

Haddock is a documentation-generation tool for Haskell libraries


[Skip to ReadMe]

Properties

Versions0.8, 0.9, 2.0.0.0, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.4.0, 2.4.1, 2.4.2, 2.5.0, 2.6.0, 2.6.1, 2.7.0, 2.7.1, 2.7.2, 2.8.0, 2.8.1, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4, 2.10.0, 2.11.0, 2.11.1, 2.12.0, 2.13.0, 2.13.1, 2.13.2, 2.13.2.1, 2.14.1, 2.14.2, 2.14.3, 2.15.0, 2.15.0.1, 2.15.0.2, 2.16.0, 2.16.1, 2.17.2, 2.17.4, 2.17.4
Change logCHANGES
Dependenciesbase (==4.9.*), haddock-api (==2.17.4) [details]
LicenseBSD3
Copyright(c) Simon Marlow, David Waern
AuthorSimon Marlow, David Waern
MaintainerAlex Biehl <alexbiehl@gmail.com>, Simon Hengel <sol@typeful.net>, Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>
CategoryDocumentation
Home pagehttp://www.haskell.org/haddock/
Bug trackerhttps://github.com/haskell/haddock/issues
Source repositoryhead: git clone https://github.com/haskell/haddock.git
Executableshaddock
UploadedWed Apr 12 14:34:03 UTC 2017 by alexbiehl

Flags

NameDescriptionDefaultType
in-ghc-treeAre we in a GHC tree?DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for haddock-2.17.4

Haddock, a Haskell Documentation Tool

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.

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

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 format.

Contributing

Please create issues when you have any problems and pull requests if you have some code.

Hacking

To get started you'll need a latest GHC release installed.

Clone the repository:

  git clone https://github.com/haskell/haddock.git
  cd haddock

and then proceed using your favourite build tool.

Using Cabal sandboxes
cabal sandbox init
cabal sandbox add-source haddock-library
cabal sandbox add-source haddock-api
cabal sandbox add-source haddock-test
# adjust -j to the number of cores you want to use
cabal install -j4 --dependencies-only --enable-tests
cabal configure --enable-tests
cabal build -j4
# run the test suite
export HADDOCK_PATH="dist/build/haddock/haddock"
cabal test
Using Stack
stack init
stack install
# run the test suite
export HADDOCK_PATH="$HOME/.local/bin/haddock"
stack test

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. See instructions at https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules for an example workflow.