2012-12-10 30 views
5

पेड़ के लिए रीस्ट राइटर है? मुझे एक नहीं मिला लेकिन शायद मुझे कुछ याद आ रही है। या खुद को लिखना मुश्किल है? मैं रीस्ट-टू-रीस्ट ट्रांसफॉर्मेशन को कार्यान्वित करना चाहता हूं।क्या कोई रीस्ट राइटर है?

उत्तर

5

कोई भी नहीं है, और मुश्किल है, यदि एक छोटे से आरईएसटी मार्कअप से परे लागू करना असंभव नहीं है।

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

वास्तविक दुनिया उदाहरण Sphinx से विभिन्न निर्देश हैं, उदाहरण के लिए py:class। ये निर्देश दस्तावेज़ पेड़ में pending_xref नोड्स को सम्मिलित करते हैं जिन्हें बाद के समय में वास्तविक क्रॉस-रेफरेंस में हल किया जाता है। हालांकि, pending_xref नोड के अनुरूप कोई भी निर्देश नहीं है, इस प्रकार कोई आरएसटी स्रोत नहीं है जो सीधे ऐसे नोड्स वाले दस्तावेज़ पेड़ से मेल खाता है।

कोई साधारण मानक आरईएसटी मार्कअप, यानी हेडलाइंस, अनुच्छेद, जोर, और इसी तरह के लिए एक लेखक को कार्यान्वित कर सकता है। मुझे किसी भी कार्यान्वयन के बारे में पता नहीं है लेकिन यह आपके लिए करना मुश्किल है। यह आपके उद्देश्यों के लिए पर्याप्त हो सकता है या नहीं भी हो सकता है।

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

+0

+1 सुंदर उत्तर, धन्यवाद। – ThomasH