haskell - Haddock - 在记录类方法时尝试使用命名 block

标签 haskell haddock

是否可以使用 Haddock 记录类方法并在实例声明代码中查询文档片段?

例如,我希望该类记录如下:

class ModifMATH a  where
  -- | Explanations of simpMath method.
  -- 
  --
  -- $part1
  -- $part2
  -- $part3      
  simpMath :: a -> a

实例记录如下:

instance ModifMATH MathExpress where
  -- $part1 a piece of explanation
  simpMath (MathDouble n)            = ...   

  -- $part2 another explanation 
  simpMath (MathMult a b)   = ...

  -- $part3 end of explanations 
  simpMath (MathAdd a b)   =  ...

并获得如下所示的 html Haddock 文档(抱歉,我没有图像):

class ModifMATH a where
   Methods
      simpMath :: a -> a
         Explanations of simpMath method.
         a piece of explanation
         another explanation
         end of explanations

当在实例中添加模式同时将整个方法文档保留在一个独立的段落中时,这种文档组织将更具可读性和可扩展性。可能吗?

我使用的是黑线鳕 2.10.0 版。在 Debian 7.0 上。

感谢您的帮助。

最佳答案

不,不可能像这样拆分文档。

唯一可以或多或少做到这一点的地方是 case of some questionable use of record fields但不适用于此处,我们已在 2.14.x 中更改了此行为。

也许你可以使用 a definition list尝试在您的文档中进行一些自然的拆分。例如,类似

class ModifMATH a  where
  -- | Explanations of simpMath method.
  -- 
  -- [MathDouble case] $part1
  --
  -- [MathMult case] $part2
  --
  -- [MathAdd case] $part3      
  simpMath :: a -> a

请注意,文档引用的是 2.14.x 版本,它比您使用的要新很多,因此例如每个定义列表之间的换行符是必要的。

它应该看起来或多或少像:

deflist
(来源:fuuzetsu.co.uk)

如果需要,您可以使用多行,请参阅文档。

关于haskell - Haddock - 在记录类方法时尝试使用命名 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23446976/

相关文章:

c++ - 使用 C++ 互操作在 Haskell 中构建简单的 DSL

haskell - "read"- 将字符串数据转换为haskell "data"类型

haskell - 组合两个 Functor 是什么意思?

ruby - CPS 风格的 `call/cc` 可以用假设的非 CPS 风格的 `cc' 来写吗?

Haskell,是否有可能创建一个可以 curry 任意数量的元组元素的 curry 函数

haskell 阴谋 : Generate latex haddock documentation

haskell - 如何使用 Haddock 记录类型类约束?

评论中的 Haskell Haddock latex 方程

haskell - 识字 Haskell (.lhs) 和 Haddock

haskell - 黑线鳕, cabal : How to include source code examples?