95

获取 Haskell 核心库(甚至更多)的离线文档的可能性是什么?

有时我会把我的笔记本电脑带到没有 wifi 的咖啡店,如果有类似Hoogle的东西但可以离线使用,那就太好了。

4

9 回答 9

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)

我在这里遇到了一个错误......显然它与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
于 2012-02-26T16:50:56.010 回答
22

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 线程

于 2013-05-07T17:46:59.060 回答
14

If you install the Haskell Platform it includes the GHC docs and the GHC library docs (which cover the core libraries). On Windows they are on the Start Menu under "All Programs|Haskell Platform".

于 2012-02-26T17:28:08.730 回答
11

编辑你的 ~/.cabal/config 文件。查找显示documentation: False. 将该行更改为documentation: True并取消注释。现在,当您构建带有cabal install文档的项目时,也将在本地构建和保存。

在同一个配置文件中多看一点,您会发现诸如 doc-index-file、docdir、datadir、prefix 等允许您配置文档存储位置的选项。

于 2012-03-16T13:45:30.887 回答
5

它本身可能不是“规范的”,但我相信最有用的选项是像dash (OS X)/ zeal + 生成的文档集这样的文档集软件。通过这种方式,您将获得免费搜索,并且还可以选择构建您的自定义文档集。开箱即用的任何一个项目的“基础”包黑线鳕文档都没有问题。您可以使用haddocsetdash-haskell构建自定义文档集。它还与 emacs/vim/其他编辑器很好地集成,允许您拥有基于项目的文档集(通过这种方式,您将拥有基于每个项目的相关版本,忘记所有与本地 hoogle 的麻烦!)并且不要限制您使用任何可以拥有的构建流程。

如果你构建你的项目,cabal-install你可以documentation: True在你的~/.cabal/config, 然后重新安装依赖项以在本地获取生成的黑线鳕。

如果您使用的是stack,您可以使用stack haddock命令来构建您的依赖项并使用生成的黑线鳕进行项目。

于 2015-10-27T23:30:51.127 回答
3

我使用devdocs.io,它有很多语言和库(包括 Haskell)的文档,并且有离线模式。

于 2015-11-09T09:42:41.730 回答
1

Velocity是一个免费且美观的通用工具,可以做到这一点。它支持广泛的语言、技术和库,并且一键更新。

您可能会在其文档列表中找到更多您已经在使用的内容。

于 2015-10-29T16:30:30.777 回答
1

对于 Windows,安装 cygwin 的 wget 和 curl 包。这将启用hoogle data.

于 2015-10-29T17:00:34.460 回答
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以搜索以这种方式安装的所有库。

于 2015-10-25T22:13:24.627 回答