ChatGPT接口返回代码高亮显示的实现逻辑

官方API:POST https://api.openai.com/v1/chat/completions

我们在使用openai提供的接口时,返回的数据如果包含代码,会发现代码是没有样式的,它们一般是用```包含的一段文本。

如图:

 怎么样才能做到和官方一样的美观呢:

 需要使用渲染器,直接上package.json配置:

"dependencies": {//其他无关依赖省略"@traptitech/markdown-it-katex": "^3.6.0","markdown-it": "^13.0.1","highlight.js": "^11.7.0",},"devDependencies": {//其他无关依赖省略"@types/markdown-it": "^12.2.3"}

依赖下载命令:

npm i markdown-itnpm i @traptitech/markdown-it-katexnpm i -D @types/markdown-itnpm i highlight.js

插件文档:

markdown-it | markdown-it 中文文档

highlight.js 中文文档

在需要使用的文件中引入:

<script setup>
import { reactive, onMounted } from 'vue';
import MarkdownIt from 'markdown-it'
import mdKatex from '@traptitech/markdown-it-katex'
import hljs from 'highlight.js';const mdi = new MarkdownIt({linkify: true,highlight(code, language) {const validLang = !!(language && hljs.getLanguage(language))if (validLang) {const lang = language ?? ''return highlightBlock(hljs.highlight(lang, code, true).value, lang)}return highlightBlock(hljs.highlightAuto(code).value, '')}
})
mdi.use(mdKatex, { blockClass: 'katexmath-block rounded-md p-[10px]', errorColor: ' #cc0000' })function highlightBlock(str, lang) {return `<pre class="pre-code-box"><div class="pre-code-header"><span class="code-block-header__lang">${lang}</span><span class="code-block-header__copy">复制代码</span></div><div class="pre-code"><code class="hljs code-block-body ${lang}">${str}</code></div></pre>`
}const getMdiText = (value) => {return mdi.render(value)
}const state = reactive({htmlStr: '' 
})onMounted(() => {state.htmlStr = getMdiText("包含代码的文本") //htmlStr就是已经包含html样式的文本
});<script><template><div v-html="state.htmlStr"></div>
</template>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28306.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

还在crud?快来学习架构设计啦---微服务下的依赖管理(maven篇)

文章目录 一、前言二、实战2.1 创建父工程统一依赖的版本管理2.2 创建公共使用的 common工程2.3 创建子工程并引入父工程的依赖以及公共工程2.4 搭建启动环境2.5 启动程序开始验证 三、总结 一、前言 2023年口罩放开的第一年&#xff0c;大多数人都是想着重新开始&#xff0c;…

ChatGPT 4.0 —— Code Interpreter

&#x1f4ce;产品销售数据集.csv 选取以上的数据集作为输入&#xff0c;对Code Interpreter 进行测试 1.输入指定数据集&#xff0c;要求给出该数据集的概貌 2.请分析销售的总金额和其他变量的关系 Python Script: # Import required libraries import matplotlib.pyplot a…

500行JavaScript代码在前端根据数据生成CAD工程剖面图

前言 ​ 用数据生成CAD图&#xff0c;一般采用的ObjectArx对CAD二次开发完成。ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包&#xff0c;它提供了以C为基础的面向对象的开发环境及应用程序接口&#xff0c;能访问和创建AutoCAD图形数据库。而由…

SolidWorks+thonny esp32 电磁控制,程序算法搞起来了,我的结构-仿真-电磁-控制-算法的学习之路

来个自我介绍&#xff0c;本科是微电子制造专业&#xff0c;隶属于机电工程学院&#xff0c;所以机械&#xff0c;电子&#xff0c;控制&#xff0c;流体&#xff0c;材料&#xff0c;结构这些基础都有&#xff0c;而且水平不低。工作了13年&#xff0c;主要干机械&#xff0c;…

有趣的技术探索分享小合集

Chatgpt 现世仅两个月&#xff0c;已经达到了 1 亿月活跃用户&#xff0c;不但影响了世界范围内的知识工作者&#xff0c;还在各行各业掀起了科技创新的热潮。在信息大爆炸、新科技不断涌出的现阶段&#xff0c;拥有面向未来的科技趋势的重要的洞察力&#xff0c;并由此改变所处…

chatgpt赋能python:Python画圆柱体教程:从入门到实践

Python画圆柱体教程&#xff1a;从入门到实践 如果你正在寻找一种简单有效的Python绘图方法&#xff0c;那么画圆柱体是一个不错的选择。本文将介绍如何使用Python绘制圆柱体的过程&#xff0c;包括使用的库、代码示例以及最终结果。 介绍 圆柱体是一种很常见的几何形状&…

Altium Designer导入AutoCAD图纸

简介&#xff1a;本文主要介绍的是将Altium Designer导入AutoCAD图纸的操作方法。 一直采用Altium Designer绘制PCB边框&#xff0c;可是如果PCB的尺寸边框十分复杂&#xff0c;或者遇到Altium Designer无法设计的图形&#xff0c;比如椭圆的时候&#xff0c;我们不得不借助第三…

谷歌一雪前耻,全新PaLM 2反超GPT-4,办公全家桶炸裂升级,Bard史诗进化

【新智元导读】新版PaLM 2超强进化&#xff0c;办公全家桶Workspace全面升级&#xff0c;Bard全面增强、所有人可用……可以看出&#xff0c;这届I/O大会&#xff0c;谷歌是真的憋出不少大招。 谷歌I/O 2023大会&#xff0c;仿佛又给谷歌的支持者们打了一针强心剂。 此前&…

阿里巴巴取消 CTO 一职;近半数微软员工担心被 AI 抢饭碗;Flutter 3.10 发布|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

Apple I 设计完成 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 4 月 11 日&#xff0c;在 1953 年的今天&#xff0c;安德鲁怀尔斯诞生。大约在 1637 年左右&#xff0c;法国学者费马提出了一个数学代数相关的定理&#xff0…

不跟风 ChatGPT,Google AI 2022 年都在忙什么?

作者 | Marian Croak 翻译&整理 | Carol 出品 | AI科技大本营 谷歌发布了2022年在AI领域取得的巨大突破&#xff0c;主要包括大语言模型 (LLM) 和文本生图两个领域。 相较多年前提出的“不作恶”口号&#xff0c;谷歌将今后发展人工智能的理念进一步提升至“负责任”…

Python基础语法 常见面试问题 技巧汇总

Python基础语法 & 常见面试问题 & 技巧汇总 文章目录 Python基础语法 & 常见面试问题 & 技巧汇总一、注释二、变量与常量三、输出1、格式化输出1&#xff09;"~{}".format(a)2&#xff09;%s,%.1f 2、转义字符 四、运算符1、幂运算 五、基本数据类型…

LeetCode刷题——贪心法(C/C++)

这里写目录标题 [中等]买卖股票的最佳时机 II[中等]移掉k位数字[中等]跳跃游戏[中等]跳跃游戏 II[中等]加油站[中等]划分字母区间[中等]去除重复字母[中等]无重叠区间[中等]用最少数量的箭引爆气球 [中等]买卖股票的最佳时机 II 原题链接题解 最简单的思路&#xff0c;效率不高…

云炬VB开发笔记 2可视化编程基础

源码下载&#xff08;提取码:6666&#xff09; 目录 1模拟小车行驶—— 控件基本属性和窗体​ 2-2简易文本编辑器—— 标签、 命令按钮、文本框​​​ 2-3模拟热气球 升空—— 图片和图像框​ 1模拟小车行驶—— 控件基本属性和窗体 2-2简易文本编辑器—— 标签、 命令按钮…

如何为现有IntelliJ IDEA项目创建GitHub存储库和本地Git存储库

IntelliJ IDEA是Java语言开发的集成环境&#xff0c;IntelliJ在业界被公认为优秀的Java开发工具之一&#xff0c;尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。 点击下载IntelliJ IDEA最新试…

代码创造的欢乐世界-通用人工智能让儿童熟练应用编程

想要复杂的参考这一篇&#xff0c;使用云平台即可完成&#xff1a; 美美的圣诞树画出来-CoCube- 把圣诞树换成六一儿童节主题的就可以啦。 这一篇是使用chatgpt类应用&#xff0c;给出关键提示词&#xff0c;代码自动生成哦。 神十六发射成功&#xff0c;科技工作者博士学位…

统计检验分析 (本文在chatGPT辅助下完成)

1. 正态分布检验 2. 统计检验 t-test: 适用于样本数量较小&#xff08;通常小于 30&#xff09;的正态分布数据&#xff0c;用于比较两个样本的均值是否有显著差异。 Paired t-test: 确定某个总体的成对测量值之间的差异是否为 0 Two-sample t-test (independent t-test): 确…

sql 性能优化基于explain调优

文章目录 Explain分析&#xff1f;问题描述解决方案 Explain分析&#xff1f; 关于Explain具体可以干什么&#xff0c;有哪些优缺点&#xff0c;本博主的文章有写到&#xff0c;这是链接地址: 点击这里查看. 下面来说下Explain在项目实战中&#xff0c;如何去进行优化。 问题…

chatgpt在Unity里的开发和原理

chatgpt在Unity里的开发和原理 教学视频 先放上教学视频链接 https://www.reddit.com/r/unity_tutorials/comments/10aic34/chatgpt_with_unity_in_todays_video_i_show_you_a/ https://www.youtube.com/watch?vPRwfHajinSU 语音控制实现unity里的效果 或者语音控制实现Un…

搞不定高考的ChatGPT,原来只有小学4年级水平

夕小瑶科技说 原创 作者 | Python 之前&#xff0c;复旦大学的研究者让ChatGPT参加了中国高考&#xff0c;发现成绩惨不忍睹&#xff08;参见推送&#xff09;&#xff0c;其中理科数学竟只有20多分。这次&#xff0c;小米AI lab的研究者们给模型降低一下难度&#xff0c;找了…