<!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> 
 |