2

在 Haddock 中,“内联代码”¹标记 ,@...@与“代码块”标记相同,

@
...
@

如何编写仅包含内联代码跨度的单行 Haddock 注释,而不会被误解为块?像这样的评论

-- |@/code/ span@

呈现为块

代码跨度

而不是所需的内联

code span

如果有更多示例有帮助,上下文是我正在编写表示 BNF 语法的数据类型,因此我有许多类型,如下所示:

-- |@/term/ ::=@
data Term = Var Name       -- ^@/name/@
          | Plus Term Term -- ^@/term/ + /term/@
          | Print Term     -- ^@print /term/@

这个例子对应的语法

术语::=名称
      |  术语+术语
      | 打印术语

因此语法嵌入在 Haddock 注释中。但是由于 Haddock 将这些@...@注释解析为块,输出不必要地高,并且当某些行有额外的注释文本(例如,-- ^@double /term/@ – syntax sugar)时不一致。


¹ 又名“等宽”或“打字机”。

4

1 回答 1

1

这是一个建议的肮脏黑客。您的问题是您的行只有代码,而不是文本,对吗?好吧,只需在代码之后添加一些无意义的文本。您可以使用该&#xH;格式插入 unicode 字符的十六进制代码,例如零宽度或不间断空格。我想这会让你说服黑线鳕你是在一个内联而不是块上下文中。

于 2016-03-18T07:33:02.943 回答