假设我有一个名为MyModule
的Haskell模块,它导入了一个外部模块,如下所示:
import ModuleA hiding (a, b, c)
而且我无法修改此导入语句,因为该程序不完全是我的。
我希望链接到ModuleA
文档中的ModuleA.external_function
,在上面的注释中一个名为my_function
的函数。所以代码看起来像这样:
-- | my_function makes use of 'ModuleA.external_function'
my_function :: Int -> Int
使用 haddock 2.10.0 并运行 cabal haddock
,指向 ModuleA.external_function
的链接生成为 dist/doc/html/MyModule/ModuleA.html#v:external_function
。但是,问题是dist/doc/html/MyModule/ModuleA.html
文件不存在。
如何生成指向ModuleA
文档的链接,例如module-A-package/docs/ModuleA.html#v:external_function
.换句话说,类似于 http://hackage.haskell.org/package/text-0.11.2.0/docs/Data-Text.html 链接到String
类型(它们链接到 http://hackage.haskell.org/package/base-4.5.0.0/docs/Data-String.html#t:String)?请记住,我无法修改import
语句。
谢谢。
要在 Haddock 文档中建立指向外部包的链接,您需要指示它在哪里可以找到这些包的文档。
这是通过使用 --read-interface
Haddock 命令行选项完成的。
使用您的示例,它将是:
haddock --read-interface module-A-package/docs/,module-A-package/docs/module-A-package.haddock
.haddock文件是在使用Haddock命令行选项为包模块A包生成文档时创建的----dump-interface
。
更多信息可以在 Haddock 文档或 HaskellWiki 页面上找到。