User:The Transhumanist/Outline of scripts

The following Wikipedia-user-reference outline is provided as an overview of and topical guide to userscripts:

Userscript – userscripts are programs, usually written in JavaScript, for extending the capability of one's browser and for modifying web pages. Using them is referred to as augmented browsing, and there are thousands of them available around the Internet. Those work through a browser extension, and some of them are designed to work on Wikipedia pages. Independent from those, Wikipedia includes a feature that allows users to install user scripts (designed specifically for use on Wikipedia) on their Wikipedia accounts, and those only work while a user is logged in on Wikipedia. Within the Wikipedia community, scripts designed to work via WP user accounts are referred to as "user scripts" (notice the space between "user" and "scripts").

This outline was written mostly with the JavaScript programmer in mind. It attempts to track down the source code for all userscripts (external and internal, including gadgets), and everything about developing user scripts (including gadgets) for Wikipedia and MediaWiki. MediaWiki is the program that Wikipedia is run on.

Note that most gadgets are JavaScript programs (the rest are css snippets). Gadgets are selected by user account, and therefore, those that are JavaScript programs are user scripts, though they are removed from user script lists once they become "gadgets". The type of gadgets that are JavaScript programs are covered by this outline.

Using Wikipedia user scripts
Wikipedia user scripts – powerful customizations written in JavaScript, authored by the community (Wikipedia users), that allow registered Wikipedians to change Wikipedia's interface, and process data (content), beyond the options available in preferences. Wikipedia user scripts are designed to be run from and while logged in to Wikipedia. On Wikipedia, a userscript feature is enabled for registered users that allows them to install userscripts on their user accounts to augment editing and viewing of the encyclopedia's pages.
 * Frequently Asked Questions about user scripts –
 * Easier editing with JavaScript – chapter from The Missing Manual. You don't have to understand JavaScript to use it. You just need to know the process for cutting and pasting chunks of code to your personal JavaScript file. This chapter shows you how.
 * Install user script – this template should always be substituted (i.e., use importScript( '' ); // Backlink: ).
 * User scripts/Requests – a place to request a user script that you wish existed.

Using userscripts in general
Userscript – program, usually written in JavaScript, for modifying web pages to augment browsing. They are enabled in browsers by use of a userscript manager browser extension. Userscripts are often referred to as Greasemonkey scripts, named after the original userscript manager Greasemonkey for the Firefox browser. Some userscripts out there are designed to work on Wikipedia.
 * Greasemonkey – Mozilla Firefox extension that allows users to install scripts that make on-the-fly changes to web page content after or before the page is loaded in the browser. Firefox changed its extension system as of version 57, and so Greasemonkey 4 (Fall, 2017) was almost a complete rewrite. Because of this, some Greasemonkey scripts written before that no longer work.
 * Download from addons.mozilla.org
 * Greasemonkey Manual –
 * Tools/Greasemonkey user scripts –

Writing Wikipedia user scripts

 * User Scripts Guide – guide on writing user scripts for Wikimedia sites. Of course, to write user scripts, you will need to have some knowledge of JavaScript.
 * Gadget kitchen – tutorial on writing userscripts/gadgets.
 * Common techniques – techniques for achieving common tasks needed in writing user scripts.
 * Help:Customizing toolbars
 * Dive into Greasemonkey – even though it was written in 2005, it still includes many patterns that are relevant to writing user scripts on Wikipedia.

Modules, and loading dependencies

 * mw.config – to ease JavaScript programming, the MediaWiki software exposes a number of configuration values in an object called mw.config. It is always available, and contains lots of useful stuff.
 * mw:Manual:Interface/JavaScript
 * ResourceLoader
 * Default ResourceLoader modules –
 * ResourceLoader/Core modules –
 * ResourceLoader/Migration_guide_(users) –

Global scripts
Global scripts – these scripts work on all users, or a specific group of users, on a wiki, if installed on that wiki. They are included here because what's in them may affect how your scripts work, and so you may need to look at them.
 * MediaWiki:Common.js – works on all skins, but ignored by the mobile website provided by MW:Extension:MobileFrontend
 * MediaWiki:skinname.js – per skin, for example MediaWiki:Vector.js
 * MediaWiki:Group-group.js – per user group, for example MediaWiki:Group-sysop.js
 * MediaWiki:Mobile.js – specific to the mobile website and provided by MW:Extension:MobileFrontend
 * Special:Gadgets

Caveats

 * Automated editing – scripts that modify and save the contents of pages without editor interaction are bots, and must be approved by the bot department before they can be used on Wikipedia. An example of a bot would be any script that saves a page that it has worked on, rather than leave it to the user to do so. Only editors and approved bots are allowed to save.

JavaScript resources
JavaScript – the programming language that user scripts are written in.
 * Draft:Outline of JavaScript – overview of everything on Wikipedia about the JavaScript ecosystem. A programming language's ecosystem includes everything to do with that programming language, including its system requirements, its components, extensions of it, tools for writing in it, the programs written in it, books and tutorials about it, its standards, its development community, and so on. Everything.
 * Index of JavaScript-related articles – alphabetical list of articles on Wikipedia about JavaScript.
 * WikiProject JavaScript/Reference library – list of articles, bibliographies, e-books, glossaries, study guides, tutorials, and videos about JavaScript.
 * WikiProject JavaScript –
 * IRC channel –
 * Greasemonkey – Mozilla Firefox extension that allows users to install scripts that make on-the-fly changes to web page content after or before the page is loaded in the browser.
 * Tools/Greasemonkey user scripts –
 * Firebug –

MediaWiki's JavaScript support pages

 * ResourceLoader
 * ResourceLoader/Modules – all modules part of MediaWiki core
 * jQuery
 * JavaScript code conventions
 * JavaScript performance
 * Snippets &mdash; helpful code snippets!
 * mw:Extension:Gadgets & Gadget kitchen – how site admins and users can write JavaScript to modify and extend MediaWiki behavior

Actual Wikipedia user scripts
Looking for Wikipedia user scripts? This section provides links to where you can find them, and lists some of the more useful or interesting scripts.

Lists of Wikipedia user scripts

 * Main script list –
 * Most imported scripts
 * Exhaustive script list (category) –
 * Code snippets –
 * User:Writ Keeper/Scripts (27 scripts)
 * User:Writ Keeper/Scripts/noAutoRedir.js –
 * Other:
 * Deprecated script list –
 * Wikipedia:WikiProject User scripts/Scripts/(All pages) – inactive/historical list

Most gadgets are user scripts
Gadget – userscript and/or a CSS snippet that can be enabled simply by checking an option in your preferences. The gadget's function is provided by the MediaWiki extension Extension:Gadgets. Gadgets are among the best user scripts, and their sourcecode is of the highest quality JavaScript programming on Wikipedia.
 * Gadget – partial list of installed gadgets, with descriptions
 * Gadgets list – preference menu of gadgets
 * Special:Gadgets – list of the preferences entries for gadgets, along with a link to the source page (script, or css snippet) for each
 * MediaWiki:Gadgets-definition –
 * Gadget kitchen – tutorial on writing userscripts/gadgets.

Bots written in JavaScript

 * User:Bot523
 * Bots/Requests for approval/Bot523
 * Bots/Requests for approval/Bot523 2
 * User:Cewbot
 * source code
 * Bots/Requests for approval/Cewbot
 * User:Luasóg bot
 * Source code: User:Luasóg bot/scripts/mainbelt
 * Bots/Requests for approval/Luasóg bot
 * Bots/Requests for approval/Luasóg bot 2
 * User:NationalRegisterBot
 * Bots/Requests for approval/NationalRegisterBot
 * Bots/Requests for approval/NationalRegisterBot 2
 * source code found at: https://en.wikipedia.org/wiki/Special:PrefixIndex?prefix=Dudemanfellabra&namespace=2&hideredirects=1
 * User:TTObot
 * Bots/Requests for approval/TTObot
 * Source code: User:This, that and the other/masstag.js
 * Bot's subpage listing
 * Bot owner's subpage listing
 * User:William Avery Bot
 * Source code
 * Bots/Requests for approval/William Avery Bot
 * Bot's subpage listing

Scripts on the old WikiProject User Scripts subpages

 * WikiProject User scripts/Scripts/Add LI link
 * WikiProject User scripts/Scripts/Add LI menu
 * WikiProject User scripts/Scripts/Add LI menu/css
 * WikiProject User scripts/Scripts/Add edit section 0
 * WikiProject User scripts/Scripts/Add purge to tabs
 * WikiProject User scripts/Scripts/Add tab
 * WikiProject User scripts/Scripts/Add toolbox link
 * WikiProject User scripts/Scripts/All diffs above here
 * WikiProject User scripts/Scripts/All diffs above here/doc
 * WikiProject User scripts/Scripts/AutoAFD.js
 * WikiProject User scripts/Scripts/Autocopyvio.js
 * WikiProject User scripts/Scripts/Autolink
 * WikiProject User scripts/Scripts/Changes since I last edited
 * WikiProject User scripts/Scripts/CleanupTab.js
 * WikiProject User scripts/Scripts/CloseAFD
 * WikiProject User scripts/Scripts/CloseAFD.js
 * WikiProject User scripts/Scripts/CloseAFD.js/sandbox.js
 * WikiProject User scripts/Scripts/CloseRFA.js
 * WikiProject User scripts/Scripts/Compact Navigation
 * WikiProject User scripts/Scripts/Compare link
 * WikiProject User scripts/Scripts/Dashboard
 * WikiProject User scripts/Scripts/Duplicate tabs at bottom
 * WikiProject User scripts/Scripts/Easy db
 * WikiProject User scripts/Scripts/Edit Top
 * WikiProject User scripts/Scripts/Edit Top.js
 * WikiProject User scripts/Scripts/External editor
 * WikiProject User scripts/Scripts/Fix diff width
 * WikiProject User scripts/Scripts/Force edit summary
 * WikiProject User scripts/Scripts/Force edit summary alternative
 * WikiProject User scripts/Scripts/Formatter
 * WikiProject User scripts/Scripts/Formatter/Auto Edit Summary
 * WikiProject User scripts/Scripts/Formatter/Auto Edit Summary/doc
 * WikiProject User scripts/Scripts/Get Page Name
 * WikiProject User scripts/Scripts/Get tidy title
 * WikiProject User scripts/Scripts/Get user name
 * WikiProject User scripts/Scripts/Google link
 * WikiProject User scripts/Scripts/Google search
 * WikiProject User scripts/Scripts/HistoryCount
 * WikiProject User scripts/Scripts/Inclusion
 * WikiProject User scripts/Scripts/Language Converter
 * WikiProject User scripts/Scripts/Language Converter/Dictionary
 * WikiProject User scripts/Scripts/Language Converter/Dictionary/en-GB
 * WikiProject User scripts/Scripts/Language Converter/Dictionary/en-US
 * WikiProject User scripts/Scripts/Logs link
 * WikiProject User scripts/Scripts/Module template
 * WikiProject User scripts/Scripts/MotD closure script
 * WikiProject User scripts/Scripts/Multi-NS search
 * WikiProject User scripts/Scripts/New message history
 * WikiProject User scripts/Scripts/Obsolete
 * WikiProject User scripts/Scripts/POV tool
 * WikiProject User scripts/Scripts/Quick cleanup
 * WikiProject User scripts/Scripts/Quick orphan
 * WikiProject User scripts/Scripts/Quick wikify
 * WikiProject User scripts/Scripts/RBL check
 * WikiProject User scripts/Scripts/Rationale
 * WikiProject User scripts/Scripts/Re-order menus
 * WikiProject User scripts/Scripts/Replace
 * WikiProject User scripts/Scripts/Revert tools
 * WikiProject User scripts/Scripts/Search links
 * WikiProject User scripts/Scripts/Set Book Source
 * WikiProject User scripts/Scripts/Show last diff
 * WikiProject User scripts/Scripts/Show last secure diff
 * WikiProject User scripts/Scripts/Show recent comments
 * WikiProject User scripts/Scripts/Sigdash
 * WikiProject User scripts/Scripts/Single column diffs
 * WikiProject User scripts/Scripts/Six tabs
 * WikiProject User scripts/Scripts/Sort Image Links
 * WikiProject User scripts/Scripts/Syntax highlighter
 * WikiProject User scripts/Scripts/Tag unverified image
 * WikiProject User scripts/Scripts/Talk page section tabs
 * WikiProject User scripts/Scripts/Time
 * WikiProject User scripts/Scripts/TimeTraveller
 * WikiProject User scripts/Scripts/TimeTraveller.js
 * WikiProject User scripts/Scripts/TwoColumns
 * WikiProject User scripts/Scripts/TwoColumns.js
 * WikiProject User scripts/Scripts/Unreferenced tool
 * WikiProject User scripts/Scripts/Unwatch
 * WikiProject User scripts/Scripts/Upload Preview
 * WikiProject User scripts/Scripts/User Contribs Tabs
 * WikiProject User scripts/Scripts/User tabs
 * WikiProject User scripts/Scripts/VBS/Savewatchlisttofile
 * WikiProject User scripts/Scripts/Watchfilter
 * WikiProject User scripts/Scripts/Watchlist since
 * WikiProject User scripts/Scripts/Welcome user
 * WikiProject User scripts/Scripts/WikiBreak Enforcer
 * WikiProject User scripts/Scripts/WikiBreak Enforcer/script
 * WikiProject User scripts/Scripts/WikiBreak Enforcer/script/sandbox
 * WikiProject User scripts/Scripts/addLink
 * WikiProject User scripts/Scripts/addOnloadFunction.js
 * WikiProject User scripts/Scripts/hideOwn.js
 * WikiProject User scripts/Scripts/livepreview.js
 * WikiProject User scripts/Scripts/qSig
 * WikiProject User scripts/Scripts/removeAccessKeys
 * WikiProject User scripts/Scripts/test-enhanced
 * WikiProject User scripts/Scripts/test-n.js
 * WikiProject User scripts/Scripts/warn.js

External userscripts that work on Wikipedia pages

 * Tools/Greasemonkey user scripts

Javascript programs in general

 * free scripts from JavaScript Kit

Templates

 * InstallUserScript –
 * Infobox user script –
 * user script developer –
 * userscript –

User scripts subpage list
User scripts
 * User scripts/Function template
 * User scripts/Guide
 * User scripts/List
 * User scripts/List/Header
 * User scripts/Deprecated script list
 * User scripts/Module template
 * User scripts/Navbox
 * User scripts/Requests
 * User scripts/Requests/Archive 01a
 * User scripts/Requests/Archive 01b
 * WikiProject User scripts/Requests (Archived)
 * WikiProject User scripts/Requests/Fulfilled
 * WikiProject User scripts/Requests/Fulfilled/Archive 1
 * WikiProject User scripts/Requests/Fulfilled/Archive 2
 * WikiProject User scripts/Requests/Fulfilled/Archive 3
 * User scripts/Snippets
 * User scripts/Techniques
 * User scripts/sandbox

Place these

 * User scripts/Function template
 * User scripts/List/Header
 * User scripts/Module template
 * User scripts/Navbox
 * User scripts/Requests
 * User scripts/Requests/Archive 01a
 * User scripts/Requests/Archive 01b
 * User scripts/Snippets
 * User scripts/Techniques
 * User scripts/sandbox


 * WikiProject User scripts/Fulfilled requests/Archive index
 * WikiProject User scripts/Members
 * WikiProject User scripts/Old requests
 * WikiProject User scripts/Piles
 * WikiProject User scripts/Requests/Header
 * WikiProject User scripts/Requests/New
 * WikiProject User scripts/Scripts cleanup
 * WikiProject User scripts/Scripts cleanup/Non-working
 * WikiProject User scripts/User-script manager
 * WikiProject User scripts/preferences
 * WikiProject User scripts/tabs