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

时间:2017-01-15 14:14:24

标签: haskell-stack

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

文档描述了以下内容:

build: haddock-arguments: ""

天真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将参数从haddock手册传递到堆栈的正确语法是什么?在我的具体情况下,我想指定自定义输出目录。

1 个答案:

答案 0 :(得分:2)

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

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来实现你想要的。