Cabal安装的模块是否支持Haddock?

10
我正在使用GHC,并通过Cabal安装了多个软件包。其中一个软件包的网站上写着“去查看haddock文档”。似乎haddock命令只适用于源文件,而cabal haddock只适用于带有.cabal构建文件的项目顶级目录。是否有一种方法来表示“为我展示这个模块的haddock文档”?
我渴望实现pydoc -p 12345,它可以基于本地安装的Python文档启动HTTP服务器。
作为一种解决方法,我从~/.cabal中提取了源tarball,并在源目录中运行了cabal configure; cabal haddock,但这有点麻烦。
4个回答

18

编辑配置文件:

~/.cabal/config

有一个选项可以启用默认安装文档:

documentation: True

要安装现有软件包的文档,请使用以下命令:

cabal install xxx --reinstall

重新安装基本软件包的文档,然后再安装上层软件包,以便生成到其他模块的“超链接”。


8

--haddock标志对我无效。然而,将--haddock替换为--enable-documentation就可以实现:

cabal install $project --enable-documentation

现在,如果他们能够允许--hyperlink-source标志通过到达haddock,我会非常高兴。


3
这是一个已知问题。作为解决方法,您可以配置您的Apache安装(如果您有安装的话),使用这个小的PHP脚本来提供文档目录服务。

@Martijn:关于那个链接,hackage.haskell.org对你是否有效?从这里看,它似乎已经连续两天没有了反应,而http://downforeveryoneorjustme.com/hackage.haskell.org证实了这一点。 - yairchu
谢谢,你在那篇帖子中的笔记也让我改变了我的 .cabal/config 文件,使其默认生成文档。 - Harold L
Hackage现在应该已经恢复了。 :-) 是的,它曾经挂掉过一段时间。人们也在Haskell café中询问它的情况。 - Martijn

3

您应该能够使用以下命令生成本地文档:

cabal install $project --haddock

假设您已经安装了 Haddock。

1
谢谢 - 在其他答案中的hackage链接让我找到了相同的标志。然后我更新了我的.cabal/config文件,使其成为默认设置。现在(在OS X上),我可以说“open ~/.cabal/share/doc/$project-*/html/index.html”,文档就会在我的浏览器中弹出。我已经编写了一个bash函数来为项目名称执行此操作,或者如果index.html文件不存在,则打印错误消息。 - Harold L

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接