Haskell Offline-Dokumentation?

94

Welche Möglichkeiten gibt es, wenn überhaupt, Offline-Dokumente für Haskell-Kernbibliotheken (und möglicherweise mehr) abzurufen?

Manchmal bringe ich meinen Laptop zum Café, wo es kein WLAN gibt, und es wäre schön, etwas wie Hoogle zu haben, aber für den Offline-Gebrauch.

Andriy Drozdyuk
quelle

Antworten:

53

Hoogle ist offline verfügbar und kann von Cabal installiert werden: http://hackage.haskell.org/package/hoogle

Anweisungen zur Verwendung finden Sie unter http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .

Verwendung:

$ 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

Erstellen Sie eine Standarddatenbank mit hoogle data(weitere Informationen unter http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

BEARBEITEN: Eine Nutzungssitzung nach der lokalen Installation von Hoogle:

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

Ich bin hier auf einen Fehler gestoßen ... anscheinend hängt er mit der Version von Cabal zusammen, also habe ich diesen aktualisiert (http://hackage.haskell.org/trac/hackage/ticket/811). Das hat nicht geholfen, also bin ich gelaufen hoogle data all, was ich abgesagt habe, da es so lange gedauert hat (es scheint jedes Paket auf Hackage durchzugehen). Es würde immer noch keine Abfrage wie hoogle mapzulassen, aber es erlaubte hoogle map +base(dh die Suche auf das basePaket beschränken). Hoffentlich funktioniert es für Sie!

EDIT2: Dies scheint das Problem zu beheben (für mich):

$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
quelle
15
Sie möchten wahrscheinlich auch die Dokumentation für Ihre installierten Pakete aktivieren, indem Sie sie documentation: Truezu Ihrer ~/.cabal/configDatei hinzufügen und diese Pakete dann mit neu installieren cabal install world --reinstall.
Hammar
2
hoogle data --localIch habe 3 Minuten hoogle foldlgebraucht (die meisten davon wurden heruntergeladen). Ich kann dann ausführen , um die Foldl-Funktion zu finden, oder hoogle server --localdann besuchen, http://localhost/was sowohl ein vollständiger Server ist als auch Links zur HTML-Dokumentation enthält.
Neil Mitchell
1
@NeilMitchell hoogle data allund hoogle data --localmache / lade eine Menge Sachen, aber es lässt mich immer noch nicht Funktionen in Paketen finden (zB parseFileWithMode). Soll das funktionieren?
nh2
1
@ nh2: Standardmäßig durchsucht Hoogle nur die Plattform, versuchen Siehoogle +haskell-src-exts parseFile
Neil Mitchell
1
hoogle server --localbraucht mehr Sichtbarkeit. Es ist das Analogon zu z godoc -http.
Sjakobi
21

Die HTML-Dokumentation kann .tar.bz2von der Haskell-Website heruntergeladen werden:

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

Ich habe gerade https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 heruntergeladen und genau darauf habe ich gehofft.

Es gibt auch andere Optionen, wie Dash und Zeal , und siehe auch diesen reddit-Thread .

Emmanuel Touzery
quelle
Antwort nicht aktuell :( scheint der erste Link ist kaputt.
MaiaVictor
Da ist es. Danke dir!
MaiaVictor
Das ist die beste Antwort für mich, da ich den Zweck mithoogle server --local
user24601
14

Wenn Sie die Haskell-Plattform installieren, enthält sie die GHC-Dokumente und die GHC-Bibliotheksdokumente (die die Kernbibliotheken abdecken). Unter Windows befinden sie sich im Startmenü unter "Alle Programme | Haskell-Plattform".

arx
quelle
Das ist gut zu wissen. Gibt es so etwas unter Linux?
Andriy Drozdyuk
Ich denke, die Haskell-Plattform sollte unter verschiedenen Betriebssystemen ähnlich sein, aber ich habe sie unter Linux noch nie verwendet. Wenn Sie es installiert haben, können Sie nach der Datei "Data-Binary.html" (den Dokumenten für Data.Binary) suchen, um festzustellen, ob die Dokumente irgendwo installiert wurden.
Arx
4
@drozzy: Unter Debian / Ubuntu gibt es meiner Meinung nach Dokumentationspakete, die haskell-platform-docSie installieren können.
li.davidm
Die haskell-Plattform wird nicht mehr gewartet und war immer veraltet, daher hatte ich dies nicht als gute Antwort angesehen
dredozubov
1
@dredozubov Quelle? Ich kann nichts darüber finden, dass es in Zukunft nicht mehr gewartet wird.
Andriy Drozdyuk
10

Bearbeiten Sie Ihre ~ / .cabal / config-Datei. Suchen Sie nach der Zeile (wahrscheinlich auskommentiert), in der steht documentation: False. Ändern Sie diese Zeile in documentation: Trueund kommentieren Sie sie aus. Wenn Sie jetzt Projekte mit cabal installDokumentation erstellen, werden diese auch lokal erstellt und gespeichert.

Wenn Sie sich in derselben Konfigurationsdatei etwas genauer umschauen, finden Sie Optionen wie doc-index-file, docdir, datadir, prefix usw., mit denen Sie konfigurieren können, wo die Dokumentation gespeichert ist.

mächtiges Byte
quelle
5

Es mag an sich nicht "kanonisch" sein, aber ich glaube, dass die nützlichste Option eine Docset-Software wie Dash (OS X) / Eifer + generierte Docsets ist. Auf diese Weise erhalten Sie die Suche kostenlos und haben auch die Möglichkeit, Ihre benutzerdefinierten Docsets zu erstellen. Es ist kein Problem, die 'Basis'-Paket-Schellfischdokumentation mit einem der Projekte sofort zu erhalten. Sie können benutzerdefinierte Docsets mit haddocset oder dash-haskell erstellen . Außerdem lässt es sich gut in emacs / vim / andere Editoren integrieren, ermöglicht es Ihnen, projektbasierte Dokumentensätze zu erstellen (Sie haben auf diese Weise die relevanten Versionen pro Projekt, vergessen Sie all diesen Aufwand mit lokalem hoogle!) Und tun Sie dies nicht Beschränken Sie sich auf jeden Build-Flow, den Sie haben können.

Wenn Sie Ihr Projekt mit erstellen, können cabal-installSie documentation: Truein Ihrem festlegen ~/.cabal/config, dann installieren Sie die Abhängigkeiten neu, um lokal generierte Schellfische zu erhalten.

Wenn Sie einen Stapel verwenden , können Sie den stack haddockBefehl verwenden, um Ihre Abhängigkeiten und Projekte mit generierten Schellfischen zu erstellen.

dredozubov
quelle
3

Ich benutze devdocs.io , es hat Dokumente für viele Sprachen und Bibliotheken (einschließlich Haskell) und einen Offline-Modus.

stusherwin
quelle
1

Velocity ist ein freies und schönes universelles Werkzeug, um genau das zu tun. Es unterstützt eine Vielzahl von Sprachen, Technologien und Bibliotheken sowie die Aktualisierung mit einem Klick.

In der Dokumentationsliste finden Sie wahrscheinlich mehr von dem, was Sie bereits verwenden.

Hardcore
quelle
1

Installieren Sie unter Windows die wget- und curl-Pakete von cygwin. Das wird ermöglichen hoogle data.

Pete Klein
quelle
0

Wenn Sie zufällig eine von Debian abgeleitete Distribution und deren Pakete verwenden, finden Sie die kombinierte Dokumentation aller installierten Haskell-Pakete (wenn Sie auch die libghc-foo-docPakete installieren ) unter

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

Darüber hinaus libghc-foo-docenthalten die Pakete die für hoogle erforderlichen Dateien. Wenn Sie dies tun, apt-get install hooglesollten Sie sofort in der Lage sein, hooglealle auf diese Weise installierten Bibliotheken zu durchsuchen.

Joachim Breitner
quelle