Post your user script-related request or idea for a new user script (or gadget) as a new section below. Discussion in each section is encouraged. Note that most…
Post your user script-related request or idea for a new user script (or gadget) as a new section below. Discussion in each section is encouraged. Note that most gadgets started out as mere user scripts. This page is intended for new user scripts, which affect the appearance of the site and may add additional functionality. Fully automated bots should be requested at Wikipedia:Bot requests instead.
All user script-related requests are welcome, whether they are for assistance writing an existing user script, desire for a new user script that does what you want, etc. Ideas for new user scripts are welcome too!
Before you request a script, please make sure it does not already exist. For a list of user scripts, see this list.
If you have been helped, please let us know, so that we may archive the request.
This page has archives. Topics inactive for 250 days are automatically archived 1 or more at a time by Lowercase sigmabot III if there are more than 4.
Latest comment: 4 months ago14 comments5 people in discussion
Wikipedia:Four Awards are really nice to receive, but unbearably tedious to award, as the record-keeping involves carefully noting dates, adding them to a really annoying table in a very annoying format, and doing other miscellanous tweaks. @Novem Linguae was kind enough to walk me through creating a design document for the concept - User:Premeditated Chaos/4A script idea. They're not free for a few months, but suggested I post it here in case anyone is interested in taking a whack at it. Thank you to anyone who looks, and feel free to edit that document or add questions on the talk page. ♠PMC♠ (talk)06:25, 11 December 2024 (UTC)Reply
It's really the adding to the Records table with all the fiddly templates and dates that's the annoying part, which I'm not sure that template can really help with. ♠PMC♠ (talk)01:00, 13 December 2024 (UTC)Reply
@Premeditated Chaos: Rather late to the party, but I've also run into this friction when handing out 4As. I think a feasible solution that wouldn't need a script would be to change the template used to create new nominations. The work of finding the dates for the promotions could be passed to the nominator (which is honestly not that much hunting if it's only for one article), who would enter them into template parameters. The template could then spit out blocks of wikitext (for example, the table markup needed for the records page). This wouldn't automate the entire process, but would take away most of the pain points for regular award distributors. What do we think? —TechnoSquirrel69 (sigh) 03:46, 20 August 2025 (UTC)Reply
I'm not opposed to anything that will make it less annoying, although I have roughly the technical capability of a potato (this may be insulting to the worthy potato), so I am not remotely qualified to try to do it. ♠PMC♠ (talk)22:27, 20 August 2025 (UTC)Reply
Despite the username, I'm no technical wizard either, but I've been working on my template markup recently, so let's see if I can't finagle something together. The best solution would still be a script, of course. —TechnoSquirrel69 (sigh) 04:33, 22 August 2025 (UTC)Reply
User:Alachuckthebuck/FourAwardHelper should be done. It's working correctly, but I ran out of 4 award nominations to test this on. Double check the results table afterwards to make sure it is outputting in the right position and didn't mess up the source. it gets the dates right, but I can't test if the table insertion is working yet. All the Best -- ChuckTalk00:23, 2 April 2026 (UTC)Reply
Done, contributions were retrieved via CCI's contribution surveyor (uncheck minor edits, set a large negative bytes value like -999999), then formatted using regex and previewed in the editor. Diffs are quickly checked using navigation popups, wikiEdDiff is used for more in-depth checks, Who Wrote That? is used to investigate partial cleanups, andthreescripts are used to make diff links more accessible. A final regex pass formats diffs added to notes and marks entries with them as completed. Can be done faster if the optional notes and completed entries are left out. fifteen thousand two hundred twenty four (talk) 05:10, 20 November 2025 (UTC)
should there be a limit to how many contributions to fetch, or should it allow uploading the output file from contribution surveyor?
we cannot use Who Wrote That?, so there's no reliable way to automate excluding partially cleaned up diffs;
I suppose it should also help in updating the subpage's table; if so, "Tagged" / "Addressed in X" should be its own column instead of being appended to Notes (as it currently is);
If you mean clusters of edits by this single user, those would be best kept to the current subpage and could use separate sections each with their own {{AIC article list}}. The formatting isn't strict at all This should not be the case; the subpage formatting needs to be ironed out and be strict. Regards, — DVRTed (Talk) 22:27, 26 November 2025 (UTC)Reply
That could be easy to do (but usernames would need to be retroactively added manually), although the end goal is to use it on all sections that need non-trivial cleanup
I don't think there should be a numerical limit, although a time limit from December 2022 (public release of ChatGPT) onwards would make sense
Not sure about how to deal with this one, sorry!
Easy to add another optional column to the table
Less than you'd think! If there are several tables, the indicator hatnote can correctly parse the total number of open cases in all of them
No, it would be best if the script could work with arbitrary usernames independent of any reports.
Ideally it should be able to fetch the same information contribution surveyor does, no limit to the number of contributions, and constrainable to date ranges. If this is infeasible (seems like API work to me) then allowing the contribution survey to be uploaded would still be an improvement.
Expected.
The three templates created for LLMN, {{AIC status}}, {{AIC article list}} and {{AIC article row}} were designed to be as easy to understand, update, and use as possible, so adding more parameters is undesirable. Any notes, while useful, are genuinely optional.
{{AIC article list}} and {{AIC article row}} are strictly defined, but the subpage itself is not and can have multiple article lists or sections. {{AIC status}} handles this by parsing lines starting with {{AIC article row|..., see Module:AIC_status#L-103. Any userscript would not be expected to be able to generate multiple article lists, only a monolithic one.
The main help would be in assisting editors in creating an initial raw article list. A bonus would be then assisting in the process of refining that list such as by helping review diffs, remove nonviable entries, change statuses, and add notes.
I trust your answers for 1 and 4, while you're less comfortable with adding new parameters than I am, it definitely makes sense from a UX point of view, especially since you're the one who's been working with the large-scale pipeline. Chaotic Enby (talk · contribs) 00:01, 27 November 2025 (UTC)Reply
I'm personally willing to suffer the burden of indicating tagging status via notes for lists I'm compiling myself, but have little desire to indicate to others that adding or updating tagging status is necessary or expected by adding it as a parameter.
My thoughts are that even without any announcements or guidance, there's been a surprising amount of engagement from editors uninvolved in the templates creation, and their simplicity and low burden to use is likely an important factor in this. fifteen thousand two hundred twenty four (talk) 00:35, 27 November 2025 (UTC)Reply
The script generated separate parameters for each row which I had to fix with Special:Diff/1324595647
It used named instead of anonymous parameters which seem incompatible with the auto count feature of {{AIC status}}, which reported 0 pages needing review
Some elements of the "Select diffs to include" page have light-on-light or dark-on-dark text in dark mode
I intentionally avoided that because I didn't want the "OS" preference to affect the script. I find it more comfortable to use Wikipedia on light mode even though my device (and browser) are set to dark mode. LMK if I've missed something that would prevent the script dialog from switching to dark mode when dark mode is enabled on Wikipedia. — DVRTed (Talk) 14:36, 2 December 2025 (UTC)Reply
I think you misunderstood, the automatic mode I'm referring to is an option in the appearance menu and it already changes many of the colors in the script dialog if the system is set to dark mode, but it has the same problem the Wikipedia dark mode option had before you added the .skin-theme-clientpref-night styles. Note the .skin-theme-clientpref-os selector in the example, this prevents the styles from applying to the light mode option which is the default and doesn't set this class. EvenTwist41 (talk) 00:50, 4 December 2025 (UTC)Reply
Cannot parse rows without parameter names: {{AIC article row|Example|requested|foo}} returns Could not find row data for this article.
Cannot parse rows with empty or absent notes parameter (notes are optional): {{AIC article row|article=Example|status=requested|notes=}} and {{AIC article row|article=Example|status=requested}} return Could not find row data for this article.
Observations:
Cannot parse alternate status names like r or to do, not really an issue since it still allows updating the status.
Can be confused if there are multiple entries with the same article name, but this isn't valid in practice and would be a user issue.
Done, except for the last point--not realistically possible to handle multiple entries with the same article name, because article names are treated as unique IDs to identify the rows. — DVRTed (Talk) 03:51, 4 December 2025 (UTC)Reply
This is amazing and I feel ungrateful asking for any more, but--I am setting up a large case where we are fairly sure LLM use started in June 2024. Is there some way to automate removing (or not adding) entries for which all edits are prior to that date? M kuhner (talk) 14:14, 26 June 2026 (UTC)Reply
@M kuhner Done. There's now a date picker on the first step that defaults to December 2022--only edits made after that date are fetched. It was always anchored to that date before, but now you can change it or clear it to fetch all-time contribs. — DVRTed (Talk) 15:37, 3 July 2026 (UTC)Reply
Just wanted to express thanks for the date picker, it is SO helpful when LLM use started (as it often does) in 2024 or 2025 but there are earlier edits which are fine. Also really helps to focus attention on getting a solid start date. M kuhner (talk) 18:08, 1 August 2026 (UTC)Reply
I would like to request a way to filter out tiny edits. I have been doing this by hand for the larger cases: no one wants to click into 100 "+4" edits to find out that 99 of them are adding wikilinks, and I personally think that the occasional error is acceptable. My rule of thumb is, if every positive edit to an article is less than 80 bytes, it's generally not worth checking; and even in an article that needs checking, I don't individually check the tiny edits. For negative edits I set the threshold around -40 (negative edits are less predictable). I don't use the buttons for this as they are too laggy, I use Source Editor directly, but it's still tedious to manually mark hundreds of entries.
The conservative way to do this would be a button "Remove tiny edits" that could be used after spot-checking a few (editor styles differ and it's possible there's someone out there whose tiny edits are not innocent). The radical way would be not to list tiny edits in the first place, and have no entries for articles with only tiny edits. In a month of spotchecking I've seen very few errors for the above rule of thumb, so I'd personally support the radical way, but either would be great. (The conservative way is insurance against some joker realizing they can hide their malfeasance by making innumerable tiny edits, or balancing additions with deletions.)
What do people think? Would this be a useful addition? As "case cleanup person" it sure would for me. I think "750 articles awaiting review" is hard on morale, and the cases would likely get more attention if it were "120 articles awaiting review"--which it often would be once tiny edits were excluded. M kuhner (talk) 18:27, 1 August 2026 (UTC)Reply
That's certainly a concern. The opposing concern is that the cases don't get done at all, because no one wants to do that tedious work: and then the bigger edits aren't checked either. That's my impression of the current state of AINB. The LLMPRODs get done, but the article edits generally don't get done at all, unless something about the case (like sockpuppetry or ANI) attracts particular attention. A somewhat error prone process may still be better than nothing. M kuhner (talk) 19:39, 1 August 2026 (UTC)Reply
Counter-suggestion: put large byte count edits in one section and small byte count edits in another. Then anyone who feels motivated can check them, but in the meantime they do not obscure the bigger ones, and editors can have a sense of accomplishment by cleaning the first section. I have to say, sense of accomplishment seems pretty important here, given the backlog. M kuhner (talk) 19:41, 1 August 2026 (UTC)Reply
Surely we should be measuring edits by how many characters are changed instead of by bytes added/removed? Bit late I guess, but I've inquired about it (might make a phab report if noone tells me it's dumb). I support whatever would make M kuhner's life easier, though sequestering the small edits might mean they never get done. Maybe there could be a tool that combined mw:Who Wrote That? and User:Nardog/DiffUndo that made untangling and reverting old edits by a certain user (while restoring content that was replaced) much easier Kowal2701 (talk, contribs) 17:44, 2 August 2026 (UTC)Reply
All of that sounds utopian. I hope some of it is feasible! You are an LLMPROD demon but the disentangling tends not to get done--I slowly plow through one case, five more appear.
I'll look at DiffUndo. Right now Who Wrote That is not working right on Firefox, which is extremely frustrating--had to postpone a lot of articles because I really need it.
Better the small edits not get done than the big ones. We've had several cases where the 200-300 byte edits were really, really bad. M kuhner (talk) 18:03, 2 August 2026 (UTC)Reply
Tbh I'm a bit ruthless w it, if there aren't significant edits after it (like ones that add content or do something time-consuming) I just restore an earlier version, and the bar for what counts as significant gets higher the larger/more difficult the LLM edits are Kowal2701 (talk, contribs) 18:35, 2 August 2026 (UTC)Reply
This is a great way to have a run-in with the Infobox Gnome, as I bet all of us have found.... I've taken to opening another window on the infobox code, ruthlessly restoring, and then copying over or hand-correcting the infobox.
But very old articles are super painful. I use Who Wrote That? (wish it was working now) and hope they did large chunks of text. If not I just tag and pray. M kuhner (talk) 20:46, 2 August 2026 (UTC)Reply
yeah lol, always worth checking the page history for their username, I can't be bothered to use Preview. If DiffUndo was more suited to small changes it'd be great, but atm you have to 'restore' most of the article line by line Kowal2701 (talk, contribs) 20:56, 2 August 2026 (UTC)Reply
@M kuhnerput large byte count edits in one section and small byte count edits in another Do you mean another column on the existing table, or an entirely separate table for "smaller" edits? The former would be somewhat tedious to implement while maintaining compatibility with older tracking pages, and the latter would mean the same article could show up in both tables—which would be confusing and redundant. Re sense of accomplishment seems pretty important here: would a progress bar of some sort help, perhaps? Something like https://imgur.com/a/GaK2i6J. — DVRTed (Talk) 17:54, 6 August 2026 (UTC)Reply
Upload fair use book covers
Latest comment: 7 months ago22 comments5 people in discussion
The process is completely repetitive. We find an image, most often on Google Books or Amazon; upload it as a non-free file filling out the form with the same fields everytime except the file name, article name, and image source link; then include this new image in the article infobox; then remove the image-needed tag from the article's talk page.
I want to automate this. If someone can write the script for this, cool. I have not written any script on wiki yet so if I could be guided to writing this, I would prefer that as well. Wikipedia:User scripts/Guide felt useless to me.
Thanks. For some reason I did not see the ping, but thanks for letting me know separately @Kingsacrificer. This would be useful for improving our methods to improve Wikipedia with book cover images added. Iljhgtn (talk) 02:27, 30 November 2025 (UTC)Reply
I’m not entirely sure if doing this in an automated way (ripping a website) is entirely legal. One image, is one copyright infringement with a fair use get-out-of-jail card. But automating an entire collection likely violates the terms of service of that website, and might be seen as a repeated offense, which might create more trouble in case you need to defend the collective use of those images. Please consult your own lawyer. —TheDJ (talk • contribs) 11:40, 30 November 2025 (UTC)Reply
I think what @Kingsacrificer is asking about is how to also streamline the entire process for properly using a non-free file with the Wikipedia file/image upload wizard. It is a tedious process, but one that is highly repetitive. This is normally the sort of situation where a script might be of use. I agree though that care and discretion should be advised, and though I am not a lawyer. I don't see how a human doing this 3,000 times is fine, but a script would not be. I have easily uploaded thousands of non-free book cover images within the proper rights and disclosures required by our use of these images on Wikipedia. Iljhgtn (talk) 15:46, 30 November 2025 (UTC)Reply
I am confused what you mean. There is no question here of ripping a website @TheDJ. The aim is to simply automate as many of the steps as possible.
We can download the images from the source, and provide a script modal with the article title, the image, and the source link.
As @Iljhgtn stated, there's no reason why a human doing this repetitively is acceptable but won't be acceptable for a script.
1. Find a cover of the book on a website and download it locally.
2. Open the upload file wizard on wikipedia, and choose 'upload a fair-use file'
3. Upload the downloaded file to the wizard. Enter the SAME REPETITIVE DETAILS EVERYTIME (the only thing that changes is the file name and the web source URL of the file).
4. Once file is uploaded, go to the book article. Add an Infobox book template, if not present on the page.
5. Paste the new file's address in the Image parameter of the template. Publish changes.
6. Go to the talk page. There, the WikiProject Books template will have a parameter 'needs-infobox-cover'. Set this to false. Publish changes.
The aim is to automate as much as possible from here. Any help is appreciated.
Question for techies: is there an action API for file uploading?
If so, then here is a possible engineering specification: Have the user fill out a one page custom form that the user script generates with some basic information such as the file to upload, user clicks run, and then it would do a bunch of API calls:
This has a lot of helpful fields. But even here, the information we have to fill in to upload a 'non-free' file (type of file which in my case is a book cover, author of the file, source of the file, how the file use will stay minimal, etc.) are not present in the parameters. What do we do to tackle this? Apologies if this is a really noob question. Kingsacrificer (talk) 10:02, 6 December 2025 (UTC)Reply
In my idea above, all information would be collected in one custom form/one page rather than multiple pages. It'd have a "browse" button to pick the file location on your computer, and you could add text boxes there to collect anything else that's needed, such as fair use information that varies between files. You'd press submit when you're done and it would run the script. If that fair use information is the same for every file, even better, because then you can just hard-code those parts into the script, or pre-fill a text box. –Novem Linguae (talk) 10:13, 6 December 2025 (UTC)Reply
Yes, I agree. Most fields would be hard-coded. I'm not debating the one page front-end.
As far as the API goes, all the wikitext that you would put into the File page goes in the text parameter. The script would take your more specific inputs to build the wikitext with the proper templates and such, e.g. what you see if you go to Special:EditPage/File:The Cambridge History of Southeast Asia.jpg (with the source editor, not VE). If you're used to Wikipedia:File upload wizard, it's doing the same behind the scenes. P.S. Don't get excited about a url parameter existing. That requires the upload_by_url right, which no group here on the English Wikipedia has. Anomie⚔15:22, 6 December 2025 (UTC)Reply
Oh that is interesting. So, will I have to include the entire page's source code in the `text` paramter?
In other words, is this what my `text` parameter should like for this file?
==Summary=={{Non-free use rationale 2|Description = Official cover of the book [[The Cambridge History of Southeast Asia]]|Source = https://www.cambridge.org/in/universitypress/subjects/history/regional-and-world-history-general-interest/cambridge-history-southeast-asia-volume-1-part-2?format=PB&isbn=9780521663700
|Date = 2000
|Author = Cambridge University Press
|Article = The Cambridge History of Southeast Asia
|Purpose = to serve as the primary means of visual identification at the top of the article dedicated to the work in question.
|Replaceability = Any derivative work based upon the cover art would be a copyright violation, so creation of a free image is not possible.
|Minimality = Single use in the infobox
|Commercial = The use of a low resolution image of a work's cover will not impact the commercial viability of the work.
}}==Licensing=={{Non-free book cover}}
I want to recreate a similar flow, but this time for files to be uploaded to commons. I am not sure if the flow should be pretty much similar or should I make some changes that I might miss?
The API call would be the same, but the wikitext you need to use may differ. I'm not terribly familiar with Commons to say how. Anomie⚔20:54, 23 December 2025 (UTC)Reply
Request: Adding "Show piped links" to Special:WhatLinksHere
Latest comment: 7 months ago13 comments4 people in discussion
Can someone write a script for it? Show piped links would be a very helpful feature for Special:WhatLinksHere because it would make the cleanup process much much easier. For example, 1000 items link to article X and 10 of those 1000 items are unnecessary piped links. Using Show piped links would help finding those 10 items very fast and dealing with them per MOS:NOPIPE, WP:NOTBROKEN, and WP:NOPIPEDLINK. --Mann Mann (talk) 03:16, 2 December 2025 (UTC)Reply
@Mann Mann: This is technically doable with a userscript but not really practical. mw:API:Linkshere doesn't have any information on whether the incoming links are piped. That means we'd have to query the wikitext of every article on the list and check if it's a piped link. That'd be an enormous amount of API requests for a target with thousands of backlinks.
@Polygnotus Nice! I assumed the target audience of that page was regular editors and not people who play around with APIs, etc. I was writing a script myself that would list the results on the same page, but I guess that's not really needed now. Maybe change User:Polygnotus/Scripts/Piped.js#L-45 from
var escapedPage = targetPage.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@DVRTed If I go to the Whatlinkshere of A&E and then click "Piped Links" it says A warning has occurred while searching: The regex search timed out, so only partial results are available. Try simplifying your regular expression to get complete results. but yeah there are 7 million articles on which this works fine. Polygnotus (talk) 14:58, 8 December 2025 (UTC)Reply
Latest comment: 7 months ago5 comments3 people in discussion
All articles in this category Category:Books with missing cover should have Template:WikiProject Books banner in their talk page.
If not present, the script should add it.
It should also add the 'needs-infobox-cover=yes' flag to this banner either way.
It will be a (rather harmless) bot command acting on around 1700 articles.
As a reference there have been quite a few discussions with editors going over limits so far, hence to some degree it's ended up at ARCA, thus prevention is always better than cure when possible. I believe there would also be demand for such a script at present.
The [Reply] tool makes it very easy for editors to continually reply without ever outdenting the thread. That makes it difficult to read, especially on a smartphone/narrow screen.
I've been fixing these by hand, but I'd like a less error prone method. The ideal might look something like this:
One-click button/very easy to operate on a single ==Section== of a long talk page.
The targeted level might be a configurable number between, say, 8 and 16, but defaults to 10.
The script only does something if there is at least one line in the section that starts with n+3 colons. (This will prevent overuse/outdenting just one or two lines.)
Replaces n colons with :{{outdent}} on the first line with n colons.
On all subsequent consecutive lines with n (or more) colons, the first n colons are replaced with :.
If more than one heavily indented sub-thread exists, then :{{outdent}} is added to the first line of each group.
A diff of all changes is automatically displayed (no automated posting).
Would the approach you have in mind still be useful in discussions that don't happen in chronological order? The main problem seems to be situations that start off as:
Whether in chronological order or not, multiple sub-threads are fairly common. The key would be to not outdent a subthread to the point where a different subthread gets confusingly imported into it. To take your example,
Alice
: Bob
:: Eve
::: Bob
:::: Eve
::::: Bob
:::::: Eve
::::::: Bob
:: Chris
:: David
getting turned into
Alice
: Bob
:: Eve
::: Bob
:{{outdent}}: Eve
:: Bob
::: Eve
:::: Bob
:: Chris
:: David
gets confusing, where
Alice
: Bob
:: Eve
::: Bob
:::: Eve
::::: Bob
:::{{outdent}}::: Eve
:::: Bob
:: Chris
:: David
doesn't. This may mean that sometimes there's no outdenting that could be reasonably done, but IMO that's better than the alternative. What we probably really need is for CSS or MediaWiki to do the visual outdenting for us, in a way that indicates where the outdented block ends as well as where it begins and without changing the wikitext. Anomie⚔18:16, 29 December 2025 (UTC)Reply
When I'm doing that manually, and the last outdented comment is at/near the indentation level of the next comment, I sometimes add an extra outdent tag to the next comment or a ===Subsection=== break.
I've researched the exact question you discuss; here are my conclusions: phab:T377849#10250945. CD inserts outdent templates the exact way Anomie suggests: The key would be to not outdent a subthread to the point where a different subthread gets confusingly imported into it. Still, in Russian Wikipedia you sometimes end up with discussions that are basically flat (using {{outdent|0}}) at some 15th level (because there is some 14-level comment below that doesn't allow to do a wide outdent), or with only 1 outdent step.But yes, it only inserts the outdent for your reply when you reply. It isn't able to transform existing threads. Jack who built the house (talk) 12:34, 21 April 2026 (UTC)Reply
Latest comment: 7 months ago11 comments2 people in discussion
Apologies if this exists, but I couldn't find it. The closest mention was this.
When using the source editor it can be hard to discern text from references, especially if there is less text than references.
I would like a script that colours anything between <ref></ref> tags a different colour than the text. They can be the same colour, or even better a different (random) colour for each reference while the text stays unchanged.
To my layman mind this seems like a trivial thing to implement for someone who knows JavaScript, but I could be wrong. If a script or gadget like this already exists—even better!
Now I have. Thanks. Although it doesn't work on mobile.
Colours seem "muted", if that makes sense. Is there a way to change colours and colour scheme? I'd like the colours to be brighter and there to be stronger contrast between the article text and code/markup. TurboSuperA+[talk]07:59, 8 January 2026 (UTC)Reply
Woah. That is exactly what I need! Thanks a lot. Btw, it looks like syntax highlighting works on mobile in this comment box. I'll try refreshing and see if it then works on article source editing. TurboSuperA+[talk]08:19, 8 January 2026 (UTC)Reply
Tools to help with the actual merge process, including adding merge from templates to talk and setting up redirects, but nothing to start merge discussions and automate adding notices to the top of affected pages. TarnishedPathtalk12:04, 11 July 2025 (UTC)Reply
I'd love this too! Merge proposals are much less complicated than XfDs but for some reason there still isn't anything that can nominate two pages for merging. I can imagine a sidebar link that, when clicked while on the target page, asks for a list of pages to merge, applies the same tag to all of them, and sends me to the talk page so I can write my rationale. FaviFake (talk) 16:36, 18 January 2026 (UTC)Reply
@DVRTed, the specs look about what you'd expect. The only feedback I'd give is that on occaion an editor might wish to propse a merge of two or more pages into a page that doesn't exist as yet. E.g., Merge Goat and Sheep to Goat and Sheep. I wouldn't expect any logic to stop the process, only to confirm with the editor making the proposal that the destination doesn't yet exist.
A feature you might want to consider adding is notifying any Wikiprojects which are listed in the Wikiproject banners at the top of the source and destination pages. TarnishedPathtalk02:29, 19 January 2026 (UTC)Reply
That looks great, thank you so much! I had a slightly different user experience flow in mind, I'm starting to work on it. I'll publish it in a few hours when I'm done FaviFake (talk) 17:00, 19 January 2026 (UTC)Reply
@FaviFake Thanks! I briefly skimmed through it. Comparatively, it seems simpler than what I had planned. That said, I think a large input field that accepts a raw list of articles is less intuitive than a source page input field with a + button next to it to add more source pages. Everything else seems like an improvement. I'll update my specs to try and come up with something that merges (hehehe) both of our ideas—probably not until the weekend. — DVRTed (Talk) 22:11, 19 January 2026 (UTC)Reply
@DVRTed Thanks! Personally, I'm kinda a merge power user, so it would be useful to me to have a blank big input field, but I agree yours is much more user-friendly! (If you had a ton of time to waste, you could even do both and let users toggle between the two states. But don't worry about it!) I've updated mine with both options and a better visual representation of the UI for the version with a plus button! FaviFake (talk) 22:36, 19 January 2026 (UTC)Reply
Update merge notices after closing a merge proposal
Latest comment: 6 months ago3 comments2 people in discussion
After a merge discussion has been closed, the WP:MERGE process currently requires a lot of steps:
If the discussion is closed with consensus to merge, change the {{Merge to}} tag to {{Being merged to}} in the source page, and change {{Merge from}} to {{Being merged from}} in the destination page. They should remained tagged until the merge is performed, so that they are added to the relevant backlog.
If the discussion is closed with consensus against merging or no consensus, remove all the {{Merge}} templates from the destination and source pages. Optionally, you can also place {{Old merge}} on the corresponding talk pages.
In the edit summary, note that the discussion was closed
Publish
Repeat steps #3 to #6 on the second page
This is very repetitive and it shouldn't be too hard to automate. I'm thinking there could be a link in Tools that asks you to input the page names, asks if you want to
remove the merge tags
(It would also be amazing if it could add a simple {{Old merge|otherpage = NameOfOtherPage}} to both talk pages when choosing to remove the tags:)
or change the merge tags from Merge to being merged or vice versa, in case it's reopened
and then it finds them and automatically does it.
There are a lot of redirects to {{merge}}, {{merge to}}, {{merge from}} and their "Being merged ..." counterparts, so a simple search for the exact string {{Merge to| would fail often, but I'm sure there's a way to identify them somehow. Is this easy to do? FaviFake (talk) 15:43, 18 January 2026 (UTC)Reply
Notify when block target registered other accounts
Latest comment: 4 months ago9 comments3 people in discussion
Some vandals have taken to creating one account, then registering multiple accounts from that account, such as in this case. It would be useful in Special:Block for a script to note if the account registered other accounts, recursively, and possibly a button to apply the same block to the rest of the accounts. DatGuyTalkContribs11:57, 31 January 2026 (UTC)Reply
Latest comment: 5 months ago10 comments3 people in discussion
I would greatly appreciate if someone could throw together a script that adds a button (ideally to the left-hand navigation bar) that, when clicked, switches the font of the main source-mode editing area (i.e. #wpEextbox1) to a serif font. This is very useful for editing on Wikisource, where it can be annoying to proofread long blocks of monospace text in monospace but equally annoying to edit templates and tables in serif: thus, font-switching would be a great help. Thanks! Cremastra (talk·contribs) 02:05, 4 February 2026 (UTC)Reply
I've now implemented what I think you want in my user script TTUT. To use it, install the script, then open up the source editor, then in the page menu, select TTUT, then Toggle serif font (source editor). TheTechie[she/they] | talk?04:18, 9 February 2026 (UTC)Reply
Sorry for the back to back pinging @Cremastra, but here's what I found. This behaviour is apparently already in Wikipedia. Go to Preferences, then change Edit area font style to Serif font. Are you sure you still need it in a user script? If not, I might remove it from TTUT as the TTUT version is quite hacky and buggy (especially on the 2017 wikitext editor). TheTechie[she/they] | talk?16:07, 9 February 2026 (UTC)Reply
No, this is splendid and perfect. Thank you! The key is to be able to switch back and forth in one editing session, which Preferences doesn't allow. Thank you again! Cremastra (talk·contribs) 21:41, 9 February 2026 (UTC)Reply
@TheTechie FYI— not a huge deal, but the dropdown doesn't activate during page creation: possibly because despite containing "&action=edit", the URL actually ends with "". No hurry, but It'd be useful if this could be sorted out.
@Cremastra, yeah it's quite hacky, you can fork it over if you want. Let me know if you do, then I'll remove it (it seems quite hacky and is utterly broken in the 2017 editor). TheTechie[she/they] | talk?19:46, 13 February 2026 (UTC)Reply
A script for displaying both subcategories and pages when dropping down categories on category pages?
Latest comment: 4 months ago5 comments2 people in discussion
I thought it would be a neat idea for somebody to make a script for the {{category tree all|mode=all}} so you could display both subcategories and pages when clicking on the category dropdown buttons on the category pages. Figured it could be helpful for some people (and for me personally since I feel like it would make searching for certain pages in a category a little quicker) . Bradlake14 (talk) 04:06, 1 March 2026 (UTC)Reply
Yeah, I've been using it for quite a while. Just thought the aforementioned request would've been a neat suggestion that somebody might find useful. Bradlake14 (talk) 18:16, 28 March 2026 (UTC)Reply
Latest comment: 30 days ago7 comments3 people in discussion
A simple script that adds a button in the "Tools" sidebar to make a dummy edit which add[s] a space at the end of the first line in the page's wikitext. Or, if a space already exists, remove[s] it as explained in Help:Dummy edit § Methods. Dummy edits have various purposes, such as WP:RIA, but it takes many clicks to make one:
"Edit"
Find a paragraph (can be hard when there are infoboxes atop the page)
Add a space
"Publish changes" (when using VE)
Click on the edit summary field
Write the edit summary
"Publish changes"
With a simple script, this could become:
Click "Make a dummy edit"
A popup appears: write the edit summary (the text field is focused automatically)
@FaviFake Easy to do: add/remove space at the end of the first line in a page's wikitext, but I'm confused by find a paragraph (can be hard when there are infoboxes atop the page). Is (line 1) {{Infobox album<<remove/add space here>> not something you want? — DVRTed (Talk) 14:27, 15 March 2026 (UTC)Reply
@DVRTed Sure, yeah! I was just thinking about the thing that will most likely never cause any issues, but that would work too. This problem is easier than I made it out to be, it'd be a vey simple tool :) FaviFake (talk) 16:36, 16 March 2026 (UTC)Reply
Latest comment: 3 months ago3 comments2 people in discussion
A user script that gets the content of every reference older than X years on an article and posts it on my talk page. So I was thinking a pseudocode of it could be something like:
1. Create some sort of list variable.
2. Add to the list every piece of text between a <ref> and </ref> tag.
3. Go through each item in the list; remove every ref that has a year for which the current year minus that year is less than 10.
4. Post the remaining list on my talk page. VidanaliK (talk to me) (contributions) 23:50, 19 March 2026 (UTC)Reply
<ref name="ByrneBiogPage2">{{cite web|first=Spencer|last=Leigh|url=http://findarticles.com/p/articles/mi_qn4158/is_19990820/ai_n14242710/pg_2|archive-url=https://web.archive.org/web/20080611073145/http://findarticles.com/p/articles/mi_qn4158/is_19990820/ai_n14242710/pg_2|url-status=dead|archive-date=11 June 2008|title=Obituary: Johnny Guitar (page 2)|work=[[The Independent]]|date=20 August 1999|access-date=4 June 2011}}</ref>
<ref name=RollingStone100>{{cite magazine|title=16. I Saw Her Standing There |url=https://www.rollingstone.com/music/lists/100-greatest-beatles-songs-20110919/i-saw-her-standing-there-19691231 |magazine=Rolling Stone |access-date=21 May 2013}}</ref>
Latest comment: 4 months ago6 comments3 people in discussion
I could use a script that tells me the internal article link additions and removals between revisions of a page. I realize regular diff will show me this but in dense database reports that list articles, it's hard for my old eyes to see which article links have been added/removed. I have tried to crack this nut myself, but I have gotten stuck on accessing the previous revision's text for the sake of comparison. I would like for this script to be accessible from the Tools menu. Thanks for any assistance! Stefen 𝕋owerHuddle • Handiwerk17:19, 20 March 2026 (UTC)Reply
@Polygnotus Thank you for this. I have tested it out, and it works well. While I wouldn't want to take away anything the script currently does, my specific need is to 1) show only article link changes; 2) if I'm on a revision of a page, just show the changes since the previous one. My thought for #1 is to have a setting that sets namespaces for the links I would like to see (alternatively, change the code to show only mainspace links). And for #2, you could test if you're on a revision page, and if so, just do a single compare with the previous one. I have a database report with thousands of revisions and thus it takes a long while to run the script in its current form. Please let me know if you have any questions. Stefen 𝕋owerHuddle • Handiwerk03:39, 21 March 2026 (UTC)Reply
On second thought, there's no need to change what you have done as it works in a very useful way I (and perhaps others) can use. I realized I can have what I originally was looking for by having a script that automatically runs only on diff pages to do a short report on article links added and removed: See User:StefenTower/ArticleLinkDiffs.js. Stefen 𝕋owerHuddle • Handiwerk05:52, 21 March 2026 (UTC)Reply
@DVRTed I mean reports like this. I am looking for a list of additions and removals of article links since the previous revision as it's usually hard to see the link changes in a standard diff. I presume to be making the call from a revision page. Stefen 𝕋owerHuddle • Handiwerk03:42, 21 March 2026 (UTC)Reply
User script to insert heading links before the heading
Latest comment: 4 months ago5 comments3 people in discussion
This is more of a help request than a script request.
Here's a draft I have (inserts the "before the heading" container):
@Sapphaline: Do you like jQuery? It's pretty easy to do with .nextAll(); it maintains a static "copy" of all the siblings before, in this case, moving any of them, so the .appendTo() (internal) loop works A-OK.
Latest comment: 4 months ago3 comments2 people in discussion
Hello, per this discussion, would the best course of action be to make a script to replace "Braconoid wasps in the family Braconidae" (with links or not) with "wasps in the family [[Braconidae]]" (as wikitext)? Doing an advanced search for "Braconid wasps in the family Braconidae" returns 100 results, which would be very tedious to change manually.
var querydifflinks = document.querySelectorAll(".queryoutput td:nth-of-type(1) a:not([data-visited='true'])");
function openquerydiffs() {
querydifflinks.forEach(querydifflink => {
for (let i = 51; querydifflink.length < i; i++) {
querydifflink.setAttribute("data-visited", "true");
querydifflink.setAttribute("target", "_blank");
querydifflink.click();
}
});
}
var openquerydiffs_button = document.createElement("a");
openquerydiffs_button.href = "javascript:openquerydiffs();";
openquerydiffs_button.innerHTML = "open query diffs";
openquerydiffs_button.role = "button";
var querydiffstable = document.querySelector(".queryoutput");
querydiffstable.parentNode.insertBefore(openquerydiffs_button, querydiffstable);
What I want to do is to open the first 50 links without data-visited="true" attribute, then assign them this attribute. How can I calculate link's position in the querydifflinks NodeList? querydifflink.length doesn't work. sapphaline (talk) 09:28, 7 April 2026 (UTC)Reply
@Sapphaline: see NodeList/forEach() -- the second parameter gives you the currentIndex. You also need to move the querySelector inside openquerydiffs() so it's re-evaluated for subsequent button clicks. Final code with all that:
@Sapphaline As a rule, don't use javascript: protocol references like in: openquerydiffs_button.href = "javascript:openquerydiffs();";. Simply leave .href empty, and add use addEventListerener to register a click handler. Using javascript as links is a bad pattern because it depends on global scoping. In some execution contexts' it won't even work. —TheDJ (talk • contribs) 13:08, 21 April 2026 (UTC)Reply
Latest comment: 3 months ago4 comments3 people in discussion
I'd like to have a global script that automatically redirects me to commons every time I open any page in the File: namespace on any wiki. I'd be nice if it could also check if the file actually exists on commons, or have a way to remain on the local wiki, but I'd be ok with a dumb redirect that always sends me to commons. FaviFake (talk) 19:29, 26 April 2026 (UTC)Reply
Latest comment: 1 month ago4 comments2 people in discussion
I've been trying to get this to work for a little bit, but I can't seem to figure it out. If I wanted to transclude User:EggRoll97/IPv6 Range Sizes onto Special:RangeCalculator, is it possible to do that with a script, basically putting the template itself to the right of the actual calculator and having it on there whenever I go to the page? EggRoll97(talk) 02:04, 8 July 2026 (UTC)Reply
$(()=>{const$form=$('#mw-checkuser-cidrform');fetch('https://en.wikipedia.org/wiki/User:EggRoll97/IPv6_Range_Sizes').then(asyncresponse=>{consthtml=awaitresponse.text();constdocument=newDOMParser().parseFromString(html,'text/html');const$content=$(document).find('#mw-content-text');$form.after($content);// or whatever else});});
Converting deprecated author fields in citation templates
Latest comment: 30 days ago6 comments3 people in discussion
Is there a script that can convert all citation templates on a page from the deprecated author field to the first ... last format? I'm not looking for anything fancy, just split the field up and treat everything before the first comma as the last name, or if there is no comma, treat the last word as the last name. I can refine the script myself to accommodate more details as necessary. Kisseran (talk) 06:06, 9 July 2026 (UTC)Reply
Oh, apologies. I mistakenly assumed that it was, since |authors= had been deprecated. For my use case, I'm lumping |author=, |authors=, and |editors= together, since they all work poorly with sfn. Kisseran (talk) 12:00, 9 July 2026 (UTC)Reply
Leaving aside that the parameter isn't deprecated, your heuristic is likely to be wrong in a not-insignificant number of cases. Anomie⚔12:42, 9 July 2026 (UTC)Reply
I recognize this, but for most articles it still seems easier to fix the instances where the heuristic is wrong than doing the change entirely by hand. I only intend to use this for articles where I'm making substantial contributions to, and mostly for references I'm adding. Perhaps I should have asked for a script that operates on a specific selected template, but if the request isn't appropriate here I'll put the idea away. Kisseran (talk) 13:07, 9 July 2026 (UTC)Reply
Latest comment: 30 days ago4 comments3 people in discussion
The xfdvote tool is broken; reading on the author's page, it's several scripts combined together, with the author suggesting it's outdated/in need of replacement. Can we request a replacement be created? This has been a valuable tool in Articles for Deletion discussions. Oaktree b (talk) 01:51, 10 July 2026 (UTC)Reply
(Admin) script for undoing WP:RD5 file revision deletions
Latest comment: 1 day ago2 comments2 people in discussion
Hi all, I have a request for a script for filespace admins. One of the most useful is User:Daniel Quinlan/Scripts/Rescaled, which allows for one-click actioning of RD5 (revision deletions of old versions on non-free files), but something we run into a lot is the admin-only backlog for Category:Copy to Wikimedia Commons with hidden file revisions, WP:FFD closes involving relicensing from non-free, and other situations where we spot files that don't need to be RD5'd anymore. A script for undoing these R5 deletions in one click would do the following: Select all check-boxes on a file's version history, go to Special:RevisionDelete for that file's page by clicking the "Change visibility of selected file revisions" button, uncheck "delete file content, and use the log summary along the lines of "moving to Commons" or "relicensed to free". The process of removing non-free templates for transfer will have to remain mostly manual and should be handled in a separate script if at all, so I consider this out of scope.
Benefits of this; FFD would suck a lot less to work through for these non-free relicensing discussions, I would be very happy, and I think I could get more admins to help out. Downsides, uh, it's really niche. Thank you in advance either way! (please ping on reply) Sennecaster (Chat) 20:08, 13 July 2026 (UTC)Reply
Latest comment: 13 days ago9 comments2 people in discussion
Hi, so something I've found is that it's a gigantic pain in the ass to mass revert someone's edits (WP:LLMPRV in this case) when there are more edits occurring after them. For AI cleanup especially, the edits are often over a year old. It means you usually have to untangle them from other people's contributions, which can take a few minutes for each one, and there are always billions of them to do. I'm sure it's the same for WP:CCI and WP:BANREVERT. Would it be possible to have a script that highlights words/content added by a certain user, and possibly have some neat feature that makes it easy to restore the content it replaced (if that was the case)? If the latter is too ambitious then just the former would be hugely useful. Thanks, Kowal2701 (talk, contribs) 21:23, 25 July 2026 (UTC)Reply
That's brilliant for finding which user added a particular bit, but this is for user-based cleanup (so the other way around, if that makes sense. Like when you have a user and need to cleanup up their edits, more similar to WP:ROLLBACK in that sense) Kowal2701 (talk, contribs) 19:46, 26 July 2026 (UTC)Reply
No it doesn't make sense to me I'm afraid. You said you were looking for "a script that highlights words/content added by a certain user", WWT does just that. What exactly do you mean by "cleaning up their edits"? If you mean reverting to the version before them while keeping the subsequent good edits intact, DiffUndo might help. Nardog (talk) 19:56, 26 July 2026 (UTC)Reply
Sorry I was confusing WWT with WikiBlame, you're right. Have just installed WWT, it's brilliant, thank you. I'm definitely being stupid again, but am struggling to get DiffUndo to work. I've gone to the revision before a problematic edit, clicked "Edit source" then "Show changes", but I can't see any Undo button when hovering over a line Kowal2701 (talk, contribs) 20:22, 26 July 2026 (UTC)Reply
Only while editing a page. So if you're editing an old revision, the diff will show the current version on the left, so you click undo on lines you do want to keep (which can be confusing, I know). Nardog (talk) 21:07, 26 July 2026 (UTC)Reply
Alter watchlist so that hovering Talk page links shows the same pop-up summary as hovering the article
Latest comment: 2 days ago7 comments3 people in discussion
Please write a script that alters my watchlist so hovering a Talk link gives the same pop-up summary as hovering the article. When I hover over an article title on my watchlist, I get a nice pop-up based on something I opted in to in my preferences, that shows me a pop-up box with some info from the lead, and usually an image. Hovering over a Talk link on the other hand, just shows a tooltip with the same Talk page title I can already see. Can the Talk page links on the watchlist be altered to pop up the same box as the article links do? Mathglot (talk) 01:21, 2 August 2026 (UTC)Reply
@Mathglot Assuming it's mw:Page Previews you're referring to, it's not currently possible to make it work in namespaces other than the article namespace; instead you can try WP:NAVPOP, but it doesn't look nearly as clean as Page Previews. Navigation popups work for links to all namespaces, and on all Wikimedia projects. Page Previews is configured to only work with mainspace links, and currently only on Wikipedias. (mw:Page Previews#Key differences from Navigation Popups) — DVRTed (Talk) 15:47, 5 August 2026 (UTC)Reply
Right, but it would work for just a mainspace link, right? I'm looking for a script that intercepts hovering over a Talk link, gets the mainspace title (e.g., {{ARTICLEPAGENAME}}), and then invokes the existing Page Preview for the article. No preview of the talk page itself is needed.
Example: Talk:Scheidemann cabinet is on my Watchlist, but I forget why, or what it's even about. Currently, hovering that link displays Talk:Scheidemann cabinet. Instead, I would like to see the same article preview that hovering over Scheidemann cabinet would show me.
Looking at the generated Html, I see an Html table for that line with a huge amount of stuff, but the important bit appears to be this:
Since there's nothing here about popups, that must be happening through scripts loaded up in the page <head> section someplace, right? So, couldn't we just usurp something in that line to get it to pop up the article preview instead, using the already loaded scripts? Mathglot (talk) 00:19, 6 August 2026 (UTC)Reply
@Mathglot Ah, that's doable. Page Previews doesn't seem to expose a function or trigger we can call manually, so instead we have to temporarily replace all Talk hrefs in the watchlist, and restore the original link on click. See User:DVRTed/talk2article.js; it's a hacky workaround but functional. — DVRTed (Talk) 06:01, 6 August 2026 (UTC)Reply
@DVRTed: Hi. It works for me here on enwiki as I have every list item in my watchlist as "li" elements (I'm using zero scripts to manipulate my watchlist). I also tested it on my watchlist on another wiki in which I have many scripts installed, including those modifying the watchlist. Those "li" elements with "mw-changeslist-ns-1" are converted to "table" elements on my other watchlist (probably by one of my scripts). As Mathglot is also using some watchlist/RC-modifying scripts, I think converting Line 7 to .find(".mw-changeslist-ns-1 .mw-changeslist-title") should be safe as all elements (of any type) with mw-changeslist-ns-1 class are list items related to article talk pages. JeeputerTalk11:21, 7 August 2026 (UTC)Reply
Latest comment: 3 days ago5 comments3 people in discussion
Could I please get an Article button at the bottom of talk pages?
The following happens all the time: My watchlist shows an edit to a talk page. I open the talk page, scroll down to read the new comment. Hmmm... I need to check the article. I scroll up, click on the Article button, open it in a new tab and read what is written there. Aha... Back to the talk page, that now, again, shows the top of the page. Scroll down once more to find the comment.
If we would have an Article button at the bottom of the talk page, that would save me from scrolling up and then scrolling down again for each time I switch between a talk page and the article. I do that a lot, so I would be very grateful for such a button. I use the Timeless skin, which works the best for me by far. Lova Falk (talk) 07:53, 6 August 2026 (UTC)Reply
I have the top bar fixed in normal Vector using css (User:Chipmunkdavis/vector.css). Sometimes causes a couple of issues with the menus overlapping with other items, but it helps me more than it doesn't. Similar code may work on Timeless. CMD (talk) 08:12, 6 August 2026 (UTC)Reply
Thank you for your help! It didn't work, I tried something else, didn't work either, I decided to accept the situation as it is. Lova Falk (talk) 12:05, 6 August 2026 (UTC)Reply
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.