当前位置: 首页 > 工具软件 > v-markdown > 使用案例 >

[zyf-markdown]介绍一款vue的markdown插件zyf-markdown

袁高峰
2023-12-01

今天介绍一款vue的markdown插件。这个插件目前只兼容vue2.x,兼容ie,vue3.0没测试过

仓库地址

国内仓库地址
仓库地址

示例

demo

安装

  npm install zyf-markdown

使用

在main.js中调用
import markDown from 'zyf-markdown'
Vue.use(markDown)

示例

<template>
<div class="example-wrap">
    <markDown 
    v-model="content" 
    :toolbars="toolbars" 
    :readonly="false" 
    :disabled="false"
    :useImgPreview="true"
    style="width:100%;height:100%;"
    @uploadImage="uploadImage"
    @getImgUrl="getImgUrl"
    />
</div>
</template>
<script>
import axios from 'axios'
export default {
    data() {
        return {
            content: '',
            toolbars: {
                tabBar: true, // 启用操作栏
                preview: true, // 开启预览
                bold: true, // 加粗
                italic: true, // 倾斜
                useH: true, // 使用标题
                table: true, // 表格
                alignleft: true, // 居左
                aligncenter: true, // 居中
                alignright: true, // 居右
                code: true, // 代码
                link: true, // 链接
                img: true, // 图片
                del: true, // 删除线
                quote: true, // 引用
                strikethrough: true, // 横线
                ol: true, // 有序列表
                ul: true, // 无序列表
            }
        }
    },
    methods: {
        // 上传图片
        uploadImage(e) {
            console.log(e, e.name)
            //这儿写自己的上传方法,e是markdown返回给你的file对象
            const formData = new FormData()
            formData.append('file', e)
            axios({
                url: '上传图片的地址',
                method: 'post',
                data: formData,
            }).then(res=>{
            console.log('res=>',res);
            // imgUrlAdd 有两个参数imgUrlAdd(url, name)
            this.$refs.MarkDown.imgUrlAdd('url: 这儿写url->res.url', e.name)           
            }).catch(() => {})
        },
        getImgUrl(e) {
          // 获取到点击图片的url
        }
    }
}
</script>
<style>
.example-wrap /deep/ #editor{
    min-height:calc(100% - 51px) !important;
}
.example-wrap /deep/ textarea {
    min-height:calc(100% - 51px) !important;
}
</style>
<style lang="scss">
.example-wrap{
    width:100%;
    height:100%;
}
</style>

上传图片

uploadImage(e) {
    console.log(e, e.name)
    //这儿写自己的上传方法,e是markdown返回给你的file对象
    const formData = new FormData()
    formData.append('file', e)
    axios({
        url: '上传图片的地址',
        method: 'post',
        data: formData,
    }).then(res=>{
       console.log('res=>',res);
       // imgUrlAdd 有两个参数imgUrlAdd(url, name)
       this.$refs.MarkDown.imgUrlAdd('url: 这儿写url->res.url', e.name)           
    }).catch(() => {})
}

配置项

字段类型默认值描述
toolbarsObject{}顶部操作栏,配置见’toolbars’配置
readonlyBolleanfalse是否只读
disabledBolleanfalse是否不可编辑
useImgPreviewBolleantrue是否可以预览图片

toolbars配置项

字段类型默认值描述
tabBarBolleantrue启用操作栏
previewBolleantrue是否开启预览
boldBolleantrue是否开启加粗
italicBolleantrue启用倾斜字体
useHBolleantrue是否使用不同主题大小的字体
tableBolleantrue是否使用表格
alignleftBolleantrue居左对齐
aligncenterBolleantrue居中对齐
alignrightBolleantrue居右对齐
codeBolleantrue代码
linkBolleantrue链接
imgBolleantrue图片上传
delBolleantrue删除线
quoteBolleantrue引用
strikethroughBolleantrue横线
olBolleantrue无序列表
ulBolleantrue有序列表
 类似资料: