Prechádzať zdrojové kódy

fix: code highlight in ChatGPT history

Jacky 6 mesiacov pred
rodič
commit
3ff4965626
1 zmenil súbory, kde vykonal 9 pridanie a 2 odobranie
  1. 9 2
      app/src/components/ChatGPT/ChatGPT.vue

+ 9 - 2
app/src/components/ChatGPT/ChatGPT.vue

@@ -1,4 +1,5 @@
 <script setup lang="ts">
+import nginx from 'highlight.js/lib/languages/nginx'
 import Icon, { SendOutlined } from '@ant-design/icons-vue'
 import { storeToRefs } from 'pinia'
 import { Marked } from 'marked'
@@ -21,10 +22,12 @@ const props = defineProps<{
 
 const emit = defineEmits(['update:history_messages'])
 
+hljs.registerLanguage('nginx', nginx)
+
 const { language: current } = storeToRefs(useSettingsStore())
 
 const history_messages = computed(() => props.historyMessages)
-const messages = ref([]) as Ref<ChatComplicationMessage[] | undefined >
+const messages = ref([]) as Ref<ChatComplicationMessage[] | undefined>
 
 onMounted(() => {
   messages.value = props.historyMessages
@@ -165,7 +168,9 @@ const marked = new Marked(
     highlight(code, lang) {
       const language = hljs.getLanguage(lang) ? lang : 'nginx'
 
-      return hljs.highlight(code, { language }).value
+      const highlightedCode = hljs.highlight(code, { language }).value
+
+      return `<pre><code class="hljs ${language}">${highlightedCode}</code></pre>`
     },
   }))
 
@@ -190,7 +195,9 @@ function clear_record() {
   messages.value = []
   emit('update:history_messages', [])
 }
+
 const editing_idx = ref(-1)
+
 async function regenerate(index: number) {
   editing_idx.value = -1
   messages.value = messages.value?.slice(0, index)