当前位置: 首页 > news >正文

处理DeepSeek返回的markdown文本

处理DeepSeek返回的markdown文本

markdown预览组件,支持公式显示,支持uniapp。

相关依赖

  • markdown-it
  • markdown-it-mathjax
  • markdown-it-katex
  • markdown-it-latex
  • katex
  • github-markdown-css

组件源码

<!--* @Description: markdown显示组件* @Author: wang keju* @Email: git config user.email* @Date: 2025-02-25 20:42:41* @LastEditTime: 2025-02-27 23:28:39* @LastEditors: wang keju
-->
<script lang="ts" setup>
import { ref, watch, onMounted } from "vue";
import MarkdownIt from 'markdown-it';
import markdownItMathjax from 'markdown-it-mathjax';
import mk from 'markdown-it-katex';
import mkl from 'markdown-it-latex';import 'katex/dist/katex.min.css';
import "github-markdown-css";type Props = {text: string;
}const props = defineProps<Props>();
const displayText = ref<string>();const preprocessLaTeX = (content: string) => {if (typeof content !== 'string') return content;return content.replace(/\\\[(.*?)\\\]/gs, (_, equation) => `$$${equation}$$`).replace(/\\\((.*?)\\\)/gs, (_, equation) => `$$${equation}$$`).replace(/(^|[^\\])\$(.+?)\$/gs, (_, prefix, equation) => `${prefix}$${equation}$`).replace(/\t/g, '\\t');
};const md = new MarkdownIt({html: true,linkify: true,typographer: true,
});
md.use(markdownItMathjax);
md.use(mk, {throwOnError: false,
});
md.use(mkl);const renderMd = (text: string) => {text = preprocessLaTeX(text);return md.render(text);
};const updateDisplayText = async () => {const info = renderMd(props.text);displayText.value = info;
}watch(props, updateDisplayText);onMounted(() => {updateDisplayText();
});
</script><template><view class="markdown-body" data-theme="light" v-html="displayText"></view>
</template><style lang="scss" scoped>
.markdown-body {box-sizing: border-box;padding: 12px;min-height: 32px !important;::deep(.katex-display) {margin: 12px 0 !important;}
}
</style>
http://www.lryc.cn/news/544450.html

相关文章:

  • 互联网+房产中介+装修设计+物料市场+智能家居一体化平台需求书
  • Node.js定义以及性能优化
  • 浅谈流媒体协议以及视频编解码
  • 在 Windows 上配置 Ollama 服务并开放局域网访问
  • 【六祎 - Note】消息队列的演变,架构图;备忘录; IBM MQ,RabbitMQ,Kafka,Pulsar
  • 常见AI写作工具介绍(ChatGPT 4o、DeepClaude、Claude 3.5 Sonnet 、DeepSeek R1等)
  • WPF中对滚动条进行平滑滚动
  • 深入xtquant:Python量化交易的桥梁与核心
  • Flutter 学习之旅 之 flutter 在 Android 端进行简单的打开前后相机预览 / 拍照保存
  • 网络变压器的主要电性参数与测试方法(2)
  • SpringSecurity基于JWT实现Token的处理
  • TCP的三次握手与四次挥手:建立与终止连接的关键步骤
  • 某住宅小区地下车库安科瑞的新能源汽车充电桩的配电设计与应用方案
  • 登录次数限制
  • java jar包内的jar包如何打补丁
  • 面试(进阶) —虚拟列表在什么场景使用,如何实现?
  • 深入了解 NAT 模式:网络地址转换的奥秘
  • Android Studio 新版本Gradle发布本地Maven仓库示例
  • 无服务边缘融合架构:重新定义云原生应用边界
  • 数据库测试
  • Nodejs-逐行读取文件【简易版】
  • 上海市计算机学会竞赛平台2024年5月月赛丙组城市距离之和
  • 穷举vs暴搜vs深搜vs回溯vs剪枝(典型算法思想)—— OJ例题算法解析思路
  • 在ubuntu 24.04.2 通过 Kubeadm 安装 Kubernetes v1.31.6
  • 基于Python socket库构建的基于 P2P 的文件共享系统示例
  • JavaScript 函数重载:灵活应对多场景的编程技巧
  • 通过 PromptTemplate 生成干净的 SQL 查询语句并执行SQL查询语句
  • 用大白话解释缓存Redis +MongoDB是什么有什么用怎么用
  • 计算机毕业设计SpringBoot+Vue.js汽车销售网站(源码+文档+PPT+讲解)
  • 【0010】HTML水平线标签详解