Hasty Briefsbeta

双语

CONL: "Markdown" for your config files

a year ago
  • #configuration
  • #software-development
  • #data-formats
  • 2025年的复杂配置文件通常使用支持注释的JSON、YAML或TOML格式,但每种格式都存在易用性问题。
  • 支持注释的JSON格式因尾随逗号破坏语法而存在注释难题。
  • TOML的语法令人困惑,相似结构的语法却执行不同操作。
  • YAML具有多种多行字符串格式和其他复杂性。
  • 不鼓励添加类型和循环的新格式;应使用编程语言生成配置。
  • CONL被设计为一种极简、易读且易于编辑的配置格式。
  • CONL支持键值对、列表、映射和多行标量值(可带语法提示)。
  • 该格式已稳定,提供Rust和Go实现,包括语言服务器和Zed编辑器扩展。
  • CONL设计避免语法类型标注,支持嵌套结构且无需逗号或复杂分隔符。
  • 注释使用分号';'以避免与URL和颜色值冲突,多行字符串使用三引号"""。
  • 支持带反斜杠转义的引用字面量,能更好地处理转义序列。
  • CONL的简化数据模型包含标量、列表和映射类型,但不支持与JSON的双向转换。
  • 采用类似Python的缩进表示结构,允许无值的键表示空值。
  • 该格式鼓励为数值添加单位,并通过转义序列支持Unicode码位。