|  |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html lang="zh"> | 
					
						
							|  |  |  |     <head> | 
					
						
							|  |  |  |         <meta charset="utf-8" /> | 
					
						
							|  |  |  |         <title>Define extention plugins for Editor.md - Editor.md examples</title> | 
					
						
							|  |  |  |         <link rel="stylesheet" href="css/style.css" /> | 
					
						
							|  |  |  |         <link rel="stylesheet" href="../css/editormd.css" /> | 
					
						
							|  |  |  |         <link rel="shortcut icon" href="https://pandao.github.io/editor.md/favicon.ico" type="image/x-icon" /> | 
					
						
							|  |  |  |     </head> | 
					
						
							|  |  |  |     <body> | 
					
						
							|  |  |  |         <div id="layout"> | 
					
						
							|  |  |  |             <header> | 
					
						
							|  |  |  |                 <h1>Define extention plugins for Editor.md</h1>  | 
					
						
							|  |  |  |             </header> | 
					
						
							|  |  |  |             <div id="test-editormd">                 | 
					
						
							|  |  |  |                 <textarea style="display:none;">[TOC] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Define plugin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #### Plugin directory | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     editor.md/ | 
					
						
							|  |  |  |         plugins/ | 
					
						
							|  |  |  |             plugin-name/ | 
					
						
							|  |  |  |                 .... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #### Example | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```javascript | 
					
						
							|  |  |  | (function() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var factory = function (exports) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var $ = jQuery;           // if using module loader(Require.js/Sea.js). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		exports.customMethod = function() { | 
					
						
							|  |  |  | 		    //.... | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		exports.fn.youPluginName = function() { | 
					
						
							|  |  |  | 		    /* | 
					
						
							|  |  |  | 			var _this       = this; // this == the current instance object of Editor.md | 
					
						
							|  |  |  | 			var lang        = this.lang; | 
					
						
							|  |  |  | 			var settings    = this.settings; | 
					
						
							|  |  |  | 			var editor      = this.editor; | 
					
						
							|  |  |  | 			var cursor      = cm.getCursor(); | 
					
						
							|  |  |  | 			var selection   = cm.getSelection(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			cm.focus(); | 
					
						
							|  |  |  |             */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			//.... | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// CommonJS/Node.js | 
					
						
							|  |  |  | 	if (typeof require === "function" && typeof exports === "object" && typeof module === "object") | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         module.exports = factory; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 	else if (typeof define === "function")  // AMD/CMD/Sea.js | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  | 		if (define.amd) { // for Require.js | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			define(["editormd"], function(editormd) { | 
					
						
							|  |  |  |                 factory(editormd); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		} else { // for Sea.js | 
					
						
							|  |  |  | 			define(function(require) { | 
					
						
							|  |  |  |                 var editormd = require("./../../editormd"); | 
					
						
							|  |  |  |                 factory(editormd); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	}  | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  |         factory(window.editormd); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | })(); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #### Usage plugin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```html | 
					
						
							|  |  |  | <script src="../plugins/you-plugin-name/you-plugin-name.js"></script> | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  |     editormd.customMethod(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var testEditor = editormd("test-editormd", { | 
					
						
							|  |  |  |         path   : '../lib/', | 
					
						
							|  |  |  |         onload : function() { | 
					
						
							|  |  |  |             this.youPluginName(); | 
					
						
							|  |  |  |             this.pluginA(); | 
					
						
							|  |  |  |             this.executePlugin("somePluginName", "you-plugin-name/you-plugin-name"); // load and execute plugin | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // or | 
					
						
							|  |  |  |     $("#btn").click(function(){ | 
					
						
							|  |  |  |         testEditor.youPluginName(); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | </textarea> | 
					
						
							|  |  |  |             </div> | 
					
						
							|  |  |  |         </div>         | 
					
						
							|  |  |  |         <script src="js/jquery.min.js"></script> | 
					
						
							|  |  |  |         <script src="../editormd.js"></script> | 
					
						
							|  |  |  |         <script type="text/javascript"> | 
					
						
							|  |  |  |             var testEditor; | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             editormd.fn.customMethod = function() { | 
					
						
							|  |  |  |                 console.log("customMethod", this); | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             editormd.fn.pluginA = function() { | 
					
						
							|  |  |  |                 console.log("pluginA", this); | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             $(function() { | 
					
						
							|  |  |  |                 editormd.methodOne = function(){ | 
					
						
							|  |  |  |                     console.log("editormd.methodOne"); | 
					
						
							|  |  |  |                 }; | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |                 editormd.loadPlugin("../plugins/test-plugin/test-plugin", function(){ | 
					
						
							|  |  |  |                     editormd.testPlugin(); | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |                 editormd.loadPlugin("../plugins/image-dialog/image-dialog", function(){ | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |                     testEditor = editormd("test-editormd", { | 
					
						
							|  |  |  |                         width  : "90%", | 
					
						
							|  |  |  |                         height : 720, | 
					
						
							|  |  |  |                         path   : '../lib/', | 
					
						
							|  |  |  |                         onload : function() { | 
					
						
							|  |  |  |                             this.customMethod(); | 
					
						
							|  |  |  |                             testEditor.imageDialog(); | 
					
						
							|  |  |  |                             this.executePlugin("htmlEntitiesDialog", "html-entities-dialog/html-entities-dialog"); // load and execute plugin | 
					
						
							|  |  |  |                             this.pluginA(); | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     }); // execute plugin | 
					
						
							|  |  |  |                 }); | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |                 editormd.methodOne(); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         </script> | 
					
						
							|  |  |  |     </body> | 
					
						
							|  |  |  | </html> |