User:Cameltrader/All-in-one.js/Description

From Wikipedia, the free encyclopedia

All-in-one adds a new tab to the preferences page
All-in-one adds a new tab to the preferences page
I don't like the name "all-in-one". I am looking for a better name.

This is an experiment to integrate various user scripts, which can be switched on and off in the preferences page.

Contents

[edit] Installation

Add the following to your monobook.js:

{{subst:js|User:Cameltrader/All-in-one.js}}

and refresh. A "User Scripts" tab will appear in your preferences page.

[edit] Criteria for inclusion

I consider user scripts which satisfy these conditions to be suitable for inclusion:

  • Quality of source code. Source code should follow Sun's Java code conventions[1] wherever that is possible for JavaScript. Usage of programming idioms from the prototype.js library is encouraged.[2] There should be documentation for tricky portions of the code, and only there — one should neither under-document, nor over-document. It is desirable that user scripts be internationalized, but as almost no script authors have made that effort, this is just a wish for now.
  • Usefulness. The goal is to satisfy the needs of upper-middle-quality contributors who are mainly occupied with producing good content. It is fine to include stuff useful for newcomers, patrollers, or low-frequency wikicreatures, but they are not the target audience.
  • Non-obtrusiveness. User scripts should do their best to integrate smoothly with the surrounding Mediawiki environment. This pertains especially to the UI, but to the scripting environment as well — no globals, no extending of the prototypes of generic js types, no overloading of well-known utility functions (an exception is made for prototype.js and some utility scripts).
  • Standards-compliance. In most cases, this means things must work in Gecko browsers, as long Gecko remains the world's most standard-compliant layout engine. Some scripts will feel fine Internet Explorer, Opera, Safari, Konqueror, or whatever, but I do not have enough patience to guarantee that all the necessary quirks are added.

[edit] Included scripts

[edit] Prior art

There have already been some attempts to produce integrated libraries of user scripts with a common configuration UI. This is yet another one.

The members of wikiproject User Scripts have produced a nice collection of scripts, however, most of them are, in my view, of questionable usefulness, and are poorly coded.

User:Jitse Niesen's User-script manager is a tool which provides a similar checkboxes-style UI for choosing which user scripts to enable. The downside is that in order to store data, it makes edits on your behalf to your monobook.js, which is unpleasant and pollutes the history with clutter.

User:GeorgeMoney has a collection of scripts, too.

[edit] Notes

  1. ^ http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
  2. ^ More info at http://www.prototypejs.org/