场景

数据库中有markdown语法的字符串,需要展示为正常的页面,难点在于其中的katex数学公式

解决方式

使用showdown及其族系插件

npm i showdown

npm i showdown-katex

<template>
<div class="msg" v-html="transformMsg(msgInfo)"></div>
</template>
<script>
import showdown from "showdown";
import showdownKatex from "showdown-katex"; export default {
data() {
return {
msgInfo: "" // markdown语法的字符串
}
},
methods: {
transformMsg(msgInfo = "") {
msgInfo = msgInfo.replaceAll("<br />", "\n"); // 一些处理
let converter = new showdown.Converter({
// 详细配置见:https://github.com/showdownjs/showdown#valid-options
tables: true, // 支持table语法
strikethrough: true, // 将~~strikethrough~~ 识别为 <del>strikethrough</del>
underline: true, // __test__中的下划线不识别为<em> 和 <strong>
extensions: [
showdownKatex({
// 使用方式见:https://obedm503.github.io/showdown-katex
// 详细配置见:https://katex.org/docs/options.html
throwOnError: false, // 公式有错时,是否抛出错误
displayMode: false, // 如果为false,公式以inline方式渲染
delimiters: [
{ left: "$$", right: "$$", display: false },
{ left: "$", right: "$", display: false },
{ left: "~", right: "~", display: false, asciimath: true },
],
}),
],
});
return converter.makeHtml(msgInfo);
}
}
}
</script>

一些奇奇怪怪和解决方法

如果公式中有开根号,那么这个公式会出现两次。第一次是正常根号展示,第二次是根号内公式和一个无限长的根号。解决方法是用样式把第二次的展示消除掉:

.katex-html {
display: none;
}

vue页面中展示markdown以及katex公式的更多相关文章

  1. CSS3 页面中展示邮箱列表点击弹出发送邮件界面

    CSS3 页面中展示邮箱列表点击弹出发送邮件界面 代码: <!DOCTYPE html> <html> <head> <meta charset=" ...

  2. 钉钉登录二维码嵌套在vue页面中

    转自 https://www.csdn.net/tags/OtDacg3sMjQ2NTgtYmxvZwO0O0OO0O0O.html 钉钉登录二维码嵌套在vue页面中 2021-09-04 14:42 ...

  3. 在前端页面中使用Markdown并且优化a标签

    近期在自己的项目中加入了对 Markdown 语法 的支持,主要用到的是markedjs这个项目.该项目托管在github上,地址为:https://github.com/markedjs/marke ...

  4. php中使用mysql_fetch_array输出数组至页面中展示

    用的是CI框架,很好的MVC结构 在Model层 public function showProteinCategory(){ $sql = "SELECT DISTINCT protein ...

  5. vue 页面中切换国际语言

    1.npm i vue-i18n 2. 3.main.js 4.vue页面

  6. vue中使用markdown富文本,并在html页面中展示

    想给自己的后台增加一个markdown编辑器,下面记录下引用的步骤 引入组件mavon-editor 官网地址:https://github.com/hinesboy/mavonEditor // 插 ...

  7. 在html页面中展示JSON

    背景: 有时候我们需要将json数据直接显示在页面上(比如在做一个接口测试的项目,需要将接口返回的结果直接展示),但是如果直接显示字符串,不方便查看.需要格式化一下. 解决方案: 其实JSON.str ...

  8. vue页面中图片不显示解决

    在做新版组态界面的时候,用vue框架实现,在配置页面图片的时候发现有一张图片明明页面输入的路径是对的可是图片就是不显示出来 现象: network页面资源也不报错,而且状态码竟然还是200,点prev ...

  9. vue组件中使用iframe元素

    需要在本页面中展示vue组件中的超链接,地址栏不改变的方法: <template> <div class="accept-container"> <d ...

  10. 如何在网站中加入markdown

    在vue组件中加入markdown,模板使用的是webpack 我是这样做的: 因为是npm引入的,所以markdown是遵循CommonJS规范的,需要在webpack.base.conf.js里引 ...

随机推荐

  1. ERROR 1067 (42000): Invalid default value for 'xxx字段'

    报错版本:mysql-5.7.35 1.报错完整提示信息: ERROR 1067 (42000): Invalid default value for 'LOCK_TIME_' 2.原因: 使用sou ...

  2. linux修改用户密码期限

    1. https://www.cnblogs.com/wwwcf1982603555/p/15474557.html 设置密码复杂度: http://events.jianshu.io/p/533d3 ...

  3. arpspoof、driftnet工具使用

    一.arpspoof.driftnet工具安装: 在kali liux中: 安装命令:apt install dsniff      apt install driftnet 二.使用arpspoof ...

  4. 在Mac上不常用但会用到的命令

    文章目录 1. chflags 2. rename 1. chflags chflags hidden filename 给文件添加隐藏属性 chflags nohidden filename 去掉文 ...

  5. sql函数的用法

    1.codename 作为翻译函数 CREATE DEFINER=`root`@`localhost` FUNCTION `codename`(`sys_code` varchar(20),`stat ...

  6. webpack之性能优化(webpack4)

    在讲解性能优化的方案之前,我们需要了解一下webpack的整个工作流程, 方案一:减少模块解析 也就是省略了构建chunk依赖模块的这几个步骤 如果没有loader对该模块进行处理,该模块的源码就是最 ...

  7. 推荐2020年最好用的JavaScript代码压缩工具

    今天就为大家分享一篇关于推荐2020年最好用的JavaScript代码压缩工具,觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随来看看吧 JavaScript 代码压缩是指去除 ...

  8. laravel groupBy 分页

    $model=DB::table('tablebname') ->where(function($query) use ($res){ $query->where('xx','xx'); ...

  9. vTaskList() 介绍

    vTaskList() 使用注意:使用 vTaskList() 前需使能: make menuconfig -> Component config -> FreeRTOS -> En ...

  10. java的maven项目打包成.exe可执行文件

    打包exe可执行脚本: 1.源代码maven项目写完后打包成可执行jar包,此处我使用的是assembly插件. <plugin> <groupId>org.apache.ma ...