INI配置格式化
格式化与校验 INI 配置文件:统一分隔符(= 或 :)与两侧空格、统一缩进、压缩多余空行,可按段落名与键名排序、保留或丢弃注释,重复键可选择保留 / 去重 / 报错,非法行会指出具体行号。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
这个工具能做什么
- 收到的配置文件分隔符混着写(有的 key=value、有的 key: value),格式化成统一风格再提交,diff 干净好审。
- 段落之间空行忽多忽少、行尾还有多余空格,一次统一成固定空行数与缩进,避免占位符式的无意义改动。
- 按段落名与键名排序,让两个环境的配置文件可以逐行对比,找出差异项。
- 校验配置是否写坏:不是段落也不是键值对的行会指出具体行号,重复键也能选择直接报错。
示例
输入
name : app [server] host=localhost [log] level: info
输出
name: app [server] host = localhost [log] level: info
默认设置下:分隔符保持原文(冒号保持冒号、等号保持等号)、分隔符两侧补一个空格、段落之间统一为 1 个空行、去掉多余空行并在末尾补换行。注意无段落的 name 会在输出时省略 [default] 标题。
常见问题
没有写段落名的键会被放到哪里?
归入名为 default 的虚拟段落,排序时 default 段永远排在最前,并且渲染时不会输出 [default] 这一行标题(因为原文里就没有)。如果同一份文件里既有裸键又有 [default] 段,它们会被合并到同一个段落里。
重复键会怎么处理?
默认「原样保留」,只统计并在结果里列出重复键(形如 server.port)。选「只留最后一个」会丢掉前面的定义并报告去掉的条数。选「报错」则整份文件拒绝格式化,直接提示存在重复键——适合在 CI 里防止配置被悄悄覆盖。
注释会跟着哪一行走?
注释跟随它后面的那个键或段落标题:写在 [section] 上面就成了段落标题的前导注释,写在键上面就跟在这个键前面。文件末尾的注释会留在最后一个段落末尾。勾掉「保留注释」则注释会被整份丢弃,但注释行数仍会统计出来。
压缩模式和格式化有什么区别?
压缩模式(minify)在格式化的基础上固定用 =、不加空格、不缩进、段落之间不留空行、丢弃注释,适合生成机器读取的紧凑配置。注意压缩仍会保留段落标题,只是去掉了所有美化。
哪些行会被认为非法?
以 [ 开头但不符合 [section] 形式、或段落名为空的行会报「段落标题不合法」;既不含 = 也不含 : 的行会报「这一行既不是段落也不是键值对」;分隔符前为空(如 「= value」)会报「键不能为空」。三种错误都会带上具体行号,方便直接跳过去修。
关键词:iniini formatterini 格式化ini 美化配置文件config filesectionsort keys格式化lint