Vue引入mavon-editor插件实现markdown功能

说明 mavon-editor是一款基于Vue的markdown编辑器,因为当前项目是采用Nuxt,所以这里所展示的教程是针对Nuxt引入mavon-editor插件,如果你只是采用了

Vue,没有用Nuxt框架,那么你可以看mavon-editor官方文档,有详细说明,其实它们只有在引入mavon-editor方式有细微差别,使用都是一样的。mavonEditor官方地址

一、Nuxt引入mavon-editor插件

1、安装

通过命令安装插件

  1. npm install mavon-editor --save

2、在plugins中创建vueMarkdown.js

  1. import Vue from 'vue'
  2. import mavonEditor from 'mavon-editor'
  3. import "mavon-editor/dist/css/index.css";
  4. Vue.use(mavonEditor)

3、在nuxt.config.js中引入

  1. plugins: [
  2. '~/plugins//vueMarkdown.js',
  3. ],

这三步也是Nuxt新增插件的标准3步曲了。既然插件已经添加完成,那么接下来就是使用了,使用应该包含两部分:1)编辑markdown文档并保存。2)回显markdown数据

二、使用mavon-editor编辑

1、源码

  1. <template>
  2. <div class="home">
  3. <mavon-editor
  4. ref="md"
  5. placeholder="请输入文档内容..."
  6. :boxShadow="false"
  7. style="z-index:1;border: 1px solid #d9d9d9;height:50vh"
  8. v-model="content"
  9. :toolbars="toolbars"
  10. />
  11. </div>
  12. </template>
  13. <script>
  14. export default {
  15. name: "home",
  16. components: {},
  17. data() {
  18. return {
  19. content: "",
  20. toolbars: {
  21. bold: true, // 粗体
  22. italic: true, // 斜体
  23. header: true, // 标题
  24. underline: true, // 下划线
  25. strikethrough: true, // 中划线
  26. mark: true, // 标记
  27. superscript: true, // 上角标
  28. subscript: true, // 下角标
  29. quote: true, // 引用
  30. ol: true, // 有序列表
  31. ul: true, // 无序列表
  32. link: true, // 链接
  33. imagelink: true, // 图片链接
  34. code: true, // code
  35. table: true, // 表格
  36. fullscreen: true, // 全屏编辑
  37. readmodel: true, // 沉浸式阅读
  38. htmlcode: true, // 展示html源码
  39. help: true, // 帮助
  40. /* 1.3.5 */
  41. undo: true, // 上一步
  42. redo: true, // 下一步
  43. trash: true, // 清空
  44. save: false, // 保存(触发events中的save事件)
  45. /* 1.4.2 */
  46. navigation: true, // 导航目录
  47. /* 2.1.8 */
  48. alignleft: true, // 左对齐
  49. aligncenter: true, // 居中
  50. alignright: true, // 右对齐
  51. /* 2.2.1 */
  52. subfield: true, // 单双栏模式
  53. preview: true // 预览
  54. }
  55. };
  56. },
  57. methods: {
  58. // 上传图片方法
  59. $imgAdd(pos, $file) {
  60. console.log(pos, $file);
  61. }
  62. }
  63. };
  64. </script>

2、页面展示编辑器效果

页面展示效果如下

我们可以看到我们已经可以正常使用markdown编辑器了,说明当前插件安装成功,可以用。

三、使用mavon-editor回显

上一步是已经可以编辑,但我们还需要将我们编辑好已经存在数据库的数据,回显在页面。

1、源码

  1. <no-ssr>
  2. <mavon-editor
  3. v-highlight
  4. class="md"
  5. :value="content"
  6. :subfield = "false"
  7. :defaultOpen = "'preview'"
  8. :toolbarsFlag = "false"
  9. :editable="false"
  10. :scrollStyle="true"
  11. ></mavon-editor>
  12. </no-ssr>

属性解释

  1. :value="content":引入要转换的内容
  2. :subfield = "false":开启单栏模式
  3. :defaultOpen = "'preview'":默认展示预览区域
  4. :toolbarsFlag = "false":关闭工具栏
  5. :editable="false":不允许编辑
  6. scrollStyle="true":开启滚动条样式(暂时仅支持chrome)

2、页面展示效果

这样一来整个编辑回显的效果这里都展示出来了。

四、代码高亮

上面展示的时候确实已经可以正常回显markdown文档,但还不美观,我们想要的就是只要是代码都能高亮的显示出来,你可以用highlight.js插件,但我在使用中并没有达到我

自己喜欢的样式,所以我这边自己修改了部分css样式。这里把css样式展示如下。


  1. .markdown-body .lang- {
  2. display: block;
  3. overflow: auto;
  4. padding: 1.3em 2em !important;
  5. font-size: 16px !important;
  6. background: #272822 !important;
  7. color: #FFF;
  8. max-height: 700px;
  9. }
  10. .markdown-body .hljs {
  11. display: block;
  12. overflow: auto;
  13. padding: 1.3em 2em !important;
  14. font-size: 16px !important;
  15. background: #272822 !important;
  16. color: #FFF;
  17. max-height: 700px;
  18. }
  19. .hljs,
  20. .hljs-tag,
  21. .hljs-subst {
  22. color: #f8f8f2 !important;
  23. }
  24. .hljs-strong,
  25. .hljs-emphasis {
  26. color: #a8a8a2 !important;
  27. }
  28. .hljs-bullet,
  29. .hljs-quote,
  30. .hljs-number,
  31. .hljs-regexp,
  32. .hljs-literal,
  33. .hljs-link {
  34. color: #ae81ff !important;
  35. }
  36. .hljs-code,
  37. .hljs-title,
  38. .hljs-section,
  39. .hljs-selector-class {
  40. color: #a6e22e !important;
  41. }
  42. .hljs-strong {
  43. font-weight: bold;
  44. }
  45. .hljs-emphasis {
  46. font-style: italic;
  47. }
  48. .hljs-keyword,
  49. .hljs-selector-tag,
  50. .hljs-name,
  51. .hljs-attr {
  52. color: #f92672 !important;
  53. }
  54. .hljs-symbol,
  55. .hljs-attribute {
  56. color: #66d9ef !important;
  57. }
  58. .hljs-params,
  59. .hljs-class .hljs-title {
  60. color: #f8f8f2 !important;
  61. }
  62. .hljs-string,
  63. .hljs-type,
  64. .hljs-built_in,
  65. .hljs-builtin-name,
  66. .hljs-selector-id,
  67. .hljs-selector-attr,
  68. .hljs-selector-pseudo,
  69. .hljs-addition,
  70. .hljs-variable,
  71. .hljs-template-variable {
  72. color: #e6db74 !important;
  73. }
  74. .hljs-comment,
  75. .hljs-deletion,
  76. .hljs-meta {
  77. color: #75715e !important;
  78. }

然后我们再来看页面展示效果

是不是明显感觉代码已经高亮,整体看去的视觉效果比上面的要好多了。

总结 这里有关编辑保存与后台接口交互的逻辑没有粘贴出来,还有如果使用markdown编辑器上传图片这里也没有说明,具体的可以看下官方文档。

参考

mavonEditor官方地址

  1. 少说多做,句句都会得到别人的重视;多说少做,句句都会受到别人的忽视。(16)

VueJs(16)---Nuxt引入mavon-editor插件实现markdown功能的更多相关文章

  1. 编写 Unity Editor 插件

    Editor Style Viewer 在开发过程中,我喜欢编写一些辅助的Editor插件,方便在游戏开发过程进行调试. 下面是摘自Asset Store的一个查看Unity 默认GUI样式的小工具 ...

  2. 在Eclipse中使用Propertites Editor插件来解决property文件中文显示乱码

    在一般情况下,propertites文件在eclipse中的显示中文一直显示乱码,想要解决这个问题,需要通过在eclipse中安装一个Propertites Editor插件来进行解决. 在Eclip ...

  3. 自己编写jQuery动态引入js文件插件 (jquery.import.dynamic.script)

    这个插件主要是结合jquery或者xhr异步请求来使用的,它可以把已经引入过的js文件记录在浏览器内存中,当下次再引入相同的文件就忽略该文件的引入. 此插件不支持浏览器刷新保存数据,那需要利用cook ...

  4. IDEA安装leetcode editor插件

    leetcode > https://leetcode-cn.com/ 本地idea刷题可以直接同步提交,测试等相关操作 需要安装leetcode editor插件 1.idea setting ...

  5. editor.md实现Markdown编辑器

    editor.md实现Markdown编辑器 Markdown和Editor.md简介 Markdwon编辑器在技术工作者圈子中已经越来越流行,简单的语法,统一的格式,强大的扩展功能,最重要的是:你可 ...

  6. RabbitMQ 入门教程(PHP版) 使用rabbitmq-delayed-message-exchange插件实现延迟功能

    延迟任务应用场景 场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 场景三:过1分钟给新 ...

  7. 转 RabbitMQ 入门教程(PHP版) 使用rabbitmq-delayed-message-exchange插件实现延迟功能

    延迟任务应用场景 场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 场景三:过1分钟给新 ...

  8. vue项目引入社交分享插件

    vshare 基于百度分享开发的支持VUE2.X的分享插件,为您带来更多的流量!提供多种风格按钮,代码加载更快,引入社会化流量,提升网页抓取速度等优点.github地址:https://github. ...

  9. 在nuxt中加入element-ui插件遇到的问题

    gen1.首先进入nuxt的官网跟着步骤实现内容. https://zh.nuxtjs.org/guide/plugins 2.在我们的项目目录中找plugin 根据图片中的表示引入内容: impor ...

随机推荐

  1. kubernetes dashboard延长自动超时注销

    方法1:部署清单时,修改yaml文件,添加 container.Args 增加 --token-ttl=43200 其中43200是设置自动超时的秒数.也可以设置 token-ttl=0 以完全禁用超 ...

  2. [bug] flink on yarn 启动失败

    参考 https://www.cnblogs.com/huangguoming/p/11732663.html

  3. testlink安装(mac os)

    安装依赖:xampp.mysql.testlink 一.xampp安装(参考:https://blog.csdn.net/it_cgq/article/details/79430511) 1.下载xa ...

  4. ScreenToGif: 屏幕录制神器

    ScreenToGif:一款小众但很好用的屏幕录制神器  牛人干货 2020-01-07 00:23:08 今天干货君给大家介绍一款电脑屏幕录制神器-ScreenToGif . ScreenToGif ...

  5. IT菜鸟之虚拟机VMware的安装

    老师说过,如果想学好Linux,最好不要在实体机上安装Linux,因为学习需要经常折腾,在实体机上做实验,出现故障就要重新安装,这样绝大多数时间都会浪费在安装上. 这时我们需要一个工具,它就是虚拟机. ...

  6. [Django高级之中间件、csrf跨站请求伪造]

    [Django高级之中间件.csrf跨站请求伪造] Django中间件 什么是中间件? Middleware is a framework of hooks into Django's request ...

  7. GO学习-(29) Go语言操作etcd

    Go语言操作etcd etcd是近几年比较火热的一个开源的.分布式的键值对数据存储系统,提供共享配置.服务的注册和发现,本文主要介绍etcd的安装和使用. etcd etcd介绍 etcd是使用Go语 ...

  8. Nginx 配置实例-配置动静分离

    Nginx 配置实例-配置动静分离 1. 静态资源的创建 2. nginx 动静分离的配置 3. 验证 1. 静态资源的创建 这里使用的静态资源主要为 HTML 静态文件和图片. mkdir -vp ...

  9. GO学习-(6) Go语言基础之运算符

    Go语言基础之运算符 运算符用于在程序运行时执行数学或逻辑运算. 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - ...

  10. Go语言协程并发---等待组sync.WaitGroup

    package main import ( "fmt" "sync" "time" ) /*等待组API介绍*/ func main071( ...