markdown編輯器之editormd使用整合

不啰嗦看效果

如果覺得對(duì)你項(xiàng)目有用請(qǐng)繼續(xù)深入戈次。

007.gif

1. editor.md簡(jiǎn)介

  • 1.1 說明

    Editor.md 是一款開源的、可嵌入的 Markdown 在線編輯器(組件)筒扒,基于 CodeMirror怯邪、jQuery 和 Marked 構(gòu)建。

  • 1.2 項(xiàng)目地址

    github地址:https://github.com/pandao/editor.md

  • 1.3 項(xiàng)目效果圖

001.png

2. 項(xiàng)目整合

2.1 下載editormd至自己項(xiàng)目根目錄

如下為我的項(xiàng)目目錄:

002.png

2.2 項(xiàng)目部署

引入css樣式文件和js文件

<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
 <link rel="stylesheet"  > 
 <!-- 引入editormd樣式文件 -->
 <link rel="stylesheet" href="./editormd/css/editormd.css" >
 <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
 <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" ></script> 
 <script src="./editormd/editormd.js" ></script> 

注意:

務(wù)必引入 editormd/css/editormd.csseditormd/editormd.js兩個(gè)文件花墩。

頁面textarea樣式

<div id="test-editor">
 <textarea id="inp-content" style="display:none;">這是我首次使用</textarea>
</div>

JS調(diào)用代碼

<script>
 $(function() {
var editor = editormd("test-editor", {
 height:'350px',
 syncScrolling : "single",
 emoji:true,
 //啟動(dòng)本地圖片上傳功能
 imageUpload: true,
 watch:true,
 imageFormats   : ["jpg", "jpeg", "gif", "png", "bmp", "webp","zip","rar"],
 path   : "./editormd/lib/",
 imageUploadURL : "./upload.php", //文件提交請(qǐng)求路徑
 saveHTMLToTextarea : true, //注意3:這個(gè)配置悬秉,方便post提交表單
 previewTheme : "dark",//預(yù)覽主題樣式 黑色
 });
})
</script>

配置參數(shù)

{
 theme                : "",             // Editor.md self themes, before v1.5.0 is CodeMirror theme, 
 editorTheme          : "default",      // Editor area, this is CodeMirror theme at v1.5.0
 previewTheme         : "",             // Preview area theme, default empty 
 width                : "100%",
 height               : "100%",
 path                 : "./lib/",       // Dependents module file directory
 pluginPath           : "",             // If this empty, default use settings.path + "../plugins/"
 delay                : 300,            // Delay parse markdown to html, Uint : ms
 autoLoadModules      : true,           // Automatic load dependent module files
 watch                : true,
 placeholder          : "Enjoy Markdown! coding now...",
 gotoLine             : true,           // Enable / disable goto a line
 codeFold             : false,
 autoHeight           : false,
 autoFocus            : true,           // Enable / disable auto focus editor left input area
 autoCloseTags        : true,
 searchReplace        : true,           // Enable / disable (CodeMirror) search and replace function
 syncScrolling        : true,           // options: true | false | "single", default true
 saveHTMLToTextarea   : false,          // If enable, Editor will create a <textarea name="{editor-id}-html-code"> tag save HTML code for form post to server-side.
 onload               : function() {},
 onresize             : function() {},
 onchange             : function() {},
 onwatch              : null,
 onunwatch            : null,
 onpreviewing         : function() {},
 onpreviewed          : function() {},
 onfullscreen         : function() {},
 onfullscreenExit     : function() {},
 onscroll             : function() {},
 onpreviewscroll      : function() {},

 imageUpload          : false,          // Enable/disable upload
 imageFormats         : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
 imageUploadURL       : "",             // Upload url
 crossDomainUpload    : false,          // Enable/disable Cross-domain upload
 uploadCallbackURL    : "",             // Cross-domain upload callback url

 emoji                : false,          // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);
 // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;
 // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;
 tex                  : false,          // TeX(LaTeX), based on KaTeX
 flowChart            : false,          // flowChart.js only support IE9+
 sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+
 previewCodeHighlight : true,           // Enable / disable code highlight of editor preview area
?
 toolbar              : true,           // show or hide toolbar
 toolbarAutoFixed     : true,           // on window scroll auto fixed position
 toolbarIcons         : "full",         // Toolbar icons mode, options: full, simple, mini, See `editormd.toolbarModes` property.
 toolbarTitles        : {},
 toolbarHandlers      : {
 ucwords : function() {
 return editormd.toolbarHandlers.ucwords;
 },
 lowercase : function() {
 return editormd.toolbarHandlers.lowercase;
 } 
}

顯示效果

  • 003.png

界面出來了已經(jīng)完成很大一部分了。通過設(shè)置提交數(shù)據(jù)打印可以查看editormd提交數(shù)據(jù)的一個(gè)結(jié)構(gòu)

  • 005.png

通過debug我們可有看到提交給后臺(tái)的數(shù)據(jù)如下:

  • 004.png

3. 圖片上傳處理

3.1 editormd的圖片上傳功能有很多坑冰蘑,下面我們將依次填坑和泌。

editormd圖片上傳功能需要設(shè)置,要在返回固定格式的json數(shù)據(jù)祠肥,即使在調(diào)試時(shí)候武氓。扣丁曼在初次使用editormd項(xiàng)目時(shí)在此處浪費(fèi)了很多時(shí)間。

開啟圖片上傳參數(shù)imageUpload : true仇箱、imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],县恕、imageUploadURL : "./upload.php",

后臺(tái)返回樣式如下:

{
 success : 0 | 1, //0表示上傳失敗;1表示上傳成功
 message : "提示的信息",
 url     : "圖片地址" //上傳成功時(shí)才返回
}

3.2 增加截圖上傳和拖拽上傳圖片功能

由于editormd的上傳圖片功能用戶體驗(yàn)并不友好!每次上傳圖片很費(fèi)事剂桥。

扣丁曼通過收集網(wǎng)上其他小伙伴提供的建議也實(shí)現(xiàn)了editormd的截圖上傳和拖拽上傳功能忠烛。

  • 新增JS插件代碼

    文件名editoemd-image-past.js放置于editormd/plugins文件夾下

<script>
    console.log('代碼內(nèi)較多請(qǐng)通過下載方式查看')
   </script>
  • 頁面引入
<script src="./editormd/plugins/editormd-image-past.js"></script>
  • 項(xiàng)目中配置
path   : "__PAGE__/global/plugins/editormd/lib/",
   imageUploadURL : "/uploadFile", //文件提交請(qǐng)求路徑
   onload : function() {
    initPasteDragImg(this); //配置圖片粘貼上傳
    },
   saveHTMLToTextarea : true, //注意3:這個(gè)配置,方便post提交表單

4. 前臺(tái)展示editormd數(shù)據(jù)

  • 在view頁面引入css文件和js文件如下
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
     <link rel="stylesheet"  >

     <!-- 引入editormd樣式文件 -->
     <link rel="stylesheet" href="./editormd/css/editormd.css" >

 <link href="./editormd/css/sons-of-obsidian.css" rel="stylesheet" type="text/css" />
     <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
      <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
     <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" ></script>    
  • 頁面展示區(qū)
<div id="test-editormd-view" style="width:700px;" class="blog-single-desc">
         <textarea style="display:none;" id="test-editormd-markdown-doc"><?php echo $data==''? '## 還沒有數(shù)據(jù)哦权逗!':$data;?></textarea>
</div>   
  • js處理
<script src="./editormd/lib/marked.min.js"></script>
    <!-- 第三方界面樣式文件google -->
    <script src="./editormd/lib/google-code-prettify/prettify.js"></script>
    <script src="./editormd/lib/raphael.min.js"></script>
    <script src="./editormd/lib/underscore.min.js"></script>
    <script src="./editormd/lib/sequence-diagram.min.js"></script>
    <script src="./editormd/lib/flowchart.min.js"></script>
    <script src="./editormd/editormd.js"></script>
    <script>
    $(function() {
            editormd.markdownToHTML("test-editormd-view", {
                htmlDecode: "style,script,iframe", // you can filter tags decode
                emoji: true,
                taskList: true,
                tex: true, // 默認(rèn)不解析
                flowChart: false, // 默認(rèn)不解析
                sequenceDiagram: true, // 默認(rèn)不解析
                path: "./editormd/lib/",
                previewTheme: "dark"
            });
    });
    </script>
  • 效果圖
image.png

5. 項(xiàng)目源碼

  • 關(guān)注公眾號(hào)“扣丁曼” 回復(fù)editormd獲取項(xiàng)目源碼美尸。

  • 本項(xiàng)目采用php作為處理語言,其他語種小伙伴請(qǐng)各顯神通旬迹。

6.聯(lián)系我

  • 通過公眾號(hào)“扣丁曼”(號(hào)碼:qcgcoder)直接與我聯(lián)系火惊。

  • 通過我的博客獲取最新資訊

    博客網(wǎng)址:https://52qcg.cn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市奔垦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尸疆,老刑警劉巖椿猎,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異寿弱,居然都是意外死亡犯眠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門症革,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筐咧,“玉大人,你說我怎么就攤上這事×咳铮” “怎么了铺罢?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)残炮。 經(jīng)常有香客問我韭赘,道長(zhǎng),這世上最難降的妖魔是什么势就? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任泉瞻,我火速辦了婚禮,結(jié)果婚禮上苞冯,老公的妹妹穿的比我還像新娘袖牙。我一直安慰自己,他們只是感情好舅锄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布贼陶。 她就那樣靜靜地躺著,像睡著了一般巧娱。 火紅的嫁衣襯著肌膚如雪碉怔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天禁添,我揣著相機(jī)與錄音撮胧,去河邊找鬼。 笑死老翘,一個(gè)胖子當(dāng)著我的面吹牛芹啥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铺峭,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼墓怀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了卫键?” 一聲冷哼從身側(cè)響起傀履,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎莉炉,沒想到半個(gè)月后钓账,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡絮宁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年梆暮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绍昂。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啦粹,死狀恐怖偿荷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唠椭,我是刑警寧澤跳纳,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站泪蔫,受9級(jí)特大地震影響棒旗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撩荣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一铣揉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧餐曹,春花似錦逛拱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饱狂,卻和暖如春曹步,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背休讳。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工讲婚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俊柔。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓筹麸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親雏婶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子物赶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354