codacus commited on
Commit
a199295
·
unverified ·
1 Parent(s): 32bfdd9

feat: support for <think></think> tags to allow reasoning tokens formatted in UI (#1205)

Browse files
Files changed (1) hide show
  1. app/utils/markdown.ts +22 -0
app/utils/markdown.ts CHANGED
@@ -54,8 +54,28 @@ export const allowedHTMLElements = [
54
  'tr',
55
  'ul',
56
  'var',
 
57
  ];
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  const rehypeSanitizeOptions: RehypeSanitizeOptions = {
60
  ...defaultSchema,
61
  tagNames: allowedHTMLElements,
@@ -79,6 +99,8 @@ export function remarkPlugins(limitedMarkdown: boolean) {
79
  plugins.unshift(limitedMarkdownPlugin);
80
  }
81
 
 
 
82
  return plugins;
83
  }
84
 
 
54
  'tr',
55
  'ul',
56
  'var',
57
+ 'think',
58
  ];
59
 
60
+ // Add custom rehype plugin
61
+ function remarkThinkRawContent() {
62
+ return (tree: any) => {
63
+ visit(tree, (node: any) => {
64
+ if (node.type === 'html' && node.value && node.value.startsWith('<think>')) {
65
+ const cleanedContent = node.value.slice(7);
66
+ node.value = `<div class="__boltThought__">${cleanedContent}`;
67
+
68
+ return;
69
+ }
70
+
71
+ if (node.type === 'html' && node.value && node.value.startsWith('</think>')) {
72
+ const cleanedContent = node.value.slice(8);
73
+ node.value = `</div>${cleanedContent}`;
74
+ }
75
+ });
76
+ };
77
+ }
78
+
79
  const rehypeSanitizeOptions: RehypeSanitizeOptions = {
80
  ...defaultSchema,
81
  tagNames: allowedHTMLElements,
 
99
  plugins.unshift(limitedMarkdownPlugin);
100
  }
101
 
102
+ plugins.unshift(remarkThinkRawContent);
103
+
104
  return plugins;
105
  }
106