Dokumentasi offline Haskell?

94

Apa saja kemungkinan, jika ada, untuk mendapatkan dokumen offline untuk pustaka inti Haskell (dan mungkin lebih)?

Kadang-kadang saya membawa laptop saya ke kedai kopi yang tidak ada wifi, dan alangkah baiknya memiliki sesuatu seperti Hoogle tetapi untuk penggunaan offline.

Andriy Drozdyuk
sumber

Jawaban:

53

Hoogle tersedia secara offline, dapat dipasang dari Cabal: http://hackage.haskell.org/package/hoogle

Petunjuk penggunaan ada di http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .

Pemakaian:

$ 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

Buat database default dengan hoogle data(info lebih lanjut di http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

EDIT: Sesi penggunaan setelah menginstal Hoogle secara lokal:

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

Saya mengalami kesalahan di sini ... tampaknya itu terkait dengan versi Cabal, jadi saya memperbaruinya (http://hackage.haskell.org/trac/hackage/ticket/811). Itu tidak membantu, jadi saya lari hoogle data all, yang saya batalkan karena butuh waktu lama (sepertinya melalui setiap paket di Hackage). Itu masih tidak akan mengizinkan kueri seperti hoogle maptetapi mengizinkan hoogle map +base(yaitu membatasi pencarian ke basepaket) Semoga ini bekerja untuk Anda!

EDIT2: Ini sepertinya memperbaiki masalah (untuk saya):

$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
li.davidm
sumber
15
Anda juga mungkin ingin mengaktifkan dokumentasi untuk paket yang Anda instal, dengan menambahkan documentation: Trueke ~/.cabal/configfile Anda dan kemudian menginstal ulang paket tersebut dengan cabal install world --reinstall.
hammar
2
hoogle data --localbutuh waktu 3 menit (sebagian besar sedang diunduh) Saya kemudian dapat menjalankan hoogle foldlyang menemukan fungsi lipat, atau hoogle server --localdan kemudian mengunjungi http://localhost/yang merupakan server lengkap dan menyertakan tautan ke dokumentasi HTML.
Neil Mitchell
1
@NeilMitchell hoogle data alldan hoogle data --locallakukan / unduh banyak hal, tetapi masih tidak mengizinkan saya menemukan fungsi dalam paket (misalnya parseFileWithMode). Apakah ini seharusnya berhasil?
nh2
1
@ nh2: secara default Hoogle hanya mencari platform, cobahoogle +haskell-src-exts parseFile
Neil Mitchell
1
hoogle server --localmembutuhkan lebih banyak visibilitas. Ini analogi mis godoc -http.
sjakobi
21

Dokumentasi HTML dapat diunduh .tar.bz2dari situs web Haskell:

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

Saya baru saja mengunduh https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 dan itulah yang saya harapkan.

Ada juga opsi lain, seperti Dash dan Zeal , dan lihat juga utas reddit itu .

Emmanuel Touzery
sumber
Jawaban tidak up to date :( sepertinya link pertama rusak.
MaiaVictor
Itu ada. Terima kasih!
MaiaVictor
Itu jawaban terbaik bagi saya, karena saya tidak dapat mencapai tujuan denganhoogle server --local
user24601
14

Jika Anda menginstal Haskell Platform, itu termasuk dokumen GHC dan dokumen perpustakaan GHC (yang mencakup perpustakaan inti). Pada Windows, mereka berada di Start Menu di bawah "All Programs | Haskell Platform".

arx
sumber
Senang mengetahuinya. Apakah ada yang seperti itu di linux?
Andriy Drozdyuk
Saya pikir Platform Haskell seharusnya hampir sama di OS yang berbeda, tetapi saya tidak pernah menggunakannya di Linux. Jika Anda telah menginstalnya, Anda dapat mencoba mencari file "Data-Binary.html" (dokumen untuk Data.Binary) untuk melihat apakah dokumen tersebut telah diinstal di suatu tempat.
arx
4
@drozzy: Di Debian / Ubuntu, saya yakin ada paket dokumentasi seperti haskell-platform-docyang dapat Anda instal.
li.davidm
Platform haskell tidak akan dipertahankan lagi dan selalu usang, jadi saya tidak menganggap ini sebagai jawaban yang baik
dredozubov
1
Sumber @dredozubov? Saya tidak dapat menemukan apa pun tentang hal itu yang tidak dipertahankan di masa mendatang.
Andriy Drozdyuk
10

Edit file ~ / .cabal / config Anda. Cari baris (mungkin diberi komentar) yang bertuliskan documentation: False. Ubah baris itu menjadi documentation: Truedan hapus komentarnya. Sekarang ketika Anda membangun proyek dengan cabal installdokumentasi juga akan dibangun dan disimpan secara lokal.

Lihat-lihat lebih banyak di file konfigurasi yang sama dan Anda akan menemukan opsi-opsi seperti doc-index-file, docdir, datadir, prefix, dll yang memungkinkan Anda untuk mengkonfigurasi di mana dokumentasi disimpan.

perkasa
sumber
5

Ini mungkin tidak "kanonik" per se, tetapi saya percaya bahwa pilihan yang paling berguna adalah software DocSet seperti dasbor (OS X) / semangat + dihasilkan docsets. Dengan cara ini Anda akan mendapatkan pencarian secara gratis dan juga akan memiliki opsi untuk membangun dokumen kustom Anda. Tidak masalah untuk mendapatkan dokumentasi haddock paket 'dasar' dengan salah satu proyek di luar kotak. Anda dapat membuat kumpulan dokumen khusus dengan haddocset atau dash-haskell . Juga terintegrasi dengan baik dengan emacs / vim / editor lain, memungkinkan Anda memiliki dokumen berbasis proyek (Anda akan memiliki versi yang relevan per proyek dengan cara ini, lupakan semua kerumitan ini dengan hoogle lokal!) Dan jangan membatasi Anda ke aliran build apa pun yang dapat Anda miliki.

Jika Anda membangun proyek Anda dengan cabal-installAnda dapat mengatur documentation: Truedi Anda ~/.cabal/config, kemudian instal ulang dependensi untuk mendapatkan haddocks dihasilkan secara lokal.

Jika Anda menggunakan stack , Anda dapat menggunakan stack haddockperintah untuk membangun dependensi dan proyek Anda dengan haddocks yang dihasilkan.

dredozubov.dll
sumber
3

Saya menggunakan devdocs.io , ia memiliki dokumen untuk banyak bahasa dan perpustakaan (termasuk Haskell) dan memiliki mode luring.

stusherwin
sumber
1

Kecepatan adalah alat universal yang gratis dan indah untuk melakukan hal itu. Ini mendukung berbagai bahasa, teknologi dan perpustakaan, dan pembaruan satu klik.

Anda mungkin bisa menemukan lebih banyak dari apa yang sudah Anda gunakan dalam daftar dokumentasinya.

hardcore
sumber
1

Untuk Windows, instal paket wget dan curl cygwin. Itu akan memungkinkan hoogle data.

Pete Klein
sumber
0

Jika Anda kebetulan menggunakan distribusi turunan Debian dan paketnya, Anda akan menemukan dokumentasi gabungan dari semua paket Haskell yang diinstal (jika Anda juga menginstal libghc-foo-docpaket tersebut) di

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

Selain itu, libghc-foo-docpaket - paket tersebut berisi file yang diperlukan untuk hoogle, jadi jika Anda apt-get install hoogle, maka Anda harus segera dapat menggunakan hoogleuntuk mencari melalui semua pustaka yang diinstal dengan cara ini.

Joachim Breitner
sumber