V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Cbdy
V2EX  ›  分享创造

我做了一个把 JSON 转换成人类更容易阅读/编辑风格的 TOML

  •  
  •   Cbdy · 6 小时 35 分钟前 · 75 次点击

    痛点

    配置文件用什么格式? JSON 不适合手写,YAML 缩进容易出错。TOML 看似完美,但大多数工具生成的 TOML 嵌套层级太深:

    # 默认生成的
    [server]
    [server.database]
    [server.database.connection]
    host = "localhost"
    port = 5432
    

    人类更喜欢扁平的:

    # 实际想要的
    [server]
    database.connection = { 
      host = "localhost",
      port = 5432,
    }
    

    解决方案

    json-pretty-toml - 将 JSON 转换为扁平化 TOML ,遵循三个原则:

    1. 只有一层 Table[section]
    2. Key 最多两层section.key = valuesection."key.name" = {...}
    3. 其余全部内联{ ... }),使用TOML 1.1的内连风格

    示例

    $ echo '{"gateway":{"port":18789,"auth":{"mode":"token"}}}' | json-pretty-toml
    
    [gateway]
    port = 18789
    auth.mode = "token"
    

    支持多行内联表、自动引号转义、数组格式化等。

    安装

    npm install -g json-pretty-toml
    

    或直接用 npx:

    npx json-pretty-toml < config.json > config.toml
    

    链接

    适合需要阅读/偶尔编辑配置文件的场合

    1 条回复
    Dispatcher
        1
    Dispatcher  
       6 小时 13 分钟前
    让我想起了 ini 这种配置文件。尤其是 win95 的 system.ini 和 win.ini

    历史就是个大轮回啊。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:03 · PVG 04:03 · LAX 13:03 · JFK 16:03
    ♥ Do have faith in what you're doing.