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

金融门户网站建设wordpress 付费内容

金融门户网站建设,wordpress 付费内容,网站开发平台及常用的开发工具,巴南网站制作1. 前言 这篇文章是 Q&A 系统实现续篇。如果你看过之前的文章,并且也跟着提供的代码尝试了,你应该会觉得里面的 Markdown 组件对代码、表格、流程图、时序图等等的显示效果不尽人意,那么如何实现像 DeepSeek 、Kimi 等官网实现的效果呢&…

1. 前言

这篇文章是 Q&A 系统实现续篇。如果你看过之前的文章,并且也跟着提供的代码尝试了,你应该会觉得里面的 Markdown 组件对代码、表格、流程图、时序图等等的显示效果不尽人意,那么如何实现像 DeepSeek 、Kimi 等官网实现的效果呢,这篇文章将带你实现。

2. 效果展示

首先我们先看一下效果:

正常文本显示:

代码显示,自动识别代码的语言并高亮显示:

表格显示:

3. 前提条件

以下并非必要条件,如果你有自己搭建一个本地知识库或者Q&A系统的需求可以参考。

【Spring AI】基于SpringAI+Vue3+ElementPlus的Q&A系统实现(后端)_springai+redis-CSDN博客文章浏览阅读957次,点赞31次,收藏27次。这篇文章将介绍如何基于 RAG 技术,使用 SpringAI + Vue3 + ElementPlus 实现一个 Q&A 系统。本文使用 deepseek 的 DeepSeek-V3 作为聊天模型,使用阿里百炼的 text-embedding-v3 作为向量模型,使用 redis 作为向量库。(PS:近期阿里百炼也上架了 DeepSeek-V3 和 DeepSeek-R1 模型供开发者调用,如果觉得 DeepSeek 官方 AP I比较慢的话,可以去试试)。_springai+redis https://blog.csdn.net/u013176571/article/details/145368559


【Spring AI】基于SpringAI+Vue3+ElementPlus的Q&A系统实现(前端)_spring ai+vue-CSDN博客文章浏览阅读908次,点赞17次,收藏30次。这篇文章是 Spring AI Q&A 系统的前端实现。这篇文章将介绍如何快速搭建一个基于 vue3 + ElementPlus 的前端项目,vue3 项目的目录结构介绍,如何在前端实现流式响应,如何高亮显示代码等。_spring ai+vue https://blog.csdn.net/u013176571/article/details/145622956

4. 代码实现

我之前文章使用 markdown 显示插件是 markdown-it,虽然它的插件比较丰富,但中文文档较少,于是我之后又对比的其它插件如md-editor-v3、Vditor,之后发现了一个轻量化,性能更好并且中文文档也多、拓展性也能支持我目前需求的插件 marked

4.1 marked

4.1.1 安装

npm install marked

4.1.2 vue3 中使用

<template><div class="markdown-body" v-html="renderedMarkdown"></div>
</template>
<script lang="ts" setup>
import { onMounted, reactive, toRefs } from 'vue';
import { marked } from 'marked';const state = reactive({renderedMarkdown: ''
});
const { renderedMarkdown } = toRefs(state);/*** 使用 marked 解析 Markdown* @param markdown 解析的文本*/
const renderMarkdown = (markdown: string): string => {const renderer = new marked.Renderer();return marked(markdown, { renderer });
};onMounted(async () => {const text = '```javascript \n const foo = () => { console.log("Hello, world!"); }';renderedMarkdown.value = renderMarkdown(text);
});
</script>

4.2 代码亮显示

4.2.1 安装 highlight.js

代码的高亮显示需要结合 highlight.js。

# 引入 highlight.js 
npm install highlight.js

4.2.2 vue3 中使用

引入 highlight.js 有两种方式:

  • 加载全部 import hljs from 'highlight.js';

  • 加载常用的 import hljs from 'highlight.js/lib/common';

建议无特殊语言需求的只需要引入常用的包。常用的语言有:https://github.com/highlightjs/highlight.js/blob/main/SUPPORTED_LANGUAGES.md

import hljs from 'highlight.js/lib/common';
// 引入 github 代码主题
import 'highlight.js/styles/github.css';onMounted(async () => {// 用例const text = '```javascript \n const foo = () => { console.log("Hello, world!"); }';// 解析markdown文本renderedMarkdown.value = renderMarkdown(text);// 代码高亮显示hljs.highlightAll()
});/*** 使用 marked 解析 Markdown,并结合 highlight.js 实现代码高亮* @param markdown */
const renderMarkdown = (markdown: string): string => {const renderer = new marked.Renderer();renderer.code = ({ text, lang, escaped }: Tokens.Code): string => {const language = hljs.getLanguage(lang) ? lang : 'plaintext';const highlighted = hljs.highlight(text, { language }).value;return `<pre><code class="hljs language-${language}">${highlighted}</code></pre>`;};return marked(markdown, { renderer });
};

你可以实现这种效果:

4.2.3 显示自己心仪的代码主题

highlightjs 官网 提供了多种代码主题供选择。

引入自己心仪的主题样式:

# 我这里选择 agate,使用其它主题需将 agate 替换成选择的主题名。 
import 'highlight.js/styles/agate.css';

修改后效果:

4.3 实现表格显示

4.3.1 代码实现

其实 marked 本身已经支持简单的表格渲染,但是其展示的样式简单,默认样式如下:

我们只需要修改其样式即可:

.markdown-body table {width: 100%;border-collapse: collapse;/* 让表格边框合并 */box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);/* 添加表格阴影 */margin: 10px 0;
}.markdown-body th,
.markdown-body td {border: 1px solid #ddd;/* 添加边框 */padding: 8px;text-align: left;
}.markdown-body th {background-color: #f4f4f4;/* 表头背景色 */font-weight: bold;
}

修改后效果:

如果想支持如:列跨度、行跨度、多行标题、合并单元格显示等,可引入扩展插件 marked-extended-tables

4.4 流程图、时序图显示

没有改造之前,流程图和时序图是这样显示:

4.3.1 安装 mermaid

想要支持流程图、时序图,需要引入 mermaid 。

# 安装mermaid
npm install mermaid

4.3.2 代码改造

改造 onMounted 方法:

import mermaid from "mermaid";onMounted(async () => {// 处理华 mermaidmermaid.initialize({ startOnLoad: false });// 用例const text = `\`\`\`mermaid
sequenceDiagramparticipant 用户 as Userparticipant 登录界面 as LoginUIparticipant 认证服务 as AuthServiceparticipant 数据库 as Database用户 ->> 登录界面: 输入用户名和密码登录界面 ->> 认证服务: 发送用户名和密码认证服务 ->> 数据库: 查询用户信息数据库 -->> 认证服务: 返回用户信息认证服务 ->> 认证服务: 验证用户名和密码认证服务 -->> 登录界面: 返回验证结果登录界面 -->> 用户: 显示登录结果
\`\`\``;// 解析markdown文本renderedMarkdown.value = renderMarkdown(text);// 代码高亮hljs.highlightAll();nextTick(() => {// 渲染Mermaid图mermaid.run();});
});

改造 renderMarkdown 方法:

/*** 使用 marked 解析 Markdown,并结合 highlight.js 实现代码高亮* @param markdown*/
const renderMarkdown = (markdown: string): string => {const renderer = new marked.Renderer();renderer.code = ({ text, lang }: { text: string; lang: string }) => {if (lang === "mermaid") {// Mermaid 直接渲染return `<div class="mermaid">${text}</div>`;}const language = hljs.getLanguage(lang) ? lang : 'plaintext';const highlighted = hljs.highlight(text, { language }).value;return `<pre><code class="hljs language-${language}">${highlighted}</code></pre>`;};return marked(markdown, { renderer });
};   

流程图显示:

时序图显示:

5. 参考文档

  • Marked 中文网
  • Markdown 教程
  • highlightjs 官网

文章转载自:

http://1SME4VLf.hrgxk.cn
http://8TlPV0rg.hrgxk.cn
http://iVf9Jxpv.hrgxk.cn
http://wVBANrOA.hrgxk.cn
http://YHvl8AHL.hrgxk.cn
http://Q9rIv6Y1.hrgxk.cn
http://BSoVUWKw.hrgxk.cn
http://lHaNA3gb.hrgxk.cn
http://Q3P89rk3.hrgxk.cn
http://ua1mjVSI.hrgxk.cn
http://ZrHkrw74.hrgxk.cn
http://hVtLwyF4.hrgxk.cn
http://vTf22vc8.hrgxk.cn
http://V41g78yl.hrgxk.cn
http://eQUpF90w.hrgxk.cn
http://7CaKTfKx.hrgxk.cn
http://Iuhq3dEW.hrgxk.cn
http://PnmhuoB8.hrgxk.cn
http://Xcq7fQdd.hrgxk.cn
http://BqZIP0fe.hrgxk.cn
http://ElywU5E8.hrgxk.cn
http://8rICv2wg.hrgxk.cn
http://bNJSJwJG.hrgxk.cn
http://ecYkvjHM.hrgxk.cn
http://7fPTnx7M.hrgxk.cn
http://PSbNskS1.hrgxk.cn
http://I5IvkmTq.hrgxk.cn
http://Dr2YrFTW.hrgxk.cn
http://m7N8hdhm.hrgxk.cn
http://oUyOIAwC.hrgxk.cn
http://www.dtcms.com/wzjs/644337.html

相关文章:

  • 中国建设电工网站今天
  • 便宜网站开发培训制作图片下载什么软件
  • 自己搭建网站需要多少钱百度h5官网登录
  • wordpress 导出优化大师安卓版
  • 山东省住房和建设厅网站网站建设专家价格
  • 惠州做企业网站的网站开发工程师学什么区别
  • 用ip访问没有备案的网站更新网站 seo
  • 无锡商业网站建设网站空间管理平台
  • 网站建设 云计算韩雪冬网站设计
  • 佛山做网站公司有哪些网站官网怎么做
  • 网站充值 下模板全国黄页大全
  • 河源公司做网站免费查公司查老板
  • 辽宁平台网站建设公司平度网站建设公司电话
  • 网站开发哪里好未央免费做网站
  • 建设商城网站的合肥网络seo
  • 网站建设与制作 试卷与答案开发公司施工管理事业部领导如何同下属协调沟通
  • 北京网站建设seo公司哪家好wordpress禁止适应屏幕
  • 南平网站设计自己怎样做淘客网站
  • 网站建设时如何建立客户信赖感注册一个公司的流程
  • 都匀住房和城乡建设部网站体育视频网站建设
  • 容县网站开发美食网站php源码
  • 常用素材网站吉林省长春网站建设
  • 做logo找灵感的网站天宫院网站建设
  • 常州网站建设运营天津公司网站如何制作
  • 建筑网站设计大全宣传片公司哪家好
  • 美发营销型网站商服网站模板
  • c 开发手机网站开发一般做网站带宽选择多大的
  • 网站建设wix网络营销是什么?
  • 好看的网站首页欣赏c 手机网站开发模板
  • 政协网站信息化建设的作用济南家居行业网站开发