2012-02-26 86 views
89

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

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

回答

48

Hoogle可脱机使用,安装从惊天动地: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 

(在http://neilmitchell.blogspot.com/2008/08/hoogle-database-generation.html更多信息)与hoogle data创建一个默认的数据库。

编辑:使用的安装Hoogle本地后会话:

$ hoogle 
No query entered 
Try --help for command line options 
$ hoogle data 
(downloads databases...takes a few minutes) 

我遇到了这里的错误......显然这是关系到惊天动地的版本,所以我更新了(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 
+15

您可能还希望为您的已安装软件包启用文档,在'〜/ .cabal/config'文件中添加'documentation:True',然后用'cabal install world --reinstall'重新安装这些软件包。 – hammar 2012-02-26 17:06:46

+0

我也有'hoogle data'命令的问题。太糟糕了,如果它有效的话,这将是一个不错的解决方案。 – drozzy 2012-02-27 14:29:50

+2

'hoogle data --local''花了我3分钟(其中大部分是下载)然后我可以运行找到foldl函数的hoogle foldl或者hoogle server -local,然后访问''http:// localhost /''这是一个完整的服务器_and_包含HTML文档的链接。 – 2012-02-27 19:52:30

14

如果安装Haskell的平台,它包括了GHC文档和GHC库文件(其中包括核心库)。在Windows上,它们位于“所有程序| Haskell平台”下的开始菜单中。

+0

这很了解。有没有像在Linux上的东西? – drozzy 2012-02-27 14:32:21

+0

我认为Haskell平台在不同的操作系统上应该是一样的,但我从来没有在Linux上使用它。如果已安装它,则可以尝试搜索文件“Data-Binary.html”(Data.Binary的文档)以查看文档是否已安装到某处。 – arx 2012-02-27 15:40:04

+4

@drozzy:在Debian/Ubuntu上,我相信有一些文档包,比如你可以安装的'haskell-platform-doc'。 – 2012-02-27 22:28:11

8

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

在相同的配置文件中再看一下,你会发现诸如doc-index-file,docdir,datadir,prefix等选项,这些选项允许你配置文档的存储位置。

19

的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/

UPDATE:也有其他的选择,such as Dash and Zeal,看看也that reddit thread

+0

答案不是最新:(似乎是第一个链接是断开的。 – MaiaVictor 2015-05-04 01:54:38

+0

你是对的,我更新的第一URL。 – 2015-05-04 07:30:14

+0

就在那儿。谢谢! – MaiaVictor 2015-05-04 11:49:04

0

如果你碰巧使用的是Debian衍生分布及其包装,然后你会发现所有安装哈斯克尔包的合并文档在

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

(如果你还安装libghc-foo-doc包)此外, libghc-foo-doc包中包含hoogle的必要文件,因此如果您使用apt-get install hoogle,那么您应该立即可以使用hoogle来搜索以这种方式安装的所有库。

5

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

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

如果您使用的是stack,则可以使用stack haddock命令来构建您的依赖项,并使用生成的haddocks生成项目。

1

Velocity是一个自由和美丽的通用工具来做到这一点。它支持广泛的语言,技术和库,并且一次点击更新。

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

1

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

1

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