2010-12-30 12 views
14

एचटीएमएल टेम्पलेटिंग के लिए Django का उपयोग करते समय मैं अच्छा HTML मार्कअप स्वरूपण कैसे बना सकता हूं।django टेम्पलेट्स के साथ पठनीय एचटीएमएल बनाना

मैं सामग्री ब्लॉक का उपयोग करने की कोशिश कर रहा हूं। लेकिन सामग्री ब्लॉक अलग-अलग टेम्पलेट्स में इंडेंटेशन के विभिन्न स्तरों पर दिखाई देते हैं। मैं इंडेंट को दिखाने के लिए सामग्री ब्लॉक कैसे प्राप्त करूं जैसे ऐसा होगा अगर कोई एचटीएमएल लिखने के लिए होता।

मुझे नई लाइनों के साथ एक ही समस्या है; मैं टेम्पलेट में सभी ब्लॉक को एक साथ तोड़ सकता हूं। उस बिंदु पर एचटीएमएल बेहतर दिखता है, लेकिन टेम्पलेट्स अनजान हैं।

मुझे लगता है कि सवाल यह है कि आप django templating system के साथ सुंदर HTML मार्कअप कैसे बनाते हैं?

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

+1

HTML लेआउट क्यों मायने रखता है? –

+1

मैं बिल्कुल विपरीत विपरीत करना चाहता हूं, जितना संभव हो सके HTML को स्क्वैश करें ताकि इसमें जितना संभव हो उतना छोटा अक्षर हो। –

+0

@rebus: सहमत - छोटे डाउनलोड तेज़। ऐसा लगता है कि एचटीएमएल के साथ झगड़ा करने में समय बिताया गया समय बर्बाद हो गया है।सबसे पहले, यह समय विकास में बर्बाद हो गया है। दूसरा, यह समय व्हाइटस्पेस स्थानांतरित बर्बाद कर दिया गया है। तीसरा, यह समय सभी रखरखाव (और अर्थहीन) सफेद जगह को बचाने की कोशिश कर रखरखाव में बर्बाद हो गया है। –

उत्तर

14

पाइवोल्व से ईसाई एस पेरोन exactly what you're looking for है। वह HTTPResponse ऑब्जेक्ट को रोकने और इसे BeautifulSoup के माध्यम से चलाने के लिए मिडलवेयर का उपयोग करता है।

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

0

मुझे प्रभावित है कि आप परिणामस्वरूप एचटीएमएल की परवाह करते हैं - मुझे केवल टेम्पलेट्स को साफ और पठनीय करने की चिंता है! लेकिन आपके प्रश्न के उत्तर में, क्या आपने मिडलवेयर देखा है?

http://docs.djangoproject.com/en/dev/topics/http/middleware/

फिर एचटीएमएल पुन: प्रारूपित करना साफ अजगर मॉड्यूल का उपयोग करें।

http://pypi.python.org/pypi/PythonTidy/

0

मैं ऐसे µTidylib के रूप में, एक HTML tidier के माध्यम से टेम्पलेट इंजन के उत्पादन को चलाने के लिए सलाह देते हैं।

1

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

+0

और ऐसा करने वाला एकमात्र व्यक्ति शायद ओपी का प्रोजेक्ट मैनेजर है, जो अब अपनी आंखों को खुश करने के लिए कुछ हजार डॉलर निवेश करने को तैयार है ;-) +1 –

+0

यह मानता है कि आप कभी भी टेम्पलेट्स को आजमाने और डीबग करने के लिए आउटपुट को नहीं देखते हैं। –

0

आप लंबे समय से है, लेकिन सरल तार की स्ट्रिंग-स्वरूपण करने के लिए Django टेम्पलेट का उपयोग कर रहे हैं, तो आप .format साथ पायथन के ट्रिपल उद्धृत स्ट्रिंग का उपयोग कर सकते हैं() में एक समारोह डीईएफ़:

def templated_string(context_dict): 
    return '''This is an example 
of a long string across multiple lines. 
It can be used to format {something} for 
{name}'s own purposes, even though 
it looks funny in code'''.format(**context_dict) 

फिर templated_string({'name': 'rileymat', 'something': 'whatever you want'}) समझदार बात करता है। आप इस तरह कच्चे एचटीएमएल उत्पन्न कर सकते हैं ... जिसके बाद आप वास्तव में व्हाइटस्पेस मांगते हैं।

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