Tài liệu ngoại tuyến Haskell?


94

Các khả năng, nếu có, để nhận tài liệu ngoại tuyến cho các thư viện lõi Haskell (và có thể nhiều hơn nữa) là gì?

Đôi khi tôi mang theo máy tính xách tay của mình đến quán cà phê nơi không có wifi, và thật tuyệt khi có một cái gì đó giống như Hoogle nhưng để sử dụng ngoại tuyến.

Câu trả lời:


53

Hoogle khả dụng ngoại tuyến, có thể cài đặt từ Cabal: http://hackage.haskell.org/package/hoogle

Hướng dẫn sử dụng có tại http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .

Sử dụng:

$ hoogle --help
Hoogle v4.2.8, (C) Neil Mitchell 2004-2011
http://haskell.org/hoogle

hoogle [COMMAND] ... [OPTIONS]

Commands:
  [search]  Perform a search
  data      Generate Hoogle databases
  server    Start a Hoogle server
  combine   Combine multiple databases into one
  convert   Convert an input file to a database
  test      Run tests
  dump      Dump sections of a database to stdout
  rank      Generate ranking information
  log       Analyse log files

Common flags:
  -? --help     Display help message
  -V --version  Print version information
  -v --verbose  Loud verbosity
  -q --quiet    Quiet verbosity

Tạo cơ sở dữ liệu mặc định với hoogle data(thông tin thêm tại http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

CHỈNH SỬA: Một phiên sử dụng sau khi cài đặt Hoogle cục bộ:

$ hoogle
No query entered
Try --help for command line options
$ hoogle data
(downloads databases...takes a few minutes)

Tôi đã gặp lỗi ở đây ... rõ ràng nó có liên quan đến phiên bản Cabal, vì vậy tôi đã cập nhật nó (http://hackage.haskell.org/trac/hackage/ticket/811). Điều đó không giúp ích được gì, vì vậy tôi đã chạy hoogle data all, mà tôi đã hủy bỏ vì mất quá nhiều thời gian (dường như đi qua mọi gói trên Hackage). Nó vẫn sẽ không cho phép một truy vấn như hoogle mapnhưng đã cho phép hoogle map +base(tức là hạn chế tìm kiếm trong basegói) Hy vọng rằng nó phù hợp với bạn!

EDIT2: Điều này dường như khắc phục được sự cố (đối với tôi):

$cd .cabal/share/hoogle-4.2.8/databases
$hoogle combine base.hoo
$hoogle foldl\'
Data.List foldl' :: (a -> b -> a) -> a -> [b] -> a
Data.Foldable foldl' :: Foldable t => (a -> b -> a) -> a -> t b -> a

15
Bạn cũng có thể muốn kích hoạt tài liệu cho các gói đã cài đặt của mình, bằng cách thêm documentation: Truevào ~/.cabal/configtệp của bạn và sau đó cài đặt lại các gói đó bằng cabal install world --reinstall.
hammar

2
hoogle data --localTôi mất 3 phút (hầu hết trong số đó là tải xuống), sau đó tôi có thể chạy hoogle foldltìm hàm gấp hoặc hoogle server --localsau đó truy cập vào http://localhost/đây là cả một máy chủ đầy đủ bao gồm các liên kết đến tài liệu HTML.
Neil Mitchell

1
@NeilMitchell hoogle data allhoogle data --localthực hiện / tải xuống rất nhiều thứ, nhưng nó vẫn không cho phép tôi tìm thấy các chức năng trong các gói (ví dụ parseFileWithMode). Điều này có hiệu quả không?
nh2 22/08/2012

1
@ NH2: theo mặc định Hoogle chỉ tìm kiếm nền tảng này, hãy thửhoogle +haskell-src-exts parseFile
Neil Mitchell

1
hoogle server --localcần nhiều khả năng hiển thị hơn. Đó là từ tương tự với ví dụ godoc -http.
sjakobi

21

Tài liệu HTML có thể được tải xuống .tar.bz2từ trang web Haskell:

https://downloads.haskell.org/~ghc/latest/docs/

Tôi vừa tải xuống https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 và đó chính xác là những gì tôi đã hy vọng.

Ngoài ra còn có các tùy chọn khác, chẳng hạn như Dash và Zeal và cũng có thể xem chuỗi reddit đó .


Câu trả lời không được cập nhật :( có vẻ như liên kết đầu tiên bị hỏng.
MaiaVictor

Đây rồi. Cảm ơn bạn!
MaiaVictor

Đó là câu trả lời tốt nhất cho tôi, vì tôi đã không thể đạt được mục đích vớihoogle server --local
user24601

14

Nếu bạn cài đặt Nền tảng Haskell, nó bao gồm tài liệu GHC và tài liệu thư viện GHC (bao gồm các thư viện cốt lõi). Trên Windows, chúng nằm trên Start Menu trong "All Programs | Haskell Platform".


Thật tuyệt khi biết. Có một cái gì đó như vậy trên linux?
Andriy Drozdyuk

Tôi nghĩ Nền tảng Haskell được cho là giống nhau trên các hệ điều hành khác nhau, nhưng tôi chưa bao giờ sử dụng nó trên Linux. Nếu bạn đã cài đặt nó, bạn có thể thử tìm kiếm tệp "Data-Binary.html" (tài liệu cho Data.Binary) để xem tài liệu đã được cài đặt ở đâu đó chưa.
arx

4
@drozzy: Trên Debian / Ubuntu, tôi tin rằng có những gói tài liệu haskell-platform-docmà bạn có thể cài đặt.
li.davidm

Nền tảng haskell sẽ không còn được duy trì nữa và nó luôn lỗi thời, vì vậy tôi không coi đây là một câu trả lời hay
nạo vét hố ga

1
@dredozubov Nguồn? Tôi không thể tìm thấy bất cứ điều gì về việc nó không được duy trì trong tương lai.
Andriy Drozdyuk

10

Chỉnh sửa tệp ~ / .cabal / config của bạn. Hãy tìm dòng (có thể đã được bình luận) nói rằng documentation: False. Thay đổi dòng đó thành documentation: Truevà bỏ ghi chú. Bây giờ khi bạn xây dựng các dự án với cabal installtài liệu cũng sẽ được xây dựng và lưu cục bộ.

Xem xét kỹ hơn một chút trong cùng một tệp cấu hình đó và bạn sẽ tìm thấy các tùy chọn như doc-index-file, docdir, datadir, prefix, v.v. cho phép bạn định cấu hình nơi lưu trữ tài liệu.


5

Nó có thể không phải là "chuẩn", nhưng tôi tin rằng tùy chọn hữu ích nhất là một phần mềm docset như dash (OS X) / zeal + docsets tạo. Bằng cách này, bạn sẽ nhận được tìm kiếm miễn phí và cũng sẽ có một tùy chọn để xây dựng bộ tài liệu tùy chỉnh của bạn. Không có vấn đề gì khi lấy tài liệu đã khóa gói 'cơ sở' với một trong hai dự án ra khỏi hộp. Bạn có thể tạo bộ tài liệu tùy chỉnh bằng haddocset hoặc dash-haskell . Ngoài ra, nó còn tích hợp độc đáo với emacs / vim / các trình soạn thảo khác, cho phép bạn có các tài liệu dựa trên dự án (bạn sẽ có các phiên bản liên quan trên cơ sở từng dự án theo cách này, hãy quên tất cả rắc rối này với hoogle cục bộ!) Và đừng hạn chế bạn với bất kỳ luồng xây dựng nào bạn có thể có.

Nếu bạn xây dựng dự án của mình với cabal-installbạn có thể đặt documentation: Truetrong của bạn ~/.cabal/config, sau đó cài đặt lại các phần phụ thuộc để lấy các hasdock được tạo cục bộ.

Nếu bạn đang sử dụng ngăn xếp , bạn có thể sử dụng stack haddocklệnh để xây dựng các phụ thuộc của mình và dự án với các hasdock đã tạo.


3

Tôi sử dụng devdocs.io , nó có tài liệu cho rất nhiều ngôn ngữ và thư viện (bao gồm cả Haskell) và có chế độ ngoại tuyến.


1

Velocity là một công cụ phổ quát miễn phí và tuyệt đẹp để làm điều đó. Nó hỗ trợ một loạt các ngôn ngữ, công nghệ và thư viện và cập nhật bằng một cú nhấp chuột.

Bạn có thể sẽ tìm thấy thêm những gì bạn đang sử dụng trong danh sách tài liệu của nó.


1

Đối với Windows, hãy cài đặt các gói wget và curl của cygwin. Điều đó sẽ kích hoạt hoogle data.


0

Nếu bạn tình cờ sử dụng bản phân phối dẫn xuất Debian và các gói của chúng, thì bạn sẽ tìm thấy tài liệu kết hợp của tất cả các gói Haskell đã cài đặt (nếu bạn cũng cài đặt các libghc-foo-docgói) tại

file:///usr/share/doc/ghc-doc/html/libraries/index.html

Hơn nữa, các libghc-foo-docgói chứa các tệp cần thiết cho hoogle, vì vậy nếu có apt-get install hooglethì bạn sẽ ngay lập tức có thể sử dụng hoogleđể tìm kiếm qua tất cả các thư viện được cài đặt theo cách này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.