mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools
synced 2024-11-23 16:06:53 +00:00
Merge "Use faster DOMUtils::hasClass()"
This commit is contained in:
commit
ce05e417e9
|
@ -112,7 +112,7 @@ class CommentFormatter {
|
|||
$wrapperNode = $headingElement->parentNode;
|
||||
if ( !(
|
||||
$wrapperNode instanceof Element &&
|
||||
DOMCompat::getClassList( $wrapperNode )->contains( 'mw-heading' )
|
||||
DOMUtils::hasClass( $wrapperNode, 'mw-heading' )
|
||||
) ) {
|
||||
// Do not add the wrapper if the heading has attributes generated from wikitext (T353489).
|
||||
// Only allow reserved attributes (e.g. 'data-mw', which can't be used in wikitext, but which
|
||||
|
@ -379,7 +379,7 @@ class CommentFormatter {
|
|||
$headings = DOMCompat::querySelectorAll( $container, 'h2' );
|
||||
foreach ( $headings as $headingElement ) {
|
||||
$wrapper = $headingElement->parentNode;
|
||||
if ( $wrapper instanceof Element && DOMCompat::getClassList( $wrapper )->contains( 'toctitle' ) ) {
|
||||
if ( $wrapper instanceof Element && DOMUtils::hasClass( $wrapper, 'toctitle' ) ) {
|
||||
continue;
|
||||
}
|
||||
$headingElement = static::handleHeading( $headingElement );
|
||||
|
|
|
@ -25,6 +25,7 @@ use Wikimedia\Parsoid\DOM\Element;
|
|||
use Wikimedia\Parsoid\DOM\Node;
|
||||
use Wikimedia\Parsoid\DOM\Text;
|
||||
use Wikimedia\Parsoid\Utils\DOMCompat;
|
||||
use Wikimedia\Parsoid\Utils\DOMUtils;
|
||||
use Wikimedia\Timestamp\TimestampException;
|
||||
|
||||
// TODO consider making timestamp parsing not a returned function
|
||||
|
@ -563,7 +564,7 @@ class CommentParser {
|
|||
*/
|
||||
private function getUsernameFromLink( Element $link ): ?array {
|
||||
// Selflink: use title of current page
|
||||
if ( DOMCompat::getClassList( $link )->contains( 'mw-selflink' ) ) {
|
||||
if ( DOMUtils::hasClass( $link, 'mw-selflink' ) ) {
|
||||
$title = $this->title;
|
||||
} else {
|
||||
$titleString = CommentUtils::getTitleFromUrl( $link->getAttribute( 'href' ) ?? '', $this->config ) ?? '';
|
||||
|
@ -737,9 +738,8 @@ class CommentParser {
|
|||
) {
|
||||
return NodeFilter::FILTER_REJECT;
|
||||
}
|
||||
$classList = DOMCompat::getClassList( $node );
|
||||
// Don't attempt to parse blocks marked 'mw-notalk'
|
||||
if ( $classList->contains( 'mw-notalk' ) ) {
|
||||
if ( DOMUtils::hasClass( $node, 'mw-notalk' ) ) {
|
||||
return NodeFilter::FILTER_REJECT;
|
||||
}
|
||||
// Don't detect comments within references. We can't add replies to them without bungling up
|
||||
|
@ -747,7 +747,7 @@ class CommentParser {
|
|||
if (
|
||||
// <ol class="references"> is the only reliably consistent thing between the two parsers
|
||||
$tagName === 'ol' &&
|
||||
DOMCompat::getClassList( $node )->contains( 'references' )
|
||||
DOMUtils::hasClass( $node, 'references' )
|
||||
) {
|
||||
return NodeFilter::FILTER_REJECT;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ use Wikimedia\Parsoid\DOM\Element;
|
|||
use Wikimedia\Parsoid\DOM\Node;
|
||||
use Wikimedia\Parsoid\DOM\Text;
|
||||
use Wikimedia\Parsoid\Utils\DOMCompat;
|
||||
use Wikimedia\Parsoid\Utils\DOMUtils;
|
||||
|
||||
class CommentUtils {
|
||||
|
||||
|
@ -85,7 +86,7 @@ class CommentUtils {
|
|||
*/
|
||||
public static function isOurGeneratedNode( Node $node ): bool {
|
||||
return $node instanceof Element && (
|
||||
DOMCompat::getClassList( $node )->contains( 'ext-discussiontools-init-replylink-buttons' ) ||
|
||||
DOMUtils::hasClass( $node, 'ext-discussiontools-init-replylink-buttons' ) ||
|
||||
$node->hasAttribute( 'data-mw-comment-start' ) ||
|
||||
$node->hasAttribute( 'data-mw-comment-end' )
|
||||
);
|
||||
|
@ -164,15 +165,10 @@ class CommentUtils {
|
|||
return true;
|
||||
}
|
||||
|
||||
$classList = DOMCompat::getClassList( $node );
|
||||
if (
|
||||
// Anything marked as not containing comments
|
||||
$classList->contains( 'mw-notalk' ) ||
|
||||
// {{outdent}} templates
|
||||
$classList->contains( 'outdent-template' ) ||
|
||||
// {{tracked}} templates (T313097)
|
||||
$classList->contains( 'mw-trackedTemplate' )
|
||||
) {
|
||||
// Anything marked as not containing comments
|
||||
// {{outdent}} templates
|
||||
// {{tracked}} templates (T313097)
|
||||
if ( DOMUtils::hasClass( $node, 'mw-notalk|outdent-template|mw-trackedTemplate' ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue