เอกสารออฟไลน์ของ Haskell?


95

อะไรคือความเป็นไปได้ในการรับเอกสารออฟไลน์สำหรับไลบรารีหลักของ Haskell (และอาจมากกว่านั้น)

บางครั้งฉันเอาแล็ปท็อปไปที่ร้านกาแฟที่ไม่มี wifi และมันคงจะดีที่มีบางอย่างเช่นHoogleแต่สำหรับการใช้งานออฟไลน์

คำตอบ:


54

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แพ็คเกจ) หวังว่ามันจะเหมาะกับคุณ!

แก้ไข 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

15
คุณอาจต้องการเปิดใช้งานเอกสารสำหรับแพ็คเกจที่คุณติดตั้งโดยเพิ่มdocumentation: Trueลงใน~/.cabal/configไฟล์ของคุณแล้วติดตั้งแพ็คเกจเหล่านั้นใหม่ด้วยcabal install world --reinstall.
hammar

2
hoogle data --localฉันใช้เวลา 3 นาที (ซึ่งส่วนใหญ่กำลังดาวน์โหลด) จากนั้นฉันสามารถเรียกใช้hoogle foldlซึ่งพบฟังก์ชัน foldl หรือhoogle server --localจากนั้นไปhttp://localhost/ที่เซิร์ฟเวอร์แบบเต็มและมีลิงก์ไปยังเอกสาร HTML
Neil Mitchell

1
@NeilMitchell hoogle data allและhoogle data --localทำ / ดาวน์โหลดสิ่งต่างๆมากมาย แต่ก็ยังไม่พบฟังก์ชันในแพ็คเกจ (เช่นparseFileWithMode) สิ่งนี้ควรจะได้ผลหรือไม่?

1
@ nh2: โดยค่าเริ่มต้น Hoogle จะค้นหาเฉพาะแพลตฟอร์มลองhoogle +haskell-src-exts parseFile
Neil Mitchell

1
hoogle server --localต้องการการมองเห็นมากขึ้น มัน analogon godoc -httpไปเช่น
sjakobi

21

สามารถดาวน์โหลดเอกสาร 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นั้นด้วย


คำตอบไม่ทันสมัย ​​:( ดูเหมือนว่าลิงก์แรกจะเสีย
MaiaVictor

นั่นคือ ขอขอบคุณ!
MaiaVictor

นั่นเป็นคำตอบที่ดีที่สุดสำหรับฉันเนื่องจากฉันไม่สามารถบรรลุวัตถุประสงค์ด้วยhoogle server --local
user24601

14

หากคุณติดตั้งแพลตฟอร์ม Haskell จะมีเอกสาร GHC และเอกสารไลบรารี GHC (ซึ่งครอบคลุมไลบรารีหลัก) ใน Windows จะอยู่ใน Start Menu ภายใต้ "All Programs | Haskell Platform"


นั่นเป็นเรื่องดีที่ได้รู้ มีบางอย่างเช่นนั้นใน linux หรือไม่?
Andriy Drozdyuk

ฉันคิดว่าแพลตฟอร์ม Haskell ควรจะเหมือนกันมากในระบบปฏิบัติการที่แตกต่างกัน แต่ฉันไม่เคยใช้บน Linux หากคุณได้ติดตั้งไว้แล้วคุณสามารถลองค้นหาไฟล์ "Data-Binary.html" (เอกสารสำหรับ Data.Binary) เพื่อดูว่ามีการติดตั้งเอกสารไว้ที่ใดที่หนึ่งหรือไม่
arx

4
@drozzy: บน Debian / Ubuntu ฉันเชื่อว่ามีแพ็คเกจเอกสารเช่นที่haskell-platform-docคุณสามารถติดตั้งได้
li.davidm

แพลตฟอร์ม haskell จะไม่ได้รับการดูแลอีกต่อไปและมันก็ล้าสมัยอยู่เสมอดังนั้นฉันจึงไม่ถือว่านี่เป็นคำตอบที่ดี
dredozubov

1
@dredozubov ที่มา? ฉันไม่พบสิ่งที่เกี่ยวกับการไม่ได้รับการดูแลในอนาคต
Andriy Drozdyuk

10

แก้ไขไฟล์ ~ / .cabal / config ของคุณ มองหาเส้น (อาจจะออกความเห็น) documentation: Falseที่กล่าวว่า เปลี่ยนบรรทัดนั้นเป็นdocumentation: Trueและไม่ใส่ความคิดเห็น ตอนนี้เมื่อคุณสร้างโครงการที่มีcabal installเอกสารประกอบจะถูกสร้างและบันทึกไว้ในเครื่องด้วย

ดูข้อมูลเพิ่มเติมอีกเล็กน้อยในไฟล์ config เดียวกันและคุณจะพบตัวเลือกต่างๆเช่น doc-index-file, docdir, datadir, prefix และอื่น ๆ ที่ช่วยให้คุณกำหนดค่าที่จัดเก็บเอกสารได้


5

อาจไม่ใช่ "Canonical" ตามตัวเลือก แต่ฉันเชื่อว่าตัวเลือกที่มีประโยชน์ที่สุดคือซอฟต์แวร์ docset เช่น dash (OS X) / zeal + docsets ที่สร้างขึ้น ด้วยวิธีนี้คุณจะได้รับการค้นหาฟรีและยังมีตัวเลือกในการสร้างชุดเอกสารที่กำหนดเองของคุณ ไม่มีปัญหาในการรับเอกสารชุดแฮดด็อก 'ฐาน' พร้อมกับโครงการใดโครงการหนึ่งนอกกรอบ คุณสามารถสร้าง docsets ที่กำหนดเองกับhaddocsetหรือรีบ Haskell นอกจากนี้ยังรวมเข้ากับโปรแกรมแก้ไข emacs / vim / อื่น ๆ ได้เป็นอย่างดีช่วยให้คุณมีชุดเอกสารตามโครงการ (คุณจะมีเวอร์ชันที่เกี่ยวข้องเป็นรายโครงการด้วยวิธีนี้ลืมความยุ่งยากทั้งหมดนี้ไปกับ hoogle ในพื้นที่!) และอย่า จำกัด คุณไว้ที่ขั้นตอนการสร้างที่คุณมีได้

หากคุณสร้างโปรเจ็กต์ด้วยcabal-installคุณสามารถตั้งค่าdocumentation: Trueในของคุณ~/.cabal/configได้จากนั้นติดตั้งการอ้างอิงใหม่เพื่อรับแฮดด็อกที่สร้างขึ้นในเครื่อง

หากคุณใช้สแต็กคุณสามารถใช้stack haddockคำสั่งเพื่อสร้างการอ้างอิงและโปรเจ็กต์ของคุณด้วยแฮดด็อกที่สร้างขึ้น



1

ความเร็วเป็นเครื่องมือสากลที่ฟรีและสวยงามในการทำเช่นนั้น รองรับภาษาเทคโนโลยีและไลบรารีที่หลากหลายและคลิกเดียวอัปเดต

คุณอาจจะสามารถค้นหาสิ่งที่คุณใช้อยู่แล้วได้มากขึ้นในรายการเอกสาร



0

หากคุณใช้การแจกจ่ายที่ได้รับจาก Debian และแพ็คเกจของพวกเขาคุณจะพบเอกสารรวมของแพ็คเกจ Haskell ที่ติดตั้งทั้งหมด (หากคุณติดตั้งlibghc-foo-docแพ็คเกจด้วย) ที่

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

นอกจากนี้libghc-foo-docแพ็คเกจยังมีไฟล์ที่จำเป็นสำหรับ hoogle ดังนั้นหากคุณเป็นapt-get install hoogleเช่นนั้นคุณจะสามารถใช้hoogleเพื่อค้นหาในไลบรารีทั้งหมดที่ติดตั้งด้วยวิธีนี้ได้ทันที

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.