2012-06-11 10 views
9

मैं किसी आइकन से पहले एक लिंक प्रस्तुत करने का प्रयास कर रहा हूं। मैं टेम्पलेटिंग इंजन का उपयोग Bootstrap CSS के साथ कर रहा हूं।स्लिम टेम्पलेट्स के अंदर HTML कैसे प्रस्तुत करें

आमतौर पर आप इस निम्नलिखित तरीके से कर सकता है: स्लिम के प्रलेखन के अनुसार

<a href="#"><i class="icon-user"></i> My Profile</a> 

, हम == का उपयोग एचटीएमएल भागने के बिना रेंडर करने के लिए कर सकते हैं।

li== link_to "<i class='icon-user'></i> My Profile", current_user 
li== link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user 
li= link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user 

सभी रूपों <a href="https://stackoverflow.com/users/1"><i class="icon-user"></i> My Profile</a> गाया i टैग भागने: तो, स्लिम को यह अनुवाद करते समय, मैं निम्नलिखित रूपों की कोशिश की।

मैं स्लिम या रेल को HTML से बचने से कैसे रोक सकता हूं?

(स्लिम 1.2.1 के साथ 3.2 रेल) ​​

उत्तर

9

आप HTML link_to तर्क, नहीं पूरे link_to परिणाम के लिए भागने को निष्क्रिय करना चाहते। आप अपने html_safe के साथ बहुत करीब हैं लेकिन आपकी स्ट्रिंग इंटरपोलेशन आपके "HTML के लिए सुरक्षित" ध्वज खा रहा है। यह बेहतर काम करना चाहिए:

li= link_to '<i class="icon-user"></i> My Profile'.html_safe, current_user 
8

वैकल्पिक रूप से, आप के रूप में

li 
    a href=url_for(current_user) 
    i.icon-user My Profile 

जो यकीनन एक छोटे से पढ़ने में आसान है यह लिख सकते हैं।

+0

जोड़ा जा रहा है अगर आप एक विशेषता मान जो सुरक्षित एचटीएमएल के रूप में प्रदान किया जाना चाहिए है, कि डबल का उपयोग "=" के रूप में ही होगा: 'अवधि डेटा-चिह्न == icon' (जहां अंतिम आइकन एक चर है जिसमें &#...; शामिल हैं) – elado

+0

@ एलाडो: स्लिम दस्तावेज सटीक विपरीत नहीं बताता है: https://github.com/slim-template/slim#output-without-html-escaping-? – MoMolog

+2

'==' बच नहीं आता है, '=' करता है। आप बच निकले चर को प्रस्तुत करने के लिए 'टैग attr = variable' का उपयोग कर सकते हैं। यदि आप इसे से बचाना नहीं चाहते हैं, तो 'टैग attr == चर' का उपयोग करें। उदाहरण के लिए, एक एचटीएमएल इकाई को एक विशेषता के रूप में सही तरीके से प्रस्तुत करने के लिए, आपको इससे बचना नहीं चाहिए: रूबी: 'आइकन =" { "' पतला: 'span.icon डेटा-आइकन == आइकन' – elado

1

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

li 
    = link_to current_user do 
    i.icon-user> 
    | My Profile 
6

इसका उत्तर दिया गया है, लेकिन यदि आपके पास वास्तव में कुछ HTML है और आप इसे एक पतले टेम्पलेट में प्रस्तुत करना चाहते हैं, तो डबल बराबर का उपयोग करें।

== "<i>test</i>" 

= "<i>test</i>".html_safe 
संबंधित मुद्दे