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

Reply via email to