2011-01-04 17 views
20

Google के सोया टेम्पलेट्स की एक अच्छी सुविधा यह है कि आप क्लाइंट (जेएस) और सर्वर (जावा) पर एक ही टेम्पलेट का उपयोग कर सकते हैं।पायथन और जावास्क्रिप्ट दोनों के लिए टेम्पलेट सिस्टम?

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

मैं सर्वर के पक्ष पर एक अलग जावा घटक का उपयोग करके इन सोया टेम्पलेट्स को प्रस्तुत कर सकता हूं, या शायद उन्हें node.js. में भी काम कर सकता हूं। उन विकल्पों में से कोई भी विशेष रूप से साफ प्रतीत नहीं होता है।

क्या कोई अच्छा टेम्पलेटिंग इंजन है जो जेएस और पायथन दोनों में चलता है? क्या किसी के पास JSON-Template या Tenjin के साथ अच्छे परिणाम हैं? कोई अन्य विचार?

उत्तर

11

मूंछ एक टेम्पलेट इंजन है जिसे पायथन और जावास्क्रिप्ट (और कई अन्य भाषाओं) में कार्यान्वित किया गया है।

http://mustache.github.com/

+0

उत्तर के लिए धन्यवाद, माइक! क्या आपके पास इसका उपयोग करने का अनुभव है? ये तुम्हें कैसे मिला? क्या कोई बड़ी साइटें इसका उपयोग करती हैं? – nickbaum

+0

मैं जावा एमवीसी ढांचे के लिए एक मूंछ मॉड्यूल बनाए रखता हूं जिसे Play (https://github.com/murz/play-mustache) कहा जाता है। मूंछ का उपयोग करने वाली बड़ी साइटों में ट्विटर, लिंक्डइन, ज़ेंडेस्क शामिल हैं। यहां एक सूची है: https://github.com/janl/mustache.js/wiki/Beard- प्रतियोगिता – mike

+0

हे माइक, बस इस जवाब को देखा। बहुत बहुत धन्यवाद, वास्तव में इसकी सराहना करते हैं! मैं अभी भी सोया का उपयोग कर रहा हूं, लेकिन मैं अपने कुछ टेम्पलेट्स को मूंछ में बदलने की कोशिश कर सकता हूं और देख सकता हूं कि यह कैसे काम करता है। – nickbaum

7

माइकल Kerrin एक परियोजना कहा जाता है पैदा कर दी है pwt.jinja2js

परियोजना विवरण:

pwt.jinja2js Jinja2 टेम्पलेट इंजन जो मान्य Jinja2 जावास्क्रिप्ट के लिए मैक्रो युक्त टेम्पलेट्स संकलित करने के लिए एक विस्तार है । जावास्क्रिप्ट आउटपुट स्क्रिप्ट टैग के माध्यम से शामिल किया जा सकता है या एप्लिकेशन जावास्क्रिप्ट में जोड़ा जा सकता है।

रूप documentation

में कहा गया है एक स्विच हम जावा स्क्रिप्ट का उत्पादन कर सकते है कि बंद के पुस्तकालय का लाभ लेता है और पैदा करता है निम्नलिखित फिसल द्वारा:

Jinja2:

{% namespace ns1 %} 

{% macro printusers(users) %} 
<ul> 
{% for user in users %} 
    <li><a href="{{ user.url }}">{{ user.username }}</a></li> 
{% endfor %} 
</ul> 
{% endmacro %} 

बनता है:

goog.provide('ns1'); 

goog.require('soy'); 

ns1.printusers = function(opt_data, opt_sb) { 
    var output = opt_sb || new soy.StringBuilder(); 
    output.append('\n<ul>\n'); 
    var userList = opt_data.users; 
    var userListLen = userList.length; 
    for (var userIndex = 0; userIndex < userListLen; userIndex++) { 
     var userData = userList[userIndex]; 
    output.append('\n <li><a href="', userData.url, '">', userData.username, '</a></li>\n'); 
} 
    output.append('\n</ul>\n'); 
    if (!opt_sb) return output.toString(); 
} 
+0

सुझाव के लिए धन्यवाद! – nickbaum

2

मुझे एहसास है कि यह एक बहुत पुराना सवाल है, लेकिन संदर्भ के लिए, अब सोया टेम्पलेट्स को पायथन कोड में संकलित करना संभव है।

https://pypi.python.org/pypi/soy

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