mavon-editor 存儲md文件以及md文件解析成html文件

1、md文件的存儲javascript

由於是vue-cli項目,因此使用的是mavonEditor.css

github地址:https://github.com/hinesboy/mavonEditorhtml

使用方法:vue

首先安裝:java



npm install mavon-editor --save

而後在相應的組件裏引用:git

//引入
import {mavonEditor} from 'mavon-editor' import 'mavon-editor/dist/css/index.css'
//標籤使用,注意這裏是mavon-editor
<mavon-editor style="height: 100%;width: 100%;" v-model="form.content" ref="md" defaultOpen="edit" :toolbars="toolbarsValue" @imgAdd="$imgAdd" @change="changeMavon" @save="saveMavon" />

//mavon-editor菜單欄的相關配置github

toolbarsValue: {
                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: false, // 保存(觸發events中的save事件)
                /* 1.4.2 */
                navigation: true, // 導航目錄
                /* 2.1.8 */
                alignleft: true, // 左對齊
                aligncenter: true, // 居中
                alignright: true, // 右對齊
                /* 2.2.1 */
                subfield: true, // 單雙欄模式
                preview: true, // 預覽
            },

//相關的方法vue-cli

//富文本保存的方法
        saveMavon(value,render){
            
          console.log("this is render"+render);
          console.log("this is value"+value);
        },
        // 綁定@imgAdd event
        $imgAdd(pos, $file){
            console.log("觸發圖片上傳");
            console.log(pos);
            console.log($file);
            // 第一步.將圖片上傳到服務器.
           var formdata = new FormData();
           formdata.append('file', $file);
           console.log(formdata);
           imgeApi(formdata).then(res=>{
               // 第二步.將返回的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`
               */
                console.log(res.data);
                let url="/server/"+res.data.data;
                this.$refs.md.$img2Url(pos, url);
//相應的md格式的文件內容就是它綁定的變量
                                 //獲得相應的html/文件
                                console.log(this.$refs.md.d_render);
 
});
        },  

我選擇的是直接將md格式的文本保存到數據庫中,而後再將其從數據庫中取出來解析。數據庫

2、md格式的文本的解析npm

使用marked框架來解析。

方法步驟:

npm install marked --save

在組件中引用:

import marked from 'marked'

相應的標籤:

<div v-html="readmeContent" ></div>

js方法:

//這裏的newDate[0].content就是取出來的md格式的文本內容  
this.readmeContent=marked(newData[0].content||'',{
                    sanitize:true
                })

  

存在問題:如今純粹的只是將其解析成了html文件,相應的樣式查了下,能夠用highlight.js,但折騰了很久都沒引用成功,等以後再仔細看看marked的官方文檔再說....

                  地址:https://marked.js.org/#/README.md#README.md 

相關文章
相關標籤/搜索