mediawiki-extensions-Discus.../modules/dt.debug.js
Bartosz Dziewoński b4029c3c58 Fix signatureRanges overlapping for some comments
If two signatures for a single comment were near each other,
we would sometimes treat them as one huge signature.

Change-Id: Ied4b3aa535a9ca6bebef8a004ae48b7d5a8f2f9b
2020-03-09 13:28:22 +00:00

26 lines
1.1 KiB
JavaScript

var
parser = require( 'ext.discussionTools.parser' ),
highlighter = require( './highlighter.js' ),
timestamps, comments, threads, i, node, match, signature, emptySignature;
timestamps = parser.findTimestamps( document.getElementById( 'mw-content-text' ) );
comments = parser.getComments( document.getElementById( 'mw-content-text' ) );
threads = parser.groupThreads( comments );
highlighter.markThreads( threads );
// TODO: Use comment.signatureRanges to mark up signatures/timestamps
for ( i = 0; i < timestamps.length; i++ ) {
node = timestamps[ i ][ 0 ];
match = timestamps[ i ][ 1 ];
signature = parser.findSignature( node )[ 0 ];
emptySignature = signature.length === 1 && signature[ 0 ] === node;
// Note that additional content may follow the timestamp (e.g. in some voting formats), but we
// don't care about it. The code below doesn't mark that due to now the text nodes are sliced,
// but we might need to take care to use the matched range of node in other cases.
highlighter.markTimestamp( node, match );
if ( !emptySignature ) {
highlighter.markSignature( signature );
}
}