From 55e6f01b5fe6246355f31c395c50750b0a750ddf Mon Sep 17 00:00:00 2001 From: Daniel Kraus Date: Tue, 9 Oct 2012 19:39:30 +0200 Subject: [PATCH] Add new option to skip parsing of templates. --- LinkTitles.body.php | 13 +++++++++++-- LinkTitles.php | 3 ++- NEWS | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/LinkTitles.body.php b/LinkTitles.body.php index c5cbafa..63d8b32 100755 --- a/LinkTitles.body.php +++ b/LinkTitles.body.php @@ -75,6 +75,7 @@ global $wgLinkTitlesMinimumTitleLength; global $wgLinkTitlesParseHeadings; global $wgLinkTitlesBlackList; + global $wgLinkTitlesSkipTemplates; // To prevent adding self-references, we now // extract the current page's title. @@ -82,6 +83,13 @@ ( $wgLinkTitlesPreferShortTitles ) ? $sort_order = 'ASC' : $sort_order = 'DESC'; + if ( $wgLinkTitlesSkipTemplates ) + { + $templatesDelimiter = '{{.+}}'; + } else { + $templatesDelimiter = '{{[^|]+?}}|{{.+\|'; + }; + // Build a regular expression that will capture existing wiki links ("[[...]]"), // wiki headings ("= ... =", "== ... ==" etc.), // urls ("http://example.com", "[http://example.com]", "[http://example.com Description]", @@ -91,8 +99,9 @@ // capturing subpattern (which precludes the use of conditional subpatterns). ( $wgLinkTitlesParseHeadings ) ? $delimiter = '' : $delimiter = '=+.+?=+|'; $urlPattern = '[a-z]+?\:\/\/(?:\S+\.)+\S+(?:\/.*)?'; - $delimiter = '/(' . $delimiter . '\[\[.*?\]\]|{{[^|]+?}}|{{.+\||{{.+\||\[' . - $urlPattern . '\s.+?\]|'. $urlPattern . '(?=\s|$)|(?<=\b)\S+\@(?:\S+\.)+\S+(?=\b))/i'; + $delimiter = '/(' . $delimiter . '\[\[.*?\]\]|' . $templatesDelimiter . + '|\[' . $urlPattern . '\s.+?\]|'. $urlPattern . + '(?=\s|$)|(?<=\b)\S+\@(?:\S+\.)+\S+(?=\b))/i'; $black_list = str_replace( '_', ' ', '("' . implode( '", "',$wgLinkTitlesBlackList ) . '")' ); diff --git a/LinkTitles.php b/LinkTitles.php index 75716ce..9036ce5 100755 --- a/LinkTitles.php +++ b/LinkTitles.php @@ -37,6 +37,7 @@ $wgLinkTitlesParseHeadings = false; $wgLinkTitlesParseOnEdit = true; $wgLinkTitlesParseOnRender = false; + $wgLinkTitlesSkipTemplates = false; $wgLinkTitlesBlackList = array(); $wgExtensionCredits['parserhook'][] = array( @@ -44,7 +45,7 @@ 'name' => 'LinkTitles', 'author' => '[http://www.mediawiki.org/wiki/User:Bovender Daniel Kraus]', 'url' => 'http://www.mediawiki.org/wiki/Extension:LinkTitles', - 'version' => '1.3.2', + 'version' => '1.4.0', 'descriptionmsg' => 'linktitles-desc' ); diff --git a/NEWS b/NEWS index cb36ec1..06401ed 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,6 @@ +LinkTitles 1.4.0: 2012-10-09 +* Added new option to skip template variables. + LinkTitles 1.3.2: 2012-10-05 * Fix incorrect handling of PreverShortTitles option.