Haskell脱机文档?
有什么可能,如果有的话,获得离线文档的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
创build默认数据库(更多信息请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
,这些hoogle data all
是我花了很长时间才取消的(似乎要经过Hackage上的每个包)。 它仍然不会允许查询hoogle map
但确实允许hoogle map +base
(即限制search到base
包)希望它适合你!
编辑2:这似乎解决了这个问题(对我来说):
$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 -> tb -> a
HTML文档可以从haskell网站下载为.tar.bz2:
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线程 。
如果你安装了Haskell平台,它包括GHC文档和GHC库文档(涵盖了核心库)。 在Windows上,它们位于“所有程序| Haskell平台”下的“开始”菜单中。
编辑你的〜/ .cabal / config文件。 find说明documentation: False
的行(可能注释掉了) documentation: False
。 将该行更改为documentation: True
并取消注释。 现在,当您使用cabal install
文档构build项目时,也将在本地构build和保存文档。
在相同的configuration文件中再看一下,你会发现诸如doc-index-file,docdir,datadir,prefix等选项,这些选项允许你configuration文档的存储位置。
它本身可能不是“规范的”,但我相信最有用的select是像破折号 (OS X)/ 热诚生成的docset docset软件。 这样你就可以免费search,也可以select构build自定义docset。 用任何一个开箱即用的项目获得“基础”软件包的haddock文档都没有问题。 您可以使用haddocset或dash-haskell构build自定义docset。 另外,它与emacs / vim /其他编辑器很好地集成在一起,可以让你拥有基于项目的docset(你将以这种方式在每个项目的基础上有相关的版本,忘记与本地hoogle的所有这些麻烦!),不要限制您可以拥有的任何构buildstream程。
如果使用cabal-install
来构build项目,可以在~/.cabal/config
设置documentation: True
,然后重新安装依赖项以在本地生成haddocks。
如果你使用堆栈 ,你可以利用stack haddock
命令来build立你的依赖关系,并使用生成的haddocks项目。
速度是一个自由和美丽的万能工具来做到这一点。 它支持广泛的语言,技术和库,并单击一次点击更新。
您可能会在其文档列表中find更多您已经使用的内容。
如果您碰巧使用的是Debian派生的发行版及其软件包,那么您可以find所有已安装的Haskell软件包的组合文档(如果您还安装了libghc-foo-doc
软件包)
file:///usr/share/doc/ghc-doc/html/libraries/index.html
此外, libghc-foo-doc
包中包含hoogle所需的文件,所以如果你apt-get install hoogle
,那么你应该立即可以使用hoogle
来search所有以这种方式安装的库。
对于Windows,安装cygwin的wget和curl包。 这将启用hoogle data
。
我使用devdocs.io ,它有许多语言和库(包括Haskell)的文档,并有一个离线模式。