2009-06-08 8 views
18

मैं टेम्पलेट्स के लिए staticmatic का उपयोग करता हूं जिसे मैं बाद में PHP के साथ उपयोग करता हूं। एक अजीब स्थिति है जहां कुछ टैग विशेषताओं में सिंगल कोट्स होते हैं, जबकि कुछ में डबल कोटेशन अंक होते हैं। मैं दोहरे उद्धरण चिह्नों विशेष रूप से करने के लिए उन सभी को चाहते हैं (! यह मायने रखता है न कि मुझे लगता है कि, लेकिन मैं उन्हें उस तरह चाहते हैं)हमल - मैं टैग गुणों को केवल दोहरे उद्धरणों का उपयोग करने के लिए कैसे मजबूर करूं और मैं किस तरह से टैग विशेषताएँ ऑर्डर कर सकता हूं?

उदाहरण के लिए, haml कोड:

!!! XML 
%html{html_attrs('hr-HR')} 
    %head 
    %title Some title 
    %meta{'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8'}/ 
    %meta{'name' => "description", :content => 'Some title - YO!'}/ 
    = stylesheets 
    = javascripts('test', :other) 
    %body 
    = yield 

निम्नलिखित का उत्पादन:

<?xml version='1.0' encoding='utf-8' ?> 
<html lang='hr-HR' xml:lang='hr-HR' xmlns='http://www.w3.org/1999/xhtml'> 
    <head> 
    <title>Some title</title> 
    <meta content='text/html; charset=utf-8' http-equiv='Content-Type' /> 
    <meta content='Some title - YO!' name='description' /> 
    <link href="stylesheets/application.css" media="all" rel="stylesheet" type="text/css"/><link href="stylesheets/grid.css" media="all" rel="stylesheet" type="text/css"/><link href="stylesheets/text.css" media="all" rel="stylesheet" type="text/css"/> 
    <script language="javascript" src="javascripts/test.js" type="text/javascript"></script><script language="javascript" src="javascripts/other.js" type="text/javascript"></script> 

    </head> 
    <body> 
    <h1>some body stuff!</h1> 
    utf test šđčćž ŠĐČĆŽ 
    </body> 
</html> 

ध्यान दें कि इससे कोई फर्क नहीं पड़ता कि मैं एकल कोट्स या डबल कोट्स का उपयोग हैम कोड में करता हूं, मुझे हमेशा एक ही आउटपुट मिलता है!

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

उत्तर

28

निम्नलिखित का प्रयास करें:

Haml::Template.options[:attr_wrapper] = '"' 
+1

जहाँ मैं staticmatic जाते थे कि? configic द्वारा बनाई गई परियोजना के तहत src/config में config.rb नहीं है। चूंकि मुझे अभी तक रूबी के बारे में थोड़ा संकेत नहीं है, इसलिए मुझे नहीं पता कि उस कॉन्फ़िगरेशन को कहां रखा जाए। – Keyframe

+0

ठीक है, मैंने बंदर को रेंडर.आरबी को स्टेटिकमैटिक में उस विकल्प को शामिल करने के लिए पैच किया है, यह सब अब है "धन्यवाद। – Keyframe

+3

रेल 3 के लिए मैंने इस लाइन को 'config/startizers/haml.rb' में रखा है। –

2

Haml आदेश वर्णानुक्रम जिम्मेदार बताते हैं वास्तव में करता है, और यह वास्तव में रूबी के पार्सर का परिणाम है। भविष्य में, दस्तावेज़ ऑर्डर में जितना संभव हो सके गुणों का ऑर्डर किया जा सकता है, लेकिन यह तब तक 2.2 या बाद में होने की संभावना नहीं है।

+0

मुझे आश्चर्य है कि क्या यह बिल्कुल संभव है?मुझे पता है कि इससे कोई फर्क नहीं पड़ता, गुणों का क्रम, लेकिन कोड को देखते समय यह सही महसूस नहीं करता है। मैं एक सहायक तैयार कर सकता हूं और इसमें शामिल हो सकता हूं, लेकिन मैं फिर भी हैम का उपयोग क्यों करूंगा, है ना? – Keyframe

+3

समस्या यह है कि हैमल टेम्पलेट्स कैसे संकलित करता है। यह पहले टेम्पलेट्स को रूबी कोड में परिवर्तित करता है जो HTML की एक स्ट्रिंग उत्पन्न करने के लिए चलाता है। यह संकलन से पहले विशेषता हैश को पार्स करने का प्रयास करता है (हाल ही में यह इस पर बेहतर हो गया है - यह किसी भी विशेषता हैश को पार्स करने में सक्षम होना चाहिए जिसमें गतिशील मान शामिल नहीं हैं), लेकिन यदि यह नहीं हो सकता है, तो यह हैश को शाब्दिक रूबी के रूप में सम्मिलित करता है संकलित कोड में हैश। चूंकि रूबी हैश आदेश को संरक्षित नहीं करते हैं (कम से कम रूबी 1.8 में), इसका मतलब है कि परिणामी गुण एक अनिर्धारित क्रम में हैं। फिर आउटपुट निर्धारिती बनाने के लिए, हैमल उन्हें वर्णित करता है। –

+1

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

0

उद्धरण से: http://haml.info/docs/yardoc/file.REFERENCE.html#options

Haml विभिन्न विन्यास विकल्प है कि इसके प्रदर्शन और उत्पादन को प्रभावित समझता है।

रेल में, विकल्प एक प्रारंभकर्ता में Haml::Template.options हैश सेटिंग द्वारा निर्धारित किया जा सकता है:

# config/initializers/haml.rb

Haml::Template.options[:format] = :html5 

बाहर रेल, तो आप उन्हें Haml::Options.defaults में विश्व स्तर पर कॉन्फ़िगर करके सेट कर सकते हैं:

Haml::Options.defaults[:format] = :html5 

अंत में, आप उन्हें विकल्प हैश पास करके सेट कर सकते हैं [हमल :: इंजन # प्रारंभ करें] [1]। के लिए उपलब्ध विकल्पों की पूरी सूची के लिए, कृपया देखें [हमल :: विकल्प] [2]।

[1]

: http://haml.info/docs/yardoc/Haml/Engine.html#initialize-instance_method

[2]: http://haml.info/docs/yardoc/Haml/Options.html

+0

प्रश्न लगभग छः वर्ष पुराना है :) – Keyframe

+0

फिर भी मैं इस सामान के लिए नया हूं, इसलिए मेरे लिए वास्तविक है। और दूसरों के लिए हो सकता है। –

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

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