From 316dadcaea319829f0f7d44d978e5109553cf57f Mon Sep 17 00:00:00 2001 From: WangXinhai <18907191365@189.cn> Date: Sun, 1 Apr 2018 00:48:43 +0800 Subject: [PATCH] Theme change should cut tons of irrelevent css MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 颜色变化不应该在dom中插入颜色无关的大量css代码 代码经过测试,且不影响下载 --- src/App.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/App.vue b/src/App.vue index 197be8f..18e0e0d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -254,11 +254,17 @@ '#d9ecff': 'light-8', '#ecf5ff': 'light-9' } + let colorOverrides = [] // only capture color overides Object.keys(colorMap).forEach(key => { const value = colorMap[key] - data = data.replace(new RegExp(key, 'ig'), value) + let repl = new RegExp(`(^|})([^{]+{[^{}]+)${key}\\b([^}]*)(?=})`, 'gi') + let nestRepl = new RegExp(key, 'ig') // for greed matching before the 'key' + let v + while ((v = repl.exec(data))) { + colorOverrides.push(v[2].replace(nestRepl, value) + value + v[3] + '}') // '}' not captured in the regexp repl to reserve it as locator-boundary + } }) - return data + return colorOverrides.join('') }, getFile (url, isBlob = false) {