2015-09-22 11 views
20

के साथ अपने कोड के लिए प्रलेखन जेनरेट करना मैंने हैडॉक शैली में अपना कोड एनोटेट किया है और ब्राउज़-सक्षम दस्तावेज जेनरेट करना चाहता हूं। चूंकि मैं ढेर का उपयोग भी कर रहा हूं, इसलिए मैं वर्कफ़्लो में प्रलेखन पीढ़ी को एकीकृत करना चाहता हूं। हालांकि, मैं अभी तक कुछ भी उपयोगी उत्पन्न करने में सक्षम नहीं हुआ है।हैडॉक और स्टैक

मैं

stack haddock 

चला सकते हैं और यह शैली मैं चाहता हूँ में प्रलेखन उत्पन्न होगा (~/.stack/ गहरे अंदर पाया जा सकता है), लेकिन यह केवल के लिए की तुलना में, संकुल मैं पर निर्भर के लिए प्रलेखन उत्पन्न करने के लिए लगता है बल्कि मेरा अपना कोड

जब मैं

stack haddock --help 

चलाने मैं धारणा है कि मैं अतिरिक्त तर्क --haddock का उपयोग अपने ही परियोजना के लिए प्रलेखन उत्पन्न करने के लिए कर सकते हैं और --no-haddock-deps मेरी निर्भरता के लिए प्रलेखन बाहर छोड़ने के लिए मिलता है। हालांकि, जब मैं

stack haddock --haddock --no-haddock-deps 

कुछ भी नहीं होने लगता है। अगर मैं stack clean पहले यह मेरे सभी कोड को फिर से संकलित कर दूंगा लेकिन दस्तावेज़ीकरण के किसी भी तरीके से संबंधित कोई आउटपुट उत्पन्न नहीं होता है।

एक मध्यवर्ती समाधान मैं भी अपने आप में हेडॉक चलाने का भी प्रयास किया है, अर्थात

haddock my-source.hs 

लेकिन फिर मैं एक त्रुटि है कि यह एक मॉड्यूल फ़ाइल पर निर्भर करता है (जो स्थानीय स्तर पर ढेर द्वारा स्थापित किया गया है) नहीं मिल सकता है मिलता है। यह मुझे इंप्रेशन देता है कि दस्तावेज़ीकरण पीढ़ी को किसी भी तरह से ढेर करना होगा। मैंने देखा है, लेकिन वास्तव में मेरे .cabal और stack.yaml फ़ाइलों को दस्तावेज़ीकरण के लिए कॉन्फ़िगर करने से संबंधित कोई स्पष्टीकरण नहीं मिला है।

टी एल; डॉ

मैं ढेर और हेडॉक का उपयोग कैसे अपने ही पैकेज में कोड के लिए प्रलेखन उत्पन्न करने के लिए कर सकते हैं?

+2

अपनी परियोजना एक निष्पादन या एक पुस्तकालय है? मुझे लगता है कि स्टैक केवल वर्तमान में पुस्तकालयों के लिए दस्तावेज़ उत्पन्न करता है (जिनके लिए यह आदेश के बाद दस्तावेज़ों के पथ को प्रिंट करता है, या आप इसे 'स्टैक पथ' से देख सकते हैं), यहां देखें: https: // github।कॉम/commercialhaskell/ढेर/मुद्दों/729 ("कैबल हैडॉक" के साथ निष्पादन योग्य के लिए दस्तावेज़ बनाने के लिए सुझाए गए कामकाज सहित)। –

+0

@ रुडिगरहैंक: ग्रेट, धन्यवाद। उस लिंक के साथ मैंने वास्तव में 'कैबल हैडॉक' और लिंक किए गए सुझाए गए वर्कअराउंड का उपयोग करके इसे काम किया। यदि आप इसे उत्तर के रूप में लिखना चाहते हैं तो मैं इसे स्वीकार करूंगा, अगर नहीं, तो मैं स्वयं समाधान को लिख सकता हूं। (मेरी परियोजना एक निष्पादन योग्य है।) –

उत्तर

12

स्टैक इश्यू ट्रैकर पर this ticket के अनुसार, स्टैक वर्तमान में केवल पुस्तकालयों के लिए प्रलेखन बना सकता है, लेकिन निष्पादन योग्य नहीं है।

कबाल इस आदेश के साथ ढेर डेटाबेस के साथ काम करने के लिए कॉन्फ़िगर किया जा सकता है:

cabal configure --package-db=clear --package-db=global --package-db=$(stack path --snapshot-pkg-db) --package-db=$(stack path --local-pkg-db) 

जिसके बाद आप cabal haddock --executables चलाने प्रलेखन उत्पन्न करने के लिए कर सकते हैं।

वैसे, stack haddockstack build --haddock के लिए केवल एक शॉर्टकट है, इसलिए stack haddock --haddock लिखने की कोई आवश्यकता नहीं है।

+0

मैं अभी तक एसओ संपादन प्रणाली को वास्तव में समझ नहीं पा रहा हूं:/शायद मैं पागल हो रहा हूं लेकिन मुझे काफी यकीन था कि जब मैंने सुझाव दिया था कि 'कैबल कॉन्फ़िगरेशन' कमांड आपके पोस्ट में अभी तक नहीं था । अब संपादन इतिहास कहता है कि यह संपादन को बेकार बना रहा था। वैसे भी उत्तर के लिए धन्यवाद और संपादन को वापस रोल करने के लिए स्वतंत्र महसूस करें ... –

+2

@SamvanHerwaarden मैं जवाब देने के कुछ मिनट बाद विश्वास करता हूं, लेखक इसे इतिहास में दिखाए बिना संपादित कर सकते हैं। हो सकता है कि यहां क्या हुआ। –

+0

'कैबल कॉन्फ़िगरेशन ...' चला रहा है 'कमांड' कैबेल की विफलता देता है: ghc-pkg डंप विफल 'मेरे लिए। –

1

https://www.reddit.com/r/haskell/comments/5ugm9s/how_to_generate_haddock_docs_for_nonlibrary_code/ddtwqzc/

निम्नलिखित समाधान केवल काम करता है जब अलग-अलग फ़ाइलों निर्दिष्ट कर रहे हैं:

stack exec -- haddock --html src/Example.hs src/Main.hs --hyperlinked-source --odir=dist/docs 
+0

बहुत बढ़िया, धन्यवाद! मुझे आदिम प्रकारों जैसे 'Int' उपलब्ध नहीं होने के बारे में चेतावनियां मिलती हैं। कुछ विशिष्ट प्रकारों के लिए दस्तावेज़ शामिल करने का कोई तरीका? – Erik

संबंधित मुद्दे