User:Dinoguy1000/Featured templates

From Wikipedia, the free encyclopedia

Template:WP Future

Featured templates are meant to

  • showcase some of the best templates and modules on Wikipedia;[1]
  • draw attention to useful but not widely known templates;
  • encourage efficient, careful and robust template programming;
  • encourage review and, potentially, rewriting of templates and their documentation;
  • spur the creation and continued maintenance of versions of templates and their documentation suitable for copying to other wikis.

Any template can be nominated regardless of size, complexity, purpose, or level of use.[2] Templates may be nominated either individually or as part of a group of related templates.

Nominated templates should meet the following criteria:

  1. Reasonably complete - a nominated template does not have to be perfect,[3] but it must implement its expected feature set and be deployable at the time of nomination.
  2. Well documented - all parameters should be documented on a /doc subpage.[4] General use as well as testcases should also be provided, and any quirks or known bugs should be documented as well. Template groups can share documentation.
  3. Clean and efficient - the template should be coded as cleanly and efficiently as possible. The code should be readable and consistent in style, using whitespace to improve readability where appropriate. Subtemplates and metatemplates should be used where appropriate, to avoid substantial code duplication.
  4. Robust - the template should be coded carefully so that it will not break when used in unexpected ways.
  5. Skinnable - if a template uses hardcoded styles for aesthetic purposes, it should have an associated class to allow users to override these styles at their discretion, to the extent of hiding the output of certain templates if they wish.
  6. Safe to print - if a template should not (or should only) be included in print or book copies of articles, it should carry the appropriate classes and categories, or make use of a print-controlling metatemplate or a /Print subtemplate.
  7. Export version(s) available - if there is a reasonable expectation that a template may be useful to non-Wikipedia/Wikimedia wikis, one or more versions ready for export should be maintained. These versions should:
    • have a reduced reliance on metatemplates, to reduce the total number of templates which must be copied to use the template;
    • not rely on HTML Tidy, since many non-Wikimedia wikis do not have Tidy installed;
    • have hardcoded styles, or provide very clear instructions on installing the proper styles to a wiki's MediaWiki:Common.css file;
    • have a simplified feature set, if the template is very complicated (e.g. Template:WPBannerMeta) or has several seldom-needed parameters (e.g. Template:Navbox);
    • have simplified documentation, including only instructions on its use, any bugs or caveats, and noting all dependencies (that is, trimming all interwiki links and most "see also" references, as well as transclusions of other templates and properly escaping links to policy and help pages);
    • have a simplified categorization scheme, possibly reflecting that used on Wikia Templates;
    • be clearly linked from the main template (a banner template could be developed for this purpose, or auto-detection and -linking code added to {{Documentation}}).
    • More than one export version can be maintained, each offering a different set of these concessions, as long as there is one version which provides all of them and clear instructions on when each variant is ideal for use.

See also[edit]

Notes[edit]

  1. ^ For the purpose of this page, templates and modules are collectively called just "templates", and a template is any page which is designed to be transcluded or substituted onto another page, whether or not it is in the Template: or Module: namespace.
  2. ^ While it is not a requirement that templates be in-use prior to nominating, it is encouraged.
  3. ^ See Wikipedia:Editing policy#Wikipedia is a work in progress: perfection is not required
  4. ^ Deprecated parameters should not be documented, to discourage their further use.