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 map
ma lo ha permesso hoogle map +base
(cioè limita la ricerca al base
pacchetto) 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 --local
mi ci sono voluti 3 minuti (la maggior parte dei quali stava scaricando) posso quindi eseguire hoogle foldl
che trova la funzione foldl, oppure hoogle server --local
e quindi visitare http://localhost/
che è sia un server completo che include collegamenti alla documentazione HTML.
hoogle data all
e hoogle data --local
faccio / 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 --local
ha bisogno di più visibilità. È l'analogo ad es godoc -http
.
La documentazione HTML può essere scaricata .tar.bz2
dal 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-doc
che puoi installare.
Modifica il tuo file ~ / .cabal / config. Cerca la riga (probabilmente commentata) che dice documentation: False
. Cambia quella riga in documentation: True
e rimuovila dal commento. Ora quando si costruiscono progetti con cabal install
documentazione 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-install
puoi impostare documentation: True
nel tuo ~/.cabal/config
, quindi reinstalla le dipendenze per ottenere gli eglefini generati localmente.
Se stai usando lo stack , puoi utilizzare il stack haddock
comando 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-doc
pacchetti) su
file:///usr/share/doc/ghc-doc/html/libraries/index.html
Inoltre, i libghc-foo-doc
pacchetti contengono i file necessari per hoogle, quindi se tu apt-get install hoogle
, dovresti essere immediatamente in grado di utilizzare hoogle
per cercare tra tutte le librerie installate in questo modo.
documentation: True
al tuo~/.cabal/config
file e poi reinstallando quei pacchetti concabal install world --reinstall
.