2009-10-19 10 views
10

Estoy usando GHC y he instalado varios paquetes a través de Cabal. Uno de los sitios web de los paquetes dice "ve a ver la documentación de eglefino". El comando haddock parece que solo funciona en los archivos fuente, y cabal haddock solo parece funcionar en el directorio de nivel superior de un proyecto con un archivo de compilación .cabal. ¿Hay alguna manera de decir "muéstrame el eglefino" para un módulo?Haddock para módulos instalados Cabal?

Estoy añorando pydoc -p 12345 que inicia un servidor HTTP que proporciona la documentación de Python en función de lo que ha instalado localmente.

Como solución alternativa, extraje el tarball fuente de menos de ~/.cabal y ejecuté cabal configure; cabal haddock en el directorio fuente, pero eso es un poco molesto.

Respuesta

19

editar el fichero de configuración:

~/.cabal/config

hay una opción para activar la instalación por defecto doc:

documentación: La verdadera

para instalar el documento de paquetes existentes, use:

Cabal instala XXX --reinstall

reinstalar documentos de paquetes básicos a continuación, los paquetes de nivel superior, por lo que el "hiperenlace" a otros módulos se generará correctamente.

3

Esto es known issue. Como solución alternativa puede configurar su instalación de Apache (si tiene una) para servir su directorio de doc usando this small PHP script.

+0

@Martjin: con respecto a ese enlace, ¿funciona hackage.haskell.org para usted? desde aquí parece que no funcionará durante los últimos dos días, y http://downforeveryoneorjustme.com/hackage.haskell.org confirma ... – yairchu

+0

Gracias, sus notas en esa publicación también me llevaron a cambiar mi .cabal/config para generar documentos por defecto. –

+0

Hackage debería ser una copia de seguridad ahora. :-) Sí, estuvo fuera por un tiempo. La gente también preguntaba por el café Haskell. – Martijn

3

Usted debe ser capaz de generar la documentación local con:

cabal install $project --haddock 

Asumiendo que tiene instalado Haddock.

+1

Gracias - el enlace de hackage en la otra respuesta me llevó a la misma bandera. Luego actualicé mi archivo .cabal/config para que sea el predeterminado. Ahora (en OS X) puedo decir "open ~/.cabal/share/doc/$ project - */html/index.html" y los documentos aparecen en mi navegador. He escrito una función bash para hacer eso para un nombre de proyecto o imprimir un mensaje de error si el archivo index.html no existe. –

7

La bandera --haddock no funcionó para mí. Sin embargo, la sustitución con --haddock--enable-documentation hizo:

cabal install $project --enable-documentation 

Ahora, si podían permitir que la bandera --hyperlink-source a través de la cremallera de eglefino estaría muy feliz.

Cuestiones relacionadas