तो, मुझे पता है कि मैं ऐसा कुछ कर सकता हूं:
sitelist: &sites
- www.foo.com
- www.bar.com
anotherlist: *sites
और है sitelist
और anotherlist
दोनों होते हैं www.foo.com
और www.bar.com
। हालांकि, क्या मैं वास्तव में चाहते हैं के लिए है anotherlist
करने के लिए भी शामिल www.baz.com
दोहराने के लिए बिना, www.foo.com
और www.baz.com
।
ऐसा करने से मुझे YAML पार्सर में एक सिंटैक्स त्रुटि मिलती है:
sitelist: &sites
- www.foo.com
- www.bar.com
anotherlist: *sites
- www.baz.com
केवल एंकर और उपनाम का उपयोग करने से यह संभव नहीं लगता है कि मैं किसी अन्य स्तर के उपप्रकार को जोड़कर क्या करना चाहता हूं, जैसे:
sitelist: &sites
- www.foo.com
- www.bar.com
anotherlist:
- *sites
- www.baz.com
जिसका अर्थ है कि इस YAML फ़ाइल के उपभोक्ता को इसके बारे में पता होना चाहिए।
वहाँ इस तरह से कुछ करने का एक शुद्ध YAML तरीका है? या क्या मुझे कुछ पोस्ट- YAML प्रसंस्करण का उपयोग करना होगा, जैसे कि चर प्रतिस्थापन या कुछ प्रकार के उपप्रकार के ऑटो-लिफ्टिंग को लागू करना? मैं पहले से ही कुछ अन्य उपयोग के मामलों को संभालने के लिए उस तरह की पोस्ट-प्रोसेसिंग कर रहा हूं, इसलिए मैं इससे पूरी तरह से प्रभावित नहीं हूं। लेकिन मेरी YAML फाइलें इंसानों द्वारा लिखी जाने वाली हैं, न कि मशीन द्वारा बनाई गई हैं, इसलिए मैं उन नियमों की संख्या को कम करना चाहूंगा जिन्हें मेरे उपयोगकर्ताओं द्वारा मानक YAML सिंटैक्स के शीर्ष पर याद किए जाने की आवश्यकता है।
मैं भी नक्शे के साथ अनुरूप काम करने में सक्षम होना चाहते हैं:
namedsites: &sites
Foo: www.foo.com
Bar: www.bar.com
moresites: *sites
Baz: www.baz.com
मैं YAML कल्पना के माध्यम से एक खोज की है , और कुछ भी नहीं मिल सकता है, इसलिए मुझे संदेह है कि जवाब सिर्फ "नहीं, आप ऐसा नहीं कर सकते"। लेकिन अगर किसी के पास कोई विचार है जो महान होगा।
संपादित करें: चूंकि कोई उत्तर नहीं है, इसलिए मैं मान रहा हूं कि किसी ने कुछ भी नहीं देखा है जो कि मैं YAML की कल्पना में नहीं आया हूं और यह कि YAML परत पर नहीं किया जा सकता है। इसलिए मैं इस सवाल को हल करने के लिए YAML को पोस्ट-प्रोसेसिंग के लिए विचार करने के लिए सवाल खोल रहा हूं, अगर किसी को भविष्य में यह सवाल मिलता है।