在Haddock文档中使用Unicode字符

9
Haddock似乎会错误地重新编码UTF-8编码的源文件中文档中的非ASCII字符。我经常需要在文档中包含数学公式,如果可以使用一些常见的数学符号,如求和符号(∑),则更易读。
然而,在通过Haddock运行这些文件后,这些符号变成了空白方块。Haddock有选项--use-unicode,但这只是将函数签名中的函数箭头等转换为Unicode字符,仍会破坏实际文档。
更好的方法是,如果可以从cabal haddock控制它!
我正在使用Haddock版本2.9.4。

你可以使用 ς 等非 ASCII 符号。 - Daniel Fischer
好的,但是这样源代码就变得无法阅读了... - Grzegorz Chrupała
真的,但如果Haddock不能自动处理UTF-8,我不知道它的内部情况,那么目前这是我能提供的最好的。 - Daniel Fischer
2个回答

9

请注意,Haddock使用GHC API进行解析。 GHC版本低于7.4的情况下,注释中的非ASCII字符无法正确处理,但似乎在GHC 7.4版本中可以正常工作。


自从这个答案发布以来,所有问题都已经解决了,Haddock现在可以很好地处理注释中的Unicode。 - Mateusz Kowalczyk

4
如果不能使用UTF-8,且像∑&­#x2211;(这些是表示n元求和符号∑的正确引用)这样的数字字符引用被视为无法读取,则唯一的选择是使用命名引用,例如∑,如果它们通过到HTML结果并且被使用的浏览器支持。这是一个很大的“如果”,因为新的HTML5实体支持非常有限,但在每个人都使用Firefox的内部网络中可能会有所不同... HTML5实体:http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html(而且大多数引用不像∑那么容易记忆)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接