Manual:External editors

MediaWiki 1.5 and later allows you to edit any resource using any external tool. This is accomplished using a very simple system:


 * 1) When a resource is requested for being edited externally, MediaWiki sends out a control file that contains information about the resource; most importantly, its network location (URL) and the interface that is to be used for changing it. See Manual:External editors: control files for the specifications.
 * 2) User browser has to be configured to call a special helper application (see below).
 * 3) That helper application processes the control file, retrieves the resource, launches the favored application to edit it, and, if desired, saves the resource back to the server.



Starting external editing
In your personal MediaWiki preferences you can set up external editing as a default edit action: Preferences → Editing → "Use external editor by default".

However a more practical approach is to add this as an extra option, using the special externaledit=true MediaWiki URL parameter.
 * You can make the "external edit link" appear on all pages next to the usual edit link by adding External editor script to your monobook.js file.
 * Or you can set up a special bookmarklet in your browser: create a new bookmark/favorite and copy this into the URL field:

Configure your browser
You have to configure your browser so that the MIME type application/x-external-editor is associated with your helper application.
 * Firefox 2: install MIME Edit extension, then go to Tools→Options→Content→Manage
 * Firefox 3: If you are planning to edit SVG images click the image to full fullsize, File->Save Page As->Save as type->Web Page, SVG only->Save.
 * Also, on FreeBSD and Linux you can edit /etc/mailcap (or ~/.mailcap):


 * Opera: via Tools→Preferences→Advanced→Downloads
 * In Internet Explorer you can try to associate helper application with .php file extensions

ee.pl
There is a reference implementation for the helper application called ee.pl (available here, see README for usage and INSTALL for setup instructions). It is written in Perl and may be difficult to set up. However, it provides a complete set of features. Developers are welcome to write a more user friendly implementation. You may also need Windows XP or Ubuntu tips.

Note that the ee.pl GUI makes it very easy to save the data back to the server, including an edit summary, or to cancel the edit. You can also make multiple edits on the server by using the "Save and continue" button.

Please make sure you are using the latest version of the script if it is not working as expected.

For each wiki you want to use ee.pl with, add an entry like this to ee.ini:

[] URL match= Username=(MyUsername) Password=(MyPassword)

This is necessary so people can log in -- it does not know your password otherwise! Note that if you are active on many wikis, such as multiple Wikipedia languages editions, and you use the same username and password, you can simply use something like "wikipedia.org" or "wikimedia.org" with this authentication information as the URL match pattern (or indeed ".org" if you only intend to access these sites). An example generic entry:

[Generic] URL match=edia.org Username=(MyUsername) Password=(MyPassword)

Less is more! Just using  or   is sufficient, whereas adding the whole URL often causes an error.

If you want to edit files, you need to use something like  because files are on that host.

ee.pl as Java helper application
A version of this ee.pl script is available here as a Java application. It is still in development but the basic functions are working. These are 'Authentication at the Wiki', 'Download of the file', 'Open of the file with the standard application' and 'Upload the file back to the Wiki'. The Java GUI should once be a extended copy of the ee.pl script GUI.

If opening the Java helper app directly, the ini file it asks for is the same file as used by the ee.pl script above, called ee.ini. Copy that ini file and use it - for Windows users, the program addresses must be in the format below, pointing to wherever the program is, such as: svg="C:\Program Files\Inkscape\inkscape.exe" or if in user space: svg="C:\Documents and Settings\Owner\My Documents\Inkscape\inkscape.exe"

WSH implementation
There is implementation called ExtEdit written using Windows Script Host. It does not save articles to the server directly but launches your browser instead.

Alternatives
Several Mozilla Firefox extensions provide another way to use external text editor, see Wikipedia:Text editor support. Particularly, for Linux users, the use of It's All Text is a much simpler procedure to invoke an external editor than what described above (particularly when some helper application such as ee.pl, written in Perl, "may be difficult to set up").