Write article ← Previous revision Revision as of 03:47, 2 November 2009 Line 1: Line 1: + <noinclude>{{Wikipedia:Signpost/Template:Signpost-header|||}}</noinclude> + {{Wikipedia:Signpost/Template:Signpost-article-start|Project banner meta-templates|By ((User:Kirill Lokshin|Kirill Lokshin))|2 November 2009}} + + Almost everyone who has participated in a WikiProject is familiar with project banners—the ubiquitious templates that appear on article talk pages to indicate that an article is associated with a particular WikiProject. WikiProject banners have evolved from simply being a way to mark a project's scope and recruit new editors to a sophisticated system for tracking metadata about articles, such as assessment grades, review statistics, and areas needing further work. + + What many don't know is that almost all project banners are actually implemented through a single meta-template—the aptly named {{tl|WPbannerMeta}}. First created in February 2008, the meta-banner allows WikiProjects to easily construct very sophisticated banner templates without the need to reinvent—or even fully understand—the complex logic involved in implementing many of their more popular features. + + Today, we've asked ((User:happy-melon|happy-melon)), ((User:MSGJ|MSGJ)), and ((User:Road Wizard|Road Wizard)), three editors involved in maintaining the meta-banner, to answer a few questions about their work: + '''1. What is the history behind {{tl|WPbannerMeta}}? How did the idea of a meta-template for WikiProject banners come about?''' '''1. What is the history behind {{tl|WPbannerMeta}}? How did the idea of a meta-template for WikiProject banners come about?''' - :I wasn't involved with WikiProject banners at the time, but looking back through the archives it appears that the idea came from ((User:happy-melon|happy-melon)). I think the second comment by happy-melon in the conversation at ((Wikipedia talk:WikiProject Council/Archive 7#WikiProject banners)) answers this question quite well. ((User:Road Wizard|Road Wizard)) (((User talk:Road Wizard|talk))) + - : Yes, I wrote the original design for a meta-template for WikiProject banners, always with the expectation that it would grow and develop significantly as it became more widely utilised. The original reasons for wanting such an abstraction haven't changed: to allow WikiProjects to quickly and easily develop a project banner that 's useful to them, taking advantage of all the latest 'technology' and features that are always being developed, and conversely centralising the development and deployment of that functionality to allow important changes to be made with the minimum of effort. Features like the (( Wikipedia talk : Version 1.0 Editorial Team/Assessment/Archive 4#Implementation of the new C - Class | C - Class rollout )) , the ((Template:Tmbox|tmbox)) CSS classes, the (( Template talk: WikiProjectbannerShell /Archive 4 # new implementation of WikiProject banners |magic banner shell nesting )) , and countless other improvements to the way WikiProject banners are implemented, would have been infinitely easier to implement if we had already had the meta-template structure in place; as it was, we had to individually edit thousands of separate banners . As we approach the completion of the WPBM deployment (the conversion of {{tlx|WPBiography}} and {{tlx|WPIndia}} last week brings the total to 1,330, covering 99% of all banner templates, and 99.9% of talk page instances) such actions will become much easier in the future. ((User:happy-melon|<span style="color:forestgreen">'''happy'''</span>))‑((User talk:happy-melon|<span style="color:darkorange">'''melon'''</span>)) + : '''Road Wizard''': I wasn't involved with WikiProject banners at the time , but looking back through the archives it appears that the idea came from (( User : happy - melon | happy - melon )) . I think the second comment by happy-melon in the conversation at (( Wikipedia talk: WikiProject Council /Archive 7 #WikiProject banners)) answers this question quite well . + :'''happy-melon''': I wrote the original design for a meta-template for WikiProject banners, always with the expectation that it would grow and develop significantly as it became more widely utilised. The original reasons for wanting such an abstraction haven't changed: to allow WikiProjects to quickly and easily develop a project banner that's useful to them, taking advantage of all the latest 'technology' and features that are always being developed, and conversely centralising the development and deployment of that functionality to allow important changes to be made with the minimum of effort. Features like the ((Wikipedia talk:Version 1.0 Editorial Team/Assessment/Archive 4#Implementation of the new C-Class|C-Class rollout)), the ((Template:Tmbox|tmbox)) CSS classes, the ((Template talk:WikiProjectbannerShell/Archive 4#new implementation of WikiProject banners|magic banner shell nesting)), and countless other improvements to the way WikiProject banners are implemented, would have been infinitely easier to implement if we had already had the meta-template structure in place; as it was, we had to individually edit thousands of separate banners. As we approach the completion of the WPBM deployment (the conversion of {{tlx|WPBiography}} and {{tlx|WPIndia}} last week brings the total to 1,330, covering 99% of all banner templates, and 99.9% of talk page instances) such actions will become much easier in the future. '''2. How does the meta-template work? What functions does it support?''' '''2. How does the meta-template work? What functions does it support?''' - :Over time, the meta-template has developed so that it supports pretty much all functionality that WikiProjects could desire, from the simplest banners which are basically just message boxes, up to the most complicated which support features such as: + :'''MSGJ''' : Over time, the meta-template has developed so that it supports pretty much all functionality that WikiProjects could desire, from the simplest banners which are basically just message boxes, up to the most complicated which support features such as: :* Sub-projects or taskforces, :* Sub-projects or taskforces, :* B-class checklists, :* B-class checklists, Line 16: Line 25: :* Better support for priority scales (which are used by a significant minority of WikiProjects instead of an importance scale). :* Better support for priority scales (which are used by a significant minority of WikiProjects instead of an importance scale). :The most complicated banner template is probably {{tl|WPBiography}}, which is also the most used with ¾ million transclusions. This was converted to use the meta-template in early October 2009. :The most complicated banner template is probably {{tl|WPBiography}}, which is also the most used with ¾ million transclusions. This was converted to use the meta-template in early October 2009. - :We are constantly trying to find a balance between supporting as many functions as possible which projects will find useful, while not over-complicating the template which would make it harder for the majority of projects to use. For example, there are a few projects which like to include a to-do list for tasks on articles within their scope. As this is a relatively uncommon request, it is not worth supporting it in the main template; instead the extra code is "hooked" on, in the appropriate place and everyone is happy. — Martin <small>(((User:MSGJ|MSGJ)) · ((User talk:MSGJ|talk)))</small> + :We are constantly trying to find a balance between supporting as many functions as possible which projects will find useful, while not over-complicating the template which would make it harder for the majority of projects to use. For example, there are a few projects which like to include a to-do list for tasks on articles within their scope. As this is a relatively uncommon request, it is not worth supporting it in the main template; instead the extra code is "hooked" on, in the appropriate place and everyone is happy. '''3. How smooth has the deployment process been? Have projects readily adopted the new model? Have there been any particularly notable successes or failures?''' '''3. How smooth has the deployment process been? Have projects readily adopted the new model? Have there been any particularly notable successes or failures?''' - :What the deployment of WPBM has really highlighted for me is just how undersupported many of our WikiProjects are. In literally hundreds of cases, we found projects that were either totally inactive, or had no one maintaining their project banner. Most project banners were copied from existing projects, which is to be expected, but it was amazing to see just how many banners still contained references to their ancestors in links and category code. The deployment itself was very fluid, as we were also constantly adapting and improving WPBM itself as we encountered new banner features 'in the wild' that weren't currently supported. + :'''happy-melon''' : What the deployment of WPBM has really highlighted for me is just how undersupported many of our WikiProjects are. In literally hundreds of cases, we found projects that were either totally inactive, or had no one maintaining their project banner. Most project banners were copied from existing projects, which is to be expected, but it was amazing to see just how many banners still contained references to their ancestors in links and category code. The deployment itself was very fluid, as we were also constantly adapting and improving WPBM itself as we encountered new banner features 'in the wild' that weren't currently supported. :Converting {{tlx|WikiProject Australia}} was a big milestone for me. It was the first time we had dealt with such a large and active project, and such a complicated banner. The hooks infrastructure in WPBM (where we provide places where a banner can be arbitrarily extended with custom features) was really driven by that conversion, to handle the large number of taskforces. With that conversion complete, it made banners like {{tlx|AfricaProject}} very easy to convert. :Converting {{tlx|WikiProject Australia}} was a big milestone for me. It was the first time we had dealt with such a large and active project, and such a complicated banner. The hooks infrastructure in WPBM (where we provide places where a banner can be arbitrarily extended with custom features) was really driven by that conversion, to handle the large number of taskforces. With that conversion complete, it made banners like {{tlx|AfricaProject}} very easy to convert. - :As we expanded the deployment, we did encounter some issues with WPBM itself; some fundamental decisions that had been made very early on turned out to be mistakes. In particular, our choice of character for the 'default' parameter ((Template_talk:WPbannerMeta/Archive_2#Something_Wrong.3F|turned out)) to be a huge problem. The mechanics of what we do with this feature are quite complicated, but essentially we add an obscure character (we originally chose '''µ''') to many of the parameters as defaults, and then by voodoo magic we can tell the difference between when a banner uses a parameter like {{para|importance}} but an individual talk page just hasn't set it, and when the banner as a whole doesn't use that parameter at all. So on pages like ({{fullurl:Talk:Champlain_Valley|oldid=319603210}} this), we can correctly identify all three cases without the WikiProject having to use any complicated parametes in their templates. However, it all hinges on being able to check for the presence of this µ character. What we didn't realise was that there are actually ''two'' Unicode characters that look almost identical: the "lowercase letter mu" ''' μ ''' and the "micro prefix" '''µ'''; people were getting the two muddled up and causing things to stop working on banners. Over new year 2008–9 we converted everything over to use '''¬''', which is a virtually-unused character on the top-left of most keyboards, but it involved updating hundreds of banners, and was a hassle we could definitely have done without. ((User:happy-melon|<span style="color:forestgreen">'''happy'''</span>))‑((User talk:happy-melon|<span style="color:darkorange">'''melon'''</span>)) + :As we expanded the deployment, we did encounter some issues with WPBM itself; some fundamental decisions that had been made very early on turned out to be mistakes. In particular, our choice of character for the 'default' parameter ((Template_talk:WPbannerMeta/Archive_2#Something_Wrong.3F|turned out)) to be a huge problem. The mechanics of what we do with this feature are quite complicated, but essentially we add an obscure character (we originally chose '''µ''') to many of the parameters as defaults, and then by voodoo magic we can tell the difference between when a banner uses a parameter like {{para|importance}} but an individual talk page just hasn't set it, and when the banner as a whole doesn't use that parameter at all. So on pages like ({{fullurl:Talk:Champlain_Valley|oldid=319603210}} this), we can correctly identify all three cases without the WikiProject having to use any complicated parametes in their templates. However, it all hinges on being able to check for the presence of this µ character. What we didn't realise was that there are actually ''two'' Unicode characters that look almost identical: the "lowercase letter mu" ''' µ ''' and the "micro prefix" '''µ'''; people were getting the two muddled up and causing things to stop working on banners. Over new year 2008–9 we converted everything over to use '''¬''', which is a virtually-unused character on the top-left of most keyboards, but it involved updating hundreds of banners, and was a hassle we could definitely have done without. '''4. What remains to be done with the meta-template in the future? What new features are you planning to add?''' '''4. What remains to be done with the meta-template in the future? What new features are you planning to add?''' - :The template is approaching a finished product, but undoubtedly will continue to evolve as WikiProjects grow and editing practices change, and the programmers think of more ideas! There are likely to be further improvements in the efficiency of the code and new features that become possible with future developments to the MediaWiki software. — Martin <small>(((User:MSGJ|MSGJ)) · ((User talk:MSGJ|talk)))</small> + :'''MSGJ''' : The template is approaching a finished product, but undoubtedly will continue to evolve as WikiProjects grow and editing practices change, and the programmers think of more ideas! There are likely to be further improvements in the efficiency of the code and new features that become possible with future developments to the MediaWiki software. + + <noinclude> + {{Wikipedia:Signpost/Template:Signpost-article-comments-end|{{BASEPAGENAME}}|2009-10-12|2009-11-09|{{SUBPAGENAME}}}}</noinclude>
|