Haskell 黑线鳕自动文档
Haskell haddock automatic documentation
我无法使用黑线鳕为 haskell 生成文档。
到目前为止我还没有找到任何有用的例子。该文档有很多选项,而且我不确定注释语法是否正确生成了文档。
我知道在 ghci 中我可以为加载的文件调用 :bro 并且它列出了类型和函数,我希望即使没有注释也可以用 haddock 记录这些函数。不知道可不可以。
如果你构建一个可执行文件,比如
module Main (main) -- this line is implicit if your module isn't named otherwise
where
-- | Some important function that does most of the work
foo :: Bar -> Baz
foo = ...
-- Other definitions
-- ...
-- | The program you want to run.
main :: IO ()
main = ...
-- ...
然后 Haddock 假设没有任何东西 public 可以实际记录 – 毕竟,main
是使用该项目的人实际可以调用的唯一东西,其他所有东西都是隐藏的!
要同时为 foo
生成文档,您需要 导出 它,直接从 Main
模块或从最初定义它的另一个模块导出.通常的做法是将所有真正有趣的东西放在一些“内部”模块中,比如
module Foo (foo, {- other stuff ... -}) where
-- | Some important function that does most of the work
foo :: Bar -> Baz
foo = ...
-- Other definitions
-- ... but not `main`
并且对于可执行文件仅使用“最终用户防刮塑料包装”模块
module Main (main) where
import Foo
main :: IO ()
main = ...
然后 Foo
的文档将包含真正有趣的 Haskell API 黑线鳕。这看起来像
Foo
foo
:: Bar
-> Baz
Some important function that does most of the work
实际上,您需要编写类似于
的文档
-- | Transmogrify a bare bar into a zapcutted one
foo :: Bar -- ^ The bare input to transmogrify
-> Baz -- ^ The zapcutted wrimch
生成的文档看起来像
Foo
foo
::
Bar
The bare input to transmogrify
-> Baz
The zapcutted wrimch
Transmogrify a bare bar into a zapcutted one
Main
的 Haddock 并不是很有趣,您最好将信息放在一些命令行帮助框中。
在project.cabal
文件中,然后需要将Foo
分类为属于项目的“库”部分,而Main
是可执行部分。
基本上,Haddock 仅适用于库,不适用于可执行文件。
我无法使用黑线鳕为 haskell 生成文档。
到目前为止我还没有找到任何有用的例子。该文档有很多选项,而且我不确定注释语法是否正确生成了文档。
我知道在 ghci 中我可以为加载的文件调用 :bro 并且它列出了类型和函数,我希望即使没有注释也可以用 haddock 记录这些函数。不知道可不可以。
如果你构建一个可执行文件,比如
module Main (main) -- this line is implicit if your module isn't named otherwise
where
-- | Some important function that does most of the work
foo :: Bar -> Baz
foo = ...
-- Other definitions
-- ...
-- | The program you want to run.
main :: IO ()
main = ...
-- ...
然后 Haddock 假设没有任何东西 public 可以实际记录 – 毕竟,main
是使用该项目的人实际可以调用的唯一东西,其他所有东西都是隐藏的!
要同时为 foo
生成文档,您需要 导出 它,直接从 Main
模块或从最初定义它的另一个模块导出.通常的做法是将所有真正有趣的东西放在一些“内部”模块中,比如
module Foo (foo, {- other stuff ... -}) where
-- | Some important function that does most of the work
foo :: Bar -> Baz
foo = ...
-- Other definitions
-- ... but not `main`
并且对于可执行文件仅使用“最终用户防刮塑料包装”模块
module Main (main) where
import Foo
main :: IO ()
main = ...
然后 Foo
的文档将包含真正有趣的 Haskell API 黑线鳕。这看起来像
Foo
foo
::Bar
->Baz
Some important function that does most of the work
实际上,您需要编写类似于
的文档-- | Transmogrify a bare bar into a zapcutted one
foo :: Bar -- ^ The bare input to transmogrify
-> Baz -- ^ The zapcutted wrimch
生成的文档看起来像
Foo
foo
::
Bar
The bare input to transmogrify->
Baz
The zapcutted wrimchTransmogrify a bare bar into a zapcutted one
Main
的 Haddock 并不是很有趣,您最好将信息放在一些命令行帮助框中。
在project.cabal
文件中,然后需要将Foo
分类为属于项目的“库”部分,而Main
是可执行部分。
基本上,Haddock 仅适用于库,不适用于可执行文件。