From 4242b47fe8b863dcfd654e4839d116427b5d2646 Mon Sep 17 00:00:00 2001 From: Variet Date: Sat, 7 Mar 2026 21:36:47 +0900 Subject: [PATCH] fix(scrape): replace regex with DOM API to avoid template literal escape crash --- server/cdp-client.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server/cdp-client.js b/server/cdp-client.js index 0bad1f1..31fcd3d 100644 --- a/server/cdp-client.js +++ b/server/cdp-client.js @@ -257,9 +257,11 @@ class CDPClient { // leading-relaxed select-text → 마크다운 렌더링 텍스트 const mkEl = block.querySelector('.leading-relaxed.select-text'); - let htmlContent = mkEl ? mkEl.innerHTML : block.innerHTML; - // HTML에서도 style 태그 제거 - htmlContent = htmlContent.replace(/]*>[\s\S]*?<\/style>/gi, ''); + // HTML에서도 style 태그를 DOM으로 제거 + const htmlSrc = mkEl || block; + const htmlClone = htmlSrc.cloneNode(true); + htmlClone.querySelectorAll('style').forEach(s => s.remove()); + const htmlContent = htmlClone.innerHTML; messages.push({ type: 'text',