forked from Gitlink/forgeplus
151 lines
4.2 KiB
HTML
151 lines
4.2 KiB
HTML
<!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> |