Commit Graph

50 Commits

Author SHA1 Message Date
Daniel Kraus
34720765da Implement config for check-redirect and magic word.
Added two new configuration variables, $wgLinkTitlesCheckRedirect and
$wgLinkTitlesEnableNoTargetMagicWord, that can be used to increase
performance. If both are overridden to be false, the target page content
will not be fetched from the database to check for redirect or the
occurrence of a magic word, which saves a lot of time.
2014-06-10 13:41:35 +02:00
Daniel Kraus
5842430021 Check if content was modified before committing. 2014-06-10 11:55:55 +02:00
Daniel Kraus
e5008b9997 Use ArticleAfterFetchContentObject hook.
No longer use deprecated ArticleAfterFetchContent hook. The new hook
requires MediaWiki 1.21 or later.
2014-06-08 22:52:36 +02:00
Daniel Kraus
adbc1ea5cd Use PageContentSave rather than ArticleSave hook.
This commit also contains some refactoring which should lend itself to
increased performance.
2014-06-08 19:21:41 +02:00
Daniel Kraus
1542901551 Complete documentation of source code. 2014-06-05 22:41:09 +02:00
Daniel Kraus
56dc484949 Remove entry point warning from body file. 2014-06-03 21:44:47 +02:00
Daniel Kraus
3ea8d9509f Change bot message for batch processing, add user. 2014-06-03 19:16:23 +02:00
Daniel Kraus
b32d48bdc9 Move the page processing function to LinkTitles class.
A public static function was created to DRY things up.
2014-06-03 18:52:04 +02:00
Daniel Kraus
ffb8daa1ad Remove superfluous variable; comment code. 2014-06-03 18:28:25 +02:00
Daniel Kraus
256f905c69 Prevent linking inside attributes etc.
Includes prevention of linking in class and style attributes of WikiTables.
2014-06-02 19:58:01 +02:00
Daniel Kraus
cf792072dd Prevent creating indirect links to self.
Added code to check if a target page redirects to the current page, and
prevents linking to that target page. Note that this does not catch
situations where a page title exists twice, once with first capital letter
and once with first lowercase letter (should happen on test systems only).
2014-06-02 18:55:02 +02:00
Daniel Kraus
821d6d6b34 Prevent parsing in pre, html, and script tags. 2014-06-02 18:26:39 +02:00
Daniel Kraus
3d37b2d8ba Refactor smart mode code for increased performance.
The preg_replace_callback callback functions were removed as static
functions and declared inline; the callback function for $wgCapitalLinks ==
false was simplified to speed up the process.
2014-06-02 18:22:53 +02:00
Daniel Kraus
7cb5b713ab Add __NOAUTOLINKTARGET__ magic word; refactor.
The magic word __NOAUTOLINKTARGET__ will prevent a page from being
automatically linked to.

Some minor refactoring was performed.
2014-06-02 16:25:03 +02:00
Daniel Kraus
2930916ce6 Adjust copyright year. 2014-06-01 18:10:31 +02:00
Daniel Kraus
33a2169301 Fix regular expression.
The regular expression used to split the page content had a few pipe
characters in the wrong places, due to the previous 'cleaning-up' of the
convoluted expression for version 2.3.0.
2013-08-29 19:54:57 +02:00
Daniel Kraus
8257471d89 Prevent linking inside preformatted text and code.
Ignore lines that start with a space as well as text enclosed in <nowiki> or
<code> tags.
2013-08-28 19:40:04 +02:00
Daniel Kraus
ad700ca7f4 Do not mess up page content with leading slashes.
If a page title started with a slash, the algorithm to deal with leading
capitals would produce a faulty regexp by accessing $escapedTitle[0] and
substr($escapedTitle, 1), which would only capture the slash that escapes
the slash.

Also fix small bug in template detection (make expression non-greedy).
2013-08-27 20:55:06 +02:00
Daniel Kraus
9d414d0e5e Prevent crashes due to regexp compilation errors
Page titles are now properly escaped using preg_quote() to prevent regexp
compilation errors if the title contains characters with special meanings in
regular expressions.
2013-08-09 17:36:32 +02:00
Daniel Kraus
3bf0ddfe17 Make the SQL query work with sqlite databases.
The fallback query does not use the CHAR_LENGTH function, but uses LENGTH.
2013-07-22 22:00:40 +02:00
Daniel Kraus
53ad020f1d Fix case-sensitive linking when $wgCapitalLinks is false. 2013-04-16 21:48:30 +02:00
Daniel Kraus
aaa89cb536 Fix invalid callback error due to non-static declaration of LinkTitles::removeMagicWord. 2013-03-06 19:02:50 +01:00
Daniel Kraus
ae1f72aefd Do not remove magic word when saving page. 2013-02-23 14:09:33 +01:00
Daniel Kraus
6d38db71af Use MagicWord class to handle the magic word; update copyright year. 2013-02-23 12:38:39 +01:00
Daniel Kraus
a6544b37d9 Add preliminary support for __NOAUTOLINKS__ magic word. 2013-02-20 21:47:23 +01:00
Daniel Kraus
05d77684c2 Introduce smart mode ($wgLinkTitlesSmartmode).
Smart mode generates aliases for page titles if a case mismatch is
detected.
2013-01-29 21:17:21 +01:00
Daniel Kraus
a448b8632b Generate aliases for case-mismatched page titles.
If a page title does has a different case than an occurrence of the same
word(s) on the page that is being edited, the extension will now
automatically generate 'piped' links such as [[Linking titles|Linking
Titles]].
2013-01-26 18:44:45 +01:00
Daniel Kraus
455f333c28 Add option $wgLinkTitlesIgnoreCase to enable case-sensitive linking of page titles. 2013-01-22 16:11:25 +01:00
Daniel Kraus
77c5840199 Fix bug that could prevent linking when $wgLinkTitlesFirstOnly was set to true. 2012-12-31 12:54:15 +01:00
Daniel Kraus
5f82daad6a Added two options to restrict linking to whole words. 2012-12-22 17:15:29 +01:00
Daniel Kraus
a2850bb318 Introduce new option to link only the first occurrence of a title on a page. 2012-12-11 16:37:06 +01:00
Daniel Kraus
55e6f01b5f Add new option to skip parsing of templates. 2012-10-09 19:40:33 +02:00
Daniel Kraus
b704c3187e Fix incorrect handling of PreferShortTitles option. 2012-10-05 18:31:35 +02:00
Daniel Kraus
487b91b016 Fix typo in regexp that prevented proper functioning. 2012-10-05 18:02:16 +02:00
Daniel Kraus
084450d00a 1.3.0: Don't link template names. 2012-09-15 10:29:45 +02:00
Daniel Kraus
c4fbcda676 Implement black list option. 2012-07-19 09:19:12 +02:00
Daniel Kraus
cc1dae2ad3 Stop parsing urls and e-mail addresses. 2012-05-30 14:03:58 +02:00
Daniel Kraus
c12578ed92 Implement option to not parse headings 2012-05-22 18:59:22 +02:00
Daniel Kraus
30586d3446 Fix parsing on page viewing only 2012-05-21 19:09:28 +02:00
Daniel Kraus
1175328eba Add options to parse on editing or rendering a page. 2012-05-21 18:29:28 +02:00
Daniel Kraus
5d3413f8e7 Fix bug with minimum title length 2012-05-20 17:22:49 +02:00
Daniel Kraus
be1a02678d Add option 2012-05-20 17:19:15 +02:00
Daniel Kraus
4e3d31981c Implement PreferShortTitles option 2012-05-20 17:00:46 +02:00
Daniel Kraus
8ea8da6100 Use alternative algorithm to catch all occurrences of a title 2012-05-20 16:50:25 +02:00
Daniel Kraus
dee2149532 Only look for titles from normal pages (namespace = 0) 2012-05-20 15:02:57 +02:00
Daniel Kraus
b0b30000c1 Do not throw an error if something goes wrong. 2012-05-20 14:53:04 +02:00
Daniel Kraus
602831acc1 Fix inadvertent page deletions; prevent self references 2012-05-20 14:41:07 +02:00
Daniel Kraus
20e5a284cf Fix internationalization 2012-05-20 13:14:12 +02:00
Daniel Kraus
142c71e723 First working version. 2012-05-20 12:58:29 +02:00
Daniel Kraus
13238548fb Try to get internal API calls to work 2012-05-19 16:21:20 +02:00