2012-03-01 51 views
9

Haddock似乎错误地在UTF-8编码的源文件的文档中重新编码了非ASCII字符。我经常需要在文档中包含数学公式,并且如果可以使用诸如求和(Σ)等常用数学符号,则它们更易读。在Haddock文档中使用unicode字符

但是,通过haddock运行文件后,这些符号变成空白方块。 012dHaddock有选项--use-unicode,但它只是将函数签名等中的函数箭头转换为unicode字符,同时仍然打破实际文档。

更好的是,如果这可以从cabal haddock控制!

我使用的是Haddock 2.9.4版。

+0

您可以使用'ς'等非ASCII符号。 – 2012-03-01 16:01:16

+0

好的,但后来源变得不可读... – 2012-03-01 16:11:07

+0

是的,但如果haddock不能自动处理UTF-8,不知道它的内部,这是我现在可以提供的最好的。 – 2012-03-01 16:13:21

回答

8

请注意,Haddock使用GHC API进行解析。 GHC < 7.4没有正确处理注释中的非ASCII字符,但似乎使用GHC 7.4可以正常工作。

+4

相关trac门票:http://trac.haskell.org/haddock/ticket/20 – 2012-03-01 21:40:35

+0

好,感谢您的信息! – 2012-03-01 21:53:59

+0

这一切都已经修补,因为这个答案和Haddock现在在评论中做unicode就好了。 – 2014-01-13 10:04:45

3

如果UTF-8无法使用,并且数字字符引用如&#8721;&­#x2211;(这些是n元求和符号Σ的正确引用)被认为是不可读的,那么恐怕唯一的选择是使用named像&sum;这样的引用,如果它们被传递给将被使用的浏览器支持的HTML结果

这是一个很大的“如果”,因为新的HTML5实体具有相当有限的支持,但也许在每个人都使用Firefox的内部网... HTML5实体: http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html

(和大多数引用是不作为助记符,如&sum;。)