haskell - 更改重新导出的类型和值的文档

标签 haskell haddock

假设我有一个从内部模块重新导出值的模块:

module My.Cool.Module (SomeType, someValue) where
import My.Cool.Module.Internal (SomeType, someValue)

我想为 SomeType 显示不同的文档和 someValueMy-Cool-Module.htmlMy-Cool-Module-Internal.html ,所以前者可以讨论公共(public) API,而后者可以讨论它们与其他内部的关系。

有没有办法用黑线鳕做到这一点?

我试过:
module My.Cool.Module (SomeType, someValue) where
import My.Cool.Module.Internal
  ( SomeType -- ^ a serious type for serious people
  , someValue -- ^ a serious value for serious people
  )

但是黑线鳕给了我一个解析错误:
parse error on input ‘-- ^ a serious type for serious people’

最佳答案

好的,这是一个我可以忍受的黑客。

黑线鳕允许您插入 named chunks of documentation , 它们按照定义的顺序显示。这些命名的 block 仅针对它们所在的模块显示,而不是在从该模块重新导出值或类型的任何文件中。

所以在内部模块中,我可以在公共(public) API 文档之后插入包含内部文档的命名 block :

-- | Have you welcomed internal modules into your life?
module Public.Private where

-- | Here's the public API information for 'SomeType'
type SomeType = ()
-- $
-- Here's the internal information about 'SomeType': it's really just a stand-in
-- for San Francisco

-- | Here's the public API information for 'someValue'
someValue :: SomeType
-- $ Here's the internal information about 'someValue': it loves cheese.
someValue = ()

然后正常导出类型和值
-- | This is a very serious public API
module Public ( SomeType, someValue) where
import Public.Private ( SomeType , someValue)

现在为 Public.Private 生成文档在公共(public)文档之后显示内部文档:

Generated HTML documentation for Public.Private

Public导出项目的文档不显示内部文档:

Generated HTML documentation for Public

这只允许我附加私有(private)文档,但这总比没有好。

关于haskell - 更改重新导出的类型和值的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33176636/

相关文章:

parsing - 如何使用 Parsec 仅在某个范围内解析一串整数?

haskell - 在 GHCi 中,为什么我无法在 REPL 中显示 `pure 1`?

haskell - 黑线鳕编号列表继续

haskell - Haskell 记录场上的黑线鳕

haskell - 当 "stack haddock"工作时,为什么我在运行 "stack test"时遇到构建计划错误?

haskell - {-# OPTIONS_HADDOCK hide #-} 对非导出模块有影响吗?

haskell - 如果在 'safe language' 中实现了经过验证的 SSL/TLS,它是否仍然容易受到心脏出血攻击?

list - Haskell 在某个位置重复元素

haskell - 象牙色 : how to use the ivory-hw package

haskell - 黑线鳕超链接并且没有关于冗余导入的警告