假设我有一个使用 Cabal 打包和构建的库,并且某些模块Internal
不在我的 cabal 文件的Exposed-modules
. 如果我指定一个编译指示,它会有什么不同吗
{-# OPTIONS_HADDOCK hide #-}
在顶部Internal.hs
,还是已经根据 Haddock 自动隐藏?
如果它确实有所作为,它有什么影响?
如果包的黑线鳕是用--internal
to 标志创建的,那确实会有所不同cabal haddock
。
$ cabal help haddock
Usage: cabal haddock [FLAGS]
Flags for haddock:
-h --help Show this help text
-v --verbose[=n] Control verbosity (n is 0--3, default verbosity
level is 1)
<snip>
--executables Run haddock for Executables targets
--internal Run haddock for internal modules and include all
symbols
<snip>
如果创建的黑线鳕没有--internal
标记,则hide
模块属性无效:无论如何都不会为模块创建文档。
如果--internal
给出,则为非公开模块创建文档,但指定属性的模块除外。hide
换句话说,如果hide
未设置并且指定或--internal
导出模块,则会生成文档。
--internal
for的使用cabal haddock
可以用 指定cabal install --haddock-internal
,或者在手动调用时cabal haddock
,或者用runhaskell ./Setup.hs ...
接口指定。
大多数人只是cabal install
使用默认选项运行,所以只有少数人会观察到差异。