Question

    

Cette question a déjà une réponse ici:

    
            
  •              analyseur JavaScript YAML                                      4 réponses                          
  •     
    

Existe-t-il une telle chose pour YAML (alias YAML )?

Si cela existait à un moment donné, il doit avoir été effacé car la dernière recherche a été effectuée nada. Il semble y avoir de nombreuses implémentations qui dump passent de la sortie Javascript à la sortie YAML uniquement, mais qui rencontrent des difficultés pour trouver une implémentation prenant en charge dump et load.

Quelqu'un travaille-t-il sur une telle chose ... ou la demande est-elle tout simplement trop faible pour cela.

Était-ce utile?

La solution

Peut-être une version plus récente de js-yaml ici:

http://github.com/visionmedia/js-yaml

Autres conseils

Je cherchais simplement la même chose, voici un analyseur YAML basé sur Javascript écrit par Tj Holowaychuk sur refactormycode.com . Je le duplique ici pour m'assurer qu'il n'est pas perdu, semble que le lien JsYaml sur yaml.org soit cassé depuis un moment. Je ne l'ai pas encore testé.

;(function(){
  YAML = {
    valueOf: function(token) {
      return eval('(' + token + ')')
    },

    tokenize: function(str) {
      return str.match(/(---|true|false|null|#(.*)|\[(.*?)\]|\{(.*?)\}|[\w\-]+:|-(.+)|\d+\.\d+|\d+|\n+)/g)
    },

    strip: function(str) {
      return str.replace(/^\s*|\s*$/, '')
    },

    parse: function(tokens) {
      var token, list = /^-(.*)/, key = /^([\w\-]+):/, stack = {}
      while (token = tokens.shift())
        if (token[0] == '#' || token == '---' || token == "\n") 
          continue
        else if (key.exec(token) && tokens[0] == "\n")
          stack[RegExp.$1] = this.parse(tokens)
        else if (key.exec(token))
          stack[RegExp.$1] = this.valueOf(tokens.shift())
        else if (list.exec(token))
          (stack.constructor == Array ?
            stack : (stack = [])).push(this.strip(RegExp.$1))
      return stack
    },

    eval: function(str) {
      return this.parse(this.tokenize(str))
    }
  }
})()

print(YAML.eval(readFile('config.yml')).toSource())




// config.yml

---
  # just a comment
  list: ['foo', 'bar']
  hash: { foo: "bar", n: 1 }
  lib:
    - lib/cart.js
    - lib/cart.foo.js
  specs:
    - spec/cart.spec.js
    - spec/cart.foo.spec.js
    # - Commented out
  environments:
    all:
      options:
        failuresOnly: true
        verbose: false

Je mets à jour cette question pour donner une autre solution sur laquelle j'ai moi-même travaillé: https://github.com/jeremyfa /yaml.js

C’est un port javascript pur du composant Symfony YAML (YAML 1.2). dumping. J'espère que cela vous aidera.

Je ne suis pas sûr de savoir où "beaucoup d'implémentations" cette charge supporte mais ne charge pas - dans la mesure où JSON est un sous-ensemble approprié de YAML 1.2, je suppose qu'il pourrait y en avoir beaucoup, mais ce sous-ensemble fait que YAML n'est pas particulièrement convivial, en particulier pour les données complexes structures. La plupart des liens que j'ai trouvés concernent des fourchettes github de JS-YAML qui dépendent de node.js et / ou fournissent uniquement des analyseurs syntaxiques.

Les yaml.js de Jeremy Faivre sur bitbucket implémentent le vidage et le chargement de YAML dans javascript autonome (je l’ai trouvé dans une réponse à une question connexe ). Il n'est pas activement maintenu, mais semble fonctionner correctement pour les objets YAML et / ou javascript moyennement complexes.

yaml-javascript prétend être à la fois dumper et analyseur. Jamais essayé.

Il existe également ce javascript-yaml- analyseur /

Voir cette question: Parseur JavaScript YAML , Diogo Costa dit:
Aucun des analyseurs syntaxiques YAML javascript disponibles ne répondait à mes besoins. J'ai donc développé le mien: Il est disponible ici: http://code.google.com/p/javascript-yaml-parser/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top