2012-07-02 41 views
138

में सूचक वर्णों से बचने के लिए कैसे करें (i.e.: या -) एक कॉन्फ़िगरेशन फ़ाइल में, मेरे पास एक कुंजी है जिसके लिए मैं एक यूआरएल असाइन करना चाहता हूं। समस्या यह है कि YAML की व्याख्या है: और - वर्ण या तो मैपिंग या सूचियां बनाने के रूप में, तो यह लाइनवाईएएमएल

url: http://www.example-site.com/ 

के साथ एक समस्या है (पेट की वजह से दोनों निम्नलिखित http और बीच में हाइफन)

क्या ':' और '-' से बचने का कोई स्पष्ट तरीका है? या यह पूरी चीज को केवल एक उद्धरण में रखने और इसे एक दिन कॉल करने के लिए काम करेगा?

+0

यह भी देखें: http://en.wikipedia.org/wiki/Delimiter#Delimiter_collision – dreftymac

उत्तर

128

उद्धरण:

"url: http://www.example-site.com/" 

स्पष्ट करने के लिए, मैं मतलब था "के मान को उद्धृत" और मूल रूप से सोचा था कि पूरे बात मूल्य था। यदि http://www.example-site.com/ मूल्य है, बस यह इतना की तरह बोली:

url: "http://www.example-site.com/" 
+17

यह स्पष्ट रूप से पार्सर पर निर्भर करता है। यह जैकिल वाईएएमएल के साथ काम नहीं किया। – ptomato

+1

YAMLDotNet भी उद्धरण प्रस्तुत करता है। – Dr1Ku

+0

दाहिने तरफ का उद्धरण अब जैकिल में ठीक काम करता प्रतीत होता है। –

16

एक और तरीका है कि YAML पार्सर Jekyll में प्रयोग किया जाता के साथ काम करता है:

title: My Life: A Memoir 

Colons रिक्त स्थान के द्वारा पीछा नहीं Jekyll के परेशान करने के लिए नहीं है दूसरी तरफ, वाईएएमएल पार्सर। न तो डैश करें।

+0

... क्या YAML की विशेषता संस्थाएं हैं? और जेकील वास्तव में वाईएएमएल का उपयोग करता है? – Ryan

+0

जैकील इसका उपयोग करने का दावा करता है: http://jekyllrb.com/docs/frontmatter/ मुझे वाईएएमएल स्पेक में चरित्र इकाइयों के बारे में कुछ भी नहीं मिल रहा है, इसलिए मुझे संदेह है कि जैकिल अबाध है, लेकिन मुझे लगता है कि यह उत्तर लोगों के लिए अच्छा काम करता है "yaml escape colon" मेरे जैसा ;-) – ptomato

+0

यह मेरे लिए काम किया। –

25

उद्धरण, लेकिन मैं उन्हें सिर्फ मूल्य पर पसंद करते हैं:

url: "http://www.example.com/" 

उन्हें पूरी रेखा के पार लाना लगता है कि यह समस्या पैदा हो सकती है।

102

क्या भी काम करता है और लंबे समय से, बहु ग्रंथों के लिए भी अच्छे है, अपने पाठ इंडेंट रहा है अगली पंक्ति, एक पाइप या संकेत अधिक से अधिक के बाद:

text: > 
    Op dit plein stond het hoofdkantoor van de NIROM: Nederlands Indische 
    Radio Omroep 

एक पाइप नई-पंक्तियों को बरकरार रखता है, एक gt साइन इन सभी पंक्तियों को एक लंबी स्ट्रिंग में बदल देता है।

+5

... और अंत में एक नई लाइन जोड़ा जाता है, जो आम तौर पर आप नहीं चाहते हैं। – equaeghe

+23

@equaeghe: इसे रोकने के लिए आप '> -' या' | -' का उपयोग कर सकते हैं। – dtoux

+4

यह एक अद्भुत समाधान है। पूरी तरह से आपके पाठ में अन्य पात्रों से बचने से बचाता है। +++ 90000 अंक – bennlich

13

वाईएएमएल स्पेक के अनुसार, न तो : और न ही - एक समस्या होनी चाहिए। : इसके बाद एक स्थान के साथ केवल एक महत्वपूर्ण विभाजक है, और - इसके बाद एक स्थान के साथ एक पंक्ति की शुरुआत में केवल एक सरणी संकेतक है।

लेकिन अपने YAML कार्यान्वयन इसके साथ एक समस्या है, तो आप संभावित है बहुत सारे विकल्प:

- url: 'http://www.example-site.com/' 
- url: "http://www.example-site.com/" 
- url: 
    http://www.example-site.com/ 
- url: >- 
    http://www.example-site.com/ 
- url: |- 
    http://www.example-site.com/ 

वहाँ स्पष्ट रूप से "plain style" में संभव से बचने का कोई रूप नहीं, फिर भी है।

+1

ट्रैविससीआई का लिटर असामान्य रूप से कोलन के बारे में शिकायत करता है - http://lint.travis-ci.org/ – koppor

+0

ट्रैविस सीआई के लिए, ऐसा लगता है कि सिंगल कोट्स के अंदर कोलन ठीक है। – Malvineous

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