使用 Haddock 和堆栈为我自己的代码生成文档
Generating documentation for my own code with Haddock and stack
我已经用 Haddock 风格注释了我的代码,并希望生成可浏览的文档。由于我也在使用stack,所以我想将文档生成集成到工作流程中。但是,我还没有能够生成任何有用的东西。
我可以运行
stack haddock
它会生成我想要的样式的文档(可以在 ~/.stack/
的深处找到),但它似乎只为我依赖的包生成文档,而不是为我自己的代码生成文档。
当我运行
stack haddock --help
我的印象是我可以使用附加参数 --haddock
为我自己的项目生成文档,并使用 --no-haddock-deps
省略我的依赖项的文档。然而,当我 运行
stack haddock --haddock --no-haddock-deps
似乎什么都没发生。如果我先 stack clean
它会重新编译我所有的代码,但不会生成似乎与文档有任何关联的输出。
作为一种中间解决方案,我还单独尝试了 运行ning 黑线鳕,即
haddock my-source.hs
但随后我得到一个错误,它找不到文件所依赖的模块(由堆栈在本地安装)。这给我的印象是文档生成必须以某种方式通过堆栈。我一直在寻找,但没有真正找到任何与配置我的 .cabal
和 stack.yaml
文件以供文档相关的解释。
TL;DR
如何使用 stack 和 Haddock 为我自己的包中的代码生成文档?
根据堆栈问题跟踪器上的 this ticket,Stack 目前只能为库构建文档,但不能为可执行文件构建文档。
可以使用以下命令将 Cabal 配置为使用堆栈数据库:
cabal configure --package-db=clear --package-db=global --package-db=$(stack path --snapshot-pkg-db) --package-db=$(stack path --local-pkg-db)
之后您可以 运行 cabal haddock --executables
生成文档。
对了,stack haddock
只是stack build --haddock
的简写,所以没必要写stack haddock --haddock
.
以下解决方案仅在指定单个文件时有效:
stack exec -- haddock --html src/Example.hs src/Main.hs --hyperlinked-source --odir=dist/docs
我已经用 Haddock 风格注释了我的代码,并希望生成可浏览的文档。由于我也在使用stack,所以我想将文档生成集成到工作流程中。但是,我还没有能够生成任何有用的东西。
我可以运行
stack haddock
它会生成我想要的样式的文档(可以在 ~/.stack/
的深处找到),但它似乎只为我依赖的包生成文档,而不是为我自己的代码生成文档。
当我运行
stack haddock --help
我的印象是我可以使用附加参数 --haddock
为我自己的项目生成文档,并使用 --no-haddock-deps
省略我的依赖项的文档。然而,当我 运行
stack haddock --haddock --no-haddock-deps
似乎什么都没发生。如果我先 stack clean
它会重新编译我所有的代码,但不会生成似乎与文档有任何关联的输出。
作为一种中间解决方案,我还单独尝试了 运行ning 黑线鳕,即
haddock my-source.hs
但随后我得到一个错误,它找不到文件所依赖的模块(由堆栈在本地安装)。这给我的印象是文档生成必须以某种方式通过堆栈。我一直在寻找,但没有真正找到任何与配置我的 .cabal
和 stack.yaml
文件以供文档相关的解释。
TL;DR
如何使用 stack 和 Haddock 为我自己的包中的代码生成文档?
根据堆栈问题跟踪器上的 this ticket,Stack 目前只能为库构建文档,但不能为可执行文件构建文档。
可以使用以下命令将 Cabal 配置为使用堆栈数据库:
cabal configure --package-db=clear --package-db=global --package-db=$(stack path --snapshot-pkg-db) --package-db=$(stack path --local-pkg-db)
之后您可以 运行 cabal haddock --executables
生成文档。
对了,stack haddock
只是stack build --haddock
的简写,所以没必要写stack haddock --haddock
.
以下解决方案仅在指定单个文件时有效:
stack exec -- haddock --html src/Example.hs src/Main.hs --hyperlinked-source --odir=dist/docs