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 Help:External editors/Tech 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.

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"). Go directly to Use It's All Text.



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 more practical approach is add this as an extra option, using special externaledit=true MediaWiki URL parameter:
 * You can make "external edit link" appear on all pages next to usual edit link by adding simple 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
 * 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 extension

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.

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.

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.

Use It's All Text
There is a very nice way to launch your favorite editors using It's All Text, as described in detail in [http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Use_It.27s_All_Text.21_to_invoke_an_external_editor_.28e.g..2C_vim.2C_gvim.29 Use It's All Text! to invoke an external editor (e.g., vim, gvim)]

See also Help talk:External editors.