¿Documentación sin conexión de Haskell?

94

¿Cuáles son las posibilidades, si las hay, de obtener documentos sin conexión para las bibliotecas centrales de Haskell (y tal vez más)?

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 sin conexión.

Andriy Drozdyuk
fuente

Respuestas:

53

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

Las instrucciones de uso se encuentran 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

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

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

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

Me encontré con un error aquí ... aparentemente está relacionado con la versión de Cabal, así que lo actualicé (http://hackage.haskell.org/trac/hackage/ticket/811). Eso no ayudó, así que corrí hoogle data all, lo cual cancelé ya que estaba tardando tanto (parece pasar por todos los paquetes en Hackage). Todavía no permitiría una consulta como, hoogle mappero sí permitió hoogle map +base(es decir, restringió la búsqueda al basepaquete). ¡Ojalá 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
li.davidm
fuente
15
Probablemente también desee habilitar la documentación para sus paquetes instalados, agregando documentation: Truea su ~/.cabal/configarchivo y luego reinstalando esos paquetes con cabal install world --reinstall.
Hammar
2
hoogle data --localMe tomó 3 minutos (la mayoría de los cuales se estaban descargando). Luego puedo ejecutar el hoogle foldlque encuentra la función foldl, o hoogle server --localy luego visitar, http://localhost/que es un servidor completo e incluye enlaces a la documentación HTML.
Neil Mitchell
1
@NeilMitchell hoogle data ally hoogle data --localhago / descargo muchas cosas, pero todavía no me permite encontrar funciones en paquetes (por ejemplo parseFileWithMode). ¿Se supone que esto funciona?
nh2
1
@ nh2: por defecto, Hoogle solo busca en la plataforma, inténtalohoogle +haskell-src-exts parseFile
Neil Mitchell
1
hoogle server --localnecesita más visibilidad. Es el análogo a eg godoc -http.
sjakobi
21

La documentación HTML se puede descargar .tar.bz2desde el sitio web de Haskell:

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

Acabo de descargar https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 y es exactamente lo que estaba esperando.

También hay otras opciones, como Dash y Zeal , y vea también ese hilo de reddit .

Emmanuel Touzery
fuente
Respuesta no actualizada :( parece que el primer enlace está roto.
MaiaVictor
Ahí está. ¡Gracias!
MaiaVictor
Esa es la mejor respuesta para mí, ya que no pude lograr el propósito conhoogle server --local
user24601
14

Si instala la plataforma Haskell, incluye los documentos GHC y los documentos de la biblioteca GHC (que cubren las bibliotecas principales). En Windows, se encuentran en el menú Inicio en "Todos los programas | Plataforma Haskell".

arx
fuente
Es genial saberlo. ¿Hay algo así en Linux?
Andriy Drozdyuk
Creo que se supone que la plataforma Haskell es muy similar en diferentes sistemas operativos, pero nunca la he usado en Linux. Si lo tiene instalado, puede intentar buscar el archivo "Data-Binary.html" (los documentos de Data.Binary) para ver si los documentos se han instalado en algún lugar.
arx
4
@drozzy: En Debian / Ubuntu, creo que hay paquetes de documentación haskell-platform-docque puedes instalar.
li.davidm
La plataforma Haskell ya no se mantendrá y siempre estuvo desactualizada, por lo que no lo consideré una buena respuesta
dredozubov
1
@dredozubov Fuente? No puedo encontrar nada sobre que no se mantenga en el futuro.
Andriy Drozdyuk
10

Edite su archivo ~ / .cabal / config. Busque la línea (probablemente comentada) que dice documentation: False. Cambie esa línea documentation: Truey descomente. Ahora, cuando cree proyectos con cabal installdocumentación, también se creará y guardará localmente.

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

mightybyte
fuente
5

Puede que no sea "canónica" de por sí, pero creo que la opción más útil es un software docset como tablero (OS X) / celo + docsets generados. De esta manera, obtendrá la búsqueda de forma gratuita y también tendrá la opción de crear sus conjuntos de documentos personalizados. No es ningún problema obtener la documentación de eglefino del paquete 'base' 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 conjuntos de documentos basados ​​en proyectos (de esta manera, tendrá las versiones relevantes por proyecto, ¡olvídese de todas estas molestias con hoogle local!) Y no lo haga restringirlo a cualquier flujo de compilación que pueda tener.

Si construye su proyecto con cabal-installpuede configurar documentation: Trueen su ~/.cabal/config, luego reinstale las dependencias para obtener eglefino generado localmente.

Si está usando la pila , puede utilizar el stack haddockcomando para construir sus dependencias y proyectar con abadejos generados.

Dredozubov
fuente
3

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

Stusherwin
fuente
1

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

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

duro
fuente
1

Para Windows, instale los paquetes wget y curl de cygwin. Eso permitirá hoogle data.

Pete Klein
fuente
0

Si está utilizando una distribución derivada de Debian y sus paquetes, encontrará la documentación combinada de todos los paquetes Haskell instalados (si también instala los libghc-foo-docpaquetes) en

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

Además, los libghc-foo-docpaquetes contienen los archivos necesarios para hoogle, por lo que si es así apt-get install hoogle, debería poder utilizarlos inmediatamente hooglepara buscar en todas las bibliotecas instaladas de esta manera.

Joachim Breitner
fuente