From fc470751a250c02e099508d2e4a97d6718e70048 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 3 Sep 2025 17:03:20 +0000 Subject: [PATCH] Fix color coding codice sorgente --- frontend/src/AssistantMessage.jsx | 32 +++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/frontend/src/AssistantMessage.jsx b/frontend/src/AssistantMessage.jsx index 478bc76..5833350 100644 --- a/frontend/src/AssistantMessage.jsx +++ b/frontend/src/AssistantMessage.jsx @@ -5,6 +5,27 @@ import remarkGfm from "remark-gfm"; import remarkMath from "remark-math"; import rehypeKatex from "rehype-katex"; +// Prism.js per syntax highlight +import Prism from "prismjs"; +import "prismjs/themes/prism.css"; + +// Linguaggi base +import "prismjs/components/prism-sql"; +import "prismjs/components/prism-javascript"; +import "prismjs/components/prism-css"; +import "prismjs/components/prism-json"; +import "prismjs/components/prism-markdown"; +import "prismjs/components/prism-csharp"; +import "prismjs/components/prism-lua"; +import "prismjs/components/prism-c"; +import "prismjs/components/prism-cpp"; +import "prismjs/components/prism-python"; +import "prismjs/components/prism-basic"; +import "prismjs/components/prism-javascript"; + +// Aggiungo alias "vb" che punta a "vbnet" +Prism.languages.vb = Prism.languages.vbnet; + export default function AssistantMessage({ content, theme, @@ -94,6 +115,13 @@ function CodeWithCopy({ inline, className = "", children, ...props }) { const codeText = String(children).replace(/\n$/, ""); const isFencedBlock = !inline && /^language-/.test(className); + // Evidenziazione con Prism + useEffect(() => { + if (isFencedBlock) { + Prism.highlightAll(); + } + }, [codeText, isFencedBlock]); + if (!isFencedBlock) { return ( @@ -115,7 +143,7 @@ function CodeWithCopy({ inline, className = "", children, ...props }) { return (
-        {codeText}
+        {codeText}