2011-02-26 7 views
11

मैं एक सेवा बना रहा हूं जिसमें मैं अंतिम उपयोगकर्ताओं को वेब पृष्ठों के लिए HTML टेम्पलेट्स संपादित करने की अनुमति देना चाहता हूं जो टेम्पलेट में शामिल करने के लिए विशिष्ट "चर" तक पहुंच की अनुमति देता है।रेल एंड एंड-यूजर टेम्पलेटिंग इंजन: तरल बनाम मूंछ बनाम अन्य?

मुझे पता है कि तरल इस उद्देश्य के लिए डिज़ाइन किया गया था, सुरक्षित (कम से कम अपेक्षाकृत) है, और भारी उत्पादन के उपयोग में है। हालांकि, मुझे मूंछ जैसे कुछ की तुलना में अंतिम उपयोगकर्ताओं के लिए भाषा काफी जटिल लगती है।

मूंछ बहुत अच्छा लगता है, लेकिन मैं सुरक्षा के बारे में चिंतित हूं ... क्या इसका कभी अंत उपयोगकर्ता टेम्पलेट्स के लिए उपयोग किया गया है?

मूल रूप से मैं एक templating इंजन मैं w उपयोग कर सकते हैं/अंत उपयोगकर्ताओं के लिए रेल वह यह है कि रहा हूँ:

  1. सुरक्षित - उपयोगकर्ता द्वारा कोड के निष्पादन की अनुमति नहीं होगी ... कम से कम पर नहीं सर्वर। उपयोगकर्ताओं को क्लाइंट-साइड जावास्क्रिप्ट डालने की अनुमति दी जाएगी।
  2. शक्तिशाली - अंत उपयोगकर्ताओं काफी किसी भी वेब पेज वे आपूर्ति की "चर" का उपयोग कल्पना कर सकते हैं और # 1
  3. के संदर्भ में बनाने की अनुमति देता सरल - वाक्य रचना स्पष्ट और आसान है अंत उपयोगकर्ताओं
  4. लागू करने के लिए
  5. बोनस पॉइंट्स यदि जावास्क्रिप्ट और अन्य भाषाओं में टेम्पलेट सिंटैक्स को प्रस्तुत करने के लिए समर्थन है।

तरल 1 & 2, लेकिन 3-4 नहीं मिलता है। मूंछ 2-4 से मिलता है, लेकिन मुझे यकीन नहीं है कि # 1 और यह गैर-विचारणीय है।

किसी अंतर्दृष्टि, अनुभव या टिप्पणियों की बहुत सराहना करते हैं।

उत्तर

3

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

एक और विकल्प बीबीकोड या एक समृद्ध-पाठ संपादन लाइब्रेरी जैसे TinyMCE जैसे मौजूदा सरल उपयोगकर्ता मार्कअप सेट का उपयोग करना होगा। ये कार्यक्षमता में बहुत कम हैं, लेकिन औसत लोगों के लिए उपयोग करना आसान है।

+1

मुझे वास्तव में दो कारणों से सर्वर पक्ष पर प्रतिपादन होने की आवश्यकता है: 1. Google और अन्य खोज बॉट्स को पूरी तरह से प्रस्तुत पृष्ठ w/"चर" पहले ही विस्तारित करने में सक्षम होना चाहिए 2. होने के दौरान जेएस सक्षम काफी प्रचलित है अब मैं इसे – marcusmateus

+0

5min आवेदन की आवश्यकता नहीं बनाना चाहता हूं ?? @Winfield # 1 को स्पष्ट करने की आवश्यकता है। टेम्पलेट में अनचाहे तारों के बारे में चिंतित नहीं है, क्योंकि मैं जेएस को टेम्पलेट्स में अनुमति देता हूं .. इसे किसी अन्य मंच में चिंता के रूप में उठाया गया था। लेकिन, मैं वास्तव में प्रतिपादन दो कारणों के लिए सर्वर साइड पर हो की आवश्यकता है: 1. गूगल और अन्य खोज बॉट पूरी तरह से गाया पृष्ठ का सूचीकरण करने में सक्षम होना चाहिए डब्ल्यू/"चर" पहले से ही विस्तार किया 2 जेएस सक्षम होने पर काफी प्रचलित है, अब मैं इसे की आवश्यकता नहीं बनाना चाहता हूं, मैं सहमत हूं कि बीबीकोड/टिनीएमसीई सरल है, लेकिन इसका उपयोग करके यह वास्तव में ऐप की शक्ति से दूर ले जाएगा (# 2) – marcusmateus

+0

जब तक आप अपने विचार में प्रकट होने वाली विधियों के बारे में सावधान रहें, मुझे लगता है कि मूंछ सुरक्षित और आपकी आवश्यकताओं को अच्छी तरह से फिट करेगी। वाक्यविन्यास भयानक नहीं है; यह संभवतः उतना ही आसान है जितना आप टेम्पलेट इंजन के रूप में प्राप्त कर सकते हैं। एक उदाहरण के लिए [डेमो] (http://mustache.github.com/#demo) देखें। –

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