Документація Haskell в автономному режимі?


94

Які існують можливості отримання офлайн-документів для основних бібліотек Haskell (а може і більше)?

Іноді я беру свій ноутбук у кав’ярню, де немає wifi, і було б непогано мати щось на зразок Hoogle, але для використання в автономному режимі.

Відповіді:


53

Hoogle доступний у режимі офлайн, інстальований у Cabal: http://hackage.haskell.org/package/hoogle

Інструкції з використання розміщені на веб-сторінці http://www.haskell.org/haskellwiki/Hoogle#Command_Line_Search_Flags .

Використання:

$ 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

Створіть базу даних за замовчуванням за допомогою hoogle data(більше інформації на веб-сайті http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html ).

EDIT: Сеанс використання після локальної установки Hoogle:

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

Тут я зіткнувся з помилкою ... мабуть, це пов’язано з версією Cabal, тому я оновив її (http://hackage.haskell.org/trac/hackage/ticket/811). Це не допомогло, тому я побіг hoogle data all, який я скасував, оскільки пройшло так довго (здається, проходжу кожен пакет на Hackage). Він все одно не дозволить запит типу, hoogle mapале дозволив hoogle map +base(тобто обмежити пошук наbase пакетом). Сподіваємось, він працює для вас!

EDIT2: Це, здається, вирішує проблему (для мене):

$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
Ви, ймовірно, також хочете включити документацію для встановлених пакунків, додавши documentation: Trueдо свого ~/.cabal/configфайлу та повторно встановивши ці пакунки cabal install world --reinstall.
гаммар

2
hoogle data --localмені знадобилося 3 хвилини (більшість з яких завантажувалось), то я можу запустити, hoogle foldlякий знаходить функцію foldl, або hoogle server --localпотім відвідати http://localhost/який є повноцінним сервером і містить посилання на документацію HTML.
Ніл Мітчелл

1
@NeilMitchell hoogle data allі hoogle data --localробити / завантажувати багато матеріалів, але це все ще не дозволяє мені знаходити функції в пакетах (наприклад parseFileWithMode). Це має працювати?
nh2

1
@ nh2: за замовчуванням Hoogle шукає лише платформу, спробуйтеhoogle +haskell-src-exts parseFile
Ніл Мітчелл

1
hoogle server --localпотребує більшої видимості. Це аналог напр godoc -http.
sjakobi

21

Документацію HTML можна завантажити .tar.bz2з веб-сайту Haskell:

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

Щойно я завантажив https://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2, і саме на це я сподівався.

Є й інші параметри, такі як Dash і Zeal , і дивіться також цю нитку reddit .


Відповідь не актуальна :( здається, що перше посилання розірвано.
MaiaVictor

Там. Дякую!
MaiaVictor

Це найкраща відповідь для мене, оскільки я не зміг досягти мети зhoogle server --local
user24601

14

Якщо ви встановите платформу Haskell, вона включає документи GHC та документи GHC-бібліотеки (які охоплюють основні бібліотеки). У Windows вони знаходяться в меню "Пуск" у розділі "Усі програми | Платформа Haskell".


Це чудово знати. Чи є щось подібне на Linux?
Андрій Дроздюк

Я думаю, що платформа Haskell повинна бути майже однаковою на різних ОС, але я ніколи не використовував її в Linux. Якщо ви встановили його, ви можете спробувати шукати файл "Data-Binary.html" (документи для Data.Binary), щоб побачити, чи документи десь встановлені.
аркс

4
@drozzy: На Debian / Ubuntu, я вважаю, є такі пакети документації, які haskell-platform-docви можете встановити.
li.davidm

Платформа haskell більше не підтримуватиметься, і вона завжди застаріла, тому я не вважав це гарною відповіддю
dredozubov

1
@dredozubov Джерело? Я нічого не можу знайти, щоб це не підтримувалося в майбутньому.
Андрій Дроздюк

10

Відредагуйте файл ~ / .cabal / config. Шукайте рядок (напевно, прокоментований), який говорить documentation: False. Змініть цей рядок documentation: Trueі коментуйте його. Тепер, коли ви будуєте проекти з cabal installдокументацією, також буде побудовано та збережено локально.

Погляньте трохи більше на цей же конфігураційний файл, і ви знайдете такі параметри, як doc-index-файл, docdir, datadir, префікс тощо, що дозволяють налаштувати, де зберігається документація.


5

Це може бути не "канонічним", але я вважаю, що найбільш корисним варіантом є таке програмне забезпечення для доксетів, як тире (OS X) / ревність + створені доксети. Таким чином, ви отримаєте пошук безкоштовно, а також матимете можливість створювати свої власні доксети. Немає жодної проблеми отримати документацію на вигук базового пакету для будь-якого з проектів. Ви можете створювати власні доксети за допомогою haddocset або dash-haskell . Крім того, він чудово інтегрується з редакторами emacs / vim / інші, дозволяє вам мати проектні доксети (у вас будуть відповідні версії на проектній основі таким чином, забудьте про всі ці клопоти з локальним google!) І не обмежують будь-який потік збірки, який ви можете мати.

Якщо ви будуєте свій проект, cabal-installви можете встановити documentation: Trueсвій ~/.cabal/config, а потім перевстановити залежності, щоб отримати згенеровані вигуки локально.

Якщо ви використовуєте стек , ви можете використовувати stack haddockкоманду для побудови залежностей і проектування з генерованими вигуками.


3

Я використовую devdocs.io , він має документи для багатьох мов і бібліотек (включаючи Haskell) і має офлайн-режим.


1

Швидкість - це вільний і красивий універсальний інструмент зробити саме це. Він підтримує широкий спектр мов, технологій та бібліотек та оновлення одним кліком.

Напевно ви зможете знайти більше того, що ви вже використовуєте, у його списку документації.



0

Якщо ви випадково використовуєте похідний дистрибутив Debian та їхні пакети, ви знайдете комбіновану документацію всіх встановлених пакетів Haskell (якщо ви також встановите libghc-foo-docпакети) на

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

Крім того, libghc-foo-docпакети містять необхідні файли для hoogle, тож якщо ви apt-get install hoogle, то вам слід негайно мати можливість користуватися hoogleпошуком усіх встановлених таким чином бібліотек.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.