一款強大的Vue-markdown編輯器插件

mavonEditor

github項目地址
演示網址

基于Vue的markdown編輯器

example (圖片展示)

PC
PC-GIF

查看更多圖片點擊這里...

Use Setup (開始)

Install mavon-editor (安裝)

$ npm install mavon-editor --save

Use (如何引入)

index.js:

    // 全局注冊
    // import with ES6
    import Vue from 'vue'
    import mavonEditor from 'mavon-editor'
    // markdown-it對象:md.s_markdown, md => mavonEditor實例
    //                 or
    //                 mavonEditor.markdownIt 
    import 'mavon-editor/dist/css/index.css'
    // use
    Vue.use(mavonEditor)
    new Vue({
        'el': '#main',
        data() {
            return { value: '' }
        }
    })

index.html

<div id="main">
    <mavon-editor v-model="value"/>
</div>

更多引入方式點擊這里...

代碼高亮

如不需要hightlight代碼高亮顯示,你應該設置ishljs為false

開啟代碼高亮props

    // ishljs默認為true
    <mavon-editor :ishljs = "true"></mavon-editor>

為優化插件體積,從v2.4.2起以下文件將默認使用cdnjs外鏈:

  • highlight.js
  • github-markdown-css
  • katex(v2.4.7)

代碼高亮highlight.js中的語言解析文件和代碼高亮樣式將在使用時按需加載.
github-markdown-csskatex僅會在mounted時加載

Notice:
可選配色方案支持的語言 是從 highlight.js/9.12.0 導出的

不使用cdn,本地按需加載點擊這里...

圖片上傳

<template>
    <mavon-editor ref=md @imgAdd="$imgAdd" @imgDel="$imgDel"></mavon-editor>
</template>
exports default {
    methods: {
        // 綁定@imgAdd event
        $imgAdd(pos, $file){
            // 第一步.將圖片上傳到服務器.
           var formdata = new FormData();
           formdata.append('image', $file);
           axios({
               url: 'server url',
               method: 'post',
               data: formdata,
               headers: { 'Content-Type': 'multipart/form-data' },
           }).then((url) => {
               // 第二步.將返回的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, url);
           })
        }
    }
}

圖片上傳詳情點擊這里...

  • 默認大小樣式為 min-height: 300px , min-width: 300px 可自行覆蓋
  • 基礎z-index: 1500
  • 僅用作展示可以設置props: toolbarsFlag: false , subfield: false, default_open: "preview"

API 文檔

props

name 名稱 type 類型 default 默認值 describe 描述
value String 初始值
language String cn 語言選擇,暫支持 cn: 中文簡體 , en: 英文 , fr: 法語
scrollStyle Boolean true 開啟滾動條樣式(暫時僅支持chrome)
subfield Boolean true true: 雙欄(編輯預覽同屏), false: 單欄(編輯預覽分屏)
default_open String edit: 默認展示編輯區域 , preview: 默認展示預覽區域 , 其他 = edit
placeholder String 開始編輯... 輸入框為空時默認提示文本
editable Boolean true 是否允許編輯
code_style String code-github markdown樣式: 默認github, 可選配色方案
toolbarsFlag Boolean true 工具欄是否顯示
toolbars Object 如下例 工具欄
ishljs Boolean true 代碼高亮(cdn外鏈)
 /*
    默認工具欄按鈕全部開啟, 傳入自定義對象
    例如: {
         bold: true, // 粗體
         italic: true,// 斜體
         header: true,// 標題
    }
    此時, 僅僅顯示此三個功能鍵
 */
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: true, // 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, // 預覽
  }

events

name 方法名 params 參數 describe 描述
change String: value , String: render 編輯區發生變化的回調事件(render: value 經過markdown解析后的結果)
save String: value , String: render ctrl + s 的回調事件(保存按鍵,同樣觸發該回調)
fullscreen Boolean: status , String: value 切換全屏編輯的回調事件(boolean: 全屏開啟狀態)
readmodel Boolean: status , String: value 切換沉浸式閱讀的回調事件(boolean: 閱讀開啟狀態)
htmlcode Boolean: status , String: value 查看html源碼的回調事件(boolean: 源碼開啟狀態)
subfieldtoggle Boolean: status , String: value 切換單雙欄編輯的回調事件(boolean: 雙欄開啟狀態)
previewtoggle Boolean: status , String: value 切換預覽編輯的回調事件(boolean: 預覽開啟狀態)
helptoggle Boolean: status , String: value 查看幫助的回調事件(boolean: 幫助開啟狀態)
navigationtoggle Boolean: status , String: value 切換導航目錄的回調事件(boolean: 導航開啟狀態)
imgAdd String: filename, File: imgfile 圖片文件添加回調事件(filename: 寫在md中的文件名, File: File Object)
imgDel String: filename 圖片文件刪除回調事件(filename: 寫在md中的文件名)

Dependencies (依賴)

update(更新內容)

Collaborators(合作者)

Licence (證書)

mavonEditor is open source and released under the MIT Licence.

Copyright (c) 2017 hinesboy

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內容