You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							151 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							151 lines
						
					
					
						
							4.2 KiB
						
					
					
				| <!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> |