Haskell黑线鳕自动文档

Haskell黑线鳕自动文档,haskell,documentation-generation,haddock,Haskell,Documentation Generation,Haddock,我无法使用haddock为haskell生成文档 到目前为止,我还没有找到任何有用的例子。文档有很多选项,而且我也不确定注释语法是否正确,以便正确生成文档 我知道在ghci内部,我可以调用:bro来加载文件,它列出了类型和函数,我希望这些函数可以用haddock记录,即使没有注释。我不知道这是否可行。如果您构建一个可执行文件,比如 然后Haddock假设没有任何公开的文档——毕竟,main是使用该项目的人实际上可以调用的唯一东西,其他一切都隐藏了 要为foo生成文档,您需要直接从Main模块或从

我无法使用haddock为haskell生成文档

到目前为止,我还没有找到任何有用的例子。文档有很多选项,而且我也不确定注释语法是否正确,以便正确生成文档

我知道在ghci内部,我可以调用:bro来加载文件,它列出了类型和函数,我希望这些函数可以用haddock记录,即使没有注释。我不知道这是否可行。

如果您构建一个可执行文件,比如

然后Haddock假设没有任何公开的文档——毕竟,
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 Haddocks。这样看起来

foo
Bar
->
Baz

完成大部分工作的一些重要功能

实际上,您需要编写文档,比如

-- | Transmogrify a bare bar into a zapcutted one
foo :: Bar -- ^ The bare input to transmogrify
    -> Baz -- ^ The zapcutted wrimch
生成的文档看起来像

foo

  • Bar
    transmogrify的裸输入

  • ->
    Baz
    zapcuttedwrimch

把一根光秃秃的酒吧改造成一根被剪掉的酒吧

Main
的Haddock不是很有趣,您最好将信息放在一些命令行帮助框中

project.cabal
文件中,您需要将
Foo
分类为属于项目的“库”部分,而
Main
是可执行部分

基本上,Haddock只用于库,不用于可执行文件

然后Haddock假设没有任何公开的文档——毕竟,
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 Haddocks。这样看起来

foo
Bar
->
Baz

完成大部分工作的一些重要功能

实际上,您需要编写文档,比如

-- | Transmogrify a bare bar into a zapcutted one
foo :: Bar -- ^ The bare input to transmogrify
    -> Baz -- ^ The zapcutted wrimch
生成的文档看起来像

foo

  • Bar
    transmogrify的裸输入

  • ->
    Baz
    zapcuttedwrimch

把一根光秃秃的酒吧改造成一根被剪掉的酒吧

Main
的Haddock不是很有趣,您最好将信息放在一些命令行帮助框中

project.cabal
文件中,您需要将
Foo
分类为属于项目的“库”部分,而
Main
是可执行部分


基本上,Haddock只是用于库,而不是用于可执行文件。

Er,
cabal Haddock
and done?-这个问题问了一些完全不同的问题,我认为你应该把它缩小到一个主题,以免它被封闭得太宽。@leftaround不仅仅是这样。我试过了,它只创建了一个指向主程序包的链接,我想要一个包含在程序中的函数列表,就像我做的那样:ghci中的bro。此外,我想知道在安装文件中的何处添加该命令,以便生成该命令,而不必为每个命令单独调用cabal。这并不是那么简单。我要说的是,在生成文档时,注释语法方面的示例非常差,而且很少。啊,现在我知道问题出在哪里了(这实际上是关于模块导出的)。请编辑,以便答案能够与问题相匹配,而不仅仅是对问题的评论……我是哈斯克尔的新手,因此我不熟悉术语。我知道有一个主模块,但我不需要它在文档中。我有非常简单的文件,甚至不包含类,只是一些类型和函数,我不知道我是否可以记录这些。你能帮我把这个问题重新表述一下吗?呃,
cabalhaddock
and done?-这个问题问了一些完全不同的问题,我认为你应该把它缩小到一个主题,以免它被封闭得太宽。@leftaround不仅仅是这样。我试过了,它只创建了一个指向主程序包的链接,我想要一个包含在程序中的函数列表,就像我做的那样:ghci中的bro。此外,我想知道在安装文件中的何处添加该命令,以便生成该命令,而不必为每个命令单独调用cabal。这并不是那么简单。我要说的是,在生成文档时,注释语法方面的示例非常差,而且很少。啊,现在我知道问题出在哪里了(这实际上是关于模块导出的)。请编辑,以便答案能够与问题相匹配,而不仅仅是对问题的评论……我是哈斯克尔的新手,因此我不熟悉术语。我知道有一个主模块,但我不需要它在文档中。我有非常简单的文件,甚至不包含类,只是一些类型和函数,我不知道我是否