Last modified: 2012-08-06 19:25:49 UTC
http://localhost:8000/localhost:VisualEditor:Foo works and parses VisualEditor:Foo on localhost http://localhost:8000/localhost:VisualEditor%3AFoo works too http://localhost:8000/localhost%3AVisualEditor%3A Foo does not work, it doesn't recognize the interwiki prefix, falls back to the default interwiki (mw:), and tries to parse [[mw:Localhost:VisualEditor:Foo]]. Debugging shows that in the "Regular article parsing" callback on line 397, req.params is set to [ undefined, 'localhost:VisualEditor:Lists' ], whereas if the colons aren't urlencoded it's [ 'localhost', 'VisualEditor:Lists' ]. It looks like app.get()'s regex mode isn't processing urlencoded characters correctly even though it does unescape the matches before putting them in req.params. This is obviously a blocker for making VisualEditor always use an interwiki prefix.
I don't really see the need to urlencode the colon since it is plain ASCII (browsers don't do so evidently). I have added support for this nevertheless since it was easy to do: https://gerrit.wikimedia.org/r/#/c/17331/
Mass-moving bugs into the new 'Parsoid' product.