[Haskell-cafe] Multi-site haddock documentation with proper links?

Ryan Newton rrnewton at gmail.com
Wed Apr 25 15:05:51 CEST 2012


One more update:

"cabal haddock" exposes a --html-location flag which is useful:


http://www.haskell.org/cabal/users-guide/installing-packages.html#setup-haddock

Another way of invoking haddock is through "cabal install".  It looks like
"cabal install --enable-documentation" and "cabal install --haddock" are
not documented here, but they work:


http://www.haskell.org/cabal/users-guide/installing-packages.html#paths-in-the-simple-build-system

With cabal 0.14.0 and haddock 2.10.0, they work even when installing
multiple packages at once using trailing slashes ("cabal install foo/ bar/
baz/").

We can then achieve the effect of "haddock --html-location=URL" with
the --haddock-html-location=URL flag to "cabal install".  (There is also an
"--htmldir" flag available but its effect is somewhat confusing.  As far as
I can tell it seems to affect where the ".haddock" files are put, not where
the .html in installed or where the links point to. )

So that's it.  The result is that it's easy to build ONE package's
documentation and host it on a different server but with all links to other
modules pointing to hackage.  Regarding the original goal it looks like a
"sed" style hack will still be required to allow a set of sibling packages
to point to one another.

  -Ryan

On Tue, Apr 24, 2012 at 8:51 PM, Ryan Newton <rrnewton at gmail.com> wrote:

> This is sort of related to ticket #130:
>
>    http://trac.haskell.org/haddock/ticket/130
>
> And this one seems to hint at a solution to the problem in the more
> extensive syntax for --read-interface.
>
>   http://hackage.haskell.org/trac/ghc/ticket/3810
>
> (My local haddock-2.10.0 --help doesn't mention this.  But I'll give it a
> whirl.)
>
>
>
> On Tue, Apr 24, 2012 at 8:34 PM, Ryan Newton <rrnewton at gmail.com> wrote:
>
>> Hello cafe,
>>
>> For various reasons, some packages don't build documentation on hackage:
>>
>>    http://hackage.haskell.org/package/accelerate
>>
>> Therefore I want to locally install documentation for a set of packages
>> like this and host them on a separate website.  I want all of these ~ten
>> packages' haddock documentation to be properly interlinked with eachother,
>> but also to link to Hackage for types and classes defined in other modules.
>>
>> Is this possible?  Hackage haddocks are all interlinked, but that is
>> simply because hackage is one giant local install, right?
>>
>> If it's not possible (and it seems not) do any haddock devs have pointers
>> on how to implement this?
>>
>> Thanks,
>>   -Ryan
>>
>> P.S.  Someone recommended to me the following simple hack -- just use sed
>> to rewrite the links after haddock generates the html.  I think I'll do
>> that for the time being unless someone has a better suggestion.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120425/3d20fb4c/attachment.htm>


More information about the Haskell-Cafe mailing list