From c564f2bbb225ced5e69eb613782c8f3e7147a54d Mon Sep 17 00:00:00 2001 From: "tangly1024.com" Date: Sun, 29 Sep 2024 17:57:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=85=8D=E7=BD=AE=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96%category%?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/config.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/config.js b/lib/config.js index 63781524..17c9a2bf 100644 --- a/lib/config.js +++ b/lib/config.js @@ -94,6 +94,11 @@ export const siteConfig = (key, defaultVal = null, extendConfig = {}) => { return convertVal(val) } +export const cleanJsonString = val => { + // 使用正则表达式去掉不必要的空格、换行符和制表符 + return val.replace(/\s+/g, ' ').trim() +} + /** * 从环境变量和NotionConfig读取的配置都是string类型; * 这里识别出配置的字符值若为否 数字、布尔、[]数组,{}对象,若是则转成对应类型 @@ -128,13 +133,16 @@ export const convertVal = val => { } // 配置值前可能有污染的空格 - if (val.indexOf('[') < 0 && val.indexOf('{') < 0) { + // 如果字符串中没有 '[' 或 '{',则直接返回 + if (!val.trim().startsWith('{') && !val.trim().startsWith('[')) { return val } // 转换 [] , {} 这类字符串为对象 try { + val = cleanJsonString(val) const parsedJson = JSON.parse(val) + // 检查解析后的结果是否为对象 if (parsedJson !== null) { return parsedJson }