特點
- 支援簡體中文、英語、法語、西班牙語四種語言
- 移動端適配
- 語法擴充全面
- 支援圖片上傳
- 文件豐富、功能豐富且可配置
mavonEditor
基於Vue的markdown編輯器
English Documents
example (圖片展示)
PC
Install mavon-editor (安裝)
$ npm install mavon-editor --save
複製程式碼
Use (如何引入)
index.js
:
// 全域性註冊
// import with ES6
import Vue from 'vue'
import mavonEditor from 'mavon-editor'
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-css
和katex
僅會在mounted
時載入
Notice: 可選配色方案 和 支援的語言 是從 highlight.js/9.12.0 匯出的
圖片上傳
<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, defaultOpen: "preview"
API 文件
props
name 名稱 | type 型別 | default 預設值 | describe 描述 |
---|---|---|---|
value | String | 初始值 | |
language | String | zh-CN | 語言選擇,暫支援 zh-CN: 中文簡體 , en: 英文 , fr: 法語, pt-BR: 葡萄牙語 |
fontSize | String | 15px | 編輯區域文字大小 |
scrollStyle | Boolean | true | 開啟滾動條樣式(暫時僅支援chrome) |
subfield | Boolean | true | true: 雙欄(編輯預覽同屏), false: 單欄(編輯預覽分屏) |
defaultOpen | String | edit: 預設展示編輯區域 , preview: 預設展示預覽區域 , 其他 = edit | |
placeholder | String | 開始編輯... | 輸入框為空時預設提示文字 |
editable | Boolean | true | 是否允許編輯 |
codeStyle | String | code-github | markdown樣式: 預設github, 可選配色方案 |
toolbarsFlag | Boolean | true | 工具欄是否顯示 |
navigation | Boolean | false | 預設展示目錄 |
toolbars | Object | 如下例 | 工具欄 |
ishljs | Boolean | true | 程式碼高亮 |
imageFilter | function | null | 圖片過濾函式,引數為一個File Object ,要求返回一個Boolean , true 表示檔案合法,false 表示檔案不合法 |
imageClick | function | null | 圖片點選事件,預設為預覽,可覆蓋 |
/*
預設工具欄按鈕全部開啟, 傳入自定義物件
例如: {
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中的檔名) |