Most existing formats are really bad for at least one of these. Tables in JSON have tons of repetition. XML doesn't have a clear and obvious way to do maps. Almost anything other than XML is awkward at best for node trees.
Confetti seems to cover maps, trees, and non-nested lists really well, which isn't a combination any other format I'm aware of covers as well.
Nested lists and tables seem like they would be more awkward, though from what I can tell "-" is a legal argument, so you could do:
nestedlist {
- { - 1 ; - 2 }
- {
- { - a ; - b }
- { - c ; - d }
}
}
To get something like [[1, 2], [[a, b], [c, d]]]. Of course you could also name the items (item { item 1 ; item 2 }), but either way this is certainly more awkward than a nested list in JSON or YAML.I think a table could be done like JSON/HTML with repeated keys, but maybe also like:
table name age favorite-color {
row Bob 87 red
row "Someone else" 106 "bright neon green"
}
This is actually pretty nice.In any event, I love seeing more exploration of configuration languages, so thanks for sharing this!
My number 1 request is a parser on the documentation page that shows parse tree and converts to JSON or other formats so you can play with it.