Commit graph

64 commits

Author SHA1 Message Date
Tim Starling
110c0bb72f Revert revert r41406 of r41333, and removed one space between attributes. 2008-09-30 01:00:40 +00:00
Brion Vibber
b74cc54810 Revert r41364 -- broke 22 parser test cases with change of alt behavior.
The caption was originally defined *as* the alt text (defaulting to the image file name if there is no alt text). Note that a separate caption text is only displayed in some display modes ('frame' and 'thumb', iirc), and not by default.

Please run the parser tests and check the effect you have on them. If it's really an appropriate change, then update the test cases. If you're not sure, consider backing out pending further discussion. :)

It might be appropriate to not set the 'alt' attribute for frame/thumb cases, but definitely not for inline images where we already have a way of setting the alt text which you're removing!
2008-09-30 00:21:59 +00:00
Brion Vibber
0dd22a5406 Back out r41333 -- causes lots of parser test regressions due to funny spacing. Probably an easy fix but it wasn't tested apparently. :) 2008-09-30 00:14:25 +00:00
Aryeh Gregor
a53fa1decd (bug 368) Allow alt= attribute for images
If the attribute is not specified, default to empty string, not repeating the caption.
2008-09-28 21:07:34 +00:00
Alexandre Emsenhuber
83cab059b3 Use $wgContLang here, this should not vary with the user language. 2008-09-28 10:51:58 +00:00
Niklas Laxström
7928acbcd4 * (bug 15196) Free external links should be numbered in a localised manner 2008-09-28 08:45:03 +00:00
Tim Starling
cdfdb50943 * Added the ability to set the target attribute on external links with $wgExternalLinkTarget
* Removed the namespace parameter from Linker::makeExternalLink(), added a generic associative array of attributes instead. Let the Parser decide whether to use rel=nofollow.
2008-09-28 02:35:37 +00:00
Chad Horohoe
8b9e04434f Call Xml class directly, rather than the global function. 2008-09-22 17:01:44 +00:00
Niklas Laxström
78f44d3447 * $name is not defined here 2008-09-21 07:18:24 +00:00
Tim Starling
93a66a41aa Revert r40712, replace_variables is correct. 2008-09-15 06:37:57 +00:00
Chad Horohoe
793526a920 Revert r40707. Could produce broken XHTML if the source wiki has unclosed div tags. 2008-09-10 23:02:48 +00:00
Alexandre Emsenhuber
5193105e5c (bug 15555) misspelled replace_variables() function in doc of Parser::preprocessToDom(), changed to replaceVariables() 2008-09-10 19:31:01 +00:00
Chad Horohoe
128d51a4fe (bug 12400) Add class to content transcluded from IW source. 2008-09-10 18:18:26 +00:00
Tim Starling
371d2a0926 Fix for bug 13770, second attempt. Tested with a conflicting install of both dom and domxml, as per the report. 2008-09-04 06:19:27 +00:00
Ryan Schmidt
b3b81715d5 * $wgAllowExternalImagesFrom may now be an array of multiple strings.
* Added an on-wiki external image whitelist. Items in this whitelist are
  treated as regular expression fragments to match for when possibly
  displaying an external image inline. Controlled by $wgEnableImageWhitelist
  (true by default)
2008-09-01 18:49:14 +00:00
Shinjiman
ec8f064efc * Added support of piped wikilinks using double-width brackets
patch by PhiLiP
2008-08-30 13:33:05 +00:00
Tim Starling
350b498b9f * Revert back to my parser pseudo-branch again. Note: if you feel like reverting this, reverting Parser.php alone to r40010 will work just fine.
* Merged replaceFreeExternalLinks() with doMagicLinks(). Makes a lot of sense, very similar operations, doesn't break any parser tests. Stops free links from interacting with other parser stages, the same way ISBN links don't. 
* The pass order change fixes Brion's complaint in r39980. Early link expansion, triggered by having more than 1000 links in the page, was outputting URLs which were destroyed by RFEL. Added parser test.
* Fixed an unrelated bug in LinkHolderArray::replace(): if a link to a redirect appears in two separate RLH calls, the second and subsequent calls do not add the mw-redirect class. Caused by an unmigrated LinkCache fetch.
* Added a parser test for a pass interaction bug that the pass order change fixes.
* The fuzzer told me to tell you that free external links in non-caption image parameters, which are and have always been invisible, are now not registered either.
* Miscellaneous supporting updates to the test infrastructure.
2008-08-26 14:37:15 +00:00
Tim Starling
367607ae97 Added __destruct(), for stable pseudo-branch 2008-08-26 06:48:24 +00:00
Brion Vibber
c83882e96e Revert r39949 "* Revert revert r39662 of my parser changes."
Causes weird regressions on http://meta.wikimedia.org/wiki/Talk:Spam_blacklist
Couldn't isolate to a parser test in a few minutes; some kind of template interaction perhaps.

Sample bad HTML like:
The associated page is used by the Mediawiki <a href="&lt;a href=" class="external free" title="http://www.mediawiki.org/wiki/Extension:SpamBlacklist" rel="nofollow">http://www.mediawiki.org/wiki/Extension:SpamBlacklist</a>" class="extiw" title="mw:Extension:SpamBlacklist"&gt;Spam Blacklist extension, and lists strings of text that may not be used in URLs in any page in Wikimedia Foundation projects (as well as many external wikis). Any meta <a href="/wiki/Administrator" title="Administrator">administrator</a> can edit the spam blacklist. There is also a more aggressive way to block spamming through direct use of <a href="/wiki/Anti-spam_features#.24wgSpamRegex" title="Anti-spam features">$wgSpamRegex</a>. Only <a href="/wiki/Developers" title="Developers" class="mw-redirect">developers</a> can make changes to $wgSpamRegex, and its use is to be avoided whenever possible.
2008-08-25 22:19:50 +00:00
Alexandre Emsenhuber
05b0fbd558 (bug 15303) Title conversion for templates wasn't working in some cases 2008-08-25 18:06:54 +00:00
Tim Starling
ccacba9f3a * Revert revert r39662 of my parser changes.
* Fixed image link whitespace handling (Brion's complaint, r39662)
* Added fuzz test capability to parserTests.php
* Added __destruct() functions to Parser and Language, and called them explicitly from parserTests.inc, to avoid unconstrained memory usage during fuzz testing.
* Added unified diff to output of Parser_DiffTest
* Fixed whitespace change in Parser::doTableStuff() (found by fuzzing)
* Added feature to RELEASE-NOTES which I'd committed last time but forgotten to note: <gallery> will accept image names with no "Image:" prefix (rediscovered by fuzzing)
* Limit memory usage in Title::getInterwikiLink()
* Fixed chronic fail of all interwiki link parser tests (hid Siebrand's complaint, r39464)
* Fixed chronic fail of one of the LanguageConverter parser tests. Was actually an ignored bug.
2008-08-25 16:08:19 +00:00
Tim Starling
af5cd9d05f Revert r39675, which made functions that don't depend on $this static, for performance. See wikitech-l for a full explanation. 2008-08-25 04:27:40 +00:00
Aaron Schulz
b16705dcb1 Remark static functions for performance. Same 15 test failures as before this change. 2008-08-20 01:03:01 +00:00
Brion Vibber
915c24e8bd Revert Parser.php to r39295 good state.
Whitespace handling for image width magic words failed, possibly other problems.
NEEDS PARSER TESTS
2008-08-19 20:59:18 +00:00
Aaron Schulz
7e888fc473 Use !== here 2008-08-18 21:03:59 +00:00
Aaron Schulz
51e27add8f Use more simple strict comparisons 2008-08-18 20:52:24 +00:00
Aaron Schulz
e74f1ffb25 mark static functions 2008-08-18 20:27:35 +00:00
Aaron Schulz
79ef147973 fix broken profiling 2008-08-18 05:58:54 +00:00
Aaron Schulz
8266bb1b1d move "continue" statement. Broken position broke mImages and thus flaggedrevs. 2008-08-17 00:20:47 +00:00
Fran Rogers
3ad5bfb749 Fix for problems with r39414; LinkHolderArray::replaceInterwiki() was badly broken 2008-08-16 10:13:35 +00:00
Siebrand Mazeland
2dedbbdfa1 Revert r39414. Breaks processing links like [[:wikipedia:nl:User:Siebrand|Dutch language Wikipedia]]. It will add a comment like "<!--IWLINK 0-->" in the HTML output. Happens even if there is one such link on a page. 2008-08-16 09:33:11 +00:00
Tim Starling
c45292ac40 * In the parser: do link existence tests in batches of 1000. Avoids using excessive memory to store Title objects.
* Split link placeholder/replacement handling into a separate object, LinkHolderArray.
* Remove Title objects from LinkCache, they apparently weren't being used at all. Same unconstrained memory usage as the former $parser->mLinkHolders.
* Introduced ExplodeIterator -- a workalike for explode() which doesn't use a significant amount of memory
* Introduced StringUtils::explode() -- select whether to use the simulated or native explode() depending on how many items there are
* Migrated most instances of explode() in Parser.php to StringUtils::explode()
* Renamed some variables in Parser::doBlockLevels()
* In Parser.php: $fname => __METHOD__, Parser => self/__CLASS__, to support Parser_DiffTest more easily
* Doc update in includes/MessageCache.php for r39412
* MW_TITLECACHE_MAX => Title::CACHE_MAX, nicer name, easier to access from another module
2008-08-15 16:35:03 +00:00
Chad Horohoe
cde6bce545 Catch php installs who have proc_open() disabled. 2008-08-13 16:23:41 +00:00
Tim Starling
e4ecf89421 Fixed incorrect detection of PHP's DOM module (bug 13770) 2008-08-11 17:24:35 +00:00
Alexandre Emsenhuber
edce5989d4 For compatibility with PHP 5.3.0alpha1: specify class name instead of passing by ref the title object: was throwing the following error:
Warning: Parameter 2 to Parser::parse() expected to be a reference, value given in ./includes/StubObject.php on line 58
followed by:
Fatal error: Call to a member function getLanguageLinks() on a non-object in ./includes/OutputPage.php on line 463
2008-08-09 13:31:15 +00:00
Leon Weber
8f821b6549 (bug 6387) Introduced new setting $wgCategoryPrefixedDefaultSortkey which
allows having the unprefixed page title as the default category sortkey.

Although creating sane defaults should always be preferred over introducing
new config options, we cannot just remove the old behaviour here, as some
peoply might still rely on it. However, the sortkey {{PAGENAME}} is already
widely used for circumventing the current behaviour.
2008-08-09 11:19:18 +00:00
Brion Vibber
ee7d2a4663 Revert r38876 "(bug 2443) Add image name as alt-text when no caption is provided."
This broke four test cases:

   4 previously failing test(s) now PASSING! :)
      * Right-aligned image  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]
      * Centre-aligned image  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]
      * None-aligned image  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]
      * Width + Height sized image (using px) (height is ignored)  [Fixed between 08-Aug-2008 21:37:38, 1.14alpha (r38954) and now]

Please recommit with fixes to the existing test cases and some new test cases to cover cases where an empty caption is explicitly requested, see https://bugzilla.wikimedia.org/show_bug.cgi?id=2443#c11
2008-08-08 21:50:37 +00:00
Andrew Garrett
ebbee769bf * (bug 2443) Add image name as alt-text when no caption is provided. 2008-08-08 10:24:09 +00:00
Andrew Garrett
7a281ca6f6 Ignore self-links for special pages. They might be there for a good reason, and the current parsing of special-page output means that a link from any subpage of a special page to the special page itself is considered to be a self-link. This is evil, and doesn't take into account parameters added to other parts of the URL (e.g. the unblock form on Special:Ipblocklist) 2008-08-06 13:54:36 +00:00
Raimond Spekking
e831d9b6ee Allow PLURAL for 'expensive-parserfunction-warning' 2008-08-06 08:04:11 +00:00
Aryeh Gregor
efb774b085 Convert two more Parser uses, no parser test failures. Any more conversions look like they'll have to get the parser to use arrays for query strings instead of storing them as strings. 2008-08-01 15:09:57 +00:00
Aryeh Gregor
91ac68478f Start finding more bugs in Linker::link() by having the Parser use it, and running the parser tests.
* Support class="extiw"
* Do not double the fragment for external links with fragments.  Move the code for this into a new Title::getLinkUrl() instead of a Linker method, because it seems like a useful concept to be able to get a *usable* link to the current Title.
* Fix a few parser tests that expected attributes in the opposite order.
* Don't overwrite actions for broken links.
* Style

If you want me to stop doing this, by the way, please say so before I spend too many more hours of my life on it.
2008-08-01 15:02:46 +00:00
Tim Starling
64378ddf3b $wgCleanSignatures to disable Parser::cleanSig(). Requested by Wikia. 2008-07-31 09:41:28 +00:00
Brion Vibber
be32f516df Revert r38196, r38204 -- "(bugs 6089, 13079) Show edit section links for transcluded template if, and only if the user can edit it, made Title::getUserPermissionsErrorsInternal() public so that it can be used in Parser and it can pass the User object from ParserOptions. " & co
Cause regression in 19 parser test cases, looks like messing up the tooltips for section edit links.

  19 previously failing test(s) now PASSING! :)
      * Bug 6563: Edit link generation for section shown by <includeonly>  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Bug 6563: Edit link generation for section suppressed by <includeonly>  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Basic section headings  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Section headings with TOC  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Handling of sections up to level 6 and beyond  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * TOC regression (bug 9764)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * TOC with wgMaxTocLevel=3 (bug 6204)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Resolving duplicate section names  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Resolving duplicate section names with differing case (bug 10721)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Template with sections, __NOTOC__  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Link inside a section heading  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * TOC regression (bug 12077)  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Fuzz testing: Parser14  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Fuzz testing: Parser14-table  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Inclusion of !userCanEdit() content  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Out-of-order TOC heading levels  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * -{}- tags within headlines (within html for parserConvert())  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * Morwen/13: Unclosed link followed by heading  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
      * HHP2.2: Heuristics for headings in preprocessor parenthetical structures  [Fixed between 29-Jul-2008 22:42:06, 1.14alpha (r38207) and 29-Jul-2008 23:54:51, 1.14alpha (r38207)]
2008-07-29 23:56:30 +00:00
Alexandre Emsenhuber
b19693ddb4 Per talk with Simetrical, add a param to Title::quickUserCan and Title::userCan instead of making Title::getUserPermissionsErrorsInternal() public, also update ParserCache to use this param 2008-07-29 20:35:11 +00:00
Alexandre Emsenhuber
9b44e8f749 * (bugs 6089, 13079) Show edit section links for transcluded template if, and only if the user can edit it, made Title::getUserPermissionsErrorsInternal() public so that it can be used in Parser and it can pass the User object from ParserOptions.
* Get the stubthreshold option from ParserOptions and not from $wgUser
2008-07-29 17:28:26 +00:00
Aryeh Gregor
39273d2c67 Recommit r38149, with the fatal error fixed. The EditSectionLinkForOther hook is now removed entirely -- EditSectionLink is run unconditionally instead. This is extremely unlikely to break any extensions. 2008-07-28 23:52:55 +00:00
Brion Vibber
8cce306e05 Revert r38149 for now, causes regressions in API parsing.
Bug 14965 - https://bugzilla.wikimedia.org/show_bug.cgi?id=14965

PHP Catchable fatal error:  Argument 1 passed to Title::equals() must be an instance of Title, null given, called in /usr/local/apache/common-local/php-1.5/includes/Linker.php on line 1323 and defined in /usr/local/apache/common-local/php-1.5/includes/Title.php on line 3003 
$wgTitle isn't available in this sort of background rendering.
2008-07-28 23:00:14 +00:00
Aryeh Gregor
34bf34d923 Linker::doEditSectionLink() and Linker::doEditSectionLinkForOther() and their respective hooks are redundant and confusing. They do exactly the same thing with a slightly different interface. Their hooks are not only redundant but relatively ineffective, because they wrap in brackets and a span *after* the hook returns. This makes them useless for, e.g., changing the section edit link to an image (can't remove brackets), or using any block-level element (wrapped in a span).
Make Linker::doEditSectionLink() public, and change its interface to be like that of editSectionLink().  Use that in Parser (which is the only place that uses the old functions that I can find), and mark the old two functions deprecated.  Add a hook 'DoEditSectionLink' with a new, clean interface, which is run immediately before the return so it can override the whole function.  Advise people in hooks.txt to use the new hook, not the old ones.
2008-07-28 20:33:43 +00:00
Chad Horohoe
14a80040bf Deprecate SiteStats::admins() in favor of SiteStats::numberingroup('sysop'). Should make bug 13471 easy. 2008-07-28 15:49:44 +00:00