Here's a list of my userscripts. I usually make one every decade at least and every week at most.
- User:Chlod/Scripts/UserHighlighter – Highlights users and adds a tooltip when hovering on their names.
- User:Chlod/Scripts/DirectPDFDownload – Skips the ElectronPdf landing page for PDF downloads.
- User:Chlod/Scripts/GlobalUserToolbox – Adds a user toolbox to all user pages and user talk pages.
- User:Chlod/Scripts/ReferenceDeselector – Makes references unselectable.
- User:Chlod/Scripts/NewTabMMVDetails – Opens details pages from the Media Viewer onto new tabs.
- User:Chlod/Scripts/GoToTitle – Navigate to other pages by "editing" the page title at the top of pages.
- User:Chlod/Scripts/FoldArchives – Makes archived threads collapsed by default to reduce taken screen space.
- User:Chlod/Scripts/Coordinator – Allows users to graphically edit a page's coordinates, and supply coordinates for pages that need them.
- User:Chlod/Scripts/WordCount – Shows word counts per section (down to
<h3>
) when requested. - Wikipedia:Deputy – Copyright cleanup and case processing toolkit.
Some userscripts may also rely on libraries to easily implement functionality shared across multiple userscripts. I maintain the following libraries:
- User:Chlod/Scripts/ParsoidDocument – Allows DOM-based manipulation of Parsoid documents in the web browser using an HTML IFrame.
Security
editMy account is protected with two-factor authentication as provided by the OATHAuth extension, which deters login attempts from unauthorized individuals. Some scripts (particularly those which are actual dedicated projects) are also continuously analyzed by CodeQL to ensure safety. In addition, commits on userscripts that have repositories on GitHub are almost always signed by an OpenPGP key, which you can also find here. I'm very security-minded myself, and I do my best to avoid unsafe practices (such as banning the use of exec
, and using innerHTML
very sparingly to avoid XSS attacks).
For any security concerns, reach out to me using Special:EmailUser or through wiki chlod.net.
History
editPrior to being active on Wikipedia, I already had significant knowledge in JavaScript, so it's very easy to say that userscripts scared my soul. Userscripts often had a questionable UI or were more like quick hacks or workarounds. Most userscripts these days still have a UI that makes things look like they were made in 2010 (which is true for some userscripts). My first userscript was RCP-CV Quicklink, which I made early on during the start of my tenure as a CVU editor. It was then followed by DirectPDFDownload, which was made in the library of my high school while looking for research material.
My first userscript that really took on the "project" scale is User:Chlod/Scripts/CopiedTemplateEditor, which was also my first userscript that utilized Wikimedia's OOUI library. This userscript is one I am very proud of even today, as it jumpstarted my experience in using Parsoid for page editing, leading to the creation of the ParsoidDocument library.
My goal in making userscripts is to make a script that works well and has a decent UI. That's why you'll notice that most of my newer userscripts are based on OOUI for that clean Wikipedia-like experience. Although this hurts me as a developer, my main goal is user friendliness and compatibility. The only project where I deviate on this style is with RedWarn, which uses Google's Material Design. Although it doesn't use OOUI, it still uses a modern design language that makes the user interface much more appealing.
I believe that userscripts should not only work well, but also feel well. A userscript that isn't easy to use is not a userscript worth using.
Archives
edit- User:Chlod/Scripts/RCP-CV Quicklink – Adds a Recent Changes Patrol quicklink to the top bar.
- User:Chlod/Scripts/CopiedTemplateEditor – Edits {{copied}} templates on a page's talk page. Superseded by Deputy.
- User:Chlod/Scripts/InfringementAssistant – Allows users to graphically hide a page for suspected copyright violations, and report the page to the Copyright problems noticeboard. Superseded by Deputy.