JavaScript gadget – mark users who are members of arbitrary groups.
The script consists of a project configuration part in top region and a functional part in the guts. While the first is supposed to be maintained by a project, the latter is recommended to keep as-is.
For user nicks matching an entry in list one or more marker letters will be appended to userpage links in content area of any page, and a verbal description will be amended to link tooltip. A user might be member of several groups, which will be mentioned all.
The gadget updates when content area has been updated, e.g. by LivePreview or VisualEditor.
Project configuration
editThe following variables might be defined for all page builds:
- Groups
- Array of markers which are currently in effect for this project.
- Limitation to active groups accelerates execution.
- Users
- Object which maps each marker to an array of user nicks.
- User nicks are to be provided with single spaces rather than
_
and upcased first letter. - There might be more markers than groups with current members; an empty array or
false
is to be assigned. Empty groups should not occur inGroups
array. Temporarily unused assignments might be commented out. - Tips
- Object which maps each marker to a verbose explanation string appended to link tooltip.
- Live
true
– every linked page is required to exist for marking, and only page views willbe marked.false
– redlinks and relational pages will be marked,too.- Lower
true
– include links to subpagesfalse
– only top level page links will receive a marker- Sep
- Separator string between marker components
- Spaces
- RegExp string describing formatted local user namespace name, including gender variants and possibly talk pages
- Style
- CSS string for the marker
See codes for examples.
General configuration
editMarked links will be equipped with two classes:
markGroupMembers
markGroupMembers-
n
They might be used by anyone to style the link and marker. The first one is applied to all links which are member ofany group. The second one contains a consecutive digit which might be helpful for groups which are subsets of a basic group, but entirely useless in complex cases with many groups where the meaning depends on links encountered on a particular page.
Crystal ball
editThere is no world wide application planned right now.
However, one day the gadget might be implemented by serving the functional part from a unique global core which is fed by a local wiki definition of particular groups and customization like
mw.libs.markGroupMembers = { groups: [ "A", "B" ],
users: { "A": [ "Alaŭdo",
"Alaudo",
"Andy",
...
style: "color:#0645AD;" +
"font-size:small;" +
"font-weight:bold;" +
"margin-left:0.2em;" +
"vertical-align:super;"
};
which would be followed by some
mw.loader.load("https://.....functionality.delivered.by.central.maintenance......&ctype=text/javascript");
Codes
edit- eo.js – Esperanto Wikipedia – eo:MediaWiki:Gadget-markadmins.js