Офлайн-документация Haskell?

95

Каковы возможности, если таковые имеются, для получения офлайн-документации для основных библиотек Haskell (и, возможно, большего количества)?

Иногда я беру свой ноутбук в кофейню, где нет Wi-Fi, и было бы неплохо иметь что-то вроде Hoogle, но для автономного использования.

Андрей Дроздюк
источник

Ответы:

54

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 ).

РЕДАКТИРОВАТЬ: сеанс использования после локальной установки Hoogle:

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

Здесь я столкнулся с ошибкой ... очевидно, это связано с версией Кабала, поэтому я обновил ее (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
li.davidm
источник
15
Вы также, вероятно, захотите включить документацию для установленных пакетов, добавив documentation: Trueв свой ~/.cabal/configфайл, а затем переустановив эти пакеты с помощью cabal install world --reinstall.
hammar
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».

arx
источник
Приятно знать. В linux есть что-то подобное?
Андрей Дроздюк
Я думаю, что платформа Haskell должна быть одинаковой в разных ОС, но я никогда не использовал ее в Linux. Если он у вас установлен, вы можете попробовать найти файл «Data-Binary.html» (документация для Data.Binary), чтобы узнать, были ли где-то установлены документы.
arx
4
@drozzy: Я считаю, что в Debian / Ubuntu есть пакеты документации, которые haskell-platform-docвы можете установить.
li.davidm
Платформа haskell больше не будет поддерживаться, и она всегда была устаревшей, поэтому я не считал это хорошим ответом
dredozubov
1
@dredozubov Источник? Я не могу найти ничего о том, что он не будет поддерживаться в будущем.
Андрей Дроздюк 01
10

Отредактируйте ваш файл ~ / .cabal / config. Найдите строку (возможно, закомментированную), в которой говорится documentation: False. Измените эту строку на documentation: Trueи раскомментируйте ее. Теперь при построении проектов cabal installдокументация также будет собираться и сохраняться локально.

Посмотрите еще немного в том же файле конфигурации, и вы найдете такие параметры, как doc-index-file, docdir, datadir, prefix и т. Д., Которые позволяют вам настроить, где хранится документация.

могучий байт
источник
5

Возможно, это не «канонический» сам по себе, но я считаю, что наиболее полезным вариантом является программное обеспечение docset, такое как dash (OS X) / zeal + сгенерированные наборы документов. Таким образом, вы получите бесплатный поиск, а также сможете создавать свои собственные наборы документов. Получить «базовую» документацию по пикше для любого из проектов - не проблема. Вы можете создавать собственные наборы документов с помощью haddocset или dash-haskell . Кроме того, он прекрасно интегрируется с редакторами emacs / vim / другими, позволяет вам иметь наборы документации на основе проектов (таким образом у вас будут соответствующие версии для каждого проекта, забудьте обо всех этих хлопотах с локальным хулиганом!) ограничить вас любым потоком сборки, который вы можете иметь.

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

Если вы используете стек , вы можете использовать stack haddockкоманду для построения ваших зависимостей и проекта со сгенерированными пикшами.

дредозубов
источник
3

Я использую devdocs.io , в нем есть документация для многих языков и библиотек (включая Haskell) и есть автономный режим.

Stusherwin
источник
1

Velocity - это бесплатный и красивый универсальный инструмент для этого. Он поддерживает широкий спектр языков, технологий и библиотек, а также обновление в один клик.

Вы, вероятно, сможете найти больше из того, что вы уже используете, в его списке документации.

хардкор
источник
1

Для Windows установите пакеты cygwin wget и curl. Это позволит hoogle data.

Пит Кляйн
источник
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для поиска по всем установленным таким образом библиотекам.

Иоахим Брайтнер
источник