获取 Haskell 核心库(甚至更多)的离线文档的可能性是什么?
有时我会把我的笔记本电脑带到没有 wifi 的咖啡店,如果有类似Hoogle的东西但可以离线使用,那就太好了。
获取 Haskell 核心库(甚至更多)的离线文档的可能性是什么?
有时我会把我的笔记本电脑带到没有 wifi 的咖啡店,如果有类似Hoogle的东西但可以离线使用,那就太好了。
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
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 线程。
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".
编辑你的 ~/.cabal/config 文件。查找显示documentation: False
. 将该行更改为documentation: True
并取消注释。现在,当您构建带有cabal install
文档的项目时,也将在本地构建和保存。
在同一个配置文件中多看一点,您会发现诸如 doc-index-file、docdir、datadir、prefix 等允许您配置文档存储位置的选项。
它本身可能不是“规范的”,但我相信最有用的选项是像dash (OS X)/ zeal + 生成的文档集这样的文档集软件。通过这种方式,您将获得免费搜索,并且还可以选择构建您的自定义文档集。开箱即用的任何一个项目的“基础”包黑线鳕文档都没有问题。您可以使用haddocset或dash-haskell构建自定义文档集。它还与 emacs/vim/其他编辑器很好地集成,允许您拥有基于项目的文档集(通过这种方式,您将拥有基于每个项目的相关版本,忘记所有与本地 hoogle 的麻烦!)并且不要限制您使用任何可以拥有的构建流程。
如果你构建你的项目,cabal-install
你可以documentation: True
在你的~/.cabal/config
, 然后重新安装依赖项以在本地获取生成的黑线鳕。
如果您使用的是stack,您可以使用stack haddock
命令来构建您的依赖项并使用生成的黑线鳕进行项目。
我使用devdocs.io,它有很多语言和库(包括 Haskell)的文档,并且有离线模式。
Velocity是一个免费且美观的通用工具,可以做到这一点。它支持广泛的语言、技术和库,并且一键更新。
您可能会在其文档列表中找到更多您已经在使用的内容。
对于 Windows,安装 cygwin 的 wget 和 curl 包。这将启用hoogle data
.
如果您碰巧使用的是 Debian 派生发行版及其软件包,那么您将在以下位置找到所有已安装 Haskell 软件包(如果您还安装了这些libghc-foo-doc
软件包)的组合文档
file:///usr/share/doc/ghc-doc/html/libraries/index.html
此外,这些libghc-foo-doc
软件包包含 hoogle 所需的文件,因此,如果您apt-get install hoogle
,那么您应该可以立即使用hoogle
以搜索以这种方式安装的所有库。