1. <s id="zaq5z"></s>
  • <s id="zaq5z"><dfn id="zaq5z"></dfn></s>
    <s id="zaq5z"><dfn id="zaq5z"><noscript id="zaq5z"></noscript></dfn></s><span id="zaq5z"></span>
    <span id="zaq5z"></span>

    Vue中使用Markdown

    来源:互联网   阅读:-

    时尚
    2020
    03/26
    06:49



    Vue中使用Markdown

    ?本篇主要讲解了在Vue项目里如何集成和使用Markdown (mavonEditor)编辑器的,以及如何接入一款非常简洁强大的 Markdown的样式 (github-markdown-css),本博客系统就是使用了 mavonEditor 和 github-markdown-css 下面我将分别讲解它们是如何集成到Vue项目中

    ?1.Vue项目中安装和使用mavonEditor


    ??1.1 安装mavonEditor

    首先在Vue项目所在的终端输入一下命令 安装 mavon-editor

     npm install mavon-editor --save

    ??1.2 Vue项目中引入mavonEditor

    ??接着在Vue项目的 main.js 引入 mavon-editor

     import Vue from &#39;vue&#39;
    import App from &#39;./App&#39;
    import mavonEditor from &#39;mavon-editor&#39; //引入mavon-editor 就是上面所安装的
    Vue.use(mavonEditor) //让Vue使用mavonEditor

    ??1.3 在页面中使用mavonEditor

    ??直接在页面中使用 mavon-editor 标签

     &lt;mavon-editor 
    :toolbars=&#34;toolbars&#34; //指定工具栏
    @imgAdd=&#34;handleEditorImgAdd&#34; //指定图片上传调用的方法,该方法主要将图片上传后台,并且返回地址,替换到markdown中
    @imgDel=&#34;handleEditorImgDel&#34; //删除图片调用的方法,该方法主要调用后台删除图片
    style=&#34;height:600px&#34; //
    v-model=&#34;value&#34; //绑定 value 值 必须的
    @change=&#34;change&#34; //监听markdown输入 ,可以实时保存等等。。
    ref=md //指定一个用来引用markdown的 可以是任意字符串
    /&gt;

    ??贴上上面所用到的方法和toolbars 主要是图片上传接口

     toolbars: {
    bold: true, // 粗体
    italic: true, // 斜体
    header: true, // 标题
    underline: true, // 下划线
    strikethrough: true, // 中划线
    mark: true, // 标记
    superscript: true, // 上角标
    subscript: true, // 下角标
    quote: true, // 引用
    ol: true, // 有序列表
    ul: true, // 无序列表
    link: true, // 链接
    imagelink: true, // 图片链接
    code: false, // code
    table: true, // 表格
    fullscreen: true, // 全屏编辑
    readmodel: true, // 沉浸式阅读
    htmlcode: true, // 展示html源码
    help: true, // 帮助
    /* 1.3.5 */
    undo: true, // 上一步
    redo: true, // 下一步
    trash: true, // 清空
    save: true, // 保存(触发events中的save事件)
    /* 1.4.2 */
    navigation: true, // 导航目录
    /* 2.1.8 */
    alignleft: true, // 左对齐
    aligncenter: true, // 居中
    alignright: true, // 右对齐
    /* 2.2.1 */
    subfield: true, // 单双栏模式
    preview: true, // 预览
    },

     methods: {
    //监听markdown变化
    change(value, render) {
    this.html = render;
    this.blogInfo.blogMdContent = value;
    this.blogInfo.blogContent = render;
    },
    //上传图片接口pos 表示第几个图片
    handleEditorImgAdd(pos , $file){
    var formdata = new FormData();
    formdata.append(&#39;file&#39; , $file);
    this.$axios
    .post(&#34;http://localhost:8000/blogs/image/upload/&#34;, formdata)
    .then(res =&gt; {
    var url = res.data.data;
    this.$refs.md.$img2Url(pos, url); //这里就是引用ref = md 然后调用$img2Url方法即可替换地址
    });
    },
    handleEditorImgDel(){
    console.log(&#39;handleEditorImgDel&#39;); //我这里没做什么操作,后续我要写上接口,从七牛云CDN删除相应的图片
    }
    }

    ??显示效果如下:


    ??1.4 博客展示Markdown的html

    ?? 展示博客效果的使用 article 标签指定 v-html 既markdown所编写html格式的内容

     
    如 content = &#39;&lt;h2&gt;&lt;a id=&#34;CSS_0&#34;&gt;&lt;/a&gt;CSS入门属性&lt;/h2&gt; &lt;h3&gt;&lt;a id=&#34;1css__1&#34;&gt;&lt;/a&gt;1.css 是什么&lt;/h3&gt;&#39;
     &lt;template&gt;
    &lt;article class=&#34;markdown-body&#34; style=&#34;text-align:left&#34; v-html=&#34;content&#34;&gt;&lt;/article&gt;
    &lt;/template&gt;

    ??显示效果如下:


    ?2.Vue项目中安装和使用 github-markdown-css


    ??2.1 安装github-markdown-css


     首先在Vue项目所在的终端输入一下命令 安装github-markdown-css
     npm install github-markdown-css

    ??2.2 导入github-markdown-css

    ?? 在所需展示markdown的页面 **import &#39;github-markdown-css/github-markdown.css&#39;并且在article 标签添class=&#34;markdown-body&#34;**

     &lt;style&gt;
    .markdown-body { 编写容器的一些css,根据需要进行调整,这里是我博客的,在github提供的.markdown-body基础上修改的
    box-sizing: border-box;
    min-width: 200px;
    /* max-width: 980px; */
    /* padding: 45px; */
    max-width: 98%;
    margin: 0 auto;
    box-shadow: 2px 4px 6px gray;
    padding-left: 20px;
    padding-right: 15px;
    padding-top: 40px;
    padding-bottom: 45px;
    margin-bottom: 100px
    }
     github使用的是这个 根据自己的进行调整
    .markdown-body {
    box-sizing: border-box;
    min-width: 200px;
    max-width: 980px;
    margin: 0 auto;
    padding: 45px;
    }
     //这个要配合移动端 不是很理解
    @media (max-width: 767px) {
    .markdown-body {
    padding: 15px;
    }
    }
    &lt;/style&gt;
     //主体展示内容部分
    &lt;template&gt;
    &lt;article class=&#34;markdown-body&#34; style=&#34;text-align:left&#34; v-html=&#34;content&#34;&gt;&lt;/article&gt;
    &lt;/template&gt;
     //导入 样式,
    &lt;script&gt;
    import &#39;github-markdown-css/github-markdown.css&#39; //导入
    export default {
    name : &#39;MainContent&#39;,
    props:[&#39;content&#39; ],
    data() {
    return {
     };
    },
    }
    &lt;/script&gt;

    ??显示效果如下:



    总结:

    ??整体来说还是很简单的只是用到了 mavonEditor 和 github-markdown-css 都是自己探索出来的,整体效果还是不错的

    本文由博客一文多发平台 https://openwrite.cn?from=article_bottom 发布!

    推荐阅读:骁龙660和麒麟710哪个好

     

    THE END
    本文系转载,版权归原作者所有;旨在传递信息,不代表长沙在线的观点和立场。

    相关热点

    91麻豆精品国产91久久久久久,Av有声小说亚洲一区二区三区,亚洲自偷自拍另类11p,视频二区 素人 制服 国产,人妻絲袜中出乐派影院,潘甜甜麻豆,卢珊珊果冻传媒 甘孜县| 西畴县| 上饶县| 团风县| 中西区| 小金县| 兖州市| 西乌珠穆沁旗| 平泉县| 泸水县| 泗水县| 石楼县| 昭苏县| 南川市| 海安县| 蓬莱市| 塔城市| 竹山县| 南京市| 赤峰市| 珠海市| 青海省| 三江| 历史| 体育| 东乡| 涿州市| 屯门区| 东山县| 泸定县| 彩票| 五寨县| 闸北区| 宁强县| 正镶白旗| 达拉特旗| 乌鲁木齐市| 黄陵县| 安国市| 昌图县| 江西省| http://444 http://444 http://444 http://444 http://444 http://444