อะไรคือความเป็นไปได้ในการรับเอกสารออฟไลน์สำหรับไลบรารีหลักของ Haskell (และอาจมากกว่านั้น)
บางครั้งฉันเอาแล็ปท็อปไปที่ร้านกาแฟที่ไม่มี wifi และมันคงจะดีที่มีบางอย่างเช่นHoogleแต่สำหรับการใช้งานออฟไลน์
อะไรคือความเป็นไปได้ในการรับเอกสารออฟไลน์สำหรับไลบรารีหลักของ 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
(ข้อมูลเพิ่มเติมที่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
hoogle data --local
ฉันใช้เวลา 3 นาที (ซึ่งส่วนใหญ่กำลังดาวน์โหลด) จากนั้นฉันสามารถเรียกใช้hoogle foldl
ซึ่งพบฟังก์ชัน foldl หรือhoogle server --local
จากนั้นไปhttp://localhost/
ที่เซิร์ฟเวอร์แบบเต็มและมีลิงก์ไปยังเอกสาร HTML
hoogle data all
และhoogle data --local
ทำ / ดาวน์โหลดสิ่งต่างๆมากมาย แต่ก็ยังไม่พบฟังก์ชันในแพ็คเกจ (เช่นparseFileWithMode
) สิ่งนี้ควรจะได้ผลหรือไม่?
hoogle +haskell-src-exts parseFile
hoogle server --local
ต้องการการมองเห็นมากขึ้น มัน analogon godoc -http
ไปเช่น
สามารถดาวน์โหลดเอกสาร 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นั้นด้วย
hoogle server --local
หากคุณติดตั้งแพลตฟอร์ม Haskell จะมีเอกสาร GHC และเอกสารไลบรารี GHC (ซึ่งครอบคลุมไลบรารีหลัก) ใน Windows จะอยู่ใน Start Menu ภายใต้ "All Programs | Haskell Platform"
haskell-platform-doc
คุณสามารถติดตั้งได้
แก้ไขไฟล์ ~ / .cabal / config ของคุณ มองหาเส้น (อาจจะออกความเห็น) documentation: False
ที่กล่าวว่า เปลี่ยนบรรทัดนั้นเป็นdocumentation: True
และไม่ใส่ความคิดเห็น ตอนนี้เมื่อคุณสร้างโครงการที่มีcabal install
เอกสารประกอบจะถูกสร้างและบันทึกไว้ในเครื่องด้วย
ดูข้อมูลเพิ่มเติมอีกเล็กน้อยในไฟล์ config เดียวกันและคุณจะพบตัวเลือกต่างๆเช่น doc-index-file, docdir, datadir, prefix และอื่น ๆ ที่ช่วยให้คุณกำหนดค่าที่จัดเก็บเอกสารได้
อาจไม่ใช่ "Canonical" ตามตัวเลือก แต่ฉันเชื่อว่าตัวเลือกที่มีประโยชน์ที่สุดคือซอฟต์แวร์ docset เช่น dash (OS X) / zeal + docsets ที่สร้างขึ้น ด้วยวิธีนี้คุณจะได้รับการค้นหาฟรีและยังมีตัวเลือกในการสร้างชุดเอกสารที่กำหนดเองของคุณ ไม่มีปัญหาในการรับเอกสารชุดแฮดด็อก 'ฐาน' พร้อมกับโครงการใดโครงการหนึ่งนอกกรอบ คุณสามารถสร้าง docsets ที่กำหนดเองกับhaddocsetหรือรีบ Haskell นอกจากนี้ยังรวมเข้ากับโปรแกรมแก้ไข emacs / vim / อื่น ๆ ได้เป็นอย่างดีช่วยให้คุณมีชุดเอกสารตามโครงการ (คุณจะมีเวอร์ชันที่เกี่ยวข้องเป็นรายโครงการด้วยวิธีนี้ลืมความยุ่งยากทั้งหมดนี้ไปกับ hoogle ในพื้นที่!) และอย่า จำกัด คุณไว้ที่ขั้นตอนการสร้างที่คุณมีได้
หากคุณสร้างโปรเจ็กต์ด้วยcabal-install
คุณสามารถตั้งค่าdocumentation: True
ในของคุณ~/.cabal/config
ได้จากนั้นติดตั้งการอ้างอิงใหม่เพื่อรับแฮดด็อกที่สร้างขึ้นในเครื่อง
หากคุณใช้สแต็กคุณสามารถใช้stack haddock
คำสั่งเพื่อสร้างการอ้างอิงและโปรเจ็กต์ของคุณด้วยแฮดด็อกที่สร้างขึ้น
ฉันใช้devdocs.ioมีเอกสารสำหรับภาษาและไลบรารีมากมาย (รวมถึง Haskell) และมีโหมดออฟไลน์
ความเร็วเป็นเครื่องมือสากลที่ฟรีและสวยงามในการทำเช่นนั้น รองรับภาษาเทคโนโลยีและไลบรารีที่หลากหลายและคลิกเดียวอัปเดต
คุณอาจจะสามารถค้นหาสิ่งที่คุณใช้อยู่แล้วได้มากขึ้นในรายการเอกสาร
สำหรับ Windows ให้ติดตั้งแพ็คเกจ wget และ curl ของ cygwin hoogle data
ที่จะช่วยให้
หากคุณใช้การแจกจ่ายที่ได้รับจาก Debian และแพ็คเกจของพวกเขาคุณจะพบเอกสารรวมของแพ็คเกจ Haskell ที่ติดตั้งทั้งหมด (หากคุณติดตั้งlibghc-foo-doc
แพ็คเกจด้วย) ที่
file:///usr/share/doc/ghc-doc/html/libraries/index.html
นอกจากนี้libghc-foo-doc
แพ็คเกจยังมีไฟล์ที่จำเป็นสำหรับ hoogle ดังนั้นหากคุณเป็นapt-get install hoogle
เช่นนั้นคุณจะสามารถใช้hoogle
เพื่อค้นหาในไลบรารีทั้งหมดที่ติดตั้งด้วยวิธีนี้ได้ทันที
documentation: True
ลงใน~/.cabal/config
ไฟล์ของคุณแล้วติดตั้งแพ็คเกจเหล่านั้นใหม่ด้วยcabal install world --reinstall
.