User:PerfektesChaos/js/markGroupMembers
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
[edit]The 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
[edit]Marked 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
[edit]There 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