The wikipedia twinkle javascript helper
Clone or download
Pull request Compare This branch is 687 commits behind azatoth:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Twinkle is a JavaScript library and application that gives Wikipedians a quick way of performing common maintenance tasks, such as nominating pages for deletion and cleaning up vandalism.

It is based upon the morebits.js library, which forms the basis for many Wikipedia scripts and editing tools.

See Wikipedia:Twinkle on the English Wikipedia for more information.

AzaToth is the original author and maintainer of the tool, as well as the morebits.js library.

Updating scripts on Wikipedia

To generate the concatenated Twinkle script, use the following bash command:

awk 'FNR==1{print ""}{print}' twinkle.header.js modules/*.js twinkle.footer.js > alltwinkle.js

Then you will be able to upload alltwinkle.js to MediaWiki:Gadget-Twinkle.js. This does not include morebits.js and morebits.css; these have to be uploaded separately.

If morebits.js and/or morebits.css need to be updated, they should be synched to these places:

MediaWiki:Gadgets-definition should contain the following line:

* Twinkle[ResourceLoader|dependencies=jquery.ui.dialog,jquery.tipsy]|morebits.js|morebits.css|Twinkle.js

Synchronization (for developers)

There is a synchronization script called, which can be used to pull and push files to Wikipedia.

The program depends on Perl 5.10 and the modules Git::Repository and MediaWiki::Bot, which can be installed easily using App::cpanminus:

cpanm --sudo install Git::Repository MediaWiki::Bot

When running the program, you can enter your credentials on the command line using the --username and --password parameters, but it is recommended to save them in a file called ~/.mwbotrc using the following format:

username => "Username",
password => "password",
base     => "User::Username"

where base is the wiki path to prefix the files for pull and push.

Notice that your working directory must be clean; if not, either stash or commit your changes.

To pull user Foobar's changes, do:

./ --base User:Foobar --pull morebits.js

To push your changes to Foobar's wiki page, do:

./ --base User:Foobar --push morebits.js

There is also an deploy command to deploy the new files live.

./ --deploy twinkle.js
make deploy

The edit summary will contain the branch, the last commit sha, and the oneliner for that commit.

Style guideline

While old legacy code has many different and incoherent styles, it has been decided to utilize a more coherent style throughout the code.

The jQuery Core Style Guideline is what we will hereafter use as our style guideline.