PleaseStand has uploaded a new change for review. https://gerrit.wikimedia.org/r/174924
Change subject: InstallDocFormatter: Hyperlink Phabricator task numbers ...................................................................... InstallDocFormatter: Hyperlink Phabricator task numbers Also removed the callback functions for the existing regexes. Nothing has to be or is encoded or escaped at this time, so preg_replace() can be used instead of preg_replace_callback(). Change-Id: I8cdddd602dcf7b67b8f2b06149b6a0859c70342c --- M includes/installer/InstallDocFormatter.php M tests/phpunit/includes/installer/InstallDocFormatterTest.php 2 files changed, 34 insertions(+), 14 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/24/174924/1 diff --git a/includes/installer/InstallDocFormatter.php b/includes/installer/InstallDocFormatter.php index 3250ff8..1964853 100644 --- a/includes/installer/InstallDocFormatter.php +++ b/includes/installer/InstallDocFormatter.php @@ -44,25 +44,30 @@ // Replace tab indents with colons $text = preg_replace( '/^\t\t/m', '::', $text ); $text = preg_replace( '/^\t/m', ':', $text ); + + $linkStart = '<span class="config-plainlink">['; + $linkEnd = ' $0]</span>'; + + // turn (Tnnnn) into links + $text = preg_replace( '/T\d+/', + "{$linkStart}https://phabricator.wikimedia.org/$0{$linkEnd}", + $text + ); + // turn (bug nnnn) into links - $text = preg_replace_callback( '/bug (\d+)/', array( $this, 'replaceBugLinks' ), $text ); + $text = preg_replace( + '/bug (\d+)/', + "{$linkStart}https://bugzilla.wikimedia.org/$1{$linkEnd}", + $text + ); + // add links to manual to every global variable mentioned - $text = preg_replace_callback( - '/(\$wg[a-z0-9_]+)/i', - array( $this, 'replaceConfigLinks' ), + $text = preg_replace( + '/\$wg[a-z0-9_]+/i', + "{$linkStart}https://www.mediawiki.org/wiki/Manual:$0{$linkEnd}", $text ); return $text; - } - - protected function replaceBugLinks( $matches ) { - return '<span class="config-plainlink">[https://bugzilla.wikimedia.org/' . - $matches[1] . ' bug ' . $matches[1] . ']</span>'; - } - - protected function replaceConfigLinks( $matches ) { - return '<span class="config-plainlink">[https://www.mediawiki.org/wiki/Manual:' . - $matches[1] . ' ' . $matches[1] . ']</span>'; } } diff --git a/tests/phpunit/includes/installer/InstallDocFormatterTest.php b/tests/phpunit/includes/installer/InstallDocFormatterTest.php index 064d518..724f0c8 100644 --- a/tests/phpunit/includes/installer/InstallDocFormatterTest.php +++ b/tests/phpunit/includes/installer/InstallDocFormatterTest.php @@ -34,6 +34,21 @@ array( ':One indentation', "\tOne indentation", 'Replacing a single \t' ), array( '::Two indentations', "\t\tTwo indentations", 'Replacing 2 x \t' ), + # Transform 'T123' links + array( + '<span class="config-plainlink">[https://phabricator.wikimedia.org/T123 T123]</span>', + 'T123', 'Testing T123 links' ), + array( + 'bug <span class="config-plainlink">[https://phabricator.wikimedia.org/T123 T123]</span>', + 'bug T123', 'Testing bug T123 links' ), + array( + '(<span class="config-plainlink">[https://phabricator.wikimedia.org/T987654 T987654]</span>)', + '(T987654)', 'Testing (T987654) links' ), + + # "Tabc" shouldn't work + array( 'Tfoobar', 'Tfoobar', "Don't match T followed by non-digits" ), + array( 'T!!fakefake!!', 'T!!fakefake!!', "Don't match T followed by non-digits" ), + # Transform 'bug 123' links array( '<span class="config-plainlink">[https://bugzilla.wikimedia.org/123 bug 123]</span>', -- To view, visit https://gerrit.wikimedia.org/r/174924 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8cdddd602dcf7b67b8f2b06149b6a0859c70342c Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: PleaseStand <pleasest...@live.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits