I gave Cabal a --haddock-arg flag (use one per haddock argument), so now I can have a make rule like:
haddock: config
./setup haddock
--haddock-arg="--source-base=http://darcs.haskell.org/packages/TV"
--haddock-arg='--source-module=src/%{MODULE/.//}.html'
--haddock-arg='--source-entity=src/%{MODULE/.//}.html#%{NAME}'
Works fine so far. I'd like feedback on the interface before darcs-sending the patch.
I started with a --haddock-args flag to hold any number of haddock options, but the arguments then got passed as a single argument to haddock, which then couldn't make sense of them. So instead, you use one --haddock-arg flag per haddock flag.
I'd also like some suggestions on the following:
For syntax coloring and anchoring, I use this rule, gleaned Malcolm's hscolour page (http://www.cs.york.ac.uk/fp/darcs/hscolour
):
hscolour:
for file in $(sources); \
do HsColour -anchorHTML $$file >$(doc)/`dirname $$file`/`basename $$file .hs`.html; \
done
It's a pain, though, as I have to make sure the required directories are all present. For that purpose, I have this rule:
# Make the doc directories we need.
colorPrep:
if [ ! -d $(doc)/src/Graphics/UI/TV ]; then mkdir $(doc)/src{,/Graphics{,/UI{,/TV}}}; fi
And I have to remember to do "make colorPrep" before "make hscolour".
Not very convenient especially if my package's module hierarchy branches.
Comments?
- Conal
On 1/7/07, Duncan Coutts <duncan.coutts@worc.ox.ac.uk> wrote:
On Sun, 2007-01-07 at 10:42 -0800, Conal Elliott wrote:
> I want Cabal to pass the source-module and source-entity flags to
> haddock. I can probably figure out how to add these flags into the
> Cabal source (following the example of --hoogle), but I wonder if
> there's a better way. Any suggestions?
runhaskell
Setup.hs configure --haddock-args="--source-module=..."
> If source mod, is there a process for me to follow? To whom would I
> send the patch?
If you use 'darcs send' to send in your patch then it should just work,
the address has already been set. If darcs send doesn't work for you (eg
if you've not got local mail working) then you can email it to the
cabal-devel@haskell.org
mailing list.
Duncan