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

使用Markdown-it插件实现在页面渲染markdown

引言

Markdown-it 是一个 javascript markdown 解析器,导出一个函数,可以生成纯 HTML,人们可以随意使用。如 GitHub 页面所述,它还具有大量插件和功能。

用它制作一个Vue 组件非常容易,唯一的要求是在设置一些参数后安装和导入markdown-it函数并使用该render方法。

常用插件

名称描述语法示例
markdown-it-abbr注释*[HTML]: 超文本标记语言HTML
markdown-it-emoji表情😃😃
markdown-it-footnote脚注参考文献[^1]参考文献1
markdown-it-mark突出显示标记标记
markdown-it-sub下标H2OH2O
markdown-it-sup上标X2X2
markdown-it-checkbox复选框未选:- [ ] 选中:- [x]

安装

pnpm i markdown-it插件安装,可以按需安装
pnpm i markdown-it-checkbox
pnpm i markdown-it-imsize
pnpm i markdown-it-expandable
pnpm i markdown-it-abbr
pnpm i markdown-it-anchor
pnpm i markdown-it-footnote
pnpm i markdown-it-highlightjs
pnpm i markdown-it-sub
pnpm i markdown-it-sup
pnpm i markdown-it-task-lists
pnpm i markdown-it-toc-done-right

使用

  • 自定义组件 MarkdownRenderer
<template><div v-html="markdown.render(source)" />
</template><script setup>
import MarkdownIt from "markdown-it";
import MarkdownItAbbr from "markdown-it-abbr";
import MarkdownItAnchor from "markdown-it-anchor";
import MarkdownItFootnote from "markdown-it-footnote";
import MarkdownItHighlightjs from "markdown-it-highlightjs";
import MarkdownItSub from "markdown-it-sub";
import MarkdownItSup from "markdown-it-sup";
import MarkdownItTasklists from "markdown-it-task-lists";
import MarkdownItTOC from "markdown-it-toc-done-right";const markdown = new MarkdownIt().use(MarkdownItAbbr).use(MarkdownItAnchor).use(MarkdownItFootnote).use(MarkdownItHighlightjs).use(MarkdownItSub).use(MarkdownItSup).use(MarkdownItTasklists).use(MarkdownItTOC);defineProps({source: {type: String,default: ""}
});
</script>
  • 在页面中引用
xml 代码解读复制代码<template><MarkdownRenderer :source="'# Hi!!'" />
</template><script setup>
import { reactive, ref } from "vue";
import MarkdownRenderer from "@/components/MarkdownRenderer.vue"</script>
<style lang="scss"></style>

打包报错

执行pnpm run build 出现如下异常

lua代码解读
复制代码src/components/MarkdownRenderer.vue:9:32 - error TS7016: Could not find a declaration file for module 'markdown-it-footnote'. '/Users/markxrrl/workspace-product/code/flowable-vue3/node_modules/markdown-it-footnote/index.js' implicitly has an 'any' type.

出错原因
原因是: ‘vue-xxx’文件可能不是.ts文件而是.js文件

解决方法:
在目录src中创建shims-vue.d.ts文件

sql 代码解读复制代码declare module 'markdown-it-anchor'
declare module 'markdown-it-abbr'
declare module 'markdown-it-footnote'
declare module 'markdown-it-sub'
declare module 'markdown-it-sup'
declare module 'markdown-it-task-lists'

http://www.mrgr.cn/news/54504.html

相关文章:

  • 商品详情API接口调用流程
  • 27.3 一致性哈希算法介绍
  • 智慧公厕厂家:智慧公厕建设推动城市公厕智能化变革
  • 算法笔记day05
  • STM32嵌入式移植GmSSL库
  • Vue项目兼容IE11
  • 汽车票在线预订:SpringBoot技术实践
  • 包子凑数
  • 阿里云盘企业版收费标准,不同人数、存储空间版本是有区别的
  • Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【检测】(五)
  • R语言复杂抽样调查数据统计描述和分析
  • LeetCode-三数之和-Java
  • SpringBoot民宿预订系统设计与实现
  • manjaro kde 磁盘扩容
  • 基于SpringBoot+Vue实现九峰山旅游平台系统
  • 2025考研各省网上确认时间汇总!(别忘记)
  • Miniconda3 Linux安装教程
  • 垃圾收集器与内存分配机制(三)
  • 父母教养方式测试:理解与优化家庭教育的关键
  • 动态内存管理(上)
  • 偏差和均方根误差,偏差小,拟合的好,均方根误差小,波动程度小
  • 网络数据谁来监管?——法律许可下的用户数据获取与风险解读
  • spark、hadoop和hive自学路线
  • 简易的网站数据流动过程介绍 -- 用户注册/登录逻辑
  • 云开发之Github仓库代码利用
  • 智慧商城项目1-项目初始化创建