2012-02-26 85 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)的文檔並且具有脫機模式。