Jump to content

Module talk:Wikitext Parsing

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Find out if template is inside another template[edit]

I am looking for an off-the-shelf method of determining if a template like {{WikiProject Cycling}} lies inside {{WikiProject banner shell}} or any of its redirects. Can this module's ParseTemplates function provide this efficiently? — Martin (MSGJ · talk) 09:05, 2 July 2024 (UTC)[reply]

ParseTemplates is not in the best shape last I remember, and it would probably need quite a bit of work to reliably determine something like that in most cases (there's a reason I've marked it as a beta feature, and even that might be a bit generous thinking about it now - really should get back into wikipedia and fix that some day).
In your specific case, though, I imagine it would work out of the box (though since there's no concept of a "parent" you would explicitly have to check the Children of any WPbs instead). However, due to how it works, ParseTemplates is designed for getting things as right as possible, which is probably overkill (and not very efficient) for what you describe. Might want to consider if there's an alternative solution (though what that would be I'm not sure - A basic :find() on the entirety of WPbs's text if that's available already in your case?). Aidan9382 (talk) 18:51, 2 July 2024 (UTC)[reply]
Wow, wasn't expecting a quick reply as I saw you were inactive for a couple of weeks. But glad to see you back! My goal is actually to find project banners which have been placed outside the banner shell (but I see my question was not very clear). So I will be looking to see if {{WikiProject Cycling ... }} lies in between {{WikiProject banner shell and its closing braces }} or not. This is probably a bit beyond my abilities — Martin (MSGJ · talk) 20:45, 2 July 2024 (UTC)[reply]
I'm inactive in the sense that I haven't had the motivation to do much proactively, but I'm still actively checking my watchlist and emails incase something comes up.
If you can pick up the entire text of the template for WikiProject banner shell on a page (Module:Template parameter value has getTemplate to get the text of a template, which you might already be using or might not be, I'm not sure), surely you could do a :find() on it for {{%s*[Ww]ikiProject Cycling%s*[|}]? This obviously doesn't account for strange scenarios like the template being on the page twice, but I don't think that's something the module should be reasonably expected to handle perfectly since there could be a number of wrong things going on there. Aidan9382 (talk) 20:53, 2 July 2024 (UTC)[reply]