Manual talk:External editors

How to install
This seems so great. I wish there were simply a link like how to install this in windows xp + gimp or photoshop: download this file and run but this ain´t so much user friendly is it? --alexandre van de sande


 * No - it's a reference implementation; I'm hoping someone from the Windows world writes a pretty, super-easy implementation at some point. To use this one, you'll have to follow the installation instructions here.--Eloquence 02:14, 18 July 2005 (UTC)


 * something news? A simple, easy, standalone application for windows? --Lastwebpage 20:08, 26 August 2006 (UTC)

Anyone gotten this working in OS X 10.4? If so, how? ;D --ericg
 * Yup, have a look . -- JVinocur 15:12, 21 April 2006 (UTC)

Until someone writes the nice easy to use Windows version, would a perlcc compilation work? I guess the resulting executable might be pretty large. Zeimusu Xlib: unexpected async reply (sequence 0x4f)! Xlib: unexpected async reply (sequence 0x50)! Xlib: unexpected async reply (sequence 0xc7)! Xlib: unexpected async reply (sequence 0xc8)! Xlib: unexpected async reply (sequence 0xc9)! Xlib: unexpected async reply (sequence 0xca)! Xlib: unexpected async reply (sequence 0xcb)! The program 'ee.pl' received an X Window System error. This probably reflects a bug in the program. The error was 'BadAtom (invalid Atom parameter)'. (Details: serial 205 error_code 5 request_code 18 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously;  that is, you will receive the error a while after causing it.   To debug your program, run it with the --sync command line   option to change this behavior. You can then get a meaningful   backtrace from your debugger if you break on the gdk_x_error function.)
 * I got this error as well, and it went away when I made sure that the helper applications defined in the ee.ini file pointed to programs that actually existed on my system (the default settings use programs I don't have). Maybe that will work for you.  If it does, maybe this should be something the script could warn about. -- JVinocur 15:12, 21 April 2006 (UTC)
 * ...also, I get this error if there's no Editor at all defined for a given filetype. It turns out that the comparison of file extensions is case sensitive, which means that the default configuration fails for things like JPG.  Rather than add all the different permutations to the config file, I just patched ee.pl itself to do case-insensitive comparisons:

--- /Users/jeff/bin/ee.pl.orig 2006-04-23 01:20:10.000000000 -0400 +++ /Users/jeff/bin/ee.pl      2006-04-23 01:20:15.000000000 -0400 @@ -222,7 +222,7 @@ foreach $extensionlist(@extensionlists) { @exts=split(",",$extensionlist); foreach $extensionfromlist(@exts) { -              if ($extensionfromlist eq $ext) { +              if (lc $extensionfromlist eq lc $ext) { $app=$cfg->val("Editors",$extensionlist); }       } -- JVinocur 05:31, 23 April 2006 (UTC)

Would someone add a note to the page indicating whether this currently works under Linux, UNIX, Windows, or Mac OS? Right now it looks like it will work on any computer, but a novice user would be completely baffled by the instructions. en:User:Mzajac

Bookmarklet for text editing: could that example be explained in more det?
Hello

could that example with the bookmarklet be explained a little more in detail pls? This script has to be save as a file, or how it this supposed to work.

thanks

Uwe Brauer

Could someone link to the download for this script please?


 * Bookmarklets are quite similar to normal bookmarks in your web-browser, with the exception that they don't point to an ordinary URL, but contain some javascript commands, that will be performing some useful action if executed. So if you click the bookmark(let), you won't navigate your browser to some web-page, but will execute the javascript.


 * To create the example bookmarklet from this page for you, all you have to do is the following:
 * create a new bookmark in your web-browser
 * enter something meaningful into the name (or title) field, maybe: WikiMedia external editing
 * copy the bookmarklet's code into the address field, where you normally would have an URL (somethig like: http://www.example.com/ ): javascript:location=location + '?action=edit&externaledit=true';
 * save your newly created bookmark(let) - it's ready for use now.


 * To use that bookmarklet, simply click it while viewing any wiki-page and your broweser will recieve the control file for external editing of that page.


 * What happens, if you click the bookmarklet and execute the javascript code it contains:
 * The code takes the curent contents of your browser's address-bar (which will probably be something like:  http://meta.wikimedia.org/wiki/Help_talk:External_editors ), concats it with ?action=edit&externaledit=true and puts the result (which will be something like:  http://meta.wikimedia.org/wiki/Help_talk:External_editors?action=edit&externaledit=true ) back into your browser's address-bar, causing him to navigate to that new URL.


 * Hope, my explanation helps clarifying things a bit. -- mIstA 17:58, 27 October 2005 (UTC)

PPD error
Hi, I'm install perl on windows and get error after typing

following is a print out.

E:\Perl\bin>ppm PPM - Programmer's Package Manager version 3.2. Copyright (c) 2001 ActiveState Corp. All Rights Reserved. ActiveState is a division of Sophos. Entering interactive shell. Using Term::ReadLine::Perl as readline library. Type 'help' to get started. ppm> install Config-IniFiles ==================== Install 'Config-IniFiles' version 2.38 in ActivePerl 5.8.7.813. ==================== Downloaded 32439 bytes. Extracting 5/5: blib/arch/auto/Config/IniFiles/.exists Installing E:\Perl\html\site\lib\Config\IniFiles.html Installing E:\Perl\site\lib\Config\IniFiles.pm Successfully installed Config-IniFiles version 2.38 in ActivePerl 5.8.7.813. ppm> install Encode Error: PPD for 'Encode.ppd' could not be found. ppm>

what's wrong with it? Moses 08:12, 18 October 2005 (UTC)

-- I don't think you need to install Encode - it should come as part of your core perl installation. It's complaining that it can't find the module in your repository, and that's because it doesn't exist as a module! :)


 * I get the same error in Windows XP. The instructions say this, though:

2) Open a command line window and type

ppm Now type the following commands: install Config-IniFiles install Encode rep add Gtk http://gtk2-perl.sourceforge.net/win32/ppm/ install Gtk2


 * — Omegatron 23:59, 30 August 2006 (UTC)

Installation for non-root user
The install file reads: == Installation under Unix == 1) Install Perl if required, www.perl.com is your friend 2) Become Root and run the CPAN shell with perl -MCPAN -e shell

Is there a way to install the extension if I don't have root access to my server? --Jcarroll 05:42, 27 October 2005 (UTC)

file:// and Firefox
Firefox behave diferently for:


 * firefox -remote "openURL(file:///tmp/preview.html)"
 * firefox -remote "openURL(/tmp/preview.html)"

The first will open a new window or tab.

The second will reuse the same window/tab.

I used this feature in ee.pl to avoid it opening new previews tab in the browser :-)

Editing via Email
Could this method be used along with a script on a server to allow pages to be updated via email? I'm not talking about adding pages or anything complicated like that.

Watch out for Capital letters in your server name !
With ee.pl 1.23 and MediaWiki 1.5. IF you have something like this as your Web server name, e.g. in httpd.conf of Apache I had a Capital X in our server name like: ServerName tecfaX.x.y

This will work in your ee.ini: [Media Wiki] URL match=http://tecfaX.x.y Username=xxx

This will NOT: [Media Wiki] URL match=http://tecfax.x.y Username=xxx

... took me 2 hours to find. Would be nice if someone could fix this (Sorry I don't talk Perl, I juste managed to add the line vdie to display the $search variable. So somewhere the URLs should be put to lower case.

@sections=$cfg->Sections; foreach $section(@sections) { if($search=$cfg->val($section,"URL match")) { if(index($fileurl,$search)>=0) { $username=$cfg->val($section,"Username"); $password=$cfg->val($section,"Password"); }    # DKS for debuggin, take it away or it breaks # else { vdie (_("loginfailed2",$section,$search,$login_url,$username,$password,$cfgfile)); } } }

PS: So I got it working under Mandriva Linux 2006 and Firefox 1.5 :)

ee.pl on Mac OS X
I've managed to get ee.pl running on Mac OS X. It's even more complex than the regular install, but it can be done if you're a little bit comfortable using the commandline. (This is OS 10.4, but it probably would work on the past couple major versions at least.)


 * 1) You probably want to have /Applications/Utilities/Console.app running throughout this (and displaying console.log), since useful error messages can appear there.
 * 2) Put ee.pl in your ~/bin/ directory, and create ~/.ee-helper/ and put ee.ini there.
 * 3) Install some extras off your OS install media, if you don't already have them:
 * 4) *The developer tools
 * 5) *Apple's X11.app (or some other X11, if you don't like Apple's)
 * 6) Install Fink, and get these packages:
 * 7) *gtk+2
 * 8) *glib2
 * 9) *And possibly others, if you get error messages later. (I already had a ton of packages installed, so it's hard to know which ones are truly required.  I suspect gtk+2-dev</tt> and glib2-dev</tt> may be needed.)
 * 10) Perl stuff:
 * 11) *A recent version of Perl is already installed on your system.
 * 12) *The LWP</tt> and Encode</tt> packages are already installed as well (at least on 10.4).
 * 13) *Run sudo perl -MCPAN -e shell</tt> to enter the CPAN interactive environment, and run these commands:
 * 14) *#install Config::IniFiles</tt>
 * 15) *#install ExtUtils::Depends</tt>
 * 16) *#install ExtUtils::PkgConfig</tt>
 * 17) *#install Glib</tt>
 * 18) *#install Gtk2</tt>
 * 19) *At this point, test your setup: open up an xterm inside X11.app and try running ee.pl (with no arguments) and hopefully see a graphical error message pop up.  If you don't, examine the output you see and try to figure out if it's complaining about Gtk-related problems (try to find the missing components via Fink) or Perl-related problems (try to find the missing components via Fink first, since some Perl stuff is available there, or via CPAN).
 * Now, if all you want to do is use tools that run inside of X11, you should be set. However, you probably want to use native OS X applications for your browser and perhaps even your editors, and that's the tricky part, because OS X doesn't silently mix commandline and graphical applications.
 * 1) *Take a look at the helper applications defined in ee.ini and adjust anything you like. You'll need to use OS X's open</tt> command as an intermediary if you want to use any native graphical applications (ones you can launch from the Finder):
 * 2) **Use Browser=open "$url"</tt> to let it pick your default system web browser, or something like Browser=open -a Safari "$url"</tt> to force a different one.
 * 3) **For the [Editors]</tt> section, simply identify the application you'd like, for example:
 * 4) ***wiki=open -a TextEdit</tt> (a native application)
 * 5) ***wiki=/usr/X11R6/bin/xedit</tt> (an application that runs inside of X11)
 * 6) *At this point, test your setup:
 * 7) *#Download a control file (for example, the one for Meta:Sandbox and save it to disk (say, in your Desktop folder).
 * 8) *#Start X11.app and run in an xterm: ~/bin/ee.pl ~/Desktop/Meta:Sandbox</tt>
 * 9) *#You should be able to make changes in whatever editor you configured, save them to your local copy, and use the ee.pl window (in X11.app) to preview in your web browser and/or save changes back to the wiki.
 * 10) *Finally, you have to set up your web browser's MIME type handling. In the unlikely event you use a browser that runs in X11.app, just configure it to use ~/bin/ee.pl as your helper application for application/x-external-editor.  However, you probably want to use a native web browser, and to do that you need to make a graphical wrapper:
 * 11) *#Save the OSXee.sh script (below) in your ~/bin.
 * 12) *#Download DropScript and use it to make a graphical version of OSXee.sh (by default it will be called DropOSXee). Put DropOSXee in your Applications folder.
 * 13) *#At this point, test your setup: in the Finder, drag the Meta:Sandbox control file (that you downloaded above) onto the DropOSXee icon, and the ee.pl window should appear in X11.app.
 * 14) *#Configure your browser to use DropOSXee as your helper application for application/x-external-editor.
 * 15) *#*Most browsers have this in their preferences/configuration somewhere. Safari, however, uses the operating system's mappings, and to adjust them you need to install RCDefaultApp into your System Preferences application and modify the MIME types there.

I think that's everything. Let me know if you have trouble. -- JVinocur 15:12, 21 April 2006 (UTC)

OSXee.sh

 * 1) !/bin/sh

. /sw/bin/init.sh              # get the Fink-modified PERL5LIB variable

if [ -z "$DISPLAY" ]; then export DISPLAY=:0          # make windows appear in X11.app fi

exec $HOME/bin/ee.pl "$@"

Extension
Somebody should make an extension for mozilla so users can easily use external editors. &mdash;The preceding unsigned comment was added by 209.198.164.74 (talk &bull; contribs) 25 April 2006.


 * Well, anybody can use the existing ee.pl with any browser (simply by modifying the helper app configuration), so I'm not sure what mozilla-specific things you're imagining an extension would be needed for. -- JVinocur 13:03, 25 April 2006 (UTC)


 * An extension to replace ee.pl, for the vast majority of editors who don't know how to or want to deal with it. — Omegatron 00:01, 31 August 2006 (UTC)


 * The installation instructions as they currently stand are totally unintelligible. I followed them to the letter and it didn't work.  I suspect that only someone who already knows how to do such things can successful make this work, which makes the instructions useless.  If only there were simply a Firefox extension that I could install.  61.68.147.153 03:33, 2 September 2006 (UTC)


 * I followed the instructions in Windows. I was going to submit my ee.ini file as the default for Windows installations, but the whole thing doesn't work anyway.  You need to clarify that filenames with spaces need to be in quotes, for one thing.  Still doesn't work, though.  GIMP crashes, even, saying there's a problem with the PNG plugin?  It needs to print debug information. — Omegatron 17:46, 2 September 2006 (UTC)


 * Ooh! I got it to work for SVGs. — Omegatron 18:33, 2 September 2006 (UTC)
 * And gimp with gimp-win-remote so it doesn't re-open GIMP. — Omegatron 18:42, 2 September 2006 (UTC)
 * Nevermind. I got it to work in XP.  I'd like to upload the files to make it easier for others to use. — Omegatron 19:01, 2 September 2006 (UTC)

On Ubuntu
I just installed ee.pl on a Ubuntu Dapper machine, and I had the following message: Can't locate LWP/UserAgent.pm in @INC [..] This is because the LWP module wasn't installed. It is in the libwww-perl package. Once this package installed, it worked just fine. 87.81.24.23 19:44, 27 June 2006 (UTC)


 * Same on Gentoo Linux. LWP here is another package - Light weight process library (used by Coda). Shoudn't it be noted in install instructions that dependency LWP on some distros (at least Gentoo and Ubuntu, probably more) belongs to libwww-perl? &mdash;The preceding unsigned comment was added by 193.219.73.4 (talk &bull; contribs).
 * Run cpan, and execute i libwww-perl (and continue installing packages that are needed, it may take a while). -- ReyBrujo 12:58, 21 February 2007 (UTC)

Windows ini file
To get this running on Windows XP:

It wasn't immediately clear that I actually had to edit the ee.pl file. You do. Just change the one line, as per the instructions, to make it look like this:

ee.pl ...

$cfgfile='C:\ee\ee.ini';
 * 1) By default, config will be searched for in your Unix home directory
 * 2) (e.g. ~/.ee-helper/ee.ini). Change path of the configuration file if needed!
 * 3) Under Windows, set to something like
 * 4)   $cfgfile='c:\ee\ee.ini';
 * 5) (note single quotes!)
 * 1) (note single quotes!)

...

And an example .ini file with the same Free programs as in the original implementation would look like this:

ee.ini

[Settings] Temp Path=C:\WINDOWS\Temp
 * 1) Where should we store our downloaded data? Note that this isn't pruned
 * 2) currently.
 * 3) (This directory must already exist.)

Browser="C:\Program Files\Mozilla Firefox\firefox.exe" $url
 * 1) Which browser should be used? The $url will be subsituted with the URL
 * 2) of whatever we want to look at. The browser should support the file://
 * 3) URL syntax.

Browse after save=true
 * 1) Should the file be loaded in the browser after being saved? This is
 * 2) highly recommended, but requires the Browser variable above to be set.

Diff="C:\Program Files\KDiff3\kdiff3.exe"
 * 1) Is there an external diffing tool you want to use?

Transcode UTF-8=false
 * 1) Should UTF-8 text pages be transformed into iso8859-1 before loading them
 * 2) in an editor? This is good for a wiki which contains only a few specal
 * 3) characters and for users whose editors don't support UTF-8.

Watch default=false
 * 1) Should pages be watched by default? (Equivalent to the setting in your
 * 2) MediaWiki user preferences.)

Minor edit default=false
 * 1) Should edits be checked as minor by default? (Equivalent to the setting
 * 2) in your MediaWiki user preferences.)

[Editors] jpg,png,gif,jpeg="C:\Program Files\GIMP-2.0\bin\gimp-win-remote.exe" gimp-2.2.exe ogg,mp3,wav="C:\Program Files\Audacity\audacity.exe" svg="C:\Program Files\Inkscape\inkscape.exe" wiki="C:\Program Files\Notepad++\notepad++.exe"
 * 1) A bunch of extensions (separated by ,), followed up by the application you
 * 2) want to associate them with.

[Testwiki] URL match=edia.org Username=wikipedian Password=passwordgoeshere
 * 1) SITE DEFINITIONS
 * 2) Here we define usernames and passwords for different wikis.
 * 3) Each site should follow the form
 * 4) [Site name]
 * 5) URL match=<something that is part of the URL>
 * 6) Username=
 * 7) Password=
 * 1) Username=
 * 2) Password=

— Omegatron 19:21, 2 September 2006 (UTC)


 * Doesn't work with Image:Function x^2.svg, though. Something about the special character not being escaped correctly. — Omegatron 19:31, 2 September 2006 (UTC)

Login error
Please help me! I always get login error when I'm doing the login with ee.pl. Here's the error: Could not login to http://it.wikipedia.org/w/index.php?title=Speciale:Userlogin&action=submitlogin with username 'Pietrodn' and password 'hiddenpass'.

Make sure you have a definition for this website in your ee.ini, and that the 'URL match=' part of the site definition contains a string that is part of the URL above.

And there is my configuration section for Wikipedia: [Wikipedia] URL match=pedia.org Username=Pietrodn Password=hiddenpass

I use Mac OS X 10.4 Tiger. I tried to print the response of the HTTP server and it's 501 (not implemented).


 * Pietrodn · talk with me 18:50, 5 December 2006 (UTC)

Minor problem with Firefox
When using Firefox under Ubuntu, whenever I try to edit externally I get a message that reads "/tmp-1 could not be saved, because you cannot change the contents of that folder. Change the folder properties and try again, or try saving in a different location." This is a Firefox problem, I am aware, and running Firefox as root solves this problem. I am guessing it is a misconfiguration somewhere, but I have not been able to find the issue. Has anyone experienced something similar? Apparently, the article name is missing somehow (thus it tries to save it at /tmp-1 because /tmp exists), while running as root it saves correctly (in example, /tmp/User:ReyBrujo or /tmp/User:ReyBrujo-1 if the former already exists). And yes, I am asking in some Firefox places for advice as well. Thanks! -- ReyBrujo 05:38, 9 December 2006 (UTC)

problem with uploading
I've got EE.pl running sucessfully. It launches the appropriate app and edits the file. However, when I try to save to the server, it just hangs. Firefox does launch (as it's my browse after save browser) but the upload never seems to occur. There' no error messages or anything. Eventually the perl interpretter just crashes.

I turned on debugging, but that only gives a copy of the process file, which looks as I'd expect it to.

I should mention that the server is running on https. Is this a problem for posting but not getting?
 * The next section may help you. It is self-explanatory.--Oibane 08:35, 7 January 2007 (UTC)

A patch for handling UTF-8 pagename
Hi. Let me propose a patch. In fact, I've sent it to Erik Möller, the author, but there's no response. Who maintains it now? Let me quote the e-mail I sent.

I've written a patch for ee.pl, the external editor helper. In summary, it is necessary for utf-8 pagename handling. I believe it is harmless for non-utf8 cases.

In detail, the patch does two things; when the pagename is in utf-8:

1. (an aesthetical problem) The pagename was not correctly displayed in GUI. To fix it, I added "Encode::decode".

2. (a critical issue) It was impossible to submit the new content for "Edit text" mode. (I have not tried the other modes.) It was really incredible, but "open"ing the temporary file the second time for reading (I mean, open(TEXT,"<$unixtempdir/".$filename)) always failed. The file existence test "-e" also failed. (I use Linux and perl-5.8.8, but I doubt it matters. Usual utf-8 filename opening/closing in perl causes no problem.)

As a solution, a new variable "fullpath_perl" is introduced, but I don't know why it works. ;-)

--- ee.pl.orig	2006-12-02 20:47:48.000000000 +0900 +++ ee.pl	2006-12-03 21:57:57.000000000 +0900 @@ -207,9 +207,12 @@ 	# decode HTML entities HTML::Entities::decode($text); +	$fullpath_perl = "$unixtempdir/". $filename; +	$label_string = Encode::decode("utf-8", $filename); + 	# Flush the raw text of the page to the disk -	open(OUTPUT,">$unixtempdir/".$filename); +	open(OUTPUT,">", $fullpath_perl); select OUTPUT; $|=1; select STDOUT; print OUTPUT $text; close(OUTPUT); @@ -278,7 +281,7 @@ # Cancel: Quit ee.pl  # sub makegui { -	$title_label = Gtk2::Label->new($filename); +	$title_label = Gtk2::Label->new($label_string); $vbox = Gtk2::VBox->new; $hbox = Gtk2::HBox->new; @@ -386,7 +389,7 @@ 		}   	# Save text back to the server & load in browser } elsif($type eq "Edit text") { -		open(TEXT,"<$unixtempdir/".$filename); +		open(TEXT,"<", $fullpath_perl); $/=undef; while(<TEXT>) { $text=$_; --Oibane 08:35, 7 January 2007 (UTC)

What are you talking about
could someone tell me how to do all this, because I have no idea what a MIME file type is, or how to do this. It would also be a good idea to clean up this page, so that others like me won't have the same problem. If it helps, I have Firefox v.2.

ChrisDHDR 09:18, 20 February 2007 (UTC)


 * Why not look it up?
 * After all, if I'm not mistaken, this is the Internets.
 * Oh and speaking of "looking it up", have you heard of a cool site called Wikipedia?


 * Things that make you go hummm... --Angrykeyboarder 04:13, 12 March 2007 (UTC)

Another problem
I had to change it to  to get it to work in Ubuntu. — Omegatron 04:00, 19 March 2007 (UTC)