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.
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:
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
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.
hoogle data alle hoogle data --localfaccio / scarica molte cose, ma ancora non mi permette di trovare funzioni nei pacchetti (ad esempio parseFileWithMode). Dovrebbe funzionare?
hoogle +haskell-src-exts parseFile
hoogle server --localha bisogno di più visibilità. È l'analogo ad es godoc -http.
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 .
hoogle server --local
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".
haskell-platform-docche puoi installare.
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.
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.
Uso devdocs.io , ha documenti per molte lingue e librerie (incluso Haskell) e ha una modalità offline.
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.
Per Windows, installa i pacchetti wget e curl di cygwin. Ciò consentirà hoogle data.
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.
documentation: Trueal tuo~/.cabal/configfile e poi reinstallando quei pacchetti concabal install world --reinstall.