Langbahn Team – Weltmeisterschaft

User talk:Moonythedwarf/extra-unreliable

Notice

Hey, Headbomb, thought you'd like to know about my unreliable modification. It's not perfect (text matching rules have to use the same regex flags and have the same highlight/comment), but it's already pretty good at lighting up spam like a christmas tree. —moonythedwarf (Braden N.) 15:12, 17 November 2020 (UTC)[reply]

Interesting glitch

I understand this is script is more curated from previous editors so I just want to at least mention this interesting glitch.

On The Producers (2005 film), it seems to highlight "post" and then make the wikilink for post-credits scene as "Post-credits_scene" title="Post-credits scene">post-credits scene" as if the script grabbed the text before the syntax formatted the wikilink. (I'm sure providing the example is going to make it show up the same way here.) – The Grid (talk) 18:13, 29 May 2023 (UTC)[reply]

I came here to mention this glitch as well. Lalaithan (talk) 17:19, 19 July 2024 (UTC)[reply]

Glitch fix

Hi @Moonythedwarf, I'd like to suggest a change to User:Moonythedwarf/extra-unreliable.js to avoid mangling markup (especially links) in articles, as described above in #Interesting glitch, and also in Wikipedia:Village pump (technical)#Pipe-related glitch.

(In case you aren't around any more… let me also use this:)

Try replacing the entire var highlight = function() { }; block with this:

    var highlight = function() {
    	let n = mw.config.get('wgNamespaceNumber');
    	if (n === 0 || n == 118 || n === 2) 
    	{
    	const text_rules = rules.filter(rule => rule.text_matcher);
    	// All text_rules are assumed to have the /mi flags when merged.
    	const merged_rule = new RegExp(`(?:${text_rules.reduce((accum, rule) => `${accum}|${rule.regex.source}`, "^\\b$")})`, 'mi');
    	
    	// Due to limitations of this way of implementing it, only one rule's CSS and comment are used.
    	const first_rule = text_rules[0];
			
		let final_css = "";
		for (const i in first_rule.css) {
			final_css += `${i}: ${first_rule.css[i]};`;
		}

    	$('.mw-parser-output > p, .mw-parser-output > b, .mw-parser-output > i, .mw-parser-output > s, .mw-parser-output > code, .mw-parser-output > ul li, .mw-parser-output > ol:not(.references) li').each(function(_, para) {
		    const walker = document.createTreeWalker(para, NodeFilter.SHOW_TEXT);
		    while (walker.nextNode()) {
		      const text = walker.currentNode;
		      let m;
		      while (m = text.textContent.match(merged_rule)) {
		      	const wrapper = document.createElement('strong');
		      	wrapper.style.cssText = final_css;
		      	wrapper.className = 'Moonythedwarf-extra-unreliable';
		      	wrapper.title = first_rule.comment || '';
		      	// Wrap the matched fragment of text in the <strong> tag
		      	const range = new Range();
		      	range.setStart(text, m.index);
		      	range.setEnd(text, m.index + m[0].length);
		      	range.surroundContents(wrapper);
		      	// Skip past the wrapped text
		      	walker.currentNode = wrapper.lastChild;
		      }
		    }
		    return true;
	    });
    	}
    };

I tried this on User:Moonythedwarf/extra-unreliable-testbed and it produces the same results there, while avoiding the glitches in other articles (e.g. The Fighting Temeraire). Matma Rex talk 17:21, 10 January 2025 (UTC)[reply]