nodeのYAMLモジュール
nodeでpitつくろうかと思ったけど、nodeのYAMLモジュールがRubyとかPerlでつくったYAMLのパースでエラって互換性とれなそうなので諦めた。
--- foo: bar
Error: expected indent after document, near " \nfoo: bar\n"
at Parser.expect (/Users/hokamura/tmp/yaml/node_modules/yaml/lib/yaml.js:174:9)
at Parser.parseDoc (/Users/hokamura/tmp/yaml/node_modules/yaml/lib/yaml.js:256:8)
at Parser.parse (/Users/hokamura/tmp/yaml/node_modules/yaml/lib/yaml.js:226:19)
at Object.eval (/Users/hokamura/tmp/yaml/node_modules/yaml/lib/yaml.js:375:46)
at Object.<anonymous> (/Users/hokamura/tmp/yaml/test.js:3:16)
at Module._compile (module.js:404:26)
at Object..js (module.js:410:10)
at Module.load (module.js:336:31)
at Function._load (module.js:297:12)
at Array.<anonymous> (module.js:423:10)ドキュメント(---)のあとはインデントしろってことみたいだけどYAMLの仕様的にどうなのかがよくわからん。
yamlsihというのあったのでこっちも試して見た。こっちはruby版のpitなら大丈夫だけどPerl版のpitで出力されたYAMLのパースがうまくいかない。
--- "foo": 'bar'
こんな感じでPerl版のYAMLはクオートされていて、これをyamlishでパースすると
{ foo: '\'bar\'' }こうなる。
pitと互換性とるの諦めてJSONとかで設定保存する別のライブラリにしようと思う。