Last active
May 26, 2024 09:59
-
-
Save C-Ezra-M/f79e429dfee8e014ef9123fd8357f91c to your computer and use it in GitHub Desktop.
Staff highlighter (for Bulbapedia, can be modified for other MediaWiki wikis)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* New staff highlighting system, utilizing the ::before pseudoelement. | |
| * NOW WORKS FOR JS-UPDATED RECENT CHANGES! | |
| * Made into SCSS for easier updating: https://gist.github.com/Keyacom/f79e429dfee8e014ef9123fd8357f91c | |
| */ | |
| @use 'sass:list'; | |
| @use 'sass:meta'; | |
| /* Fix Minerva redlink selectors */ | |
| a.new > *, | |
| a.new:visited > *, | |
| a.new:hover > * { | |
| color: revert; | |
| } | |
| /* Remove predetermined staff icons */ | |
| #bodyContent a[href^="/wiki/User:"] { | |
| background: none !important; | |
| padding-left: initial !important; /* The padding might bother me a bit, so... */ | |
| } | |
| // Placeholder selectors, please configure from here! | |
| %jradmin-username { | |
| color: #a60; | |
| font-style: italic; | |
| } | |
| %admin-username { | |
| color: #666; | |
| font-style: italic; | |
| } | |
| %sradmin-username { | |
| color: #da2; | |
| font-weight: bold; | |
| font-style: revert; | |
| } | |
| %bureaucrat-username { | |
| color: #2aa; | |
| font-weight: bold; | |
| font-style: revert; | |
| } | |
| %editboard-username { | |
| color: #6a6; | |
| font-style: italic; | |
| font-weight: bold; | |
| } | |
| %execstaff-username { | |
| color: #22a; | |
| font-style: italic; | |
| font-weight: bold; | |
| } | |
| %retired-username { | |
| color: #222; | |
| font-style: italic; | |
| } | |
| %bot-username { | |
| color: #232; | |
| font-style: italic; | |
| } | |
| %inactivebot-username { | |
| color: #322; | |
| } | |
| %former-username { | |
| color: #aaa; | |
| } | |
| %before-base { | |
| margin: 0 5px; | |
| padding: 1px 5px; | |
| border-radius: 5px; | |
| color: #ccc; | |
| font-style: initial; | |
| font-weight: bold; | |
| display: inline; | |
| } | |
| %jradmin-before { | |
| content: "JA"; | |
| background-color: #c80; | |
| } | |
| %admin-before { | |
| content: "AD"; | |
| background-color: #888; | |
| } | |
| %sradmin-before { | |
| content: "SA"; | |
| background-color: #fc4; | |
| color: #444; | |
| } | |
| %bureaucrat-before { | |
| content: "BC"; | |
| background-color: #4cc; | |
| color: #444; | |
| } | |
| %editboard-before { | |
| content: "EB"; | |
| background-color: #8c8; | |
| color: #444; | |
| } | |
| %execstaff-before { | |
| content: "XS"; | |
| background-color: #44c; /* fallback in case gradient does not work */ | |
| background-image: linear-gradient(to right, #c44, #4c4, #44c, #c44); | |
| } | |
| %retired-before { | |
| content: "RS"; | |
| background-color: #444; | |
| } | |
| %bot-before { | |
| content: "BOT"; | |
| background-color: #444; | |
| color: #4c4; | |
| } | |
| %inactivebot-before { | |
| content: "BOT"; | |
| background-color: #444; | |
| color: #c44; | |
| } | |
| %former-before { | |
| content: "—"; | |
| background-color: #ccc; | |
| color: #444; | |
| } | |
| @function normal-attr-selectors($list) { | |
| $ret: (); | |
| @each $user in $list { | |
| $ret: append($ret, '[title=' + meta.inspect("User:" + quote($user)) + "]", comma); | |
| } | |
| @return $ret; | |
| } | |
| @function semicolon-attr-selectors($list) { | |
| $ret: (); | |
| @each $user in $list { | |
| $ret: append($ret, '[title^=' + meta.inspect("User:" + quote($user) + ";") + "]", comma); | |
| } | |
| @return $ret; | |
| } | |
| @function noexist-attr-selectors($list) { | |
| $ret: (); | |
| @each $user in $list { | |
| $ret: append($ret, '[title^=' + meta.inspect("User:" + quote($user) + " (page does not exist)") + "]", comma); | |
| } | |
| @return $ret; | |
| } | |
| @function str-join($list, $delimiter: "") { | |
| $ret: ""; | |
| @for $i from 1 to length($list) { | |
| $ret: $ret + nth($list, $i) + $delimiter; | |
| } | |
| @return $ret + nth($list, -1); | |
| } | |
| $users: ( | |
| jradmin: ("4iamking", Anzasquiddles, BigDocFan, Boblers, CycloneGU, | |
| Landfish7, Nikuriku, Rockapheller, "Storm Aurora"), | |
| admin: (BthrussellUK, "Daniel Carrero", Eridanus, "Frozen Fennec", MisterE13, | |
| Nescientist, Ruixiang95, TehPerson, Wowy), | |
| sradmin: (Blazingfist, Chosen, Nuva-kal, 神奇超龍), | |
| bureaucrat: (Adil, ArcToraphim, Darkeiya, G50), | |
| editboard: (Abcboy, Ataro, Glik, "Maverick Nate", Pokemaster97, | |
| SnorlaxMonster, Spriteit, Tiddlywinks), | |
| execstaff: (Archaic, DigBMGF, Enzap, Evkl, Kogoro, MAGNEDETH), | |
| retired: ( | |
| Argy, Berrenta, "Bikini Miltank", Carmenstar97, Celadonkey, | |
| Clarky13, "Crystal Talian", "Dennou Zenshi", ElectAbuzzzz, Fabu-Vinny, | |
| "Force Fire", "Funktastic~!", Ht14, "Jioruji Derako", "Jo The Marten", | |
| Kenji-girl, Masatoshi, Nyoo, "PAK Man", Pie, Politoed666, Quagbert, | |
| RexRacer, Sketch, "The dark lord trombonator", Umeko, Werdnae, | |
| "Zesty Cactus", "Zhen Lin", | |
| ), | |
| bot: (BulbaBot,), | |
| inactivebot: (MewBot, "Redirect fixer"), | |
| former: ( | |
| Admingeekz, Arty2, Awesomelink234, Barb, "Blackjack Gabbiani", Cipher, | |
| "CoolPikachu!", Evie, Imagize, Iteru, Jello, Jshadias, "Lady Ariel", | |
| Mamady, Martonimos, Mikuri, Pachirisulover12, PsychicRider, Rockersk08, | |
| "Rocket Girl", Soramimi, Shiningpikablu252, Tc26, Tina, Toastypk, | |
| "Toon Ganondorf", Transfinite, Tsskiller, TTEchidna, "Turtwig A", | |
| Tygerofdanyte, "Unown Lord", Urutapu, User142, Vegard, Virtual-Z, Zeta, | |
| ), | |
| ); | |
| @each $group, $list in $users { | |
| $normal: normal-attr-selectors($list); | |
| $semi: semicolon-attr-selectors($list); | |
| $noexist: noexist-attr-selectors($list); | |
| :is( | |
| .history-user, | |
| .ns--1 .mw-body, | |
| #mw-diff-otitle2, | |
| #mw-diff-ntitle2, | |
| .mw-warning-with-logexcerpt, | |
| .ns-6 .filehistory, | |
| #mw-mf-userinfo | |
| ) | |
| a:not( | |
| :is( | |
| [href*="#"], | |
| [href*="&action=h"], | |
| [href*="&diff="], | |
| [href*="&oldid="], | |
| [href*="&undo="] | |
| ) | |
| ):is( | |
| #{str-join($normal, ",")}, | |
| #{str-join($semi, ",")}, | |
| #{str-join($noexist, ",")} | |
| ) { | |
| @extend %#{$group}-username; | |
| } | |
| :is(#bodyContent, #mw-mf-userinfo) | |
| a:not( | |
| :is( | |
| [href*="#"], | |
| [href*="&action=h"], | |
| [href*="&diff="], | |
| [href*="&oldid="], | |
| [href*="&undo="] | |
| ) | |
| ):is( | |
| #{str-join($normal, ",")}, | |
| #{str-join($semi, ",")}, | |
| #{str-join($noexist, ",")} | |
| )::before { | |
| @extend %before-base; | |
| @extend %#{$group}-before; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment