Haskell离线文档?

And*_*yuk 92 haskell offline-mode

为Haskell核心库(以及更多)获取脱机文档有哪些可能性(如果有的话)?

有时我把我的笔记本电脑带到没有wifi的咖啡店,这样可以很好地使用Hoogle,但是可以离线使用.

li.*_*idm 50

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
Run Code Online (Sandbox Code Playgroud)

创建一个默认数据库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)
Run Code Online (Sandbox Code Playgroud)

我在这里遇到了一个错误......显然它与Cabal的版本有关,所以我更新了(http://hackage.haskell.org/trac/hackage/ticket/811).这没有用,所以我跑了hoogle data all,我取消了,因为它花了这么长时间(似乎经历了Hackage上的每个包).它仍然不允许查询,hoogle map但允许hoogle map +base(即限制搜索到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 -> t b -> a
Run Code Online (Sandbox Code Playgroud)

  • 您还可能希望为已安装的软件包启用文档,方法是将`documentation:True`添加到您的`〜/ .cabal/config`文件中,然后使用`cabal install world --reinstall`重新安装这些软件包. (15认同)
  • ``hoogle data --local``花了我3分钟(其中大部分是下载)然后我可以运行``hoogle foldl``找到foldl函数,或``hoogle server --local``然后访问` `http:// localhost /``这是一个完整的服务器_and_包含HTML文档的链接. (2认同)
  • `hoogle server --local` 需要更多的可见性。它类似于例如`godoc -http`。 (2认同)

Emm*_*ery 20

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


arx*_*arx 14

如果您安装Haskell平台,它包括GHC文档和GHC库文档(涵盖核心库).在Windows上,它们位于"所有程序| Haskell平台"下的"开始"菜单中.

  • @drozzy:在Debian/Ubuntu上,我相信你可以安装文件包,例如`haskell-platform-doc`. (4认同)

mig*_*yte 10

编辑〜/ .cabal/config文件.寻找说明的那条线(可能是注释掉的)documentation: False.将该行更改为documentation: True并取消注释.现在,当您使用cabal install文档构建项目时,也将在本地构建和保存.

在相同的配置文件中查看更多内容,您将找到诸如doc-index-file,docdir,datadir,prefix等之类的选项,这些选项允许您配置文档的存储位置.


dre*_*bov 5

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

如果您构建项目,cabal-install可以documentation: True在您的项目中进行设置~/.cabal/config,然后重新安装依赖项以在本地生成haddocks.

如果您正在使用堆栈,则可以利用stack haddock命令构建依赖项并使用生成的haddocks进行项目.