Commit graph

64 commits

Author SHA1 Message Date
Tim Starling ca08ade9f5 Revert r30243: unnecessary. 2008-01-29 02:44:53 +00:00
Brion Vibber e9620129be Apply live hack from Wikimedia code base: throw exception on invalid frames in ifeq 2008-01-29 01:38:17 +00:00
Tim Starling b9938a57a3 Postcard from linuxland.
* Reduced stack depth by using an internal stack in expand(), and by having some common code paths (e.g. non-subst double-brace during PST) return objects which can be expanded in that internal stack instead of the PHP stack. This is friendly to xdebug but slightly slower than the original version. Also it probably helps robustness when you don't add 7 stack levels per pair of double braces.
* Profiling indicates that expand and PPD are now good targets for porting to C. Abstracted and refactored the relevant code to allow for a drop-in replacement. A factor of 2 reduction in average-case replaceVariables() time may be possible.
* Verified with preprocessorFuzzTest.php against r29950, updated to allow better PST tests.
* Made parserTests.php respect $wgParserConf
* LST and ParserFunctions need a simultaneous update with the core due to changed interfaces. DOM objects are now wrapped rather than directly exposed.
2008-01-21 16:36:08 +00:00
Tim Starling 983bb52cd8 Added ParserFirstCallInit hook. Deferred function registration in ParserFunctions until this hook is called. 2008-01-17 08:58:24 +00:00
Tim Starling 56ecadc8e5 #ifexist: If the "else" parameter is missing, use the "test" parameter instead. This allows error-free text to be passed through with abbreviated syntax. Splarka's suggestion. 2008-01-17 01:06:02 +00:00
Brion Vibber aa66e33d4d Don't register internal links for specials or interwikis on #ifexist lookup.
They all return false anyway, but this avoids bogus link table entries.
(Similar issue as ImageMap bug 12651)
2008-01-16 06:16:16 +00:00
Tim Starling a563c45005 Fix bug in last commit 2008-01-15 05:29:29 +00:00
Tim Starling 7a1cb92986 Added #iferror: Searches the input for text that looks like an error message from ParserFunctions or the core parser. 2008-01-15 04:21:17 +00:00
Siebrand Mazeland 04a88ee436 * use wfLoadExtensionMessages
* remove some unneeded blackslashes in messages (caused malformed error message)
* put Magic in separate file
* delay message loading
* add version in extension credits, remove EOL whitespace
* update Translate extension
2008-01-13 01:06:28 +00:00
Tim Starling d0053cdca8 Bug 12356: make parameters to #titleparts work like array_slice(): negative offsets, missing length runs to end, etc. Patch by darklama. 2007-12-20 13:29:59 +00:00
Siebrand Mazeland 48c773edf3 revert r28371 to r28375 2007-12-16 18:27:23 +00:00
Tim Starling e10e89e2b3 Typo 2007-12-11 09:04:46 +00:00
Siebrand Mazeland 2f82506394 * complete $wgExtensionCredits
* remove trailing whitespace
2007-12-10 21:13:52 +00:00
Tim Starling b225dd82ad Watch out for invalid titles 2007-12-10 06:11:52 +00:00
Tim Starling ba67528419 * Add a warning on preview if the #ifexist limit is exceeded
* Add all pages which exceed the #ifexist limit to [[Category:Pages with too many ifexist calls]]
2007-12-10 06:04:34 +00:00
Tim Starling f06807863c * Object versions of #ifexpr, #switch and #ifexist
* Fix for lack of StubObject in ~1.7
* Ignore HTML comments in expressions, which may now appear due to the parse order change
2007-12-09 08:11:38 +00:00
Tim Starling 603fe160be * Add #ifexist invocation count to the limit report comment
* Fix limit report inclusion criteria for new preprocessor -- make it display only for the primary text on edit and page view
2007-11-30 14:50:48 +00:00
Andrew Garrett 2328038128 Prevent the parser function #ifexist being used more than a certain amount on error pages. The maximum number of #ifexist queries can be set in $wgMaxIfExistCount, which is, by default, 100. Any more uses over here will default to the "else" text. Done to discourage templates like Template:highrfc-loop on enwiki, which willingly does something like 50 database queries for a template that is used for many users on one page. Clearly suboptimal from a performance perspective. 2007-11-29 10:42:48 +00:00
Tim Starling 3153138c23 register #switch once 2007-11-20 14:27:04 +00:00
Tim Starling 2b3cdadc84 SFH_OBJECT_ARGS versions of #if and #ifeq 2007-11-20 14:16:10 +00:00
Raimond Spekking 5944437cb1 Use <strong> not <span>, per hint of Simetrical on wikitech-l. Thanks. 2007-11-19 15:37:49 +00:00
Raimond Spekking e470229df5 * (bug 8773) Make error messages from expr.php localizable
** Move error messages to ParserFunctions.i18n.php
** Rename 'expr_...' to 'pfunc_expr_...' to be consistent with other messages which are localizable already
* Add CSS class 'error' to output of error messages
2007-11-16 08:02:24 +00:00
Roan Kattouw 05af0a8f37 (bug 7985) #ifexist parser function returns false for image pages from shared repository
Modified patch by Carl Fürstenberg (AKA AzaTht)
2007-11-13 15:33:05 +00:00
Aaron Schulz 99a596fe27 *Internationalize error messages (patch by Bertrand GRONDIN, bug 10991) 2007-08-19 16:55:22 +00:00
Rotem Liss 8ad5a5a09f Introducing a new parser function, "#timel", which is the same as "#time" but uses the local time specified by the computer or by wgLocaltimezone. It passes a local timestamp to Language::sprintfDate or the compatibility function, per its comment ("Input timestamp is assumed to be pre-normalized to the desired local time zone, if any"), but this doesn't cause problems (except for the "+0000" written when using c and r flags). 2007-08-01 18:00:45 +00:00
Aryeh Gregor ddab9b72ee Extensions too! 2007-06-29 01:36:09 +00:00
Rob Church f21e1b0945 Accept a third parameter to {{#titleparts}}; offset, which users can use to chop up the title to their heart's content 2007-06-13 00:26:28 +00:00
Rob Church e41d3b4447 Fix up the oncoming i18n trainwreck here;
* Move translations to a .i18n.php file as with other extensions
* Use English as a fallback (as before), but if a translation is available for some (or all) magic words, use that, i.e. fall back to English when a translation isn't available for a given word, to avoid breakage when a new one is introduced
2007-06-07 19:02:57 +00:00
Rotem Liss 760a8f7e95 Adding the new magic word also to fa (untranslated), whitespace. 2007-06-06 13:38:34 +00:00
Raimond Spekking 593c5bbf96 (bug 10165) Adding Hebrew translation for a new magic word 2007-06-06 08:51:12 +00:00
Raimond Spekking 7d067a7e71 (bug 10144) Adding Farsi translation for magic words 2007-06-05 09:27:06 +00:00
Rob Church ada85ae61d Title::getPrefixedText() should be faster than implode() here 2007-06-04 17:40:47 +00:00
Rob Church 3a1f80ebd7 (bug 10136, among others) Introduce TITLEPARTS parser function; returns a specified number of slash-separated segments of a title. 2007-06-04 17:34:07 +00:00
Tim Starling 4dbc7f4d21 Register a link on #ifexist. Otherwise this breaks cache coherency. 2007-02-12 10:24:23 +00:00
Antoine Musso 5ea1f08f45 use parser->getTitle() to get possible private $parser->mTitle 2007-01-17 22:57:38 +00:00
Antoine Musso 9fdbabd860 Add descriptions for some extensions used on wikipedia 2007-01-07 13:57:35 +00:00
Antoine Musso ccc136f753 remove some ending whitespaces 2007-01-06 20:56:46 +00:00
Brion Vibber c8e0d935c0 fix line endings 2007-01-05 02:13:39 +00:00
Tim Starling 0151a81b21 Increased mMaxTimeChars to enable repetitive use on certain large pages on enwiki 2007-01-03 18:35:01 +00:00
Andrew Garrett 4fb668f8d6 Add from parameter to rel2abs Parser Function. from is the optional absolute path to calculate from, if it is not given or is empty, it will calculate from ghd current path. Patch by Carl Furstenberg/AzaToth. 2006-12-01 16:31:38 +00:00
Rotem Liss af89e4fbff Update. 2006-11-28 17:13:06 +00:00
Tim Starling e0c630a7df rel2abs function. Based on patch from bug 8021 by AzaTht, with significant changes by me for efficiency and style. 2006-11-28 17:02:19 +00:00
Tim Starling 2477d59ae4 Exception-based error handling for expressions, plus a few other tweaks. Patch by AzaToth. 2006-11-21 07:22:13 +00:00
Tim Starling beddfd5389 Added a bundled copy of sprintfDate() so that #time works with 1.7. 2006-09-25 06:02:33 +00:00
Brion Vibber 36be4ee1b6 Fix for bug 7162, doubling of references.
The clearState callback function needs to return true so that Cite's callback can also be called.
This bug was triggered by the use of a second parse run in the spam blacklist to accurate extract links; failure to clear state would leave bogus stuff in the parser cache.
Requires a fix to Hook.php in r16282 so that the two hooks don't destroy each other when run.
2006-08-30 10:59:47 +00:00
Rotem Liss a78f6f3431 Hebrew localisation for #time. 2006-08-27 16:42:26 +00:00
Tim Starling da06713e7a Clear the #time character count before each parse. Don't want to break dumpHTML. 2006-08-27 13:39:52 +00:00
Tim Starling f1eac24da7 Added #time 2006-08-25 14:27:41 +00:00
Tim Starling 845c6c71fc Got rid of the MagicWord indexing constants (MAG_xxx), replaced them by string indexing, like messages. The associated change to the extensions, i.e. removing the MagicWordMagicWords hook and using string instead of integer indices, is in fact compatible with MW 1.6 and 1.7, which tells you something about the utility of the hook function. 2006-07-14 15:39:23 +00:00
Rotem Liss 053355d882 ParserFunctions are now using magic words; unlike the previous change, localized forms are now available only in localized wikis (e.g., Hebrew forms are not available in en.wp), though English form is available in every wiki. 2006-06-25 21:29:55 +00:00