jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/329681 )
Change subject: Tidy up parsing mechanism a bit ...................................................................... Tidy up parsing mechanism a bit Key point was to replace the 'MWCHAT $text' thing with something more elegent Also a few other things Change-Id: I616f3a74d52772df7f34e5e9ea0db00c3de53091 --- M MediaWikiChat.hooks.php M MediaWikiChatClass.php M extension.json 3 files changed, 8 insertions(+), 16 deletions(-) Approvals: UltrasonicNXT: Looks good to me, approved jenkins-bot: Verified diff --git a/MediaWikiChat.hooks.php b/MediaWikiChat.hooks.php index c8f5dc0..243a9b7 100644 --- a/MediaWikiChat.hooks.php +++ b/MediaWikiChat.hooks.php @@ -12,9 +12,7 @@ * @return bool */ public static function onParserBeforeInternalParse( &$parser, &$text, &$strip_state ) { - if ( strpos( $text, 'MWCHAT' ) === false ) { - return true; - } else { + if ( $parser->getTitle()->equals( SpecialPage::getTitleFor( 'Chat', 'message' ) ) ) { // only do our version of parsing when this is Special:Chat and we're parsing a message $text = $parser->replaceVariables( $text ); $text = Sanitizer::removeHTMLtags( @@ -24,17 +22,14 @@ array_keys( $parser->mTransparentTagHooks ) ); - $text = preg_replace( '/(^|\n)-----*/', '\\1<hr />', $text ); - $text = $parser->replaceInternalLinks( $text ); $text = $parser->doAllQuotes( $text ); $text = $parser->replaceExternalLinks( $text ); - - $text = str_replace( $parser->mUniqPrefix . 'NOPARSE', '', $text ); - $text = $parser->doMagicLinks( $text ); - return false; + return false; // stop parser doing anything as we've done the parsing ourselves + } else { + return true; } } diff --git a/MediaWikiChatClass.php b/MediaWikiChatClass.php index 658d1cc..0deedb6 100644 --- a/MediaWikiChatClass.php +++ b/MediaWikiChatClass.php @@ -224,8 +224,6 @@ $message ); - $message = "MWCHAT $message"; // flag to show the parser this is a chat message (for our hook) - $opts = new ParserOptions(); $opts->setEditSection( false ); $opts->setExternalLinkTarget( '_blank' ); @@ -237,19 +235,18 @@ $message = $parser->preSaveTransform( $message, - SpecialPage::getTitleFor( 'Chat' ), + SpecialPage::getTitleFor( 'Chat', 'message' ), $user, $opts ); $parseOut = $parser->parse( $message, - SpecialPage::getTitleFor( 'Chat' ), + SpecialPage::getTitleFor( 'Chat', 'message' ), // the message subpage tells our hook this is message $opts ); $message = $parseOut->getText(); - $message = str_replace( 'MWCHAT', '', $message ); // remove flag for parser $message = str_replace( '<p>', '', $message ); // remove MW's automatical p, $message = str_replace( '</p>', '', $message ); // it's pointless @@ -258,7 +255,7 @@ } else { $message = htmlentities( $message ); - $message = preg_replace( '#(http[s]?\:\/\/[^ \n]+)#', '<a target="_blank" href="$1">$1</a>', $message ); + $message = preg_replace( '#(http[s]?\:\/\/[^ \n]+)#', '<a target="_blank" href="$1">$1</a>', $message ); // turn URLs into links } $message = str_replace( array( ' ', ' ' ), ' ', $message ); // replace nonbreaking space with regular space diff --git a/extension.json b/extension.json index 18643ad..67da23e 100644 --- a/extension.json +++ b/extension.json @@ -1,6 +1,6 @@ { "name": "MediaWikiChat", - "version": "2.19.0", + "version": "2.19.1", "author": [ "Adam Carter/UltrasonicNXT" ], -- To view, visit https://gerrit.wikimedia.org/r/329681 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I616f3a74d52772df7f34e5e9ea0db00c3de53091 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MediaWikiChat Gerrit-Branch: master Gerrit-Owner: UltrasonicNXT <adamr_car...@btinternet.com> Gerrit-Reviewer: UltrasonicNXT <adamr_car...@btinternet.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits