This software is no longer actively maintained. Please switch to its successor wikEd. This page is kept solely for historical reasons.

Change log

The edit tool

User:Cacycle/editor.js is a script that adds extended editing functions to Wikipedia edit pages. Currently it works only for Mozilla Firefox, Mozilla, and Mozilla SeaMonkey browsers. Features include regular expression search and replace, server-independent Show preview and Show changes, one-click fixing of common mistakes, and undo/redo. Simply add one of the code snippet from below to your User:YourUsername/monobook.js page.

Features

Adds the following functions as buttons below the edit textarea:

Preview

Screenshot of the cacycle JavaScript editor in action

Source code

User:Cacycle/editor.js

Installation

Simply add one of the following code snippets to your User:YourUsername/monobook.js (or whatever skin used) page. After saving, you have to bypass your browser's cache to see the changes,  hold down Shift while clicking Reload (or press Ctrl-Shift-R).

Ultra-simple version (expands to the simple version upon saving the page):

((subst:EditTool))

Simple version:

// install [[User:Cacycle/diff]] text diff code
document.write('<script type="text/javascript" src="'
  + 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/diff.js' <!--wikEdSpaceLine-->
  + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// install [[User:Pilaf/Live_Preview]] page preview tool
document.write('<script type="text/javascript" src="'
  + 'http://en.wikipedia.org/w/index.php?title=User:Pilaf/livepreview.js' <!--wikEdSpaceLine-->
  + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// install [[User:Cacycle/editor]] edit tool
document.write('<script type="text/javascript" src="'
  + 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/editor.js' <!--wikEdSpaceLine-->
  + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

Version with all configuration options:

// include comfortable javascript editor by cacycle

// levels of undo (each level holds the whole text)
undoBufferMax = 20;

// style for preview box
stylePreviewBox = 'background-color: #f9f9f9;';

// style for custom edit buttons
styleButtons = 'font-size: smaller; padding-left: 0.1em; padding-right: 0.1em';

// presets for input field dropdown options
findHistoryLength = 10;

// preset for combo box select options
presetOptions = [];
presetOptions['summary'] = [
  'Copyedit',
  'Linkfix',
  'Reverting vandalism',
  'Formatting source text'
];

// expiration time span for history cookies in seconds
cookieExpireSec = (365 * 24 * 60 * 60);

// enable cursor horizontal position memory
cursorMemory = true;

// show at least this number of lines ahead of cursor movement
scrollMargin = 1;

// show at least this number of lines ahead of cursor movement for
findMargin = 2;

// find ahead checkbox selected by default
findAheadSelected = true;

// css for change indicators
styleDelete = 'font-weight: normal; text-decoration: none; color: #ffffff; background-color: #990033;';
styleInsert = 'font-weight: normal; text-decoration: none; color: #ffffff; background-color: #009933;';
styleMoved  = 'font-weight: bold; vertical-align: text-bottom; font-size: xx-small; padding: 0; border: solid 1px;';
styleBlock  = [
        'background-color: #ffff44;',
        'background-color: #b0ff90;',
        'background-color: #ffcc99;',
        'background-color: #99ffff;',
        'background-color: #99ccff;',
        'background-color: #cc99ff;',
        'background-color: #ff99cc;',
        'background-color: #ffd040;',
        'background-color: #d0d0d0;'
];

// html for change indicators, {number} is replaced by the block number, {block} is replaced by the block style
htmlMovedRight  = '<input type="button" value=">" style="' + styleMoved + ' {block}">';
htmlMovedLeft   = '<input type="button" value="<" style="' + styleMoved + ' {block}">';

htmlBlockStart  = '<span style="{block}">';
htmlBlockEnd    = '</span>';

htmlDeleteStart = '<span style="' + styleDelete + '">';
htmlDeleteEnd   = '</span>';

htmlInsertStart = '<span style="' + styleInsert + '">';
htmlInsertEnd   = '</span>';

// minimal number of real words for a moved block (0 for always displaying block move indicators)
blockMinLength = 3;

// exclude identical sequence starts and endings from change marking
wordDiff = true;

// enable recursive diff to resolve problematic sequences
recursiveDiff = true;

// enable block move display
showBlockMoves = true;

// install [[User:Cacycle/diff]] text diff code
document.write('<script type="text/javascript" src="'
  + 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/diff.js' <!--wikEdSpaceLine-->
  + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// install [[User:Pilaf/Live_Preview]] page preview tool
document.write('<script type="text/javascript" src="'
  + 'http://en.wikipedia.org/w/index.php?title=User:Pilaf/livepreview.js' <!--wikEdSpaceLine-->
  + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// install [[User:Cacycle/editor]] edit tool
document.write('<script type="text/javascript" src="'
  + 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/editor.js' <!--wikEdSpaceLine-->
  + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

Installation tips

Developer version

The developer version can be found under User:Cacycle/editor_dev.js.

License