2012-09-16 24 views
5

Tôi muốn bắt đầu sử dụng Haddock; lý do chính không phải là tôi làm (hoặc bất kỳ ai khác) cần tài liệu HTML đẹp cho những gì tôi đang viết ngay bây giờ, nhưng nó sẽ dạy cho tôi một cách tiêu chuẩn hóa bình luận mô-đun Haskell. Vì lý do này, tôi muốn bị bẩn tay với nó, nhưng tôi đã gặp phải một vấn đề khá cơ bản.Chạy Haddock trên riêng của mình

Nguồn:

module Main where 
-- |This is the main function. 
main = putStrLn "Hello World!" 

Haddock gọi:

> haddock -h test.hs 
Haddock coverage: 
    50% ( 1/2) in 'Main' 
Warning: Main: could not find link destinations for: 
    GHC.Types.IO 

Dường như Haddock không biết được nơi để tìm kiếm các thư viện chuẩn, nhưng đó chỉ là một đoán hoang dã. Các tài liệu nói điều gì đó về một tham số "-B", nhưng không thực sự giải thích nhiều về nó.

Tôi đã tìm kiếm sự cố trực tuyến và về cơ bản nó đã được trả lời bằng "sử dụng gói Cabal và nó sẽ làm mọi thứ cho bạn". Tuy nhiên, tôi sẽ không phải đối phó với Cabal ngay bây giờ, nhưng học Haddock một mình (Cabal có thể chờ đợi). Có một giải pháp tốt đẹp và dễ dàng (ish) cho vấn đề này?

+2

Chỉ cần đặt một điểm dữ liệu ra khỏi đó: Tôi đã viết rất nhiều tài liệu và không bao giờ một lần gọi 'hasdock' bằng tay. –

+1

Chính xác, hasdock không biết nơi để tìm tài liệu cho các thư viện được cài đặt của chính nó, bạn phải nói với nó. Tôi không phải là một chuyên gia, nhưng tùy chọn '--read-interface = FILE' sẽ cho bạn biết địa chỉ haddock để tìm tài liệu. Tuy nhiên, việc cho phép 'cabal' thực hiện công việc đơn giản hơn rất nhiều. –

+1

Cabal có nghĩa là làm cho cuộc sống của bạn dễ dàng hơn. Tại sao chờ đợi? –

Trả lời

5

Tôi sẽ lặp lại sự khôn ngoan của nhận xét cho câu hỏi của bạn và nói, chỉ cần sử dụng Cabal. Nó không phải là một điều bổ sung để tìm hiểu, đó là một cái gì đó để tìm hiểu thay vì chính xác bởi vì nó sẽ chăm sóc của tất cả các chi tiết tẻ nhạt cho bạn. Có thể bạn sẽ cần phải biết về nó anyway vì mọi người khác sử dụng nó, vì vậy bạn cũng có thể có được lợi ích của kiến ​​thức đó.

Để hoàn chỉnh, tôi chạy cabal haddock -v trên một trong những dự án của tôi, và đây là lời khẩn cầu haddock rằng nó được sử dụng:

/usr/local/bin/haddock --prologue=dist/doc/html/notcpp/haddock-prolog1566.txt --dump-interface=dist/doc/html/notcpp/notcpp.haddock --optghc=-package-name --optghc=notcpp-0.2.0.2 --hide=NotCPP.Utils --verbosity=1 --html --read-interface=/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1,/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/array.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/base-4.6.0.0,/usr/local/share/doc/ghc/html/libraries/base-4.6.0.0/base.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0,/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/containers.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/deepseq-1.3.0.1,/usr/local/share/doc/ghc/html/libraries/deepseq-1.3.0.1/deepseq.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/ghc-prim-0.3.0.0,/usr/local/share/doc/ghc/html/libraries/ghc-prim-0.3.0.0/ghc-prim.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/integer-gmp-0.5.0.0,/usr/local/share/doc/ghc/html/libraries/integer-gmp-0.5.0.0/integer-gmp.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/pretty-1.1.1.0,/usr/local/share/doc/ghc/html/libraries/pretty-1.1.1.0/pretty.haddock --read-interface=/usr/local/share/doc/ghc/html/libraries/template-haskell-2.8.0.0,/usr/local/share/doc/ghc/html/libraries/template-haskell-2.8.0.0/template-haskell.haddock --odir=dist/doc/html/notcpp/ --title=notcpp-0.2.0.2: Avoiding the C preprocessor via cunning use of Template Haskell --optghc=-fbuilding-cabal-package --optghc=-O --optghc=-odir --optghc=dist/build/tmp-1566 --optghc=-hidir --optghc=dist/build/tmp-1566 --optghc=-stubdir --optghc=dist/build/tmp-1566 --optghc=-i --optghc=-idist/build --optghc=-i. --optghc=-idist/build/autogen --optghc=-Idist/build/autogen --optghc=-Idist/build --optghc=-optP-include --optghc=-optPdist/build/autogen/cabal_macros.h --optghc=-hide-all-packages --optghc=-package-id --optghc=base-4.6.0.0-eac4fa0d0988628e5bd960fef8805b26 --optghc=-package-id --optghc=template-haskell-2.8.0.0-102a52a4fda28374255d0a3a8e99f26c --optghc=-XHaskell98 --optghc=-XTemplateHaskell --optghc=-W -B/usr/local/lib/ghc-7.6.1 dist/build/tmp-1566/NotCPP/ScopeLookup.hs dist/build/tmp-1566/NotCPP/LookupValueName.hs dist/build/tmp-1566/NotCPP/OrphanEvasion.hs dist/build/tmp-1566/NotCPP/Utils.hs

Bây giờ, tôi chắc chắn rằng phần lớn đó là tùy chọn, nhưng tôi không phải dành thời gian làm việc mà bit được và không.

Các vấn đề liên quan