haskell / cabal

Official upstream development repository for Cabal and cabal-install
https://haskell.org/cabal
Other
1.62k stars 691 forks source link

Separate haddock doc URI from documentation path #2028

Open DaveCTurner opened 10 years ago

DaveCTurner commented 10 years ago

Hi,

I'd like to be able to expose haddock documentation over HTTP so that, for instance, I can develop on one machine and browse the docs for the library I'm working on from another, or so that we can keep a copy of the docs for a particular build.

This almost works already, except that the haddock-html field in the package database always points to the filesystem path at which the docs are installed (as set by --htmldir), which means that cross-refs between packages don't work when visited over HTTP.

Would it be reasonable to add another setting that allows the haddock-html field to be set to something other than a filesystem path? I can attempt the changes myself if you think this is a good idea to try.

Many thanks,

David

DaveCTurner commented 10 years ago

A very rough guess for the necessary changes is at https://github.com/DaveCTurner/cabal/commit/f6b16d98dcba071874f658d5cb1447748d0b6aa9

23Skidoo commented 10 years ago

Instead of adding a new setting, can't we change the cross-references to be always relative?

DaveCTurner commented 10 years ago

The trouble is: relative to what?

I've been using the timezone-series and timezone-olson packages to try out various ideas as they install quickly and there are good cross-links between their haddocks.

I tried installing timezone-series and then manually changed its haddock-html property to ../../timezone-series-0.1.3/html before installing timezone-olson. This did indeed make all the relevant cross-links work in the timezone-olson documentation, but the links in the haddock index file (a few levels up the tree) don't work. I can't immediately see a way to get both of those to work at the same time.