假设我有一个名为Haskell模块的MyModule导入外部模块,如下所示:
import ModuleA hiding (a, b, c)
Run Code Online (Sandbox Code Playgroud)
我无法修改此import语句,因为该程序不完全是我的.
我希望链接到ModuleA.external_function文档中ModuleA,在上面的注释中调用一个函数my_function.所以代码看起来像这样:
-- | my_function makes use of 'ModuleA.external_function'
my_function :: Int -> Int
Run Code Online (Sandbox Code Playgroud)
使用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-interfaceHaddock 命令行选项来完成的。
使用您的示例,它将是:
haddock --read-interface module-A-package/docs/,module-A-package/docs/module-A-package.haddock
Run Code Online (Sandbox Code Playgroud)
.haddock文件是在使用Haddock 命令行选项为包 module-A-package 生成文档时创建的。----dump-interface
更多信息可以在Haddock 文档或HaskellWiki 页面上找到。