User:Conrad.Irwin/editor tutorial.js

// A basic editor.js plugin, adds an EDIT button to the toolbox // which, when clicked, adds "hello world" to the entry. // // This is about as simple as it gets. There are more fun things you // can do, which are documented at User:Conrad.Irwin/Editor_docs // or, failing that, in my head.

$(function //This code runs when body is loaded. {   mw.util.addPortletLink('p-tb', 'javascript:doMyEdit', 'EDIT'); });

function doMyEdit {   function addHelloWorldToWikitext(wikitext) {       return wikitext + "\nhello world"; }

var editor = Editor;

// Just check they really want to   if (confirm("Are you sure you want to add Hello World to this article?")) {       var bodyContent = document.getElementById('bodyContent'); var nodeToInsert = newNode('p', 'hello world');

var insertBefore = bodyContent.lastChild;

while (insertBefore.className != "printfooter") insertBefore = insertBefore.previousSibling; // Register the edit, this causes the top-left box to show, and the Undo Redo buttons to activate. // The page is not saved until the user clicks save. editor.addEdit({

// The function to call to change the wikitext edit: addHelloWorldToWikitext,

// The function to call to change the HTML redo: function { bodyContent.insertBefore(nodeToInsert, insertBefore); },

// The function to call to unchange the HTML (REQUIRED so that undo works) undo: function { bodyContent.removeChild(nodeToInsert); },

// The node to highlight green so that the user notices there is an unsaved change (OPTIONAL) node: nodeToInsert,

// The edit summary summary: "Added hello world to the end." });   }    else    {        // Display an error in the edit window in the top left.        editor.error("You pressed cancel");    }

}