【问题标题】:How to instruct haddock to link to hackage documentation for hackage packages?如何指示黑线鳕链接到 hackage 包的 hackage 文档?
【发布时间】:2019-09-13 01:41:39
【问题描述】:

所以,我正在使用 haddock(通过 cabal)为我的本地 Haskell 包生成文档。它可以轻松地将自己的本地 html 文档相互超链接。但是,每当我的包引用另一个包中的符号时,它都不会创建链接。

我的大部分外部依赖项都有关于 Hackage 的黑线鳕文档。有没有办法设置黑线鳕,让它可以找到 Hackage 的文档和超链接?

【问题讨论】:

  • 如果您使用文档在本地安装包(请参阅--enable-documentation. for cabal),您的本地文档将链接到其他外部包的本地文档。关于 Hackage:当您将包上传到 Hackage 时,将自动创建链接到 Hackage 上其他包的文档。但是,无法链接您的本地软件包 Hackage 文档。
  • @Alec 我在为依赖项构建文档时遇到了问题。我可以从 hackage 下载而不是自己构建吗?
  • 不幸的是,我认为你不能。不过,这似乎是一个潜在的简洁功能,所以我打开了一个功能请求:github.com/haskell/haddock/issues/1086
  • @Alec 好的。还有,谢谢!我正在考虑自己这样做,但只是想确保它不在其中。
  • @Alec 这个阴谋集团的命令似乎说它可以与黑线鳕一起工作,但我无法让它工作:cabal.readthedocs.io/en/latest/…

标签: haskell documentation haddock hackage cabal-new


【解决方案1】:

我经常这样做,

cabal v2-haddock --haddock-html-location='https://hackage.haskell.org/package/$pkg-$version/docs' --haddock-hyperlink-source --haddock-quickjump

这种方法对我来说唯一的问题是,它可能会链接到 Hackage 上尚不可用的最新包。 例如,当我在 ghc-8.8 上运行它时,它会链接到尚未在 Hackage 上发布的 base-4.13。

【讨论】:

  • 当我这样做时,它告诉我它找不到每个外部定义的链接目标,并且不生成超链接。有什么猜测吗?
  • @dfeuer 我已经有一段时间没有这样做了,但我相信您仍然需要为所有依赖项构建文档。因此,要么将ghc-options: -haddock 添加到~/.cabal/config 文件的program-default-options 部分,要么为cabal.project 中的所有包(package *)添加documentation: True
  • 谢谢。这些是外部依赖项,所以不是我项目的一部分。这是否意味着我必须对包数据库进行核对并为everything 构建文档?或者下载所有这些包的源代码并暂时将它们作为我项目的一部分?
  • 你可能不需要删除任何东西,只需要在你的 cabal.project 中添加 ``` package * documentation: True ``` 就足够了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多