2012-02-26 12 views
89

¿Cuáles son las posibilidades, si las hay, de obtener documentos fuera de línea para las bibliotecas centrales de Haskell (y tal vez más)?Haskell documentación fuera de línea?

A veces llevo mi computadora portátil a la cafetería donde no hay wifi, y sería bueno tener algo como Hoogle pero para uso fuera de línea.

Respuesta

48

Hoogle está disponible sin conexión, instalable de Cabal: instrucciones http://hackage.haskell.org/package/hoogle

de uso están en http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags.

Uso:

$ 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 

Crear una base de datos por defecto con hoogle data (más información en http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html).

EDIT: Una sesión de uso después de instalar localmente Hoogle:

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

me encontré con un error aquí ... parece ser que está relacionado con la versión de Cabal, así que actualiza que (http: // hackage.haskell.org/trac/hackage/ticket/811). Eso no ayudó, así que ejecuté hoogle data all, que cancelé porque llevaba tanto tiempo (parece que reviso todos los paquetes de Hackage). Todavía no permitía una consulta como hoogle map pero permitía hoogle map +base (es decir, restringir la búsqueda al paquete base) ¡Espero que funcione para usted!

Edit2: Esto parece solucionar el problema (para mí):

$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

También es probable que desee habilitar la documentación de sus paquetes instalados, agregando 'documentation: True' a su archivo' ~/.cabal/config' y luego reinstalar esos paquetes con 'cabal install world --reinstall'. – hammar

+0

También tengo un problema con el comando 'hoogle data'. Lástima, hubiera sido una buena solución, si funcionó. – drozzy

+2

'' hoogle data --local'' me llevó 3 minutos (la mayor parte de los cuales fue la descarga) Puedo ejecutar '' hoogle foldl'' que encuentra la función foldl, o '' hoogle server --local'' y luego visitar '' http: // localhost/'' que es un servidor completo _y_ incluye enlaces a la documentación HTML. –

14

Si instala la Plataforma Haskell que incluye los documentos de GHC y la documentación de la biblioteca de GHC (que cubren las bibliotecas del núcleo). En Windows están en el menú Inicio en "Todos los programas | Plataforma Haskell".

+0

Eso es genial saber. ¿Hay algo así en Linux? – drozzy

+0

Creo que se supone que la plataforma Haskell es muy parecida en sistemas operativos diferentes, pero nunca la he usado en Linux. Si lo tienes instalado, podrías intentar buscar el archivo "Data-Binary.html" (los documentos para Data.Binary) para ver si los documentos se han instalado en alguna parte. – arx

+4

@drozzy: en Debian/Ubuntu, creo que hay paquetes de documentación como 'haskell-platform-doc' que puede instalar. –

8

Edite su archivo ~/.cabal/config. Busque la línea (probablemente comentada) que dice documentation: False. Cambie esa línea al documentation: True y elimine el comentario. Ahora cuando construyas proyectos con cabal install, la documentación también se compilará y guardará localmente.

Mire un poco más en ese mismo archivo de configuración y encontrará opciones de cosas como doc-index-file, docdir, datadir, prefix, etc. que le permiten configurar dónde se almacena la documentación.

19

La documentación HTML se pueden descargar como Tar.bz2 desde el sitio web Haskell:

https://www.haskell.org/ghc/docs/latest/html

que acaba de descargar http://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 y es exactamente lo que he estado esperando.

Para ver los últimos documentos: https://downloads.haskell.org/~ghc/latest/docs/

ACTUALIZACIÓN: También hay otras opciones, such as Dash and Zeal, y ver también that reddit thread.

+0

Respuesta no actualizada :(parece que el primer enlace está roto. – MaiaVictor

+0

Tienes razón, actualicé la primera URL. –

+0

Ahí está. ¡Gracias! – MaiaVictor

0

Si le sucede a estar usando una distribución derivada de Debian y sus paquetes, a continuación, encontrará la documentación combinado de todos los paquetes de Haskell instalados (si también instala los libghc-foo-doc paquetes) en

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

Por otra parte, el Los paquetes libghc-foo-doc contienen los archivos necesarios para hoogle, por lo tanto, si tiene apt-get install hoogle, debe usar inmediatamente hoogle para buscar entre todas las bibliotecas instaladas de esta manera.

5

Puede que no sea "canónico" per se, pero creo que la opción más útil es un software de docset como (OS X)/zeal + docsets generados. De esta manera obtendrá la búsqueda de forma gratuita y también tendrá una opción para crear sus conjuntos de documentos personalizados. No hay problema en obtener la documentación del paquete base 'eglefino' con cualquiera de los proyectos listos para usar. Puede crear conjuntos de documentos personalizados con haddocset o dash-haskell. También se integra muy bien con emacs/vim/otros editores, le permite tener docsets basados ​​en proyectos (¡tendrá las versiones relevantes por proyecto de esta manera, olvidará todas estas molestias con el hoogle local!) Y no restringirlo a cualquier flujo de compilación que pueda tener.

Si construye su proyecto con cabal-install, puede configurar documentation: True en su documentation: True, luego reinstalar las dependencias para obtener los eglefinos generados localmente.

Si está utilizando stack, puede utilizar el comando stack haddock para construir sus dependencias y proyectar con eglefinas generadas.

1

Velocity es una herramienta universal gratuita y hermosa para hacer eso. Es compatible con una amplia gama de idiomas, tecnologías y bibliotecas, y con un clic de actualización.

Probablemente podrá encontrar más de lo que ya está utilizando en su lista de documentación.

1

Para Windows, instale los paquetes wg y curl de cygwin. Eso habilitará hoogle data.

1

Uso devdocs.io, tiene documentos para muchos idiomas y bibliotecas (incluyendo Haskell) y tiene un modo fuera de línea.

Cuestiones relacionadas