Dokumentacja offline Haskell?

95

Jakie są możliwości uzyskania dokumentów offline dla podstawowych bibliotek Haskell (a może i więcej)?

Czasami zabieram laptopa do kawiarni, w której nie ma Wi-Fi, i fajnie byłoby mieć coś takiego jak Hoogle, ale do użytku offline.

Andriy Drozdyuk
źródło

Odpowiedzi:

54

Hoogle jest dostępny w trybie offline, można go zainstalować z Cabal: http://hackage.haskell.org/package/hoogle

Instrukcje użytkowania znajdują się pod adresem http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .

Stosowanie:

$ 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

Utwórz domyślną bazę danych za pomocą hoogle data(więcej informacji na http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

EDYCJA: sesja użytkowania po lokalnej instalacji Hoogle:

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

Wystąpił tutaj błąd ... najwyraźniej jest on związany z wersją Cabal, więc zaktualizowałem to (http://hackage.haskell.org/trac/hackage/ticket/811). To nie pomogło, więc uruchomiłem hoogle data all, co anulowałem, ponieważ trwało to tak długo (wydaje się, że przechodzi przez każdą paczkę na Hackage). Nadal nie pozwalał na takie zapytanie, hoogle mapale pozwalał hoogle map +base(tj. Ograniczał wyszukiwanie do basepakietu). Mam nadzieję, że zadziała!

EDIT2: Wydaje się, że rozwiązuje problem (dla mnie):

$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
źródło
15
Prawdopodobnie chcesz również włączyć dokumentację dla zainstalowanych pakietów, dodając je documentation: Truedo ~/.cabal/configpliku, a następnie ponownie instalując te pakiety z cabal install world --reinstall.
hammar
2
hoogle data --localzajęło mi 3 minuty (z czego większość była pobierana). Mogę następnie uruchomić, hoogle foldlktóra znajduje funkcję foldl, lub hoogle server --localodwiedzić witrynę, http://localhost/która jest zarówno pełnym serwerem, jak i zawiera linki do dokumentacji HTML.
Neil Mitchell
1
@NeilMitchell hoogle data alli hoogle data --localrób / pobieraj wiele rzeczy, ale nadal nie pozwala mi znaleźć funkcji w pakietach (np parseFileWithMode.). Czy to ma zadziałać?
nh2
1
@ nh2: domyślnie Hoogle przeszukuje tylko platformę, spróbujhoogle +haskell-src-exts parseFile
Neil Mitchell
1
hoogle server --localpotrzebuje większej widoczności. To analogon do np godoc -http.
sjakobi,
21

Dokumentację HTML można pobrać .tar.bz2ze strony internetowej Haskell:

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

Właśnie pobrałem https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2 i właśnie tego oczekiwałem.

Istnieją również inne opcje, takie jak Dash i Zeal , a także zobacz ten wątek reddit .

Emmanuel Touzery
źródło
Odpowiedź nieaktualna :( wydaje się, że pierwszy link jest uszkodzony.
MaiaVictor
Tu jest. Dziękuję Ci!
MaiaVictor
To najlepsza odpowiedź dla mnie, ponieważ nie mogłem osiągnąć celu zhoogle server --local
user24601
14

Jeśli zainstalujesz platformę Haskell, będzie ona zawierała dokumentację GHC i dokumentację biblioteki GHC (która obejmuje podstawowe biblioteki). W systemie Windows znajdują się w menu Start pod „Wszystkie programy | Platforma Haskell”.

arx
źródło
Dobrze wiedzieć. Czy jest coś takiego w Linuksie?
Andriy Drozdyuk
Myślę, że platforma Haskell ma być podobna do różnych systemów operacyjnych, ale nigdy nie używałem jej w Linuksie. Jeśli masz ją zainstalowaną, możesz spróbować wyszukać plik „Data-Binary.html” (dokumentacja dla Data.Binary), aby sprawdzić, czy dokumenty zostały gdzieś zainstalowane.
arx
4
@drozzy: W Debianie / Ubuntu uważam, że istnieją pakiety dokumentacji, haskell-platform-docktóre można zainstalować.
li.davidm
Platforma haskell nie będzie już utrzymywana i zawsze była przestarzała, więc nie
uważałem
1
@dredozubov Source? Nie mogę znaleźć niczego, co by nie było utrzymywane w przyszłości.
Andriy Drozdyuk
10

Edytuj swój plik ~ / .cabal / config. Poszukaj linii (prawdopodobnie zakomentowanej), która mówi documentation: False. Zmień tę linię na documentation: Truei usuń komentarz. Teraz, gdy budujesz projekty z cabal installdokumentacją, będą również budowane i zapisywane lokalnie.

Rozejrzyj się trochę więcej w tym samym pliku konfiguracyjnym, a znajdziesz opcje, takie jak plik indeksu doc, docdir, datadir, prefiks itp., Które pozwalają skonfigurować miejsce przechowywania dokumentacji.

mightybyte
źródło
5

Może nie być „kanoniczne” jako takie, ale uważam, że najbardziej użyteczną opcją jest oprogramowanie docset, takie jak dash (OS X) / gorliwość + generowane zestawy dokumentów. W ten sposób uzyskasz bezpłatne wyszukiwanie, a także będziesz mieć możliwość tworzenia niestandardowych zestawów dokumentów. Nie ma problemu, aby pobrać dokumentację plamiaka z pakietu „bazowego” z którymkolwiek z projektów po wyjęciu z pudełka. Możesz tworzyć niestandardowe zestawy dokumentów za pomocą haddocset lub dash-haskell . Również ładnie integruje się z emacs / vim / innymi edytorami, pozwala na tworzenie dokumentów opartych na projektach (w ten sposób będziesz mieć odpowiednie wersje dla poszczególnych projektów, zapomnij o wszystkich kłopotach z lokalnym hoogle!) I nie ogranicza Cię do dowolnego przepływu kompilacji, jaki możesz mieć.

Jeśli budujesz swój projekt cabal-install, możesz ustawić documentation: Truew swoim ~/.cabal/config, a następnie ponownie zainstalować zależności, aby lokalnie wygenerować plamiak.

Jeśli używasz stosu , możesz użyć stack haddockpolecenia, aby zbudować swoje zależności i projekt z wygenerowanymi plamiakami.

dredozubov
źródło
3

Używam devdocs.io , ma dokumenty dla wielu języków i bibliotek (w tym Haskell) i ma tryb offline.

stusherwin
źródło
1

Velocity to darmowe i piękne, uniwersalne narzędzie, które to robi. Obsługuje szeroką gamę języków, technologii i bibliotek oraz aktualizację jednym kliknięciem.

Prawdopodobnie będziesz w stanie znaleźć więcej tego, czego już używasz na liście dokumentacji.

hardcore
źródło
1

W systemie Windows zainstaluj pakiety wget i curl cygwin. To umożliwi hoogle data.

Pete Klein
źródło
0

Jeśli używasz dystrybucji wywodzącej się z Debiana i ich pakietów, połączoną dokumentację wszystkich zainstalowanych pakietów Haskell (jeśli instalujesz również libghc-foo-docpakiety) znajdziesz na

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

Ponadto libghc-foo-docpakiety zawierają niezbędne pliki dla hoogle, więc jeśli ty apt-get install hoogle, powinieneś natychmiast móc użyć hoogledo przeszukiwania wszystkich zainstalowanych w ten sposób bibliotek.

Joachim Breitner
źródło