This repository was archived by the owner on Feb 15, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed
src/leapfrogai_ui/src/lib Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change 41
41
42
42
// used for code formatting and handling
43
43
const md = markdownit ({
44
+ html: true ,
44
45
highlight : function (str : string , language : string ) {
45
46
let code: string ;
46
47
if (language && hljs .getLanguage (language )) {
178
179
<MessagePendingSkeleton size =" sm" class =" mt-4" darkColor =" bg-gray-500" />
179
180
{:else }
180
181
<!--eslint-disable-next-line svelte/no-at-html-tags -- We use DomPurity to sanitize the code snippet-->
181
- {@html md .render (DOMPurify .sanitize (messageText ))}
182
+ {@html DOMPurify .sanitize (md .render (messageText ), {
183
+ CUSTOM_ELEMENT_HANDLING: {
184
+ tagNameCheck: / ^ code-block$ / ,
185
+ attributeNameCheck: / ^ (code| language)$ / ,
186
+ allowCustomizedBuiltInElements: false
187
+ }
188
+ })}
182
189
<div class =" flex flex-col items-start" >
183
190
{#each getCitations (message , $page .data .files ) as { component: Component, props }}
184
191
<svelte:component this ={Component } {...props } />
Original file line number Diff line number Diff line change @@ -79,7 +79,7 @@ export class CodeBlock extends LitElement {
79
79
80
80
removeHtml = ( ) => {
81
81
const tmp = document . createElement ( 'DIV' ) ;
82
- tmp . innerHTML = this . code ;
82
+ tmp . innerHTML = DOMPurify . sanitize ( this . code ) ;
83
83
return tmp . textContent || tmp . innerText || '' ;
84
84
} ;
85
85
You can’t perform that action at this time.
0 commit comments