Bellezzasolo (talk | contribs) Added a paragraph about security, noted the standard line on automated tools, per WP:TWABUSE |
|||
Line 8: | Line 8: | ||
The [[Wikipedia:WikiProject JavaScript|JavaScript WikiProject]] is the collaboration of editors to improve WP's JavaScript coverage, write user scripts, and maintain user script-related pages (like the one you are reading right now). If you would like to join, sign up '''[[Wikipedia:WikiProject JavaScript#Participants|here]]'''. |
The [[Wikipedia:WikiProject JavaScript|JavaScript WikiProject]] is the collaboration of editors to improve WP's JavaScript coverage, write user scripts, and maintain user script-related pages (like the one you are reading right now). If you would like to join, sign up '''[[Wikipedia:WikiProject JavaScript#Participants|here]]'''. |
||
== A word about security == |
|||
User scripts have unlimited access to your account by their very nature - unlike [[WP:Huggle|Huggle]], where you can control access levels, the script runs in your browser. Anything you can do, it can do. However, unlike a standard userspace template, you don't need to worry about vandalism - javascript in user space is [[WP:fully protected|fully protected]] to other users. As such, only [[WP:administrators|administrators]] and the user in whom's space it lies can edit the script. As such, and this is especially pertinent to users with advanced permissions, make sure that you trust the user who wrote the script, as you will be held responsible for any actions it takes on your behalf. |
|||
== List of user scripts == |
== List of user scripts == |
||
{{Main|Wikipedia:User scripts/List}} |
{{Main|Wikipedia:User scripts/List}} |
Revision as of 22:59, 19 April 2018
User scripts are programs written in JavaScript, for use on Wikipedia by users. User scripts enable your user account to do many things that they otherwise couldn't. Many user scripts are available ready for you to install. Users may also write new user scripts, starting with an existing user script and modifying it, or starting from scratch.
JavaScript is the programming language used to write user scripts. For an overview of Wikipedia's coverage about JavaScript in the form of a structured topic list, see Outline of JavaScript.
The JavaScript WikiProject is the collaboration of editors to improve WP's JavaScript coverage, write user scripts, and maintain user script-related pages (like the one you are reading right now). If you would like to join, sign up here.
A word about security
User scripts have unlimited access to your account by their very nature - unlike Huggle, where you can control access levels, the script runs in your browser. Anything you can do, it can do. However, unlike a standard userspace template, you don't need to worry about vandalism - javascript in user space is fully protected to other users. As such, only administrators and the user in whom's space it lies can edit the script. As such, and this is especially pertinent to users with advanced permissions, make sure that you trust the user who wrote the script, as you will be held responsible for any actions it takes on your behalf.
List of user scripts
If you come across or write a user script, please add it to Wikipedia:User scripts/List.
Don't see what you need? You can make a request for a new user script at Wikipedia:User scripts/Requests.
Using scripts: Frequently asked questions
Where can I find user scripts?
Try these pages:
- Wikipedia:User scripts/List – main script list
- Category:Wikipedia scripts – the category page
- User:Writ Keeper/Scripts – 27 scripts!
How do you install user scripts?
Select one that you want from Wikipedia:User scripts/List. Either click on the superscript link (if there is one) and follow the instructions in the footnote, or follow the link with the script's name to read the documentation and find out how to install it. Normally you need to paste some code into your common.js page. After you do that, publish your common.js and follow the instructions at the top of your new common.js (the part about bypassing your browser's cache). You should now be able to use the script.
Step-by-step instructions
- First, make sure you are registered and logged in. Only logged-in users can install scripts.
- Click here to edit your common.js file.
- Add the following line:
{{subst:iusc|script_path}}
-- replace "script_path" with the full name of the .js page that opens when a script's "(source)" link is clicked.- For example, to install the Sharebox script, add the following line:
{{subst:iusc|User:TheDJ/sharebox.js}}
- For example, to install the Sharebox script, add the following line:
- Save the page and bypass your cache to make sure the changes take effect.
Automatic installer
Script Installer makes script installations fully automatic. The installer itself must first be installed manually. Afterwards, most scripts can be installed with a single click.
Full manual instructions
- First, make sure you are registered and logged in. Only logged-in users can install scripts.
- Edit your common.js file. Alternatively, you may use your skin.js to work only your current skin.
- Add the following line:
importScript('script_path');
-- where "script_path" is the full name of the .js page that opens when a script's "(source)" link is clicked.- For example, to install the Sharebox script, add the following line:
importScript('User:TheDJ/sharebox.js');
- For scripts not located on this wiki, use:
mw.loader.load('//en.wikipedia.org/w/index.php?title=script.js&action=raw&ctype=text/javascript');
- Consider adding a backlink by adding
//[[script_path]]
to the end of the line, which aids script usage statistics.
- For example, to install the Sharebox script, add the following line:
- Save the page and bypass your cache to make sure the changes take effect.
How do you add new scripts to the scripts list?
Use {{userscript}}. Include at least a code page address. Add a short description after the userscript template. For example:
*{{userscript | name= My script | code= User:Me/MyJSpage.js | doc= User:Me/MyJSdocumentationPage }} - This script does something useful.
- Name defaults to the code page's name, without its path or ".js".
- If a documentation page exists matching your .js page name, it will be linked automatically, without the need for a doc parameter.
Writing user scripts
Instructions for writing your own user scripts are included in Wikipedia:User scripts/Guide.
Additional script-writing resources are presented below.
Libraries
These functions can be included directly in a script but don't do anything unless called by some other code. The functions marked as deprecated have been rendered obsolete by new features added to MediaWiki, and only exist now as wrappers for compatibility with existing code.
(Template)
Documentation | Summary |
---|---|
Add LI menu | Allow "tabs" to be placed in drop-down menus (can be nested). Requires some CSS customisations |
warn.js | Gives a prompt to add any template (supposed to be used for warning vandals) |
Get user name | Gets the username corresponding to the current page |
MD5 2.2-alpha | Calculates the RSA Data Security, Inc. MD5 Message Digest of a string. Supports UTF-8 |
gui.htmlEdit | A WYSIWYG HTML editing control. See documentation |
edit.multiReplace | Class to simplify the replacement of several different regular expressions, each with its own substitution. See documentation |
morebits.js | A collection of wiki-related functions (such as editing via the API and displaying Twinkle-style windows), maintained as part of Twinkle (but usable separately) |
addToolbarButtons | Add function-calling toolbar buttons. Both the classic and the WikiEditor toolbars are supported (but not the Visual Editor's toolbar). |
Value/Selection | Lets you determine the position of the cursor/selection within a text input or textarea box and change the text around it |
Snippets
The following code snippets still exist under the now defunct WikiProject User scripts. Many are still in use by live scripts, and they may provide insights for current script developers.
Stylesheets
CSS code in this section is added slightly differently to JavaScript code. The code can be imported by adding {{subst:css|Page_name}}
to your monobook.js, or the code can be @imported into your monobook.css. You can just paste the source code if you do not wish to receive updates to the code when it is improved.
Name and link | Purpose | Compatible skins |
---|---|---|
externals | Replaces the external link icon with the corresponding favicon (works for some links) | Chick, Monobook, Myskin, and Simple |
VectorButtons | Give those boring gray standard buttons a Vector-like appearance | All |
accesskey | Display corresponding access keys besides links. | |
RetroLogo | Replace the top-left Wikipedia logo. |
Userbox
Want to advertise your user script development skills? Use {{user script developer}} userbox:
This user develops user scripts; |