使用markdown-it对markdown进行一个实时解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: # 引言大家应该都接触过markdown笔记吧,我们常常见到很多能写文章的网页提供了一个实时的markdown解析的功能----即我们在一侧写下markdown语法,右边能够实时解析,并将解析后的markdown语法渲染到右侧页面上。非常炫酷实用,那么这是如何实现的呢?今天我们来一起探究一下。# 开始首先,我们这个演示学习在Vue3+TypeScript下使用的,所以我们预先建议准备一个Vue3+Typescript工程。对于markdown的解析,我们可以使用`markdown-it`来进行解析。比如,我们在左侧设置一个输入框,接收用户markdown输入,我们通过`ma

引言

大家应该都接触过markdown笔记吧,我们常常见到很多能写文章的网页提供了一个实时的markdown解析的功能----即我们在一侧写下markdown语法,右边能够实时解析,并将解析后的markdown语法渲染到右侧页面上。非常炫酷实用,那么这是如何实现的呢?今天我们来一起探究一下。

开始

首先,我们这个演示学习在Vue3+TypeScript下使用的,所以我们预先建议准备一个Vue3+Typescript工程。

对于markdown的解析,我们可以使用markdown-it来进行解析。

比如,我们在左侧设置一个输入框,接收用户markdown输入,我们通过markdown-it来进行一个解析,然后渲染到右边页面,完成实时解析的一个效果。

例子

<template>
          <h1 class="Title">
          超级笔记
        </h1>
        <div class="main">
          <textarea class="notes" v-model="markdown" ></textarea>
          <div v-html="html" class="show"></div>
        </div>
</template>

<script lang="ts" setup>
  import {ref , Ref , computed} from 'vue';
  import MarkdownIt from 'markdown-it';

  const md = new MarkdownIt();

  let markdown:Ref<string> = ref('');
  const html = computed(()=>{
    return md.render(markdown.value);
  })
  </script>


<style scoped>
.main {
  display: flex;
  flex-direction: row;
}
.show {
  /* height: 700px; */
  height: 44rem;
  width: 55%;
  overflow-x: hidden;
 overflow-y: scroll;
  padding: 8px;
  background-color: white;
  color: black;
  font-size: 1rem;
}
.notes {
  color: black;
  height: 700px;
  width: 45%;
  font-size: 1rem;
  background-color: white;
  width: 50%;
  margin-top: 10px;
}
.Title {
  text-align: center;
  font-style: italic;
  font-family: "华文彩云";
}
</style>

我们看一下这个例子,我们给textarea绑定了一个markdown的变量,我们在script中使用markdown-it提供的方法进行一个解析,转换成一个html对象,并将其挂载到右侧的div上,使其达到一个markdown语法解析渲染的效果。

具体解析的使用就是 const md = new MarkdownIt();初始化一个md对象,然后我们通过computed计算属性调用md.render(markdown.value);来返回一个html对象,然后我们将他挂载到右边,进行一个v-html的渲染。

看看效果:

image.png

相关文章
|
6月前
|
数据采集 自然语言处理 程序员
ChatGPT 调教日记(一):Markdown 解析器
ChatGPT 调教日记(一):Markdown 解析器
162 0
|
小程序 前端开发 安全
uniapp中解析markdown支持网页和小程序
对于`markdown`相信大家都不陌生,日常写文档或日常记录都用到的比较多,书写的是`markdown`的格式,实时预览的是转换后的`html`样式。本次实现的需求是在`uniapp`中转换`markdown`文本展示在不同的平台,主要平台是浏览器使用和微信小程序使用。
256 1
|
JavaScript 前端开发
Vue3解析markdown解析并实现代码高亮显示
Vue实现博客前端,需要实现markdown的解析,如果有代码则需要实现代码的高亮。 Vue的markdown解析库有很多,如markdown-it、vue-markdown-loader、marked、vue-markdown等。这些库都大同小异。这里选用的是marked,代码高亮的库选用的是highlight.js。
930 0
Vue3解析markdown解析并实现代码高亮显示
|
4月前
|
Unix Linux Shell
Sphinx是一个Python文档生成工具,它可以解析reStructuredText或Markdown格式的源代码注释,并生成多种输出格式,如HTML、LaTeX、PDF、ePub等。
Sphinx是一个Python文档生成工具,它可以解析reStructuredText或Markdown格式的源代码注释,并生成多种输出格式,如HTML、LaTeX、PDF、ePub等。
|
6月前
|
JavaScript 前端开发 Java
小笔记:表 - 各种语言的 CommonMark Markdown解析器 实现
小笔记:表 - 各种语言的 CommonMark Markdown解析器 实现
210 1
|
JavaScript
正则表达式之简易markdown文件解析器
正则表达式之简易markdown文件解析器
136 0
|
6月前
|
程序员 Linux iOS开发
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
258 1
|
27天前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
75 1
Linux系统之部署轻量级Markdown文本编辑器
|
3月前
|
存储 安全 数据安全/隐私保护
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
129 0
|
2月前
|
JavaScript 前端开发 API
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
本文介绍了如何在Vue 3项目中使用v-md-editor组件库来创建markdown编辑器和预览组件。文章提供了安装步骤、如何在main.js中进行全局配置、以及如何在页面中使用VMdEditor和VMdPreview组件的示例代码。此外,还提供了一个完整示例的链接,包括编辑器和预览组件的使用效果和代码。
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用

推荐镜像

更多