मैं @uvtc से सहमत हूं कि मार्कडाउन एक अच्छा विकल्प है। एक परिशिष्ट के रूप में, मैं यह ध्यान रखना चाहता हूं कि आरईपीएल में उपयोग के लिए अपना खुद का मार्कडाउन डॉक व्यूइंग फ़ंक्शन उत्पन्न करना तुच्छ है। निम्न कोड मानता है कि आपके क्लासपाथ पर मार्कडाउन-क्लोज पैकेज है (उदा।देव निर्भरता के माध्यम से), और OSX में एक आरईपीएल उपयोग कर रहे हैं:
(ns docs
(:require [clojure.java.shell :as s]
[markdown.core :as md]))
(defmacro opendoc [name]
`(do
(md/md-to-html (java.io.StringReader. (:doc (meta (var ~name)))) "/tmp/doc.html")
(s/sh "open" "/tmp/doc.html")
)
)
आप clojure.repl/doc विशेष मामलों को संभालने के लिए के लिए स्रोत को देखने के लिए चाहते हो सकता है (उदाहरण के लिए यह एक मान लिया गया है कि तुम एक में पारित हो जाएगा एक var के लिए उचित प्रतीक)। यह भी अच्छा हो सकता है कि फाइलनाम प्रत्येक अनुरोध के लिए उसी फ़ाइल नाम का पुन: उपयोग करने के बजाय "कैशिंग" के लिए नेमस्पेस/फ़ंक्शन नाम को प्रतिबिंबित कर सकता है ... लेकिन मैं इसे चित्रण उद्देश्यों के लिए सरल बना रहा हूं।
ओएसएक्स open
कमांड बस ओएस को अपने प्रकार का पता लगाकर फ़ाइल खोलने के लिए कहता है। इस प्रकार:
REPL=> (docs/opendoc my.ns/f)
आपके डिफ़ॉल्ट ब्राउज़र को आपके फ़ंक्शन के डॉकस्ट्रिंग के HTMLified संस्करण को खोलने का कारण बन जाएगा।
एक अन्य चेतावनी: यदि आप अपने बहु स्ट्रिंग (जो संपादकों आमतौर पर करते हैं) इंडेंट हैं, तो आपके एमडी अप weirdness के साथ खत्म हो सकता है (उदाहरण के लिए बुलेट सूचियों हो सकता है एक तरह से आप का इरादा नहीं रखते घोंसला)। इसे हल करने का एक तरीका यह है कि उसे वापस ट्रिम करना है।
(defn boo
"
# Title
My thing
* Item one
* Item two
"
[args] ...)
और फिर opendoc समारोह को संशोधित पहले एक छोड़ दिया ट्रिम लागू करने के लिए: प्रारूप करने के लिए अपने संपादक
(defn ltrim [str] (clojure.string/replace str #"(?m)^ {0,3}" ""))
(defmacro opendoc [name]
`(do
(md/md-to-html (java.io.StringReader. (ltrim (:doc (meta (var ~name))))) "/tmp/doc.html")
(s/sh "open" "/tmp/doc.html")
)
)
स्रोत
2015-06-04 19:24:33
मुझे लगता है कि इस का हल काफी हद तक कॉन्फ़िगर करने पर निर्भर करता है (या बढ़ाने) उदाहरण के लिए आप के लिए या मांग पर, या तो आप के लिए डॉक्टर तार। – Jeremy
अन्य डॉकस्ट्रिंग सम्मेलन भी हैं जिन्हें आईएमएचओ को औपचारिक रूप से लागू किया जा सकता है/चलो -> '' (बाइंडिंग्स और बॉडी) बाइंडिंग्स => बाध्यकारी-फॉर्म init-expr'' – sw1nn