Vue解析Markdown实现

经实测,vue-markdown的效果更好

marked

npm install marked --save

具体使用:

<template>
  <div class="article" v-html="compiledMarkdown"></div>
</template>

<script>
import marked from 'marked'

export default {
  data () {
   return {
   content: ""
   }
  }

  computed: {
    compiledMarkdown () {
      return marked(this.content, { sanitize: true })
    }
  }
}
</script>

vue-markdown

npm i vue-markdown

具体使用:

<template>
  <vue-markdown class="article" :source="content"></vue-markdown>
</template>

<script>
import VueMarkdown from 'vue-markdown'  //直接作为一个组件引入

export default {
  name: 'demo',
  data() {
    return {
      content: '## 这里是要展示的markdown文字,也可以通过props传递'
    }
  },
  components: {
    VueMarkdown  // 声明组件
  }
}
</script>

引入highlight.js实现代码高亮

npm install highlight.js --save

在main.js中注册一个新的指令

import hljs from 'highlight.js'
import 'highlight.js/styles/googlecode.css'

Vue.directive('highlight', (el) => {
  let blocks = el.querySelectorAll('pre code')
  blocks.forEach((block) => {
    hljs.highlightBlock(block)
  })
})

具体使用:

<div v-html="compiledMarkdown" v-highlight></div>
<vue-markdown :source="content" v-highlight></vue-markdown>

更多vue-markdown使用方法参考:https://github.com/miaolz123/vue-markdown
更多highlight.js使用方法参考:https://github.com/isagalaev/highlight.js

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/12/vue-parse-markdown-implementation/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Vue解析Markdown实现
经实测,vue-markdown的效果更好 marked npm install marked --save 具体使用: <template> <div class="article" v-html="compil……
<<上一篇
下一篇>>
文章目录
关闭
目 录