浏览代码

Merge pull request #18195 from EventHorizon-AI/fix/artifacts-duplicate-match

fix: Artifacts duplicate matching
Tim Jaeryang Baek 1 周之前
父节点
当前提交
b93e9b1698
共有 1 个文件被更改,包括 36 次插入36 次删除
  1. 36 36
      src/lib/components/chat/Artifacts.svelte

+ 36 - 36
src/lib/components/chat/Artifacts.svelte

@@ -39,51 +39,51 @@
 				const codeBlockContents = message.content.match(/```[\s\S]*?```/g);
 				const codeBlockContents = message.content.match(/```[\s\S]*?```/g);
 				let codeBlocks = [];
 				let codeBlocks = [];
 
 
+				let htmlContent = '';
+				let cssContent = '';
+				let jsContent = '';
+
 				if (codeBlockContents) {
 				if (codeBlockContents) {
 					codeBlockContents.forEach((block) => {
 					codeBlockContents.forEach((block) => {
 						const lang = block.split('\n')[0].replace('```', '').trim().toLowerCase();
 						const lang = block.split('\n')[0].replace('```', '').trim().toLowerCase();
 						const code = block.replace(/```[\s\S]*?\n/, '').replace(/```$/, '');
 						const code = block.replace(/```[\s\S]*?\n/, '').replace(/```$/, '');
 						codeBlocks.push({ lang, code });
 						codeBlocks.push({ lang, code });
 					});
 					});
-				}
 
 
-				let htmlContent = '';
-				let cssContent = '';
-				let jsContent = '';
-
-				codeBlocks.forEach((block) => {
-					const { lang, code } = block;
-
-					if (lang === 'html') {
-						htmlContent += code + '\n';
-					} else if (lang === 'css') {
-						cssContent += code + '\n';
-					} else if (lang === 'javascript' || lang === 'js') {
-						jsContent += code + '\n';
-					}
-				});
+					codeBlocks.forEach((block) => {
+						const { lang, code } = block;
 
 
-				const inlineHtml = message.content.match(/<html>[\s\S]*?<\/html>/gi);
-				const inlineCss = message.content.match(/<style>[\s\S]*?<\/style>/gi);
-				const inlineJs = message.content.match(/<script>[\s\S]*?<\/script>/gi);
-
-				if (inlineHtml) {
-					inlineHtml.forEach((block) => {
-						const content = block.replace(/<\/?html>/gi, ''); // Remove <html> tags
-						htmlContent += content + '\n';
-					});
-				}
-				if (inlineCss) {
-					inlineCss.forEach((block) => {
-						const content = block.replace(/<\/?style>/gi, ''); // Remove <style> tags
-						cssContent += content + '\n';
-					});
-				}
-				if (inlineJs) {
-					inlineJs.forEach((block) => {
-						const content = block.replace(/<\/?script>/gi, ''); // Remove <script> tags
-						jsContent += content + '\n';
+						if (lang === 'html') {
+							htmlContent += code + '\n';
+						} else if (lang === 'css') {
+							cssContent += code + '\n';
+						} else if (lang === 'javascript' || lang === 'js') {
+							jsContent += code + '\n';
+						}
 					});
 					});
+				} else {
+					const inlineHtml = message.content.match(/<html>[\s\S]*?<\/html>/gi);
+					const inlineCss = message.content.match(/<style>[\s\S]*?<\/style>/gi);
+					const inlineJs = message.content.match(/<script>[\s\S]*?<\/script>/gi);
+
+					if (inlineHtml) {
+						inlineHtml.forEach((block) => {
+							const content = block.replace(/<\/?html>/gi, ''); // Remove <html> tags
+							htmlContent += content + '\n';
+						});
+					}
+					if (inlineCss) {
+						inlineCss.forEach((block) => {
+							const content = block.replace(/<\/?style>/gi, ''); // Remove <style> tags
+							cssContent += content + '\n';
+						});
+					}
+					if (inlineJs) {
+						inlineJs.forEach((block) => {
+							const content = block.replace(/<\/?script>/gi, ''); // Remove <script> tags
+							jsContent += content + '\n';
+						});
+					}
 				}
 				}
 
 
 				if (htmlContent || cssContent || jsContent) {
 				if (htmlContent || cssContent || jsContent) {