もし私がラインを得たら
> { -# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell #- }
.cabal-file のドキュメント部分 (説明) にエラー メッセージが表示されます
haddock: parsing haddock prologue failed
実行中
$ cabal haddock
しかし、を取り除くと、{すべて}が正常に機能します。{}説明で使用できるようにエスケープする方法はありますか?
Haddock にはコード ブロック用の 2 つの構文があります。ブロックを区切る構文を@使用すると、Cabal のパーサーが処理できない文字を埋め込むために使用できる HTML エスケープを使用できます。
残念ながら、Cabal は - で区切られた@ブロックから先頭の空白を削除するように見えるため、スペースのある行には HTML エンコードされた space を前に付ける必要があります 。
ここに例があります:
description:
My package with a code example!
.
@
{-\# LANGUAGE TemplateHaskell \#-}
.
main = do
  $templatePrint "hello!"
  $templatePrint "world!"
@
レンダリングするもの:
コード例付きの私のパッケージ!
{-# LANGUAGE TemplateHaskell #-} main = do $templatePrint "hello!" $templatePrint "hello!"
OPTIONS_GHCそれ自体は非推奨ではありませんが(たとえば、特定のビルドオプションを有効にするためにこれを利用します)、言語機能をオン/オフにするために使用することは良い習慣とは見なされません。{-# LANGUAGE ... #-}代わりにプラグマを使用してください。
例えば{-# LANGUAGE TemplateHaskell, ForeignFunctionInterface, RankNTypes #-}
また、すべてを網羅するを利用することは悪い形と考えられています-fglasgow-exts。必要な拡張機能だけを含める方がよいでしょう。そうすれば、コードを初めて使用する人に必要な拡張機能がより明確になります。