如何为所有包定制Haddock文档生成?

时间:2015-09-21 17:00:35

标签: haskell config haddock

我不清楚如何自定义

文档
cabal haddock

生成。例如,如何包含源链接,或使用自定义CSS文件以便它们适用于所有情况?

~/.cabal/config我试过了

haddock
  -- keep-temp-files: False
  -- hoogle: False
  -- html: False
  -- html-location:
  -- executables: False
  -- tests: False
  -- benchmarks: False
  -- all:
  -- internal: False
  css: /Users/Rax/Projects/Haskell/Package/mystuff.css
  hyperlink-source: True
  -- hscolour-css:
  -- contents-location:

但我不清楚这些设置的范围是什么。

如何为Haddock生成的所有文档自定义默认文档生成:我使用cabal haddock构建的包,我使用cabal install从Hackage安装的包,甚至我上传到Hackage的包cabal sdist

1 个答案:

答案 0 :(得分:0)

首先,~/.cabal/config中的设置是每个用户的默认设置。每当您致电cabal haddock时,更改都会生效。

由于haddock文档是为每个软件包静态构建的,因此您需要为安装的每个软件包重新运行cabal haddock命令,以更改其文档的外观。

您似乎还有些混淆:cabal sdist并未将任何内容上传到Hackage。这就是cabal upload的目的。

通常,您只是将裸包上载到Hackage,然后服务器自己构建文档,但是如果服务器无法构建它或由于其他原因,有一种方法可以上传自己构建的文档。我使用在http://hackage.haskell.org/upload找到的以下脚本进行了一些改动:

#!/bin/sh
set -e

dir=$(mktemp -d dist-docs.XXXXXX)
trap 'rm -rf "$dir"' EXIT

cabal haddock --builddir="$dir" --for-hackage --haddock-option=--hyperlinked-source
# Starting with cabal 2.0, `--publish` is needed for uploading to non-candidate releases
cabal upload -d $dir/*-docs.tar.gz --publish