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

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

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

Ответ 1

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

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

$ 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

Ответ 2

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

https://www.haskell.org/ghc/docs/latest/html

Я только что загрузил http://www.haskell.org/ghc/docs/7.6.3/libraries.html.tar.bz2, и это именно то, на что я надеялся.

В последних документах см.: https://downloads.haskell.org/~ghc/latest/docs/

ОБНОВЛЕНИЕ: Есть и другие опции такие как Dash и Zeal, а также что reddit thread.

Ответ 3

Если вы устанавливаете платформу Haskell, она включает документы GHC и документы библиотеки GHC (которые охватывают основные библиотеки). В Windows они находятся в меню "Пуск" в разделе "Все программы | Платформа Haskell".

Ответ 4

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

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

Ответ 5

Это может быть не "каноническое" как таковое, но я считаю, что наиболее полезным вариантом является программное обеспечение docset, например dash (ОС X)/zeal + сгенерированные документы. Таким образом, вы получите бесплатный поиск, а также сможете создавать свои собственные docsets. Это не проблема, чтобы получить "базовую" документацию на пакетную документацию с любым из проектов из коробки. Вы можете создавать собственные docset с haddocset или dash-haskell. Также он прекрасно сочетается с emacs/vim/другими редакторами, позволяет иметь проектные документы (у вас будут соответствующие версии для каждого проекта таким образом, забудьте все эти хлопоты с помощью локального hoogle!) И не делайте ограничьте вас любым потоком сборки, который у вас есть.

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

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

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

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