CONL: "Markdown" for your config files
Published on: 2025-08-07 08:18:03
In my day job building software, I have to interact with complex configuration files continually. They are (as of 2025) typically in one of three formats: JSON-with-comments, YAML, or TOML.
Although they enjoy widespread usage, each of these formats is painful to use in practice:
JSON-with-comments — it’s really hard to comment out a line in a JSON file, because you end up with an extra trailing , on the previous line which breaks the syntax.
on the previous line which breaks the syntax. TOML — why do [] and [[]] do different things but look the same? And how about a.b = true vs a = {"b" = true} . The M in TOML is more like “muddled” than “minimal”. (see also).
and do different things but look the same? And how about vs . The M in TOML is more like “muddled” than “minimal”. (see also). YAML — 63 different multiline string formats? tags??, the norway problem (solved if your YAML parser no longer supports YAML v1.1…).
I’ve also seen a few new formats trying to add in types, for loop
... Read full article.