2012-03-15 11 views
9

द स्टैक एक्सचेंज साइट्स प्रश्न और उत्तर लिखने के लिए मार्कडाउन सिंटैक्स का उपयोग करती हैं। यह क्लाइंट साइड पर PageDown और सर्वर पक्ष पर MarkDownSharp और Jeff's HTML sanitizer का उपयोग करके बनाया गया है। मैं कुछ खुद को समान बनाने के बारे में सोच रहा हूं।पेजडाउन के साथ उपयोग किए जाने पर MarkDownSharp का उद्देश्य क्या है?

मुझे समझ में आता है कि मुझे सर्वर की ओर से HTML को स्वच्छ करने की आवश्यकता क्यों है। लेकिन MarkDownSharp का उद्देश्य क्या है? मैं क्लाइंट साइड पर पेजडाउन के साथ मार्कडाउन से HTML तक अनुवाद क्यों नहीं करूंगा और उसे सर्वर पर भेजूंगा?

उत्तर

16

सबसे महत्वपूर्ण कारणों:

  1. हम सबसे बुनियादी स्टैक एक्सचेंज साइटों की कार्यक्षमता, पूछ और जवाब ("मौलिक" के अर्थ में) जावास्क्रिप्ट बिना काम करना चाहते हैं। वोटिंग, फ्लैगिंग, यूआई नब्बे के दशक जैसी सबसे उन्नत चीजें, ग्रंथों, पक्षपात, वैश्विक इनबॉक्स, और जावास्क्रिप्ट की आवश्यकता नहीं है, और यह ठीक है। लेकिन एक बात यह है कि साइट – क्यू & ए – के बिना जीवित नहीं रह सकती है, जितना संभव हो सके घर्षण को कम रखने के लिए उस आवश्यकता नहीं होनी चाहिए।

    बेशक, जब आपके पास जावास्क्रिप्ट की आवश्यकता नहीं है, तो आपको क्लाइंट को मार्कडाउन प्रस्तुत करने की आवश्यकता नहीं हो सकती है।

  2. हम केवल एक पोस्ट के नवीनतम संस्करण के प्रस्तुत एचटीएमएल संस्करण को स्टोर करते हैं। पिछले संशोधन के लिए, हम केवल मार्कडाउन स्रोत को स्टोर करते हैं। बनाए गए हर संपादन के लिए दोनों संस्करणों को संग्रहीत करना अंतरिक्ष का एक बड़ा अपशिष्ट होगा, क्योंकि पुराने संस्करणों की शायद ही कभी आवश्यकता होती है। लेकिन कभी-कभी की आवश्यकता होती है, उदा। संशोधन इतिहास में। तो इसके लिए, हमें सर्वर तरफ वैसे भी प्रस्तुत करना होगा।

  3. भले ही आप सर्वर-साइड पर फिर से संचरित हों, क्लाइंट को प्रतिपादन करने की इजाजत देकर स्पष्ट रूप से उस ट्रस्ट को हटा दें जो वास्तव में मार्कडाउन से प्रस्तुत संस्करण में हो सकता है। कल्पना कीजिए कि निम्नलिखित:

    मैं एक बुराई स्पैमर, निम्नलिखित उत्तर पोस्ट:

    As you can sea on [this awesome site][1], 
    
    ... (long text on thread-safe usage of the turtle in LOGO) ... 
    
    Hope that helps! 
    
    [1]: http://almost-real-rolex-watches.biz 
    

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

    अकेले लोगो टैग में 120k प्रतिष्ठा के साथ प्रसिद्ध स्टैक ओवरफ़्लो उपयोगकर्ता, शॉन Sceat आता है। वह देखता है कि लिंक वास्तव में एक प्रासंगिक पृष्ठ पर जाता है, उत्तर पसंद करता है, इसे ऊपर उठाता है, "महान उत्तर पोस्ट करता है; जिस साइट से आप लिंक करते हैं वह बहुत उपयोगी सामग्री है!" टिप्पणी, और जब वह उस पर है, वह टाइपो "समुद्र" -> "देखें" (जिसे स्पैमर जानबूझकर बनाया गया है) को ठीक करता है।

    लेकिन "संपादन" पर क्लिक करने के बाद संपादक में मार्कडाउन में अब प्रासंगिक लिंक नहीं था; इसमें रोलेक्स लिंक था। और इस प्रकार – शॉन – से अनजान नहीं, उन्होंने न केवल टाइपो को ठीक किया, बल्कि स्पैमर की साइट पर जाने के लिए लिंक भी बदल दिया।

    अब आपके पास एक विश्वसनीय उपयोगकर्ता से आने वाले अंतिम संपादन के साथ एक पोस्ट है, उत्तर का समर्थन करते हुए, लेकिन एक लिंक के साथ हम लोगों को क्लिक नहीं करना चाहते हैं।

    और संशोधन इतिहास (बिंदु 2 देखें।), भी दिखाएगा कि लिंक बदल दिया गया था।

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

+0

समस्याएं 2 और 3 केवल तब होती हैं जब सर्वर एक प्रस्तुत संस्करण को संभालता है, और मुझे नहीं लगता कि क्लाइंट सभी प्रतिपादन करने पर यह कभी भी संभव क्यों होगा। बस सर्वर को मार्कडाउन संस्करण को विशेष रूप से संभालने दें। बेशक, कारण 1 अपने आप पर पर्याप्त आकर्षक है। लेकिन मुझे 2 या 3. –

+1

@ कोनराड्रूडॉल्फ नहीं समझा जाता है आपका मतलब है कि पृष्ठ केवल मार्कडाउन स्रोत प्राप्त करेगा, और जब कोई पृष्ठ पृष्ठ देखता है तो क्लाइंट HTML को प्रस्तुत करेगा? इसका मतलब यह होगा कि Google (और हर कोई जो जावास्क्रिप्ट नहीं चलाता) सामग्री को कभी नहीं देखता है। साथ ही, प्रश्न सर्वर पर प्रस्तुत सामग्री भेजने के बारे में था। – balpha

+0

ठीक है, Google एम्बेडेड मार्कडाउन सामग्री वाला पृष्ठ भी देखेगा। लेकिन हाँ, मैंने ऐसा नहीं सोचा था। –

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

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