Catrope has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/280374

Change subject: RevertedPresentationModel: Don't double-parse summary
......................................................................

RevertedPresentationModel: Don't double-parse summary

formatSummary() was first parsing the summary using the
summary parser, then handing off the resulting HTML to
getTextSnippet() which parsed it again with the normal parser.

Bug: T131087
Change-Id: I2724ccb7c23579b3f02dea57d4fc833079169adf
---
M includes/DiscussionParser.php
M includes/formatters/RevertedPresentationModel.php
2 files changed, 17 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Echo 
refs/changes/74/280374/1

diff --git a/includes/DiscussionParser.php b/includes/DiscussionParser.php
index 4ce557f..e5ce8d9 100644
--- a/includes/DiscussionParser.php
+++ b/includes/DiscussionParser.php
@@ -826,8 +826,7 @@
        }
 
        /**
-        * This function returns plain text snippet, it also removes html tag,
-        * template from text content
+        * Parse wikitext into truncated plain text.
         * @param $text string
         * @param Language $lang
         * @param $length int default 150
@@ -840,4 +839,19 @@
                $plaintext = trim( html_entity_decode( strip_tags( $html ), 
ENT_QUOTES ) );
                return $lang->truncate( $plaintext, $length );
        }
+
+       /**
+        * Parse an edit summary into truncated plain text.
+        * @param $text string
+        * @param Language $lang
+        * @param $length int default 150
+        * @return string
+        */
+       static function getTextSnippetFromSummary( $text, Language $lang, 
$length = 150 ) {
+               // Parse wikitext with summary parser
+               $html = Linker::formatLinksInComment( 
Sanitizer::escapeHtmlAllowEntities( $text ) );
+               // Remove HTML tags and decode HTML entities
+               $plaintext = trim( html_entity_decode( strip_tags( $html ), 
ENT_QUOTES ) );
+               return $lang->truncate( $plaintext, $length );
+       }
 }
diff --git a/includes/formatters/RevertedPresentationModel.php 
b/includes/formatters/RevertedPresentationModel.php
index 3b7d85f..081477c 100644
--- a/includes/formatters/RevertedPresentationModel.php
+++ b/includes/formatters/RevertedPresentationModel.php
@@ -29,11 +29,7 @@
        }
 
        private function formatSummary( $wikitext ) {
-               $html = Linker::formatLinksInComment( 
Sanitizer::escapeHtmlAllowEntities( $wikitext ) );
-               return EchoDiscussionParser::getTextSnippet(
-                       $html,
-                       $this->language
-               );
+               return EchoDiscussionParser::getTextSnippetFromSummary( 
$wikitext, $this->language );
        }
 
        public function getPrimaryLink() {

-- 
To view, visit https://gerrit.wikimedia.org/r/280374
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2724ccb7c23579b3f02dea57d4fc833079169adf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to