Vue项目集成Markdown标记语言编辑器(MavonEditor)

这篇具有很好参考价值的文章主要介绍了Vue项目集成Markdown标记语言编辑器(MavonEditor)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Markdown编辑器的使用

  • 这是一款基于Vue的markdown编辑器。既可以用来编辑Markdown语法,又可以用来解析
  • 效果图,mavonEditor实现了Markdown集成
  • Markdown是一种标记语言,相较于word文档更加清晰方便,适合进行笔记等。将Markdown集成进入自己项目之后,就可以在项目中使用的Markdown编辑器了

1、安装mavonEditor包

mavon-editor:  2.10.4版本

npm install mavon-editor --s

or

npm install mavon-editor --save  

2、引入并使用mavonEditor,以下二选一

全局注册(大部分页面都需要markdown解析的推荐使用)main.js中引入

   // import with ES6
  
    import mavonEditor from 'mavon-editor'
    import 'mavon-editor/dist/css/index.css'
    // use
    Vue.use(mavonEditor)
   
   

局部注册(只有一到两个页面会用到markdown推荐使用这个)页面中引入

import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
export default({
	components:{// 在页面中注册组件
		mavonEditor 
	}
})

3.VUE中使用markdown编辑

 
 <el-button type="primary" @click="handleAdd" >新增 <i class="el-icon-circle-plus-outline"></i></el-button>

<el-table :data="tableData" >
<template slot-scope="scope">
          <el-button type="success" @click="handleEdit(scope.row)" >编辑 <i class="el- 
            icon-edit"></i>
</el-button>
        </template>
</el-table>

<el-dialog title="文章信息" :visible.sync="dialogFormVisible" width="60%" >
      <el-form label-width="80px" size="small">
        <el-form-item label="文章标题">
          <el-input v-model="form.name" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="文章内容">
           //mavonEditr
          <mavon-editor ref="md" v-model="form.content" :ishljs="true" @imgAdd="imgAdd"/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="save">确 定</el-button>
      </div>
    </el-dialog>


data() {
    return {
      tableData: [],
      form: {},
      dialogFormVisible: false,
 
      viewDialogVis: false
    }
  },
methods: {
 handleAdd() {
      this.dialogFormVisible = true
      this.form = {}
    },
handleEdit(row) {
      this.form = JSON.parse(JSON.stringify(row))
      this.dialogFormVisible = true
    },
// 绑定@imgAdd event
    imgAdd(pos, $file) {
     let $vm = this.$refs.md
      // 第一步.将图片上传到服务器.
      const formData = new FormData();
      formData.append('file', $file);
      axios({
        url: `http://${serverHost}/file/upload`,
        method: 'post',
        data: formData,
        headers: {'Content-Type': 'multipart/form-data'},
      }).then((res) => {
        // 第二步.将返回的url替换到文本原位置![...](./0) -> ![...](url)
        /**
         * $vm 指为mavonEditor实例,可以通过如下两种方式获取
         * 1. 通过引入对象获取: `import {mavonEditor} from ...` 等方式引入后,
         * `$vm`为`mavonEditor`
         * 2. 通过$refs获取: html声明ref : `<mavon-editor ref=md ></mavon-editor>,
         * `$vm`为 `this.$refs.md`
         */
        $vm.$img2Url(pos, res.data);
      })
    },
}

新增/编辑效果图如下:

Vue项目集成Markdown标记语言编辑器(MavonEditor)

Vue项目集成Markdown标记语言编辑器(MavonEditor)

4. 预览/详情文章图片功能代码:

 


<el-table-column prop="content" label="文章内容">
        <template slot-scope="scope">
          <el-button @click="view(scope.row.content)" type="primary">查看内容</el-button>
        </template>
      </el-table-column>

<!--  点击查看内容显示弹窗开始   -->
    <el-dialog title="文章信息" :visible.sync="viewDialogVis" width="60%" >
      <el-card>
          //预览/详情框
        <div>
          <mavon-editor
              class="md"
              :value="content"
              :subfield="false"
              :defaultOpen="'preview'"
          :toolbarsFlag="false"
              :editable="false"
              :scrollStyle="true"
              :ishljs="true"
          />
        </div>
      </el-card>
    </el-dialog>
    <!--  点击查看内容显示弹窗结束   -->


data() {
    return {

      content: '',
      viewDialogVis: false

    }
  },




methods: {
    view(content) {
      this.content = content
      this.viewDialogVis = true
    },

 文章图片预览效果图:

Vue项目集成Markdown标记语言编辑器(MavonEditor)

Vue项目集成Markdown标记语言编辑器(MavonEditor)

详情代码参考: 

 文章来源地址https://www.toymoban.com/news/detail-466364.html

<div class="pd-10" style="font-size: 22px; color: #3F5EFB; cursor: pointer"
             @click="$router.push('/front/articleDetail?id=' + item.id)">{{ item.name }}</div>
<template>
  <div style="color: #666">
    <div style="margin: 20px 0; ">
      <div class="pd-10" style="font-size: 40px; color: #3F5EFB;
       cursor: pointer">{{ article.name }}</div>
      <div style="font-size: 20px; margin-top: 10px;float: right;">
        <i class="el-icon-user-solid"></i> <span>{{ article.username }}</span>
        <i class="el-icon-time" style="margin-left: 20px"></i>
        <span> {{ article.createTime }}</span>
      </div>
    </div>
    <div style="margin-top: 60px">
      <mavon-editor
          class="md"
          :value="article.content"
          :subfield="false"
          :defaultOpen="'preview'"
          :toolbarsFlag="false"
          :editable="false"
          :scrollStyle="true"
          :ishljs="true"
      />
    </div>
       </div>
</template>

<script>
export default {
  name: "ArticleDetail",
  data(){
    return{
      article: {},
       id: this.$route.query.id
    }
  },
  created() {
         this.loadArticleDetail()
  },
  methods:{
       loadArticleDetail(){
         this.request.get("/article/detail/"+this.id).then(res=>{
             console.log(res.data)
              this.article=res.data;
         })
       }
  }
}
</script>

<style scoped>

</style>

 

详情效果图: 

 Vue项目集成Markdown标记语言编辑器(MavonEditor)

 

到了这里,关于Vue项目集成Markdown标记语言编辑器(MavonEditor)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Markdown编辑器 测试

    测试一下@TOC 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新

    2024年02月06日
    浏览(75)
  • Markdown编辑器

    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你

    2024年02月02日
    浏览(29)
  • React markdown 编辑器

    react-markdown 是一款 github 上开源的适用于 react 的 markdown 组件,可以基本实现 markdown 的功能,且可以根据自己实际应用定制的 remark 组件。 或者: 或者: 或者: 或者: 或者: 或者: 组件涉及的依赖及版本 package.json : for-editor : markdown 编辑器 react-markdown : markdown 内容预览

    2024年02月13日
    浏览(34)
  • Vue3 + Tsx 集成 ace-editor编辑器

    Ace Editor介绍 Ace Editor(全名:Ajax.org Cloud9 Editor)是一个开源的代码编辑器,旨在提供强大的代码编辑功能,通常用于构建基于Web的代码编辑应用程序。它最初由Cloud9 IDE开发,现在由开源社区维护。 主要有以下特点: 超过110种语言的语法高亮 (可以导入TextMate/Sublime Text的.

    2024年02月08日
    浏览(38)
  • Avalonia开发Markdown编辑器

    今天熟悉Avalonia UI,做一个Markdown的文本编辑器。 代码我上传了Github,地址: https://github.com/raokun/AvaloniaMarkdown.git 我使用开发工具的是visual studio 2022 preview ,上一篇博客已经写过了SDK的安装和基础项目的创建,需要了解的可以跳转查看: 创建Avalonia 模板项目-基础 由于Avaloni

    2024年02月11日
    浏览(27)
  • asp.net MVC markdown编辑器

    在 ASP.NET MVC 中,你可以使用一些第三方 Markdown 编辑器来让用户在网页上方便地编辑和预览 Markdown 内容。这些编辑器通常提供实时预览功能,将 Markdown 文本转换为实时渲染的 HTML,并支持编辑器工具栏来辅助用户编辑。 以下是一些流行的 ASP.NET MVC Markdown 编辑器: Editor.md :

    2024年02月15日
    浏览(30)
  • 推荐几款主流好用的markdown编辑器

    随着技术的不断发展和人们对效率的追求,Markdown 编辑器已经成为了许多人写作的首选工具。Markdown 是一种轻量级的标记语言,使用简单,方便快捷,且可以方便地转换成各种格式的文件。在这篇文章中,我们将介绍几款常用的 Markdown 编辑器,并分析它们的优缺点。 1、VS

    2024年02月11日
    浏览(32)
  • Vue集成Monaco Editor的使用,以及开发Python代码编辑器和Sql等

    ​微软之前有个项目叫做Monaco Workbench,后来这个项目变成了VSCode,而Monaco Editor(下文简称monaco)就是从这个项目中成长出来的一个web编辑器,他们很大一部分的代码(monaco-editor-core)都是共用的,所以monaco和VSCode在编辑代码,交互以及UI上几乎是一摸一样的,有点不同的是,

    2024年02月11日
    浏览(37)
  • Vue3项目中使用富文本编辑器

    tinymce简介 一、 安装 二、使用步骤 1. 封装组件 2. 组件中挂载 3.应用富文本 总结 TinyMCE 是一款易用、且功能强大的所见即所得的富文本编辑器。跟其他富文本编辑器相比,有着丰富的插件,支持多种语言,能够满足日常的业务需求并且免费。 一、安装Tinymce 注意:版本可根据

    2024年02月15日
    浏览(33)
  • 【html】制作一个能生成图片的markdown在线编辑器

    markdown是什么,为什么大家都会用它呢,如果你想写文章,写文档,写作,用markdown是最好的选择,它是一个很好用的文档排版工具,觉得好用,何不尝试把它弄下来做成自己的呢,接下来给讲一讲如何制作一个纯网页的markdown在线编辑器,可随时随地用它写稿件。 新建一个

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包