2015-09-22 9 views
20

私はHaddockスタイルで自分のコードに注釈を付け、閲覧可能なドキュメントを生成したいと思います。私もスタックを使用しているので、ドキュメンテーション生成をワークフローに統合したいと思っています。しかし、私はまだ何か有用なものを生み出すことはできませんでした。Haddockとスタックを使用して私自身のコードのドキュメントを生成する

私は

stack haddock 

実行することができ、それは私が望むスタイルでドキュメントを生成します(深い~/.stack/の中に発見される)、それだけのためではなく、私が依存するパッケージのドキュメントを生成しているようです私自身のコード。

私は

stack haddock --help 

を実行すると、私は私が私の依存関係のドキュメントを残すために私自身のプロジェクトのドキュメントを生成するために追加の引数--haddockを使用して、--no-haddock-depsできる印象を受けます。しかし、私が走るとき

stack haddock --haddock --no-haddock-deps 

何も起こっていないようです。もし私が最初にstack cleanと入力すると、すべてのコードが再コンパイルされますが、出力は生成されずにドキュメントに関連するように見えます。私はまた、それ自体でハドックを実行しようとしている中間液として

すなわち

haddock my-source.hs 

その後私はそれをファイル(スタックによってローカルにインストールされる)に依存するモジュールを見つけることができないというエラーを取得します。これは、ドキュメンテーションの生成が何とかスタックを経由しなければならないという印象を与えてくれます。私が探したが、実際のドキュメントのための私の.cabalstack.yamlファイルの構成に関連する説明を発見していません。

TL; DR

がどのように私は自分のパッケージにコードのドキュメントを生成するために、スタックとハドックを使用することができますか?

+2

は、あなたのプロジェクトが実行可能ファイルまたはライブラリですか?私は(それらのためにそれがコマンドの後にドキュメントへのパスを印刷し、またはあなたが 'スタックPATH'からそれを見ることができます)のみ、現在ライブラリのドキュメントを生成積み重ねだと思い、こちらを参照します。https:// githubのを。com/commercialhaskell/stack/issues/729( "cabal haddock"を含む実行可能ファイル用のドキュメントを構築するための推奨される回避策を含む)。 –

+0

@RüdigerHanke:ありがとう、ありがとう。そのリンクを使って、実際に 'cabal haddock'とリンクされた推奨回避策を使って作業しました。私はそれを受け入れる答えとしてそれを書き留めたい場合は、私は自分自身で解決策を書くことができます。 (私のプロジェクトは実行可能です) –

答えて

12

スタック課題追跡にthis ticketによると、スタックは、現在唯一の実行可能ファイルをライブラリのドキュメントを構築することはできませんが。

陰謀団は、このコマンドを使用して、スタックのデータベースと連動するように設定することができます。

​​

た後、あなたがドキュメントを生成するためにcabal haddock --executablesを実行することができます。

ちなみに、stack haddockstack build --haddockのショートカットなので、stack haddock --haddockを書く必要はありません。

+0

まだ編集システムはまだわかりません:/おそらく私は気が狂っていますが、 'cabal configure'コマンドがあなたの投稿にまだ書かれていないという編集を提案した時、 。編集履歴には編集が意味をなさないというメッセージが表示されます。とにかく答えてくれてありがとうございます。 –

+2

@SamvanHerwaarden答えが最初に投稿された後、数分間信じます。作者は履歴に表示されずに編集できます。多分それはここで起こったことです。 –

+0

'cabal configure ...'コマンドを実行すると、 'cabal:ghc-pkg dump failed 'というエラーが返されます。 –

1

https://www.reddit.com/r/haskell/comments/5ugm9s/how_to_generate_haddock_docs_for_nonlibrary_code/ddtwqzc/

個々のファイルが指定されている場合は、次のソリューションは、動作します:

stack exec -- haddock --html src/Example.hs src/Main.hs --hyperlinked-source --odir=dist/docs 
+0

恐ろしい、ありがとう! 'Int'のようなプリミティブ型については警告が出ます。特定の種類のドキュメントを含める方法はありますか? – Erik