https://bugzilla.wikimedia.org/show_bug.cgi?id=30883

--- Comment #14 from [email protected] 2011-09-15 05:08:45 UTC ---
I see the issue now, thanks Jeremy. It appears that since ? and & are valid for
page titles, there's currently no way for the MediaWiki parser to tell whether
it's looking at a parameter, or a title, so it just assumes it's looking at a
title. 

The workaround for this being to use an external link to an internal page, with
the plainlinks class:

<span
class="plainlinks">[http://someurl.com/SomePage?&q=%5B%5BsomeParameter%5D%5D]</span>

and with $wgExternalLinkTarget = '_self'; or just left to the default, which is
also _self, so the behavior is identical to internal links, with the extra work
of using a span class on each link. 

That workaround is similar to the magic word workaround Brion suggested:

[{{fullurl:Title|param=1|param=2}} link text ]

though I haven't tested it, since it's more complicated than my workaround with
the plainlinks class.

It appears the parser must decode URL-encoded characters in internal links in
order to make characters that will trigger an invalid-title error. This seems
like the wrong job for the parser, and instead MediaWiki itself should be doing
that by sending users to an error page explaining that certain characters are
not allowed in links.

That way, the parser can parse only what it needs to parse, so it won't screw
up things it isn't designed to understand. MediaWiki itself is understands what
is a page title, and what is a query string, so the parser should not hijack
that role, because doing so causes problems related to the limitations of the
parser's inability to know what it is parsing.

Sound reasonable?

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to