Documentação offline de Haskell?

94

Quais são as possibilidades, se houver, de obter documentos offline para bibliotecas centrais Haskell (e talvez mais)?

Às vezes levo meu laptop para a cafeteria onde não há wi-fi, e seria bom ter algo como Hoogle, mas para uso offline.

Andriy Drozdyuk
fonte

Respostas:

53

Hoogle está disponível off-line, instalável em Cabal: http://hackage.haskell.org/package/hoogle

As instruções de uso estão em 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

Crie um banco de dados padrão com hoogle data(mais informações em http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

EDIT: Uma sessão de uso após instalar o Hoogle localmente:

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

Encontrei um erro aqui ... aparentemente, ele está relacionado à versão do Cabal, então eu atualizei isso (http://hackage.haskell.org/trac/hackage/ticket/811). Isso não ajudou, então eu executei hoogle data all, o que cancelei porque estava demorando muito (parece que vai passar por todos os pacotes no Hackage). Ele ainda não permitiria uma consulta como, hoogle mapmas permitiu hoogle map +base(ou seja, restringiu a pesquisa ao basepacote) Espero que funcione para você!

EDIT2: Isso parece resolver o problema (para mim):

$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
fonte
15
Você provavelmente também deseja habilitar a documentação para seus pacotes instalados, adicionando documentation: Trueao seu ~/.cabal/configarquivo e reinstalando esses pacotes com cabal install world --reinstall.
hammar
2
hoogle data --localLevei 3 minutos (a maioria dos quais estava baixando). Posso então executar o hoogle foldlque encontra a função foldl ou hoogle server --localvisitar o http://localhost/qual é um servidor completo e inclui links para a documentação HTML.
Neil Mitchell
1
@NeilMitchell hoogle data alle hoogle data --localfaço / baixa um monte de coisas, mas ainda não me deixa encontrar funções em pacotes (por exemplo parseFileWithMode). Isso deveria funcionar?
nh2
1
@ nh2: por padrão, o Hoogle pesquisa apenas na plataforma, tentehoogle +haskell-src-exts parseFile
Neil Mitchell
1
hoogle server --localprecisa de mais visibilidade. É o analogon para, por exemplo godoc -http.
sjakobi,
21

A documentação HTML pode ser baixada .tar.bz2no site da Haskell:

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

Acabei de baixar https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 e é exatamente o que esperava.

Existem também outras opções, como Dash e Zeal , e veja também o tópico do reddit .

Emmanuel Touzery
fonte
Resposta desatualizada :( parece que o primeiro link está quebrado.
MaiaVictor
Aí está. Obrigado!
MaiaVictor
Essa é a melhor resposta para mim, já que não consegui atingir o objetivo comhoogle server --local
user24601
14

Se você instalar a Plataforma Haskell, ela incluirá os documentos do GHC e os documentos da biblioteca do GHC (que cobrem as bibliotecas centrais). No Windows, eles estão no menu Iniciar em "Todos os programas | Plataforma Haskell".

arx
fonte
É ótimo saber disso. Existe algo assim no Linux?
Andriy Drozdyuk de
Acho que a plataforma Haskell deve ser praticamente a mesma em diferentes sistemas operacionais, mas nunca a usei no Linux. Se você o instalou, pode tentar pesquisar o arquivo "Data-Binary.html" (os documentos para Data.Binary) para ver se os documentos foram instalados em algum lugar.
arx
4
@drozzy: No Debian / Ubuntu, acredito que existem pacotes de documentação que haskell-platform-docvocê pode instalar.
li.davidm
A plataforma haskell não será mais mantida e sempre esteve desatualizada, então eu não considerei isso uma boa resposta
dredozubov
1
Fonte @dredozubov? Não consigo encontrar nada sobre ele não ser mantido no futuro.
Andriy Drozdyuk de
10

Edite seu arquivo ~ / .cabal / config. Procure a linha (provavelmente comentada) que diz documentation: False. Altere essa linha para documentation: Truee descomente. Agora, quando você construir projetos com cabal installdocumentação também será criado e salvo localmente.

Procure um pouco mais naquele mesmo arquivo de configuração e você encontrará opções de coisas como doc-index-file, docdir, datadir, prefix, etc, que permitem que você configure onde a documentação é armazenada.

poderoso byte
fonte
5

Pode não ser "canônico" per se, mas acredito que a opção mais útil é um software docset como dash (OS X) / zeal + docsets gerados. Desta forma, você obterá a pesquisa gratuitamente e também terá a opção de criar seus conjuntos de documentos personalizados. Não há problema em obter a documentação de haddock do pacote 'básico' com qualquer um dos projetos fora da caixa. Você pode construir conjuntos de documentos personalizados com haddocset ou dash-haskell . Também se integra perfeitamente com emacs / vim / outros editores, permite que você tenha conjuntos de documentos baseados em projeto (você terá as versões relevantes por projeto desta forma, esqueça todo esse trabalho com hoogle local!) E não restringir você a qualquer fluxo de construção que você possa ter.

Se você construir seu projeto com cabal-installvocê pode definir documentation: Trueem seu e ~/.cabal/config, em seguida, reinstalar as dependências para obter haddocks gerados localmente.

Se estiver usando pilha , você pode utilizar o stack haddockcomando para construir suas dependências e projeto com hadoques gerados.

dredozubov
fonte
3

Eu uso devdocs.io , ele tem documentos para várias linguagens e bibliotecas (incluindo Haskell) e tem um modo offline.

Stusherwin
fonte
1

O Velocity é uma ferramenta universal gratuita e bonita para fazer exatamente isso. Suporta uma ampla gama de linguagens, tecnologias e bibliotecas, e atualização com um clique.

Provavelmente, você encontrará mais do que já está usando na lista de documentação.

hardcore
fonte
1

Para Windows, instale os pacotes wget e curl do cygwin. Isso vai permitir hoogle data.

Pete Klein
fonte
0

Se você estiver usando uma distribuição derivada do Debian e seus pacotes, então você encontrará a documentação combinada de todos os pacotes Haskell instalados (se você também instalar os libghc-foo-docpacotes) em

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

Além disso, os libghc-foo-docpacotes contêm os arquivos necessários para o hoogle, portanto, se você apt-get install hoogle, você deve ser capaz hooglede pesquisar imediatamente em todas as bibliotecas instaladas dessa forma.

Joachim Breitner
fonte