Documentazione offline Haskell?


94

Quali sono le possibilità, se ce ne sono, per ottenere documenti offline per le librerie principali Haskell (e forse anche di più)?

A volte porto il mio laptop al bar dove non c'è wifi, e sarebbe bello avere qualcosa come Hoogle ma per uso offline.

Risposte:


53

Hoogle è disponibile offline, installabile da Cabal: http://hackage.haskell.org/package/hoogle

Le istruzioni per l'uso sono disponibili all'indirizzo http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .

Utilizzo:

$ 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

Crea un database predefinito con hoogle data(maggiori informazioni su http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

EDIT: una sessione di utilizzo dopo l'installazione di Hoogle localmente:

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

Mi sono imbattuto in un errore qui ... apparentemente è correlato alla versione di Cabal, quindi l'ho aggiornato (http://hackage.haskell.org/trac/hackage/ticket/811). Ciò non ha aiutato, quindi ho eseguito hoogle data all, che ho annullato poiché ci stava mettendo così tanto tempo (sembra passare attraverso ogni pacchetto su Hackage). Ancora non consentirebbe una query come hoogle mapma lo ha permesso hoogle map +base(cioè limita la ricerca al basepacchetto) Speriamo che funzioni per te!

EDIT2: questo sembra risolvere il problema (per me):

$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
Probabilmente vorrai anche abilitare la documentazione per i tuoi pacchetti installati, aggiungendoli documentation: Trueal tuo ~/.cabal/configfile e poi reinstallando quei pacchetti con cabal install world --reinstall.
Hammar

2
hoogle data --localmi ci sono voluti 3 minuti (la maggior parte dei quali stava scaricando) posso quindi eseguire hoogle foldlche trova la funzione foldl, oppure hoogle server --locale quindi visitare http://localhost/che è sia un server completo che include collegamenti alla documentazione HTML.
Neil Mitchell,

1
@ NeilMitchell hoogle data alle hoogle data --localfaccio / scarica molte cose, ma ancora non mi permette di trovare funzioni nei pacchetti (ad esempio parseFileWithMode). Dovrebbe funzionare?
NH2

1
@ nh2: per impostazione predefinita Hoogle cerca solo la piattaforma, provahoogle +haskell-src-exts parseFile
Neil Mitchell

1
hoogle server --localha bisogno di più visibilità. È l'analogo ad es godoc -http.
sjakobi

21

La documentazione HTML può essere scaricata .tar.bz2dal sito Web Haskell:

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

Ho appena scaricato https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 ed è esattamente quello che speravo.

Ci sono anche altre opzioni, come Dash e Zeal , e vedi anche quel thread reddit .


Risposta non aggiornata :( sembra che il primo collegamento sia interrotto.
MaiaVictor

Eccolo. Grazie!
MaiaVictor

Questa è la risposta migliore per me, dal momento che non sono riuscito a raggiungere lo scopo conhoogle server --local
user24601

14

Se installi la piattaforma Haskell, include i documenti GHC e i documenti della libreria GHC (che coprono le librerie principali). Su Windows si trovano nel menu Start sotto "Tutti i programmi | Piattaforma Haskell".


È fantastico sapere. C'è qualcosa del genere su Linux?
Andriy Drozdyuk,

Penso che la piattaforma Haskell dovrebbe essere più o meno la stessa su diversi sistemi operativi, ma non l'ho mai usata su Linux. Se lo hai installato puoi provare a cercare il file "Data-Binary.html" (i documenti per Data.Binary) per vedere se i documenti sono stati installati da qualche parte.
arx

4
@drozzy: su Debian / Ubuntu, credo che ci siano pacchetti di documentazione haskell-platform-docche puoi installare.
li.davidm

La piattaforma haskell non verrà più mantenuta ed è sempre stata obsoleta, quindi non l'avevo considerata una buona risposta
dredozubov

1
@dredozubov Fonte? Non riesco a trovare nulla sul fatto che non venga mantenuto in futuro.
Andriy Drozdyuk

10

Modifica il tuo file ~ / .cabal / config. Cerca la riga (probabilmente commentata) che dice documentation: False. Cambia quella riga in documentation: Truee rimuovila dal commento. Ora quando si costruiscono progetti con cabal installdocumentazione verranno anche compilati e salvati localmente.

Guardati intorno un po 'di più nello stesso file di configurazione e troverai cose opzioni come doc-index-file, docdir, datadir, prefix, ecc che ti permettono di configurare dove è archiviata la documentazione.


5

Potrebbe non essere "canonico" di per sé, ma credo che l'opzione più utile sia un software docset come dash (OS X) / zeal + docsets generati. In questo modo otterrai la ricerca gratuitamente e avrai anche un'opzione per creare i tuoi set di documenti personalizzati. Non è un problema ottenere la documentazione dell'eglefino del pacchetto "base" con uno dei progetti fuori dalla scatola. Puoi creare set di documenti personalizzati con haddocset o dash-haskell . Inoltre si integra bene con emacs / vim / altri editor, ti consente di avere set di documenti basati su progetti (avrai le versioni pertinenti in base al progetto in questo modo, dimentica tutte queste seccature con hoogle locale!) E non farlo limitarti a qualsiasi flusso di build che puoi avere.

Se crei il tuo progetto con cabal-installpuoi impostare documentation: Truenel tuo ~/.cabal/config, quindi reinstalla le dipendenze per ottenere gli eglefini generati localmente.

Se stai usando lo stack , puoi utilizzare il stack haddockcomando per costruire le tue dipendenze e il progetto con eglefini generati.



1

Velocity è uno strumento universale gratuito e bellissimo per fare proprio questo. Supporta un'ampia gamma di linguaggi, tecnologie e librerie e l'aggiornamento con un clic.

Probabilmente sarai in grado di trovare più di ciò che stai già utilizzando nella sua lista di documentazione.


1

Per Windows, installa i pacchetti wget e curl di cygwin. Ciò consentirà hoogle data.


0

Se ti capita di utilizzare una distribuzione derivata da Debian ei relativi pacchetti, troverai la documentazione combinata di tutti i pacchetti Haskell installati (se installi anche i libghc-foo-docpacchetti) su

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

Inoltre, i libghc-foo-docpacchetti contengono i file necessari per hoogle, quindi se tu apt-get install hoogle, dovresti essere immediatamente in grado di utilizzare hoogleper cercare tra tutte le librerie installate in questo modo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.