2010-12-02 13 views
33

मैं एक जावास्क्रिप्ट YAML पार्सर की तलाश में हूं जो YAML को HTML पृष्ठ में उपयोग करने योग्य कुछ में परिवर्तित करता है। मैंने गीथब (https://github.com/visionmedia/js-yaml) पर इस संस्करण की कोशिश की है, लेकिन ऐसा लगता है कि यह केवल node.jsजावास्क्रिप्ट YAML पार्सर

कौन से पुस्तकालयों का उपयोग करना चाहिए और उदाहरण के उपयोग को दिखाने के लिए कोई नमूना कोड है?

+3

आपने कौन सी लाइब्रेरीज़ की कोशिश की है? हमें अनुमान मत बनाओ। इसके अलावा, आपके साथ क्या समस्याएं थीं? –

+1

मैं हाल ही में एक जावास्क्रिप्ट YAML libary की तलाश में हूं। और एक लंबी खोज के बाद, मैंने निष्कर्ष निकाला है कि वर्तमान में कोई नहीं है। कम से कम कोई उचित नहीं है जो सभी मौजूदा सुविधाओं का समर्थन करता है। जेएस-यमल "सर्वश्रेष्ठ" प्रतीत होता है, लेकिन इसके लिए node.js की आवश्यकता होती है, जिसे मैं अपने मामले में उपयोग नहीं करना चाहता था। यह भी देखें http://stackoverflow.com/questions/428364/pure-javascript-yaml-library-that-supports-both-dump-and-load – RoToRa

+0

यह भी देखें: http://stackoverflow.com/questions/428364/ शुद्ध-जावास्क्रिप्ट-याम-लाइब्रेरी-वह-समर्थन-दोनों-डंप-एंड-लोड – dreftymac

उत्तर

25

JS-YAML पार्सर ब्राउज़र में काम करता है। यहां ऑनलाइन डेमो http://nodeca.github.com/js-yaml/ है। हालांकि, इसका प्राथमिक लक्ष्य node.js है, और ब्राउज़र संस्करण केवल मजेदार के लिए किया गया था :)

+0

जब मैं सफारी 5.1 में ब्राउज़र संस्करण लोड करता हूं, तो मुझे बस "टाइप एरर: 'अपरिभाषित' एक ऑब्जेक्ट नहीं है" दाएं हाथ में - तो यह नहीं है स्पष्ट करें कि यह कितना अच्छा काम करता है। –

+2

जाहिर है कुछ [सफारी के साथ मुद्दे और आईई के कुछ संस्करण] हैं (https://github.com/nodeca/js-yaml/issues/21) - यह हाल ही में फ़ायरफ़ॉक्स में मेरे लिए काम करता है। ऐसा लगता है कि समस्याएं कई पुराने ब्राउज़र प्रकारों (जैसे Array.isArray Safari/IE में लागू नहीं) में सामान्य जावास्क्रिप्ट हैं। –

+0

@AlexDupuy हाँ, यह पहला लक्ष्य मंच node.js. है कुछ ब्राउज़र शिम हैं, लेकिन सभी नहीं। – Vitaly

24

पुरानी पोस्ट का जवाब देने के लिए खेद है, लेकिन मैं आपके जैसी ही समस्या में फंस गया। उपलब्ध जावास्क्रिप्ट YAML पारसर्स के

कोई भी मेरी जरूरतों को संतुष्ट तो मैं अपने ही विकसित: यह यहाँ उपलब्ध है: http://code.google.com/p/javascript-yaml-parser/

आशा है कि यह मदद करता है किसी को :)

Cumps, डियोगो

+0

+1 ग्रेट। जैसे ही मैं कर सकता हूं मुझे इसे आजमाने की ज़रूरत होगी! – RoToRa

+2

+1। जेएस-यमल में आपको क्या विशेषताएं नहीं मिलीं? https://github.com/visionmedia/js-yaml (वैसे, ऐसा लगता है कि किसी ने जेएस-यामल फोर्क किया है, और स्ट्रिंग अक्षर के लिए समर्थन जोड़ा गया है, https://github.com/mcantelon/js-yaml/commit/ a09a560413526c1dfc984b08513b7630a0e72613) – KajMagnus

+1

(या यह जेड-यम की निर्भरता (??) पर नोड.जेएस पर था जिसने आपको इसका उपयोग करने से रोका?) – KajMagnus

20

यहां मुझे मिला है। यह सुनिश्चित नहीं है कि यह कितना नमूना मिलता है, लेकिन यह मेरी आवश्यकताओं के अनुरूप है।

https://github.com/jeremyfa/yaml.js

+1

यह स्वीकार्य उत्तर होना चाहिए, क्योंकि यह निर्भरता मुक्त, उचित रूप से छोटा और काम करता है - कम से कम मेरी सभी फाइलों पर। –

+1

अपडेट: दोनों http://nodeca.github.com/js-yaml/ (स्वीकृत उत्तर) और https://github.com/jeremyfa/yaml.js (यह उत्तर) काम करने लगते हैं और विशेषताएं @FloLedermann का वर्णन करती है (जब तक आपको 'जेएस/फ़ंक्शन' स्कीमा चेक की आवश्यकता न हो)। पूर्व - स्वीकृत उत्तर - वर्तमान में हाल ही की गतिविधि और अधिक सितारे हैं। –

+2

जेएस-वाईएएमएल रखरखाव की तरह लगता है ब्राउज़र ब्राउज़र के लिए इसका इरादा नहीं है। मैंने पढ़ा है कि "बचें, इससे बचें"। वे खुद कहते हैं - समर्थन या सुधार की उम्मीद नहीं है। –

3

js-yaml सफारी, क्रोम और फ़ायरफ़ॉक्स पर OSX में ठीक काम करता है। यहां एक उदाहरण है:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>Test js-yaml</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script src="./js-yaml/dist/js-yaml.min.js"></script> 
    <script type="text/javascript"> 

     // YAML string to Javascript object 
     var obj = jsyaml.load('greeting: hello\nname: world'); 
     console.log(obj); 

     // YAML file to Javascript object 
     $.get('https://raw.githubusercontent.com/nodeca/js-yaml/c50f9936bd1e99d64a54d30400e377f4fda401c5/benchmark/samples/document_application2.yaml', function(data) { 
      var obj = jsyaml.load(data); 
      console.log(obj); 
     }); 

     // Huge YAML file (7.2 MB) to Javascript object 
     $.get('https://raw.githubusercontent.com/nodeca/js-yaml/master/benchmark/samples/document_huge.yaml', function(data) { 
      var obj = jsyaml.load(data); 
      console.log(obj); 
     }); 

    </script> 
</head> 
<body> 
<h1>Test js-yaml</h1> 
<p><a href="https://github.com/nodeca/js-yaml">https://github.com/nodeca/js-yaml</a></p> 
</body> 
</html> 
संबंधित मुद्दे