Jump to content

Module talk:WikiProject banner/Archive 15

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Archive 10Archive 13Archive 14Archive 15

Execution time

I've recently been looking into the execution time of this module due to a couple of lua timeout errors occassionally popping up on larger pages with a lot of banner templates (e.g. 1, 2, 3 (not entirely wpb's fault)). I've already proposed a change to a module this module uses which should solve the issue well enough, but I think it's still worth looking into optimising this code.

I've noticed that this module can call Pagetype (which is intensive in comparison to most things required) on the same page up to (but not always) 3 times while handling a banner (see lines 161, 299, and 327). Considering 2 of them are caused by calling class_mask (definitely a duplicate pagetype call we don't need to make), I feel like it should be possible to reduce the max calls to 2, but the functionality of some of this module is beyond me (no clue what FQS means to start with), so I'm not confident I could optimise this myself without breaking some sort of functionality. Could someone consider taking a look at this? Aidan9382 (talk) 22:16, 21 March 2024 (UTC)

I guess it should be possible to reduce the calls to pagetype to 1. I'll have a look when I get a chance — Martin (MSGJ · talk) 22:38, 21 March 2024 (UTC)
Okay please have a look at my changes in the sandbox. There would need to be a minor change to Module:Banner shell at the same time — Martin (MSGJ · talk) 12:32, 22 March 2024 (UTC)
No comment on functionality, but I imagine there are testcases for this module in terms of that (though unless there was some sort of super specific scenario where the main function specifically but not the class mask wanted to ignore disambiguation, I doubt anything is broken). Thanks to this change and a change in a different module, the sandbox version is now running about 6.5 times faster than the live version in the worst case scenario (significantly large pages, all 3 pagetype calls - I'm using Talk:List of common misconceptions for my testcases), which is a huge improvement, so thanks for doing that. I'd recommend updating banner shell before this module whenever that happens so there isn't a small window where stuff breaks. Aidan9382 (talk) 17:04, 22 March 2024 (UTC)
Great. I've implemeneted your changes to pagetype. I will have a look to see if any other changes are needed to banner shell and then probably do that one later today. Can I ask how you came across Talk:List of common misconceptions and discovered the issue? By the way, when we have resolved all the conflicting article ratings, I hope we will be able to improve efficiency by just doing the quality assessment once (on the banner shell) rather than having to it on each individual banner — Martin (MSGJ · talk) 19:30, 22 March 2024 (UTC)
I came across that talk page since my bot, which handles bad archive values in {{User:MiszaBot/config}} as one of its tasks, kept throwing warnings for pages that had appeared in a tracking category despite having what it (correctly) thought was the already right input (you can see the result of me purging some of the pages to temporarily remove the timeout in Special:Diff/1214818416). I just removed templates and used show preview till I found what was responsible for the majority of the execution time, which is why I've been improving the execution time of multiple modules recently. Aidan9382 (talk) 19:39, 22 March 2024 (UTC)
New code deployed, so hopefully that reduces the lag on these pages — Martin (MSGJ · talk) 21:06, 24 March 2024 (UTC)
Thanks, stuff's looking much better now (not even 2s on the misconceptions page compared to over 6s before the updates). Aidan9382 (talk) 21:28, 24 March 2024 (UTC)

Template uses custom code to implement a custom quality rating, but it does not do it in the usual way with a custom mask. I'm not sure what to do with this template so dropping it here in case others have an idea. — Martin (MSGJ · talk) 23:15, 23 February 2024 (UTC)

@Kanashimi, @Qwerfjkl: please could you not remove any class parameter from this template until we figure out the best way to code it? It is using a custom mask, but not in the usual way. — Martin (MSGJ · talk) 20:56, 2 March 2024 (UTC)
Martin, I've stopped my bot, it's run on the vast majority of pages. — Qwerfjkltalk 20:58, 2 March 2024 (UTC)
Okay, wow. I didn't realise you had already finished! — Martin (MSGJ · talk) 20:59, 2 March 2024 (UTC)
Martin, yes, we've totally emptied the main two categories (in the main talk namepace). Around 4-5 million pages, I think. — Qwerfjkltalk 21:01, 2 March 2024 (UTC)
Yes, we've already processed a round of major categories. But I'm still on the task of removing obsolete parameters. I suggest adding {{Etymology section}} to Category:WikiProjects using a non-standard quality scale first. Kanashimi (talk) 22:53, 2 March 2024 (UTC)
How is that template not appearing in Category:WikiProject banners with non-standard names? Gonnym (talk) 13:33, 3 March 2024 (UTC)
The current logic is (args.PROJECT_NAME=='WikiProject '..project or not args.PROJECT_NAME) and current_page.rootPageTitle.prefixedText~='Template:WikiProject ' .. project In this case the project name is not WikiProject PROJECT and it is not undefined — Martin (MSGJ · talk) 13:56, 3 March 2024 (UTC)
Maybe adjust this so we check either if |PROJECT_NAME= is equal to "WikiProject project" OR the template name does not start with "WikiProject"? Since we standardized on "WikiProject project" for these templates, there really shouldn't be many with non-standard valid names I think, unless I missed something. Gonnym (talk) 15:23, 3 March 2024 (UTC)
This banner isn't for a WikiProject. Perhaps that issue should be corrected instead? Izno (talk) 17:53, 3 March 2024 (UTC)
Isn't it part of linguistics project? — Martin (MSGJ · talk) 19:22, 3 March 2024 (UTC)
A task force of that project, yes. Izno (talk) 22:11, 3 March 2024 (UTC)
I usually nominate task force banners to merge with their project banner but because this had manual code in it I left it alone for now as I didn't investigate what that code does and if indeed it needs manual code. Gonnym (talk) 06:52, 4 March 2024 (UTC)
I think I'll start by removing the custom code and attempting to use the standard methods. If that works then we can look at the next step — Martin (MSGJ · talk) 18:31, 4 March 2024 (UTC)
Conclusion: it is easy to convert it, but some categories would need to be renamed. Test cases at Template:Etymology section/testcases. I have also dropped a note on Wikipedia talk:WikiProject Linguistics. Also, there are only 146 pages using this template so it was never really adopted on any scale — Martin (MSGJ · talk) 18:47, 4 March 2024 (UTC)
Maybe after merging with {{WikiProject Linguistics}}, the syntax can be changed to something similar to this:
so instead of a new set of unique classes, it will just be another parameter that will trigger the placement in the category. Gonnym (talk) 10:02, 6 March 2024 (UTC)
Sounds like a good plan. I also think we could rename Category:Articles with mid-importance etymologies to Category:Mid-importance etymology articles or similar — Martin (MSGJ · talk) 10:30, 6 March 2024 (UTC)
I feel like those are just other ways to grade each article with a class, which we have examples of for task forces. Good would put it in B, incomplete C or start, unassessed is missing a grade, and missing is probably equivalent to unassessed ultimately... Izno (talk) 17:17, 6 March 2024 (UTC)
That's also a good point. Gonnym (talk) 07:19, 7 March 2024 (UTC)
Missing etymology might just be like |needs-infobox= I guess, but the rest all have direct analogs to our rating system. Izno (talk) 16:32, 7 March 2024 (UTC)

Due to the lack of any response at the project talk page, it seems no one is interested in this template, so I have just removed the non-standard assessments altogether. If this gets reverted then we can look at methods to preserve the assessments in a more standard way — Martin (MSGJ · talk) 09:15, 3 April 2024 (UTC)

Documentation

There is a piece of automatically generated documentation on Template:WikiProject Military history that says "This project has opted out of project-independent quality assessments and is using a custom class mask." The Project has not opted out of project-independent quality assessments. Can we delete "has opted out of project-independent quality assessments"? I am unsure where this is done. Hawkeye7 (discuss) 00:07, 1 April 2024 (UTC)

The military history project has opted out of PIQA. That is the only way to support the custom quality scale. — Martin (MSGJ · talk) 09:10, 1 April 2024 (UTC)
What would be the effect of adopting the PIQA? Hawkeye7 (discuss) 17:43, 1 April 2024 (UTC)
Losing all the custom logic in Template:WikiProject Military history/class — Martin (MSGJ · talk) 09:09, 3 April 2024 (UTC)
Does that include the A-class logic or just the B-class logic? Hawkeye7 (discuss) 18:12, 3 April 2024 (UTC)
You'd certainly lose AL, BL and CL, probably several of the others; you might be left with just the standard scale (FA, A, GA, B, C, Start, Stub, FL, List). --Redrose64 🌹 (talk) 19:01, 3 April 2024 (UTC)

Deletion of Template:WPBannerMeta/taskforce caused a table error at Template:WPBannerMeta/hooks/taskforces/taskforce

Deletion of {{WPBannerMeta/taskforce}} has caused a table error at {{WPBannerMeta/hooks/taskforces/taskforce}}. I don't know what was in that deleted page, so I don't know what to insert into the latter page's noinclude tags to work around this error. – Jonesey95 (talk) 13:33, 26 April 2024 (UTC)

It wasn't being used, so I have deleted it under G8 — Martin (MSGJ · talk) 13:54, 26 April 2024 (UTC)
It looks like {{WPBannerMeta/hooks/taskforces/templatepage}} may also have become unused and deleteable. – Jonesey95 (talk) 14:32, 27 April 2024 (UTC)
I believe it is only Template:WikiProject Indian roads, Template:WikiProject U.S. Roads and possibly some other roads projects that are using this depcrecated code now — Martin (MSGJ · talk) 14:22, 30 April 2024 (UTC)

Classifying subpages in main talk

All pages not in article space are automatically detected as being non-articles. But Gonnym pointed out that we have some subpages in Main talk space (e.g. Talk:Multiverse (Marvel Cinematic Universe)/FAQ) which should also be classified as non-articles. The types I have seen are FAQ pages like the above, or talk archive pages. It is not clear how we should classify them (e.g. Project-class) or just use the default NA-class for these types of page. Does anyone have any opinion? — Martin (MSGJ · talk) 17:50, 6 May 2024 (UTC)

I'd say that talk archive can be NA like regular talk. /FAQ (and maybe /GA) ideally should be project but if that is an issue then NA can work also (or allow manual override with the normal class parameter). Gonnym (talk) 08:15, 7 May 2024 (UTC)
I think I would prefer to treat all these subpages in the same way, rather that try to guess what they are based on the name of the page — Martin (MSGJ · talk) 11:10, 7 May 2024 (UTC)

PROJECT_STATUS parameter

The module currently has an undocumented parameter for the status of a project, which will add a CSS class to the outer table. For example if you set |PROJECT_STATUS=semiactive then it will add class="semi-active-project". Does anyone know if this has any purpose or is used by any tools? It either needs documenting properly or removing — Martin (MSGJ · talk) 11:53, 24 April 2024 (UTC)

The rendering of the banner changes also, see uses. Izno (talk) 16:45, 25 April 2024 (UTC)
The rendering of inactive banners is not triggered by the PROJECT_STATUS parameter. It's produced by a different ("inactive") function of the module — Martin (MSGJ · talk) 08:58, 26 April 2024 (UTC)
This parameter was added in 2021 after this request by User:MJL. The rationale given was "The change adds a new class to the banner which would allow users to hide inactive WikiProject at their own discretion". — Martin (MSGJ · talk) 09:01, 26 April 2024 (UTC)

Here are my thoughts:

  • It is understandable that some editors wish to hide inactive banners, and the inactive-project class should continue to be applied to inactive banners.
  • I do not see the value of active-project or semi-active-project and I don't believe anyone is using these.
  • The |PROJECT_STATUS= parameter can be dropped from active project banners
  • For inactive banners, there may be some utility in allowing |PROJECT_STATUS=defunct to be defined instead of the default |PROJECT_STATUS=inactive. So this parameter should continue to be supported for inactive banners.
  • Other statuses listed at Wikipedia:Inactive WikiProjects such as "dormant", "revivable", "dead", "stillborn" will not be supported unless there is a specific request for this.

— Martin (MSGJ · talk) 11:16, 29 April 2024 (UTC)

@MSGJ: I'd agree with what you've laid out there. –MJLTalk 18:30, 29 April 2024 (UTC)
Out of interest, did you use personal CSS to hide these banners, or are you aware of users who have done so? — Martin (MSGJ · talk) 20:27, 29 April 2024 (UTC)
 Done — Martin (MSGJ · talk) 11:20, 9 May 2024 (UTC)

Moving notes to banner shell

There is some talk on Template talk:WikiProject banner shell about moving certain commonly used notes (e.g. attention needed, infobox needed, image needed) to the banner shell, to avoid multiple projects having to replicate the same parameter. Any comments over there please — Martin (MSGJ · talk) 15:09, 21 May 2024 (UTC)

Outdated code/hooks

I am working through the remaining templates using the old hooks.

If anyone knows of any more please add to the list — Martin (MSGJ · talk) 15:29, 23 May 2024 (UTC)

insource:"WPBannerMeta/hooks/" shows that hooks are used at Template:WikiProject Figure Skating/A-Class review, Template:WikiProject Military history/aclass (and /sandbox), Template:WikiProject Pirate Politics, and Template:WikiProject The Beatles/sandbox. Gonnym (talk) 11:33, 28 May 2024 (UTC)
Thanks, I'll look at those — Martin (MSGJ · talk) 15:34, 2 June 2024 (UTC)

Template:WikiProject United States

Hi, the template is populating Category:Pages with script errors, and it only displays the following message:

"The time allocated for running scripts has expired. The time allocated for running scripts has expired."

I don't know how to fix this, please help, thanks!! --Funandtrvl (talk) 17:00, 2 June 2024 (UTC)

Please can you provide an example of a page with a script error — Martin (MSGJ · talk) 08:21, 4 June 2024 (UTC)
@Funandtrvl — Martin (MSGJ · talk) 21:19, 6 June 2024 (UTC)
Hi, the problem fixed itself after a few hours. Thank you! --Funandtrvl (talk) 01:01, 8 June 2024 (UTC)

A-class review tweaks

I have made some small changes to Module:WikiProject banner/config/sandbox and Module:WikiProject banner/auxiliary/sandbox to allow me to stop using custom code at Template:WikiProject Military history/aclass. The only differences is that |A-class=kept and |A-class=keep and treated the same as |A-class=pass, and |A-class=demote and |A-class=demoted are treated the same as |A-class=fail — Martin (MSGJ · talk) 12:03, 10 June 2024 (UTC)

Deployed — Martin (MSGJ · talk) 21:34, 10 June 2024 (UTC)

Styles

@Gonnym: regading this edit, are you able to make the corresponding changes to Module:WikiProject banner/sandbox/styles.css? — Martin (MSGJ · talk) 13:25, 12 June 2024 (UTC)

I have very basic skills in CSS. @Izno can you help with this? Gonnym (talk) 17:02, 12 June 2024 (UTC)
I am happy to walk you through it; this task is a bit easier than poofing CSS out of thin air. The basic gist of what needs to be done here is:
  1. See if there's a class some CSS can be attached to. The presence of addClass will usually make that obvious.
    1. If no, add a class (addClass).
    2. If yes, check to see if the uses in the generating module all need that particular CSS. If yes, proceed to 2. If no, add a specific class to that specific element to support the new CSS.
  2. Move the CSS to the sheet.
I know you've done this before with ib-tv-episode. :P Izno (talk) 20:37, 12 June 2024 (UTC)

IM_TOPIC_CATEGORY may not be working in all cases

The documentation appears to say that |IM_TOPIC_CATEGORY= should provide a default category for requested images or photographs. In {{WikiProject Fishes}}, |IM_TOPIC_CATEGORY=Wikipedia requested images of fish. The category exists at Category:Wikipedia requested images of fish. Despite that looking correct to me, Talk:Bryconops sapezal uses that WikiProject template with |needs-image=yes, and the incorrect Category:Wikipedia requested photographs of is added to the page. Can someone please troubleshoot or explain this apparent discrepancy? – Jonesey95 (talk) 23:07, 20 June 2024 (UTC)

I have applied a fix, hopefully will be resolved now — Martin (MSGJ · talk) 06:50, 21 June 2024 (UTC)

Preview warning: unexpected parameter "attention"

I'm getting a red warning saying, unexpected parameter "attention" while attempting the following:

{{WikiProject Intertranswiki/OKA|attention=yes}}

The interesting thing is, that in preview mode it is properly generating the notice with the diamond caution sign and "immediate attention needed", as well as displaying the name of the hidden attention-needed category in the footer that would be populated if I hit Publish, but all of that with the Preview error at the same time.

Not sure if it's relevant, but the PROJECT param is Intertranswiki/OKA task force, and a couple of redirects are involved:

Have I bolloxed it all up with the redirects, somehow? Can someone help me understand what's going on? Mathglot (talk) 07:25, 2 July 2024 (UTC)

Further data: I went ahead and saved the page with the Preview error anyway, at Draft talk:Contravention in French criminal law with the intention of pointing to the error here, but after publication the error was gone, and the banner message and hidden category look good. So far, so good; but |attention= is a valid parameter, so why does it say that it isn't in Preview? Preview mode still displays the error message now, if you edit it. Mathglot (talk) 07:36, 2 July 2024 (UTC)
It's because you did not define the |BANNER_NAME= parameter, and so it uses by default Template:WikiProject+PROJECT which in this case yields Template:WikiProject Intertranswiki/OKA task force which is not the template but a redirect. I have added |BANNER_NAME= which I think has fixed it — Martin (MSGJ · talk) 08:07, 2 July 2024 (UTC)
MSGJ, Yes, it has! Thank you. Given the complexity of this Module, and the type of situations that might arise, I am considering adding a Troubleshooting section to the doc page, and this would be a good entry there. Or at least, where to look if you get that error message, would be a good start. Such a section might expand to cover other situations, as well. Thanks for your fixes to that template. Mathglot (talk) 10:35, 2 July 2024 (UTC)
In general though, this error should be a very rare edge case, as task forces should not have standalone banners as they should use the one of the project they belong to. In this situation, there isn't a project one at this moment. Gonnym (talk) 10:57, 2 July 2024 (UTC)
Gonnym, thank you for your comment I did notice that the module had params like |tfN= for handling task forces, and I wondered how to proceed with that, given that the parent WikiProject didn't have its own banner, so I did the best I could. What I'm hearing, is, maybe this is too rare a case to be worth writing up as a troubleshooting case, and I accept that. But, what is the right path forward, here? Should Intertranswiki have its own banner, and then */OKA would use the |tfN= params? Or, is it good enough, the way things are, now? Mathglot (talk) 11:06, 2 July 2024 (UTC)
I think that if there are not going to be any other task forces needing one, then don't bother changing it as it's already working. If another task force will need one then yes, they should be combined into one template. Gonnym (talk) 11:09, 2 July 2024 (UTC)

Dark mode support

I implemented dark mode support for the banners in these sandbox edits, without those on dark mode the banners are showing white text on light yellow background which is not great. The test cases seem good to me, but I would still appreciate a second set of eyes on the change before deploying it. Taavi (talk!) 22:20, 4 July 2024 (UTC)

Also  Done for the non-sandbox version. Taavi (talk!) 11:58, 7 July 2024 (UTC)
Thanks. Maybe coordinate with User:Jdlrobson as he was working on this also — Martin (MSGJ · talk) 02:57, 8 July 2024 (UTC)

Military history articles with no associated task force

Category:Military history articles with no associated task force is full of articles from the Draft talk namespace. Could the module be adjusted to only add talk namespace articles to the category? Hawkeye7 (discuss) 02:46, 1 August 2024 (UTC)

That isn't a module fix. You'll have to edit the note_2 of the banner itself. Gonnym (talk) 03:08, 1 August 2024 (UTC)

Syntax highlighting in automatic documentation

Could syntax highlighting be added to the automatic documentation (i.e. when |DOC=auto)?

Current display (e.g. Template:WikiProject AfroCreatives#Full usage):
{{WikiProject AfroCreatives |category= |listas= |class= |importance= |auto= |attention= |needs-image= |type= |details= |location= |topic= }}

Proposed:
{{WikiProject AfroCreatives |category= |listas= |class= |importance= |auto= |attention= |needs-image= |type= |details= |location= |topic= }}

Only applicable in the #Basic usage & #Full usage sections (I think).   ~ Tom.Reding (talkdgaf)  17:42, 30 May 2024 (UTC)

That sounds good (and uncontroversial) to me, but after some searching, I have been unable to figure out where the relevant code is. Sdkbtalk 18:31, 30 May 2024 (UTC)
It seems like it might be at Module:WikiProject banner/templatepage from lines 833-863. Someone who knows Lua would need to implement. Sdkbtalk 18:35, 30 May 2024 (UTC)
Excellent idea. I will do it shortly unless someone else has already done it — Martin (MSGJ · talk) 15:33, 2 June 2024 (UTC)
Please check Template:WikiProject Cycling/sandbox and feed back? I notice you used the "inline" option but I don't know what difference that makes — Martin (MSGJ · talk) 08:36, 4 June 2024 (UTC)
Compare this: {{WikiProject AfroCreatives |category= |listas= |class= |importance= |auto= |attention= |needs-image= |type= |details= |location= |topic= }} which uses inline, with this:
{{WikiProject AfroCreatives |category= |listas= |class= |importance= |auto= |attention= |needs-image= |type= |details= |location= |topic= }}
which doesn't. --Redrose64 🌹 (talk) 12:37, 4 June 2024 (UTC)
Got it. So I think in this case we do not want "inline", so this should be good to go — Martin (MSGJ · talk) 17:15, 4 June 2024 (UTC)
Any luck with this?   ~ Tom.Reding (talkdgaf)  12:42, 26 July 2024 (UTC)
Think it was deployed ages ago - are you not seeing it? — Martin (MSGJ · talk) 19:54, 5 August 2024 (UTC)
Seems Pppery reverted the edits here. Gonnym (talk) 19:59, 5 August 2024 (UTC)
Ah, didn't realise that. My understanding is that all these category issues were resolved so I have redeployed the code. — Martin (MSGJ · talk) 20:18, 5 August 2024 (UTC)
{{Looks |great=!}}   ~ Tom.Reding (talkdgaf)  10:29, 6 August 2024 (UTC)
Reverted again by Timrollpickering. Please can you explain what problems you are seeing? — Martin (MSGJ · talk) 15:04, 7 August 2024 (UTC)
See Wikipedia:Village pump (technical)#WikiProject templates category redirect mess for the various category redirects this has impacted. Several are being fixed through renames. Timrollpickering (talk) 14:13, 8 August 2024 (UTC)
Thanks for the note. I think I will redeploy the code but populate a tracking category instead of non-existent category so we can check for issues. — Martin (MSGJ · talk) 20:25, 8 August 2024 (UTC)
Does the olive text-to-background contrast really pass accessibility here, let alone on the gray background? —  HELLKNOWZ  TALK 15:20, 7 August 2024 (UTC)
If you think this is an issue, then I would suggest you discuss at mw:Extension talk:SyntaxHighlight — Martin (MSGJ · talk) 07:00, 9 August 2024 (UTC)

Urgent: Please fix this template for printed content Module:WikiProject banner/sandbox/styles.css.

Firstly, apologies for writing in English if this is not your first language (this is an automated message).

This template has been detected as one of 436 pages using styles that break the page when printed when the user is using dark mode. The fix is very straightforward - all your styles relating to dark mode must be scoped to. Since there is a high risk of this templates being copied to other wikis it is important this notice is acted on ASAP.

To fix this:

  1. Update `@media (prefers-color-scheme: dark` to `@media screen and (prefers-color-scheme: dark`
  2. Wrap any styles relating to `html.skin-theme-clientpref-night` in `@media screen`

If this message has not been acted on in 7 days, this will be fixed by an automated script. Thank you for your help fixing this important issue.

For any questions feel free to ask them at phab:T369874.

Jon (WMF) (talk) 18:22, 2 August 2024 (UTC) on behalf of the web team.

I've syncrhonised this sandbox with the live version, which should have fixed these issues. Gonnym: you may want to reapply your changes to the sandbox at some point — Martin (MSGJ · talk) 10:29, 6 August 2024 (UTC)
I'll pass. Gonnym (talk) 10:31, 6 August 2024 (UTC)
I've added back the css code to the styles sheet. Perhaps you wouldn't mind checking the code and making sure everything looks okay, and I will deploy — Martin (MSGJ · talk) 20:43, 11 August 2024 (UTC)
The examples at Module talk:WikiProject banner/testcases look the same between the live and sandbox versions, so it seems so. The Class mask tests have some fails but I'm assuming that is from something else. Gonnym (talk) 21:03, 11 August 2024 (UTC)
Yeah, the class mask tests were all copied from Template:Class mask and there have been many changes since then. So the tests are outdated and probably need removing. — Martin (MSGJ · talk) 08:37, 16 August 2024 (UTC)

Responsible editing

Can we please reduce the churn on a module with 11 million transclusions? I pushed back when @Pppery wanted to fully protect the module because I thought template editors could be trusted to edit responsibly, but now I'm thinking he was right. Can all edits be sandboxed and tested prior to deploying. Anything less than urgent should wait in the sandbox for a more substantive edit. We should be at the point where we can make an update to the live module once every 2-3 months — Martin (MSGJ · talk) 08:59, 20 August 2024 (UTC)

Renaming categories

After a request at WP:CFDS, Category:Top-importance Start-Class Palaeontology articles is supposed to be renamed to Category:Start-Class Palaeontology articles of Top-importance. Am I correct that this module automatically handles categorizing the pages? I feel like it did at one point? When I attempted to move the category, Talk:Paleontological site was no longer in Category:Top-importance Start-Class Palaeontology articles (good) but was also not in Category:Start-Class Palaeontology articles of Top-importance (bad). There are also a bunch of similar categories at WP:CFDW in the same situation.

Courtesy link to {{WikiProject Palaeontology}}, if that helps.

Any help would be appreciated :) Best, HouseBlaster (talk · he/they) 20:19, 23 August 2024 (UTC)

You will need to update |QII_FORMAT=C T of I in Template:WikiProject Palaeontology. Note that the module is set up so these categories are only populated when they exist, so once you move the category they should start filling up again — Martin (MSGJ · talk) 20:38, 23 August 2024 (UTC)
Thank you so much!! Not sure how I missed that… HouseBlaster (talk · he/they) 21:01, 23 August 2024 (UTC)

Redirects not being added to PIQA category

I notice that on Talk:Mount Gorton (Mount Gorton redirects to Wilson Hills), all 3 WikiProjects are classified via 3 |class=Stub, {{WPBS}} is not, and Talk:Mount Gorton is not added to Category:Pages using WikiProject banner shell without a project-independent quality rating (0). Could redirects be made to be included in the category, and eventually corrected? And any/all other page types also being omitted?   ~ Tom.Reding (talkdgaf)  13:28, 1 July 2024 (UTC)

It is not in that category because it is a redirect and doesn't need a quality rating. The |class=stub is just ignored on such pages. What needs to be corrected? — Martin (MSGJ · talk) 14:15, 1 July 2024 (UTC)
Since Talk:Mount Gorton refers to a redirect, |class=Stub should be removed from the 3 WikiProjects.
I see now that Pages using WikiProject banner shell without a project-independent quality rating is not an appropriate category name for such cases (as it implies they need a rating), but I still think it would be worth tracking these pages that use unnecessary quality ratings.   ~ Tom.Reding (talkdgaf)  14:53, 1 July 2024 (UTC)
In that case it should probably be in Category:WikiProject banners with redundant class parameter as the class stub is redundant (and incorrect, as redirects don't have ratings). Gonnym (talk) 15:01, 1 July 2024 (UTC)
Perhaps we could rename to Category:WikiProject banners with ignored class parameter? — Martin (MSGJ · talk) 15:06, 1 July 2024 (UTC)
"Redundant" seems most appropriate for proper articles which have a rating both inside a WikiProject and the shell.
"Ignored" seems most appropriate for these redirects (and other similar pages) which have irrelevant class parameters.   ~ Tom.Reding (talkdgaf)  15:15, 1 July 2024 (UTC)
They are the same in that the class parameter may safely be removed without having any effect. Do we need two separate categories? — Martin (MSGJ · talk) 15:42, 1 July 2024 (UTC)
With the speed at which these categories are being cleared, I'd say we don't. Less categories to watch. Gonnym (talk) 16:13, 1 July 2024 (UTC)
The way that the pages in these 2 would-be categories are fixed is different. In 1, WPBS's |class= is kept. In the other, WPBS's |class=, if found, is removed. Someone working on these categories in the future might not know to check the redirect-status of the page before proceeding, and perform the wrong operation.
But, if there is to be only 1 category to contain both of these cases, then I think "unnecessary" is better, as it can describe both "redundant" & "ignored" ~ Category:WikiProject banners with unnecessary class parameter. 2nd choice would be "ignored". With category text describing this distinction, regardless of the chosen descriptor.   ~ Tom.Reding (talkdgaf)  16:27, 1 July 2024 (UTC)  ~ Tom.Reding (talkdgaf)  16:42, 26 August 2024 (UTC)

Warnings

I would like to add some prominent warnings when people try to use the |class= parameter in a project banner instead of in the banner shell template

  1. If {{WikiProject banner shell}} is already on the page (but without a |class= parameter), then the message will say something like Please add the quality rating to the WikiProject banner shell instead of this project banner
  2. If {{WikiProject banner shell}} is not on the page yet, then the message will say something like Please add the WikiProject banner shell template to this page and then add the quality rating to that template

I'm sure the wording could be improved. What do you think? — Martin (MSGJ · talk) 12:08, 10 June 2024 (UTC)

Please add {{WikiProject banner shell}} to this page and add the quality rating to it. maybe something like this? Regardless, link the banner shell template. I'm in favor of the warning. Gonnym (talk) 21:38, 10 June 2024 (UTC)
Yep, probably a link a WP:PIQA somewhere in there too — Martin (MSGJ · talk) 21:39, 10 June 2024 (UTC)
This should be expended to any parameter we migrate to the shell, like |listas= do deal with redundant, duplicate or conflicting data. Gonnym (talk) 16:20, 11 June 2024 (UTC)
This is now coded on the sandbox. Example of the first message can be seen at Module talk:WikiProject banner/testcases#Globally unassessed. the second message below — Martin (MSGJ · talk) 10:24, 3 July 2024 (UTC)
WikiProject iconCycling B‑class
WikiProject iconThis article is within the scope of WikiProject Cycling, a collaborative effort to improve the coverage of cycling on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
BThis article has been rated as B-class on Wikipedia's content assessment scale.
???This article has not yet received a rating on the project's importance scale.

Okay this is ready to go, but I will wait for Category:Pages using WikiProject banner shell without a project-independent quality rating (0) and Category:Articles with WikiProject banners but without a banner shell (45) to be emptied first to avoid ugly warnings on so many pages — Martin (MSGJ · talk) 09:35, 4 July 2024 (UTC)

Note: this is now deployed — Martin (MSGJ · talk) 12:17, 16 August 2024 (UTC)
Is it too late for me to object to this? As I said at the template talk page, something like this is just dumb; if we are going to force people to use the banner shell, then we should integrate it into every WikiProject banner automatically. I don't mind giving a warning if there's already a WPBS on the page, since it's a "hey, this is here, please put your banner in the right place", but for a page with no shell it shouldn't have a warning. (please do not ping on reply) Primefac (talk) 21:26, 17 August 2024 (UTC)
What Primefac said. On talk pages other than the main Talk: space, people should not be forced to use a WPBS, particularly when there is only one WP banner, because the autodetection of class is pretty much universal. --Redrose64 🌹 (talk) 07:29, 18 August 2024 (UTC)
The error can probably be removed from the user space. Other than in user space (which the updated code isn't placing in Category:WikiProject banners without banner shells (pages there need to be purged to reflect the update), so will not be relevant here), almost all pages have already been placed inside the banner shell, so any change at this point is purely disruptive, in addition of course, to the fact that no ones owns project pages so no one is forced into anything. Having the shell, even for one template, provides a consistent look across the entire project and allows any future update (which might be relevant to pages with a single template), to have an immediate effect. Gonnym (talk) 07:43, 18 August 2024 (UTC)
no ones owns project pages so no one is forced into anything - by that logic, we should not be forced to use WPBS for a single banner by having big warning sign about it. And just to reiterate (and expand) on what I said above - I don't mind the warning if WPBS is already there (because that makes sense) and I don't care if a bot goes around adding WPBS (even for pages that have a single banner), my only concern is the massive warning given if WPBS isn't on the page already. Primefac (talk) 10:40, 18 August 2024 (UTC)
(No it's not too late to object!) We certainly can (and should) remove the message from non-article pages. For a start the message is incorrect, because these pages are detected automatically so don't even have a |class= parameter that needs transferring. What about mainspace though? We have no efficient method (that I know of) to detect the number of banners on a page, so we have to treat one banner the same as 8 banners. In mainspace we absolutely do want WPBS on every talk page. We are now 18 months into the new system, and it seems that a little editor education is needed, which is what the warning is trying to do. — Martin (MSGJ · talk) 19:26, 18 August 2024 (UTC)
We also have a bot that, once the backlog is cleared, will fix/update any new pages that aren't following PIQA. Just a thought. It probably makes editors complacent (look how many dated maintenance tags get tagged by AnomieBOT every day instead of folks just putting the date, which is piss-easy) but that's why we have bots like this in the first place. Primefac (talk) 20:10, 18 August 2024 (UTC)
Yeah, the bot is good when it works. For some reason it is not clearing Category:Articles with WikiProject banners but without a banner shell very quickly — Martin (MSGJ · talk) 17:30, 19 August 2024 (UTC)
I have removed the warning (numbered 2 above) in the sandbox. Hopefully the bot will catch up with these soon — Martin (MSGJ · talk) 17:41, 19 August 2024 (UTC)
Deployed to live — Martin (MSGJ · talk) 14:45, 2 September 2024 (UTC)
Thanks. Primefac (talk) 14:52, 2 September 2024 (UTC)

Modifying the module so default values aren't needed to be set

The advantage of invoking the module directly from banner templates is that we don't need to add default values for many of the parameters, so code like |category = {{{category|}}} isn't needed as the module knows it received a parameter with that name. Removing the need to add default parameters like this will make the long and complex banner code easier (and cleaner) to read.

Currently we have 4 types of parameters (if I'm not mistaken):

  1. Parameters that all banners have and use the same parameter name.
  2. Parameters that all banners have but use various names.
  3. Parameters that some banners have but use the same name.
  4. Parameters that some banners have but use various names.

The change needed would be like this:

  • Group 1 is the ideal and easiest candidate to convert. Parameters in this group probably include |category= and |listas=.
  • Group 3 is also easy to convert. Instead of doing something like |class = {{{class|}}}, we can change to |class = yes. Parameters in this group probably include |class= and |importance=.
    • In some cases where the parameter is almost always used, the default can be yes anyways so only when it isn't needed, the banner should set |class = no, reducing the banner code even more.
  • For group 2 and 4, this change will make things more consistent across all banners so instead of something like |image-needed = {{{image|{{{image-needed|{{{needs-image|}}}}}}}}} it will be |image-needed = yes with only one of these names (or we could still leave all versions, messy but works).

Gonnym (talk) 11:13, 3 September 2024 (UTC)

Nice ideas. Just a few comments at this stage.
  • These templates follow a long-standing convention of using upper-case parameter names for configuration settings and lower-case parameter names for passing values. So perhaps |CLASS=yes would be more respectful of that convention, if we wish to retain it.
  • I would prefer to default to "no" in almost every case. There are already plenty of cases of editors using features that they don't actually need.
  • I can't think of any examples of group 2?
  • I suppose the module could check for all reasonable variants of parameter names, e.g. image, imageneeded, image-needed, etc. Or are you suggesting a harmonisation effort?
  • For group 4, we could do something like |TF_1=utah which would tell the module to check the |utah= parameter and link it to task force 1.
  • Currently the module does not look at any of the parent frame arguments (i.e. parameters passed from a page), it only looks at the frame arguments (i.e. parameters passed from the template), so this would need a fairly major restructure of the code
— Martin (MSGJ · talk) 11:25, 3 September 2024 (UTC)
  • #1: That can work and would also make the conversion smoother as both parameters can work until all banners are converted.
  • #2: A blanket no would be counter-productive here. class is used in almost all banners but a few. Having this line added to all of them instead of only the handful that don't need it is less ideal.
  • #3: Probably one word parameters, so something like |attention=.
  • #4: I'd prefer we harmonize on one name, yes. But that's my personal preference here. Having the module know all versions can work, but will be ugly and messy.
Gonnym (talk) 11:34, 3 September 2024 (UTC)
Ha, your edit to the sandbox will definitely not work without significant other changes! For example it would allow you to use features that the project does not even use. Let's start on a small scale with group 1.
  • listas - I would prefer to move all these to the banner shell and then delete from the banners. So let's work on tracking these instead?
  • substcheck - I have a feeling there is now a much better way to detect if a template has been substituted. So maybe look into that, and hopefully we can do without this parameter altogether.
  • category - this would be a good one to start with, and would prove the concept.
  • demo_page - this is undocumented, but very useful when testing to see how banners behave on different pages. It would be useful if we could use this parameter directly without having to pass through the template.
— Martin (MSGJ · talk) 19:22, 3 September 2024 (UTC)
The edit was just to see if the basic thing breaks (which it didn't so that's good news). If a project banner doesn't support a parameter (as in, the parameter isn't one of the default parameters, or isn't set to "on") then using it from a talk page shouldn't do anything other than place that parameter in the unknown parameter category. Gonnym (talk) 23:01, 3 September 2024 (UTC)

If we start using |CLASS=yes then it might be a good time to stop using |class= altogether, because all of the ratings should now be in the banner shell so this parameter is not needed. The only barrier to this is Category:Articles with conflicting quality ratings which is a massive barrier, and we have made almost no progress in resolving ... — Martin (MSGJ · talk) 07:42, 4 September 2024 (UTC)

Could you in the code sort the pages by the conflicting class? That would probably make it easier to see what issues can be solved with a bot run. Gonnym (talk) 08:34, 4 September 2024 (UTC)
Could sort by class, or alternatively the number of classes that it differs from the PIQA rating (e.g. if class=start and PIQA=B then difference=2). Or we could put use subcategories like Category:Articles with conflicting quality ratings that differ by 1 class, etc. — Martin (MSGJ · talk) 09:40, 4 September 2024 (UTC)
I'd prefer not a number as that doesn't give us any information to work with. A class can show us patterns. This Talk:1876 United States presidential election in Rhode Island, for example, is not a list. If we can single these out then we can start clearing them. Gonnym (talk) 09:58, 5 September 2024 (UTC)
Okay that's fine. But sorting by class is problematic before start/stub and fa/fl start with the same letters. What sort keys would you like to use? — Martin (MSGJ · talk) 11:32, 5 September 2024 (UTC)
It doesn't matter to me, as long as they are different. I'm also quite sure we won't have more than a handful of articles with FA/FL issues, if at all. Maybe place stub as 0. Gonnym (talk) 11:40, 5 September 2024 (UTC)
With this edit we could split out the category into different classes? — Martin (MSGJ · talk) 16:23, 7 September 2024 (UTC)
The subcategories of Category:Articles with conflicting quality ratings have now populated — Martin (MSGJ · talk) 14:36, 12 September 2024 (UTC)
Looking at the 3k pages at Category:List-Class articles with conflicting quality ratings. I think we can safely have a bot run and remove the pages marked as list from all pages except those in the format of "x in y" (Talk:1962 in anime). There might be some false positives, but that isn't something that can't be fixed manually when someone sees it. All the others aren't lists, but low-quality articles.
The pages in Category:GA-Class articles with conflicting quality ratings seem to be Military History articles tagged as "A". So in this case (and probably also in all other categories) we can decide to go with the higher tagged page, as an editor intentionally decided that article was that level (it's not our job here to check if we agree or not, just to fix the conflict). The stub pages can be double checked if the article itself still has a stub template, if it doesn't, it's not a stub. Gonnym (talk) 16:28, 12 September 2024 (UTC)
I like these suggestions — Martin (MSGJ · talk) 17:34, 12 September 2024 (UTC)

The code for using parent arguments for category and demo_page is now coded on sandbox, if you'd like to check it — Martin (MSGJ · talk) 21:09, 5 September 2024 (UTC)

Tested the category=no at Draft talk:Template:Test banner and looks good. Gonnym (talk) 15:47, 6 September 2024 (UTC)

living/blp on categories

Is Template talk:WikiProject banner shell/Archive 11#living/blp on categories not valid anymore? I see categories have started filtering into Biography articles without living parameter when living/blp parameters are not present. Do we really want/need to add living/blp to the ~500k cats under Category-Class biography articles?   ~ Tom.Reding (talkdgaf)  18:05, 9 September 2024 (UTC)

Seems a bit pointless to add that parameter to a category. Gonnym (talk) 19:17, 9 September 2024 (UTC)
And templates. The maintenance burden will be massive.   ~ Tom.Reding (talkdgaf)  19:24, 9 September 2024 (UTC)
Should we also exclude disambiguation pages and redirects? — Martin (MSGJ · talk) 22:37, 10 September 2024 (UTC)
No, I don't think mainspace dabs & #Rs should be excluded. If they were excluded, then they could slip through to an easy circumvention of WP:NOINDEX.
Now that you mention it...ideally, it'd be nice from a maintenance perspective if dabs & #Rs inherited their target's status, if it exists (for cases where both the dab/#R and its target are tagged with {{WP Bio}}).   ~ Tom.Reding (talkdgaf)  08:07, 11 September 2024 (UTC)
You mean that if an article is a GA, then the dab page should be set to GA? Gonnym (talk) 08:48, 11 September 2024 (UTC)
Gonnym, we're talking about the |blp= or |living= parameters here. I'm not sure inheriting the status of the target would be appropriate. For example Matt Doherty Jr. redirects to the article on his father Matt Doherty Sr.. The former is alive but the latter is not — Martin (MSGJ · talk) 08:50, 11 September 2024 (UTC)
Inheritance could be the weak default, as long as |blp=/|living= are blank, but perhaps able to be forced with |blp=inherit/|living=inherit. Values of yes|no etc. would override any inheritance.   ~ Tom.Reding (talkdgaf)  09:15, 11 September 2024 (UTC)
I can't understand why you would want to use the living parameter on a disambiguation page. In almost every case there will be some people living and some not. There is also no content on a dab page, so little cause for BLP concerns — Martin (MSGJ · talk) 07:59, 19 September 2024 (UTC)
I may be straying out of my depth, but any dab with a living main/1st target could/should conceivably use |blp=yes, for example Talk:Joey Lawrence (disambiguation), Talk:Sai Kumar, etc. I'm surprised Talk:Madonna (disambiguation) doesn't even use {{WP Bio}}, but so be it.   ~ Tom.Reding (talkdgaf)  13:12, 19 September 2024 (UTC)
This was an unintended consequence of a new module to check parameters Module:Check blp parameter. It should be fixed now — Martin (MSGJ · talk) 19:43, 9 September 2024 (UTC)

If a page has |blpo=yes then presumably it should not be in Category:Biography articles without living parameter, correct? — Martin (MSGJ · talk) 08:55, 11 September 2024 (UTC)

The wording of Template:WikiProject Biography#Living people, active politicians and other BLP issues under |blpo= says "It can only be used if |living=no", so I don't think |blpo=yes on its own is enough to exclude it from Category:Biography articles without living parameter. I don't know if that dual requirement is a requirement of the previous template coding/logic, or if it was intended to be that way regardless. It does seem redundant to supply |living= for either |living=no|blpo=yes or |living=yes|activepol=yes, but I've never asked nor looked through WT:Biography/{{WP Bio}} about this.   ~ Tom.Reding (talkdgaf)  10:03, 11 September 2024 (UTC)

Can anyone help wit Category:Pages using WikiProject Biography with conflicting living parameter? I took the weekend off, and now it's got 0 pages in it — Martin (MSGJ · talk) 07:38, 16 September 2024 (UTC)

I've fixed a few but I noticed that a bot can easily fix most if not all of these and just needs to check if a page is in that category and also in Category:Living people. Gonnym (talk) 09:12, 16 September 2024 (UTC)

False positive demo

@MSGJ: I think your recent edits to this module might have caused it to treat real transclusions as demo. A box with the text

Categories:

is showing up underneath WikiProject banners on talk pages, e.g. WT:NFC. (This includes banners that are inside a banner shell, but tracking category issues aren't as urgent.)

jlwoodwa (talk) 06:11, 8 September 2024 (UTC)

Looks like a problem with the inactive banners. I'll check ... — Martin (MSGJ · talk) 07:15, 8 September 2024 (UTC)
Think I've fixed it — Martin (MSGJ · talk) 08:05, 8 September 2024 (UTC)
The inactive banners seem to be populating the quality categories now. For example see Talk:By the Way Tour. -- WOSlinker (talk) 10:28, 8 September 2024 (UTC)
Arghh noted. Fix in sandbox — Martin (MSGJ · talk) 12:47, 8 September 2024 (UTC)
Inactive banners are now missing categorization completely. Talk:Sudbury school should be in at least Category:Articles with WikiProject banners but without a banner shell. Gonnym (talk) 22:36, 9 September 2024 (UTC)
Actually I'm not sure that category ever worked on inactive banners. It probably should, but turning categorisation on selectively is going to be a pain — Martin (MSGJ · talk) 08:07, 10 September 2024 (UTC)
It did work, as that page was (currently still is) in the category (that's how I found it). Gonnym (talk) 08:28, 10 September 2024 (UTC)
I can't explain this. Will have to dig deeper into the code. The problem arises because of a compromise to display the quality assessments on these banners but without the categories. It would be much simpler if we could remove all the assessments from inactive banners, but some people found them useful. Perhaps this is less of an issue now with PIQA. — Martin (MSGJ · talk) 09:54, 10 September 2024 (UTC)
I reverted to the 5th September version of the code in the sandbox and Talk:Sudbury school is still not in that category. So I don't understand why you found it in that category, unless it was from a much older version of the code. I agree it would be better if it was in that category, but the way the code is currently set up is either no categories work or all of them work. The category opt-out mechanism would get rather messy otherwise. So this is my proposal: we stop displaying the class on inactive banners. Then I won't need to suppress the categories on inactive banners, and these tracking caegories should then work properly — Martin (MSGJ · talk) 21:41, 17 September 2024 (UTC)
Fix is on the sandbox — Martin (MSGJ · talk) 14:00, 20 September 2024 (UTC)

 Fixed. I have tested this as much as I can, and it seems to work now — Martin (MSGJ · talk) 09:17, 23 September 2024 (UTC)

Moving listas to banner shell

I have coded some tracking categories to help us ensure that all listas values are moved into the banner shell template. I have created the following tracking categories:

  1. Category:WikiProject banners with redundant listas value (5)
  2. Category:WikiProject banners with listas value which needs moving to banner shell (109)
  3. Category:WikiProject banners with conflicting listas value (0)

My plan to deal with these is:

  1. Parameter removed by bot (User:Qwerfjkl has offered to use his bot)
  2. Parameter moved by bot (I think User:Cewbot should already do this)
  3. Human review needed. (These should already be tracked in Category:Pages with DEFAULTSORT conflicts and possibly cleared out by other editors working through this category.)

Any comments? — Martin (MSGJ · talk) 21:57, 5 September 2024 (UTC)

When completed and categories emptied, I think the code can be simplified to just have "Category:WikiProject banners with listas value which needs moving to banner shell", when listas is used. Gonnym (talk) 21:38, 6 September 2024 (UTC)
Absolutely. And after a while, we could just remove the parameter entirely and then they will turn up in the unknown parameter categories — Martin (MSGJ · talk) 11:22, 7 September 2024 (UTC)

Planning to remove Category:WikiProject banners with conflicting listas value because they will be picked up by Category:Pages with DEFAULTSORT conflicts — Martin (MSGJ · talk) 19:55, 22 September 2024 (UTC)

Martin, I don't understand this. Listas and defaultsort refer to the article page but the banner shell is on the talk page. Hawkeye7 (discuss) 00:29, 23 September 2024 (UTC)
You can sort any page, including talk pages. The banner sorts the page it's placed on. Gonnym (talk) 06:11, 23 September 2024 (UTC)

Category:WikiProject banners with listas value which needs moving to banner shell now just has some user pages in it. So we should be ready soon to remove the listas parameter entirely from this module. Then any remaining uses would be picked up by Category:WikiProject templates with unknown parameters Never mind, it is still populating — Martin (MSGJ · talk) 12:51, 25 September 2024 (UTC)

CSS background colors need corresponding colors for dark mode compliance

CSS background colors need corresponding colors for dark mode. I inserted a fix for at least some of them, but apparently I did not follow process. Sorry about that. I'll leave it to others. If you are sandboxing and troubleshooting, you can see if you have resolved the problems by checking the bottom of the "Page information" page for "Background color inline style rule exists without a corresponding text color" Lint errors. To verify the visual appearance, you can go to the "Appearance" section of the right-hand sidebar in Vector 2022 and choose "Dark" under "Color (beta)". Using Special:ExpandTemplates is helpful for locating stray instances of CSS background-color defined without a color. – Jonesey95 (talk) 14:05, 20 August 2024 (UTC)

I don't know much about this, but I added this to Module:WikiProject banner/sandbox/styles.css and then checked at Template:WikiProject France/testcases but it is still showing as having 2 lint errors, so not sure if that has helped or not. I am using Vector 2022 but I don't see the Appearance section in my browser so can't check that. I notice that there are several other styles which define background-color but not color. Is it safe to use black for all these? — Martin (MSGJ · talk) 12:09, 21 August 2024 (UTC)
Thanks. If you copy the template call into Special:ExpandTemplates and then search the resulting wikicode for "back", you should see
<td class="assess import import-Unknown" style="background:#DCDCDC">[[:Category:Unknown-importance France articles|???]]</td>
(which renders the box to the left of "This article has not yet received a rating"). That background needs a corresponding color. There are many instances like this in the code, though some of them exist only with specific combinations of parameters and values. I don't think that all of the background colors are in the templatestyles page, but I could be wrong. Here are a couple of places in the code where I matched a "background" assignment with a "color" assignment and was reverted. Assigning "color:black" should be fine until someone wants something more sophisticated in dark mode. – Jonesey95 (talk) 14:13, 21 August 2024 (UTC)
Yes but I added color:black to the assess class so that should cover that particular part — Martin (MSGJ · talk) 18:14, 21 August 2024 (UTC)
I expect that the Linter is confused about |style= defining the background-color while the color is defined in the class. Can the background color be moved to the CSS, or the color be moved to the style? I will also ask our WMF staffer who has been communicating with us about this new Linter flag, because it looks to me as if the td element has both a color and background-color and should not register as an error. – Jonesey95 (talk) 20:39, 21 August 2024 (UTC)
Yes I expect we could define all the background colours in the stylesheet rather than in the config file. We would just need to define each class/importance as a separate class. I could look at this if you think it would help — Martin (MSGJ · talk) 15:50, 22 August 2024 (UTC)
I haven't had a response yet at WT:Linter, but it has been less than 24 hours, so some patience is still in order. If you think that moving more styles to the CSS stylesheet is a good long-term move anyway, your development time probably won't be wasted. – Jonesey95 (talk) 18:07, 22 August 2024 (UTC)
I received a response at WT:Linter. I am not sure if it helps; it's not a quick fix for me, but someone may want to have a go at it and fix dark mode for a few million pages. – Jonesey95 (talk) 23:36, 4 September 2024 (UTC)
Yes we can do this. I can work on it next week perhaps. I have followed up on that thread to clarify something — Martin (MSGJ · talk) 09:41, 6 September 2024 (UTC)

Just to note that I have made a start on this. The background colors for importance have now been moved into the stylesheet. I will continue with the class colors shortly — Martin (MSGJ · talk) 14:09, 27 September 2024 (UTC)

@Jonesey95 finished coding this on the sandbox. Would be grateful if you could test it works, and also advise on whether the linter errors have now gone away? — Martin (MSGJ · talk) 22:01, 27 September 2024 (UTC)
The sandbox version at Template:WikiProject France/testcases is reporting zero Linter errors. It appears to be using the sandbox version of all relevant modules and templates, so I think that the new coding is actually being used in the sandbox example cases. I do note a number of appearance changes, including a collapsed section in the sandbox that is not collapsible in the live version, and a note about importance in the sandbox version. I am assuming that those are also desirable changes, along with the color/background-color fixes. Thanks for working on this. – Jonesey95 (talk) 22:13, 27 September 2024 (UTC)
Thank you. Yes, the other changes you observe are due to (a) sandbox not in sync with live, and (b) changes to importance we are discussing below — Martin (MSGJ · talk) 07:32, 28 September 2024 (UTC)

Before deploying this, I would like to check a few details:

  • Is a comma the correct way to give the same definition to two different classes, e.g. .class-fa, .class-fl {background-color: #BED3FF;}
  • If a class is used but not defined in the stylesheet, will it give an error or will it just be ignored?
  • If two different classes are used with conflicting styles, will the one which is applied later take precedence?

I might think of some more questions — Martin (MSGJ · talk) 07:36, 28 September 2024 (UTC)

Comma is correct, this is the syntax for a list of selectors - if either selector matches an element, the declaration-list is applied to that element.
Classes are merely ways of giving convenient labels to one or more elements. The HTML 5.2 spec isn't too good on this, but the HTML 4.01 spec is better:
The class attribute ... assigns one or more class names to an element; the element may be said to belong to these classes. A class name may be shared by several element instances. The class attribute has several roles in HTML:
  • As a style sheet selector (when an author wishes to assign style information to a set of elements).
  • For general purpose processing by user agents.
So a class name that is used in the page source has no requirement to be used in a style sheet, and vice versa. The same goes for ids.
Your third question is more complicated. It's partly down to the order in which HTML elements are nested, partly down to the order in the style sheet, and partly down to what is known as "specificity". Assume that we have a style sheet like this:
/* Style sheet example 1 */
.bar { background-color: pink; color: black; }
.foo { background-color: lightblue; color: black; }
and HTML like this:
<!-- HTML example 1 --><span class=foo><span class=bar>Some text</span></span>
the words "Some text" will show on a pink background because the element of class bar is nested inside the element of class foo, and the order of the two rules in the style sheet is immaterial. But if we have HTML like this:
<!-- HTML example 2 --><span class="foo bar">Some text</span>
and style sheet example 1, the words "Some text" will show on a lightblue background; and if we exchange the rules in the style sheet:
/* Style sheet example 2 */
.foo { background-color: lightblue; color: black; }
.bar { background-color: pink; color: black; }
the words "Some text" will now show on a pink background because the second rule overrides the first. For these two cases, whether we use HTML example 2 or this:
<!-- HTML example 3 --><span class="bar foo">Some text</span>
makes no difference, because the order of class names in a class= attribute is immaterial. Now assume that the style sheet is now:
/* Style sheet example 3 */
span.bar { background-color: pink; color: black; }
.foo { background-color: lightblue; color: black; }
and using HTML example 2 or 3, the words "Some text" will show on a pink background because the selector of the first rule has higher specificity than the selector of the second rule.
HTH. --Redrose64 🌹 (talk) 12:45, 28 September 2024 (UTC)
Interesting! I had always assumed that <span class="foo"><span class="bar"> was equivalent to <span class="foo bar"> — Martin (MSGJ · talk) 18:33, 28 September 2024 (UTC)
Sometimes, but not always. Consider the rule added in this edit. It will be applied to
<!-- HTML example 4 --><span class=wpb><span class=assess>HTML example 4</span></span>
which emits "HTML example 4", but not to
<!-- HTML example 5 --><span class="wpb assess">HTML example 5</span>
which emits "HTML example 5", or to
<!-- HTML example 6 --><span class=assess><span class=wpb>HTML example 6</span></span>
which emits "HTML example 6". This is because the space in the middle of .wpb .assess is a descendant combinator: in HTML example 4 we have one span that is the descendant of the other, but in HTML example 5 we have only one span, that is of class assess but is not the descendant of any element of class wpb. --Redrose64 🌹 (talk) 20:12, 28 September 2024 (UTC)

listas

Is there a way to set separate sort keys for different wikiprojects? I get the general sortkey from {{WPBS}}, but that doesn't always seem the best for each wikiproject contained within -- 65.92.246.77 (talk) 20:26, 2 October 2024 (UTC)

No, it just uses DEFAULTSORT which sets the sort key for all categories — Martin (MSGJ · talk) 20:48, 2 October 2024 (UTC)
The standard doc follows below. --Redrose64 🌹 (talk) 21:34, 2 October 2024 (UTC)
  • listas – This parameter, which is the equivalent of the DEFAULTSORT sortkey that should be placed on all biographical articles, is a sortkey for the article talk page (e.g. for John Smith, use |listas=Smith, John so that the talk page will show up in the S's and not the J's of the various assessment and administrative categories). This is important because it is one source used by those who set DEFAULTSORT on the article; consider also setting the DEFAULTSORT for the article when setting this parameter. For more information about this, please see Wikipedia:Categorization of people § Ordering names in a category.
    If the article is using {{WikiProject banner shell}} then it is preferable to add |listas= to that template instead of a project banner template. Putting the parameter on more than one template is not required.

Is there a way to set a task force as inactive within this module?

See Template talk:WikiProject Cricket#edittemplateprotected, where an editor says The Wikipedia:WikiProject Cricket/Somerset cricket task force is inactive now. Should be marked as inactive in the banner as well. I did not see a way to do this in the documentation. – Jonesey95 (talk) 17:14, 3 October 2024 (UTC)

I have seen this done in a variety of ways, but not sure what the neatest method is — Martin (MSGJ · talk) 11:56, 4 October 2024 (UTC)

Tracking category proposed

There is a proposal to track uses of WikiProject banners which are placed outside the banner shell. The coding might be complex but I think this would be really useful — Martin (MSGJ · talk) 17:38, 29 June 2024 (UTC)

Originating discussion @ User talk:Kanashimi/Archive 1#Cewbot is moving WikiProject banners outside of WPBS.   ~ Tom.Reding (talkdgaf)  18:12, 9 July 2024 (UTC)
If there is such a tracking category, my bots will automatically repair them by default. Kanashimi (talk) 08:50, 10 July 2024 (UTC)
No progress on this, because I haven't figured out the code needed to achieve it — Martin (MSGJ · talk) 07:11, 28 August 2024 (UTC)
Could there be a check after Articles with WikiProject banners but without a banner shell is assigned, to getContent() on the current page and look for {{WikiProject banner shell}} and its redirects? If both those conditions are met, then the banner should be outside WPBS. If possible, Module:Template redirect regex can be used to centrally store/maintain that regex.   ~ Tom.Reding (talkdgaf)  12:31, 7 September 2024 (UTC)
How would you check if the template was inside or outside of the banner shell? That tracking category just checks for the existence of the banner shell on the page — Martin (MSGJ · talk) 12:57, 7 September 2024 (UTC)
I see. As luck would have it, I was testing Articles with WikiProject banners but without a banner shell on a probably-misbehaving {{WikiProject Occupations}} (no reason other than that's what was in the nearest browser window), which displayed the cat when outside of the WPBS. {{WikiProject Occupations}} in fact displays the cat (one way or another) regardless of its position relative to WPBS.
Yeah, I can't think of an easy & low-overhead way of doing this either, unless there's an easy way to transform all templates on a page to their canonical titles.   ~ Tom.Reding (talkdgaf)  17:06, 7 September 2024 (UTC)
I have asked for some help at User talk:Aidan9382 — Martin (MSGJ · talk) 21:55, 7 September 2024 (UTC)

I have written some code on my sandbox which might work. If you type {{#invoke:Sandbox/MSGJ|main|WikiProject Finland}} it will look at the content of the current page and return ...

  • true if it finds {{WikiProject Finland}} anywhere outside of the banner shell,
  • true there is no banner shell (so the template cannot be in a shell)
  • false if it is inside the banner shell,
  • false if {{WikiProject Finland}} is not found on the page (perhaps a template redirect has been used, but we have no way to check for these)

Some testing would be appreciated — Martin (MSGJ · talk) 09:04, 19 September 2024 (UTC)

  1. %b{} very cool!
  2. escaping %| in Lua is unnecessary
  3. for mw.ustring.find(content_without_shell, '{{%s*' .. banner_name .. '%s*[%|}]') to work for all WikiProjects, escaping special characters in banner_name will be necessary to find {{WP New York (state)}}, {{WP C/C++}}, and the like. Periods shouldn't need escaping though, since they'll just match themselves.
  ~ Tom.Reding (talkdgaf)  16:58, 19 September 2024 (UTC)
Escaping these magic characters is beyond me, I'm afraid. I have tried and failed — Martin (MSGJ · talk) 21:16, 19 September 2024 (UTC)
Got it working! Check your sandbox for details.   ~ Tom.Reding (talkdgaf)  00:46, 20 September 2024 (UTC)
That's great. I just wish I understood what you've done there. Last time I did this on the authority control module, I had to use three % characters before the magic character (example) so I don't know how you have done it with just two — Martin (MSGJ · talk) 08:02, 20 September 2024 (UTC)
Ah, there are additional layers of evaluation to contend with in AC, which require more % (%%%% evaluates to %% evaluates to %).
Also, literal "%" need to be first in special_chars, or else you end up escaping them recursively an unexpected/unwanted # of times.   ~ Tom.Reding (talkdgaf)  11:10, 20 September 2024 (UTC)
Ah, good point. We should make the first character case insensitve, i.e. "wikiProject Biography" works the same as "WikiProject Biography" — Martin (MSGJ · talk) 13:51, 20 September 2024 (UTC)

 Done and Category:WikiProject banners placed outside the banner shell (6) created — Martin (MSGJ · talk) 09:19, 23 September 2024 (UTC)

I think we should restrict this to main talk namespace only, because there are lots of false positives in project space — Martin (MSGJ · talk) 11:16, 23 September 2024 (UTC)
You could maybe do something like @Galobtter did with Module:Is infobox in lead and check if the banner is at the start of the page. Maybe Galobtter could help with tweaking his previous code. Gonnym (talk) 11:20, 23 September 2024 (UTC)
Not sure how that would help in this case. Some of the banners were are trying to find are tucked further down the page (example) — Martin (MSGJ · talk) 11:25, 23 September 2024 (UTC)
Ah, then it won't help there indeed. Gonnym (talk) 11:41, 23 September 2024 (UTC)
That appears to have been a Cewbot bug, followed by an incomplete fix by Widefox (talk · contribs). --Redrose64 🌹 (talk) 16:07, 23 September 2024 (UTC)
Hmm, looks like WP:RATER didn't play well with the Cewbot buggy rating. Widefox; talk 18:16, 23 September 2024 (UTC)
Could we ignore just the namespace(s) with the most FPs instead?   ~ Tom.Reding (talkdgaf)  14:04, 23 September 2024 (UTC)
Let's ignore any namespace where there might feasibly be banners used as examples or for testing — Martin (MSGJ · talk) 15:34, 23 September 2024 (UTC)

Unmatched close-bracket error

Probably related to the recent update. This helped, sort of - it moved the error to a different location, but it's still present. The problem comes from [[]] in |comments=[[]]. The number in the error refers to the horizontal position of the error, and not a Unicode character #.   ~ Tom.Reding (talkdgaf)  15:37, 23 September 2024 (UTC)

This is bad, and I have no idea how to fix it. @Aidan9382 - any insight? The error can be seen on Talk:1993 in Lithuanian football and some other pages. We may have to remove this code if we can't find an urgent fix — Martin (MSGJ · talk) 07:38, 24 September 2024 (UTC)
@MSGJ: apologies, I've been busy. The page you link is no longer showing the issue - is the problem fixed, or is it still around in some other form, or was the change reverted? Aidan9382 (talk) 16:29, 24 September 2024 (UTC)
I think we fixed it. It was a bit urgent so I didn't wait for your reply! Thanks — Martin (MSGJ · talk) 12:20, 25 September 2024 (UTC)
Your fix seems to have worked Tom. Where do you still see the error? — Martin (MSGJ · talk) 07:44, 24 September 2024 (UTC)
Oops, I forgot to create/check Template:WikiProject Lithuania/sandbox... Excellent!   ~ Tom.Reding (talkdgaf)  10:29, 24 September 2024 (UTC)

Simplification

@Tom.Reding: please check this possible simplification [1] — Martin (MSGJ · talk) 12:19, 25 September 2024 (UTC)

This version also has the advantage of not falsely flagging Talk:100% (band) — Martin (MSGJ · talk) 12:27, 25 September 2024 (UTC)
Interesting...using the loop method, banner_name_escaped:gsub() was the problem, since it's equivalent to string.gsub(), which returns a '' when trying to match the literal '%'. mw.ustring.gsub() however, behaves as expected, returning '%%'. This distinction goes away when using a custom [set] though, and all of those 3 gsub calls return the desired '%%'.
I generally don't like using mystring:gsub(), since I can't be bothered to remember which .gsub it's calling, and sometimes it matters.   ~ Tom.Reding (talkdgaf)  14:24, 25 September 2024 (UTC)
The [set] method is definitely faster and less error-prone, so win-win.   ~ Tom.Reding (talkdgaf)  14:25, 25 September 2024 (UTC)

Processing pass done

I've done a pass through of Category:WikiProject banners placed outside the banner shell and have cut the number down by about half. Most of the remaining entries are pages where the syntax for a banner is inside <nowiki> tags (e.g. to use as examples in talk page discussions). Harryboyles 03:25, 29 September 2024 (UTC)

Thanks Harry. I think we can remove the ones inside nowiki or html comments, by using Module:Wikitext Parsing. I will experiment in the sandbox — Martin (MSGJ · talk) 18:03, 29 September 2024 (UTC)
 Done. This module is not so good on performance, so perhaps when we have cleared out this category we should stop checking for this — Martin (MSGJ · talk) 20:29, 7 October 2024 (UTC)

Category:WikiProject banners placed outside the banner shell has been cleared. Thanks guys! — Martin (MSGJ · talk) 11:42, 9 October 2024 (UTC)

Template:WAP

Not sure about Template:WAP since the project isn't on this wiki, but if this should be kept, it should probably be converted to use this module (and renamed). Gonnym (talk) 19:38, 1 October 2024 (UTC)

Perhaps soft-redirects off-wiki should be set up at the standard WPP locations -- 65.92.246.77 (talk) 22:46, 19 October 2024 (UTC)
Do you mean on-wiki? — Martin (MSGJ · talk) 13:32, 20 October 2024 (UTC)
Yes, otherwise, the module wouldn't find the correct pages. -- 65.92.246.77 (talk) 18:06, 20 October 2024 (UTC)