8

もし私がラインを得たら

> { -# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell #- }

.cabal-file のドキュメント部分 (説明) にエラー メッセージが表示されます

haddock: parsing haddock prologue failed

実行中

$ cabal haddock

しかし、を取り除くと、{すべて}が正常に機能します。{}説明で使用できるようにエスケープする方法はありますか?

4

2 に答える 2

3

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!"
于 2012-03-21T03:25:11.533 に答える
2

OPTIONS_GHCそれ自体は非推奨ではありませんが(たとえば、特定のビルドオプションを有効にするためにこれを利用します)、言語機能をオン/オフにするために使用することは良い習慣とは見なされません。{-# LANGUAGE ... #-}代わりにプラグマを使用してください。

例えば{-# LANGUAGE TemplateHaskell, ForeignFunctionInterface, RankNTypes #-}

また、すべてを網羅するを利用することは悪い形と考えられています-fglasgow-exts。必要な拡張機能だけを含める方がよいでしょう。そうすれば、コードを初めて使用する人に必要な拡張機能がより明確になります。

于 2011-06-22T12:58:59.153 に答える