使用 build:haddock-arguments 选项 stack.yaml

Usage of build:haddock-arguments option of stack.yaml

如何将选项从 stack.yaml 传递给 stack haddock?我在文档和堆栈源代码中都找不到任何正确语法的线索。

文档描述如下:

build: haddock-arguments: ""

Naive haddock-arguments: "--odir=./docs" 失败并出现类型错误:

…failed to parse field 'haddock-arguments': expected HaddockOptsMonoid, encountered String

我发现它希望它像:

build: haddock-arguments: odir: "./docs"

但是失败并出现错误 Unrecognized field in HaddockOptsMonoid: odir

通过 stack.yaml 将参数从黑线鳕手册传递到堆栈的正确语法是什么?在我的具体情况下,我想指定自定义输出目录。

查看源代码后我发现语法是

build:
  haddock-arguments:
    haddock-args:
    - "--odir=./docs"

在示例项目中,结果如下(注意 docs 目录在 .stack-work 深处的位置):

$ ls .stack-work/install/x86_64-linux/lts-6.3/7.10.3/doc/docs/ | cat
doc-index.html
frames.html
haddock-util.js
hslogo-16.png
index-frames.html
index.html
minus.gif
ocean.css
plus.gif
synopsis.png

index.html中的链接已损坏,所以我有点悲观地认为您可以通过这种方式将参数传递给haddock来实现您想要的。