Help:Templates/nqo

ߣߌ߫ ߛߓߍߟߌ߫ ߞߟߊ߬ߟߊ߬ߡߊ ߘߏ߫ ߦߵߌ ߓߟߏ߫ ߌ ߦߋ߫ ߡߍ߲ ߠߊߘߏ߲߬ ߞߏ ߘߐ߫ ߞߐߜߍ߫ ߛߌߦߊߡߊ߲߫ ߠߎ߫ ߟߊ߫߸ ߡߋߘߌߦߊߥߞߌ ߞߙߊߞߏ ߟߊߓߊ߯ߙߊ ߘߌ߫ ߣߊ߬ ߞߍߟߌ߫ ߞߊ߲ߡߊ߬. ߘߐ߬ߥߙߊ߬ߟߌ ߣߌ߫ ߟߊߛߋߢߊߥߙߍ ߞߐߕߐ߮ ߟߎ߬ ߛߋ߲߬ ߕߴߊ߬ ߘߐ߫߸ ߓߊߏ߬ ߡߊ߬ߞߍ߬ߦߙߐ ߕߊ߲ߓߊ߲ ߕߍ߫ ߞߙߊߞߏ ߦߋ߫. ߞߙߊߞߏ ߟߎ߬ ߦߋ߫ ߞߍ߫ ߟߊ߫ ߛߓߍߣߍ߲߫ ߞߎߘߊ ߟߋ߬ ߘߌ߫ ߥߟߴߊ߬ ߟߊߞߎ߲߬ߘߎ߬ߣߍ߲߬ ߦߋ߫ ߞߍ߫ ߓߊߟߌߟߌ ߓߊ߯ߙߊ߫ ߞߍߣߍ߲߫ ߞߘߐ ߘߊߞߘߐ߫߸ ߡߍ߲ ߟߊߝߏ߬ߦߌ߬ߣߍ߲߬ ߦߋ߫ ߞߊ߬ ߝߘߊ߫ ߥߞߌ߫ ߜߘߍ߫ ߟߊ߫ ߟߊߒߡߊ߫ ߘߐ߫ ߥߞߌߔߋߘߌߦߊ߸ ߊ߬ ߣߌ߫ ߞߵߊ߬ ߟߊߛߣߍ߫ ߕߊ߯ߦߙߐ߫ ߥߞߌ ߘߐ߫.

ߛߌ߲ߘߟߌ
ߞߙߊߞߏ ߟߎ߬ ߦߋ߫ ߥߞߌ ߞߐߜߍ߫ ߞߟߊ߬ߟߊ߬ߡߊ ߟߋ߬ ߘߌ߫ ߡߍ߲ ߠߎ߬ ߞߣߐߘߐ ߟߎ߬ ߘߐߓߍ߲߬ߣߍ߲߬ ߦߴߊ߬ ߟߊ߫ ߴߴߥߊ߬ߟߊ߲߬ߞߌ߬ߴߴ (ߟߊߘߏ߲߬ ߠߊ߫) ߞߊ߲ߡߊ߬ ߞߐߜߍ ߕߐ߭ ߟߎ߬ ߟߊ߫. ߞߙߊߞߏ (ߕߊ߲ߔߑߟߋߕ) ߦߋ߫ ߓߍ߲߬ߡߊ߬ߞߊ߲ ߠߋ߬ ߟߊߓߊ߬ߕߏ߬ ߟߊ߫ ߡߍ߲ ߕߐ߮ ߦߋ߫ ߢߍߣߙߊ ߘߌ߫ ߴߴ ߴߴ ߦߋ߫ ߡߍ߲ ߠߊ߫߸ ߣߴߊ߬ ߦߋ߫ ߘߍ߬ߡߍ߲߬ߘߌ߬ ߟߊ߫ ߕߐ߯ߛߓߍߞߣߍ ߣߌ߲߬ ߠߊ߫: ߣߴߏ߬ ߕߍ߫ ߘߏ߲߬߸ ߌ ߘߌ߫ ߛߋ߫ ߊ߬ߟߎ߬ ߛߌ߲ߘߌ߫ ߟߊ߫ ߦߏ߫ ߥߞߌ߫ ߞߐߜߍ ߕߐ߭ ߟߎ߬.

ߞߙߊߞߏ ߟߊߓߊ߯ߙߊߟߌ ߣߐ߰ߡߊ߲߬ߓߊ ߟߋ߬ ߦߋ߫ ߢߊ ߢߌ߲߬ ߠߎ߬ ߞߊ߲߬. ߣߴߌ ߞߊ߬ ߞߐߜߍ ߘߏ߫ ߛߌ߲ߘߌ߫ ߡߍ߲ ߦߋ߫ ߞߟߌ߫ ߟߊ߫ ߞߏ߫ ߴߴߞߙߊߞߏ:ߌ ߣߌ߫ ߛߣߍ߫ߴߴ ߞߣߐߘߐ ߘߐ߫:

ߌ ߣߌ߫ ߕߎ߬ߡߊ߬߹ ߌ ߣߌ߫ ߛߣߍ߫ ߥߞߌ ߞߊ߲߬.

ߌ ߓߘߴߌ ߟߊ߫ ߞߙߊߞߏ߫ ߝߟߐ ߛߌ߲ߘߌ߫߹ ߏ߬ ߘߐ߫ ߣߴߌ ߞߊ߬ ߘߏߞߊ߲ (ߞߐߘ) ߠߊߘߏ߲߬:

ߞߐߜߍ ߛߎ߯-ߎ-ߛߎ߫ ߘߐ߫߸ ߣߌ߫ ߞߐߜߍ ߏ߬ ߦߌ߬ߘߊ߬ ߘߊ߫ ߛߓߍߟߌ ߴߴߌ ߣߌ߫ ߕߎ߬ߡߊ߬߹ ߌ ߣߌ߫ ߛߣߍ߫ ߥߞߌ ߞߊ߲߬.ߴߴ ߏ߬ ߓߐ߫ ߞߋߟߋ߲ߘߌ߫  ߘߌ߫. ߏ߬ ߓߊ߯ ߞߍ߫ ߞߙߊߞߏ ߞߣߐߘߐ ߟߎ߬ ߘߌ߫ ߴߴߥߊ߬ߟߊ߲߬ߞߌ߫ߴߴ ߞߐߜߍ߫ ߜߘߍ ߏ߬ ߘߐ߫߸ ߊ߬ ߢߊߝߐߟߌ߫ ߜߘߍ߫ ߘߐ߫߸ ߊ߬ ߘߌ߫ ߓߌ߬ߟߊ߬ ߞߐߜߍ ߏ߬ ߟߊ߫.

ߌ ߘߌ߫ ߛߋ߫  ߟߊߘߏ߲߬ ߠߊ߫ ߞߐߜߍ ߛߎ߮ ߓߍ߯ ߦߙߐ ߘߏ߫ ߟߊ߫ ߌ ߦߴߊ߬ ߝߍ߬ ߞߵߊ߬ ߟߊߘߏ߲߬ ߡߍ߲ ߠߊ߫ ߡߐ߱ ߘߏ߫ ߟߊߛߣߍ߫ ߞߊ߲ߡߊ߬. ߡߍ߲ ߞߊߞߊ߲߫ ߞߊ߬ ߟߊߓߊ߯ߙߊ߫ ߞߐߜߍ߫ ߁߀߀ ߟߊ߫. ߣߴߌ ߘߏ߲߬ ߞߊ߬ ߞߙߊߞߏ ߞߣߐߘߐ ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫ ߞߵߊ߬ ߞߍ߫:

ߌ ߣߌ߫ ߕߎ߬ߡߊ߫ ߦߋ߲߬߹ ߌ ߣߌ߫ ߛߣߍ߫ ߥߞߌ߫ ߡߊߞߓߊߣߍ߲ ߞߊ߲߬.

ߌ ߓߊ߯ ߥߊ߫ ߓߐ߫ ߞߐߜߍ߫ ߁߀߀ ߏ߬ ߟߎ߬ ߛߎ߯-ߎ-ߛߎ߫ ߞߊ߲߬߸ ߌ ߣߊ߬ ߞߙߊߞߏ ߟߊߘߏ߲߬ ߠߊ߫ ߡߍ߲ ߠߎ߬ ߟߊ߫߸ ߌ ߘߌ߫ ߥߊ߫ ߛߓߍߟߌ߫ ߞߎߘߊ߫ ߕߍ߬ߘߍ߫ ߦߋ߲߬ ߡߍ߲ ߣߴߌ ߟߊ߫ ߟߊ߬ߘߏ߲߬ߣߍ߲ ߕߍ߫ ߞߋߟߋ߲߫ ߘߌ߫. ߒ߬ߓߊ߬ ߢߊ ߏ߬ ߡߊ߬߸ ߌ ߓߘߊ߫ ߞߐߜߍ߫ ߁߀߀ ߏ߬ ߟߎ߬ ߓߍ߯ ߞߣߐߘߐ ߡߊߦߟߍ߬ߡߊ߲߫ ߠߵߏ߬ ߘߌ߫ ߞߵߊ߬ ߕߘߍ߬ ߌ ߡߴߊ߬ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫߸ ߓߊߏ߬ ߞߙߊߞߏ ߓߘߊ߫ ߟߊߥߊ߬ߟߊ߲߬ߞߌ߫ ߞߐߜߍ ߏ߬ ߟߎ߬ ߟߊ߫.

This is the basic mechanism. There are several additional features of transclusion that enrich this mechanism and make templates very useful.

ߟߊߓߊ߯ߙߊߟߌ
ߞߙߊߞߏ ߘߌ߫ ߛߋ߫ ߟߊߓߊ߯ߙߊ߫ ߟߊ߫ ߞߐߜߍ߫ ߜߘߍ߫ ߟߎ߫ ߟߊ߫ ߛߌߟߊ ߣߌ߲߬ ߝߍ߬:

- ߣߌ߫ ߞߙߊߞߏ ߣߌ߲߬ ߛߘߌ߬ߜߋ߲ ߟߊߓߊ߯ߙߊ߫ ߘߊ߫߸ ߊ߬ ߘߌ߫ ߣߐ߬ߘߐߓߌ߬ߟߊ߫ ߛߋ߲߬ߧߊ߬ ߞߋߟߋ߲߫ ߊ߬ ߣߌ߫ ߞߙߊߞߏ:ߕߐ߮ ߞߣߐߘߐ ߓߍ߯ ߝߣߊ߫ ߟߴߊ߬ ߣߌ߫ ߕߎ߬ߡߊ߬ ߟߊ߫߸ ߣߌ߫ ߛߘߌ߬ߜߋ߲ ߴߴߠߊߞߎ߲߬ߘߎ߬ߵߵ ߘߊ߫: ߞߙߊߞߏ:ߕߐ߮ ߞߣߐߘߐ ߓߊߞߎߘߊ ߘߌ߫ ߣߐ߬ߘߐߓߌ߬ߟߊ߬ ߞߙߊߞߏ ߛߘߌ߬ߜߋ߲ ߠߊ߫. ߏ߬ ߓߊ߯ ߞߍ߫ ߞߣߐߘߐ ߓߘߊ߫ ߞߍ߫ ߞߐߜߍ߫ ߛߋ߲߬ߓߐߣߍ߲ ߘߌ߫߸ ߊ߬ ߣߴߊ߬ ߘߌ߫ ߛߋ߫ ߡߊߦߟߍ߬ߡߊ߲߫ ߠߊ߫ ߢߊߓߘߍ ߡߊ߬߸ ߝߘߊߟߌߓߟߏߡߊ߬ ߞߐߜߍ ߓߐߛߎ߲ ߡߊ߬. ߴߴߞߟߏߜߍߴߴ: ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߜߘߍ ߡߍ߲ ߠߎ߬ ߞߍߕߐ߫ ߞߐߝߍ߬ ߞߙߊߞߏ ߓߐߛߎ߲ ߘߐ߫߸ ߏ߬ ߟߎ߬ ߕߍߣߊ߬ ߟߊߖߍ߲ߛߍ߲߫ ߠߊ߫ ߞߙߊߞߏ ߛߘߌ߬ߜߋ߲ ߞߐߜߍ ߟߎ߬ ߘߐ߫.
 * - ߞߍ߫ ߕߐ߯ߛߓߍߣߍ߲ ߘߌ߫ ߛߊ߲ߝߍ߬߸ ߛߘߌ߬ߜߋ߲ ߏ߬ ߘߌ߫ ߞߙߊߞߏ:ߕߐ߮ ߣߐ߬ߘߐߓߌ߬ߟߊ߬ ߖߝߊߕߌ߫߹ ߕߎ߬ߡߊ߬ ߟߊ߫߸ ߞߙߊߞߏ ߛߘߌ߬ߜߋ߲ ߴߴߟߊߘߏ߲߬ߣߍ߲߬ߴߴ ߦߋ߫ ߞߐߜߍ ߡߍ߲ ߠߎ߬ ߟߊ߫. ߛߘߌ߬ߜߋ߲ ߘߌ߫ ߞߍ߫ ߦߟߍ߬ߡߊ߲߬ߓߊ߬ߟߌ߬ߦߊ ߘߐ߫ ߞߐߜߍ ߟߎ߬ ߓߐߖߎ ߟߊ߫.
 * - ߦߋ߫ ߟߊߘߏ߲߬ ߠߊ߫ ߟߋ߬ ߞߊ߬ ߣߘߐ߬ߓߌ߬ߟߊ߬ߟߌ ߟߊߘߤߊ߬ ߡߍ߲ ߕߍ߫ ߥߊ߬ߟߊ߲߬ߞߌ߬ߟߌ߬ ߗߌߙߏ߲ߣߍ߲߫ ߘߌ߫߸ ߣߌ߲߬ w:en:Help:Substitution ߘߐߜߍ߫.
 * ߦߋ߫ ߟߊߘߏ߲߬ ߠߊ߫ ߞߙߊߞߏ ߟߊ߫ ߟߋ߬ ߛߴߊ߬ ߘߌ߫ ߓߐ߫ ߖߙߎߡߎ߲߫ ߘߐ߫ ߡߍ߲ ߦߋ߫ ߓߊ߯ߙߊ߫ ߟߊ߫ ߥߞߌ ߟߊߞߊ߬ߝߏ߬ߣߍ߲ ߠߊ߫ ߞߊ߬ (syntax) ߛߍ߲ߕߊߞߛ (ߦߏ߫   ߦߋ߫ ߡߍ߲ ߞߍ߫ ߟߊ߫) ߣߵߊ߬ ߦߋ߫ ߞߐߜߍ ߘߴߏ߬ ߘߴߊ߬ ߖߊ߬ߛߏ߲߬.

ߞߍߟߌ ߘߐ߫߸ ߥߞߌ߫ ߡߊߟߐ߲ߣߍ߲ ߞߐߜߍ ߟߎ߬ ߝߣߊ߫ ߘߌ߫ ߛߋ߫ ߟߊߓߊ߯ߙߊ߫ ߟߊ߫ ߞߙߊߞߏ ߘߌ߫߸ ߞߊ߬ ߕߐ߯ߛߓߍߞߣߍ ߞߙߍߞߙߍ߫ ߜߊ߲߯ߛߊ߲߫ ߠߊ߫ ߊ߬ ߢߊߞߍߣߍ߲߫ ߡߍ߲ ߘߐ߫߸ ߏ߬ ߘߐ߫ ߞߊ߬:


 * ߟߊߘߏ߲߬  ߟߊߘߏ߲߬
 * ߟߊߘߏ߲߬
 * ߣߐ߬ߘߐߓߌ߬ߟߊ߫ ߊ߬ ߖߘߍ߬ ߟߊ߫  ߞߣߐߘߐ ߟߊ߫.

ߣߌ߫ ߕߐ߯ ߞߣߍ߫ ߛߎ߮ ߏ߬ ߡߊ߫ ߞߍ߫ ߦߋ߲߬߸ ߞߎ߲߬ߕߐ߮ ߏ߬ ߟߎ߬ ߟߊߞߊ߬ߝߏ߬ߣߍ߲ ߞߊߞߊ߲߫ ߞߊ߬ ߞߍ߫ ߞߙߊߞߏ ߘߌ߫:


 * ߟߊߘߏ߲߬

ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ
To enrich the mechanism of transclusion, MediaWiki allows parameters to be passed to a template when it is transcluded. Parameters allow the template to produce different contents or have different behaviors.

ߌ ߞߊߞߊ߲߫ ߞߊ߬ ߌ ߣߌ߫ ߗߋ߫ ߞߎ߲߬ߕߐ߮ ߞߟߏ ߟߊߘߏ߲߬ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߞߐߜߍ ߟߎ߬ ߟߊ߫ ߞߎߡߊ߫ ߞߐߜߍ ߘߐ߫߸ ߦߏ߫ ߕߊ߲߫:

ߌ ߣߌ߫ ߗߋ߫ ߛߓߍߟߌ ߞߎ߲߭ ߦߋ߫ (ߦߙߐ ߣߌ߲߬ ߠߋ ߘߌ߫߸ ߴߴߌ ߟߊ߫ ߛߋߞߏߦߊ ߓߍ߯ ߟߊ߫ߴߴ) ߊ߬ ߣߌ߫ ߞߟߊ߬ߣߐ (ߒߠߋ). ߌ ߟߊ߫ ߝߋ߲ ߏ߬ ߦߋ߫ ߟߋ߬߸ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߓߍ߯ ߘߌ߫ ߛߋ߫ ߌ ߣߌ߫ ߗߋ ߗߋ߫ ߟߊ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߜߘߍ߫ ߡߊ߬߸ ߞߎ߲߬ ߜߘߍ ߛߎ߯-ߎ-ߛߎ߫ ߣߌ߫ ߦߙߐ ߛߎ߯-ߎ-ߛߎ߫ ߘߐ߫.

ߏ߬ ߘߐ߫ ߛߍߓߟߌ ߟߎ߬ ߘߌ߫ ߡߎߣߎ߲ߧߊ߫ ߦߙߐ ߓߍ߯ ߘߐ߫ ߊ߬ ߟߊߓߊ߯ߙߊߣߍ߲߫ ߡߍ߲ ߘߐ߫߸ ߌ ߘߌ߫ ߛߋ߫ ߞߙߊߞߏ ߘߏ߫ ߡߊߕߍ߰ ߟߊ߫ ߡߍ߲ ߦߋ߫ ߞߟߌ߫ ߟߊ߫ ߞߏ߫, ߞߵߏ߬ ߞߍ߫ ߟߊߒߡߊ ߘߌ߫. ߛߓߍߟߌ ߘߌ߫ ߡߎߣߎ߲߫ ߢߐ߲߯ ߠߊ߫ ߕߋ߲߬ ߝߛߊߦߌ߫߹ ߣߌ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߘߏ߫ ߞߊ߬ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߓߏߙߌߞߊߓߌߟߊ߫߸ ߊ߬ ߞߣߐߘߐ߫ ߞߙߍߞߙߍߣߍ߲ ߠߎ߬ (ߏ߬ ߞߘߐ ߦߋ߫ ߡߍ߲ ߘߌ߫߸ ߊ߬ ߞߎ߲߭ ߣߴߊ߬ ߞߟߊ߬ߣߐ) ߟߎ߬ ߘߌ߫ ߝߘߏ߬ ߢߐ߲߮ ߡߊ߬. ߞߎ߲߭ ߏ߬ ߟߋ ߞߏߛߐ߲߬߸ ߌ ߞߊ߲ߞߊ߲߫ ߞߵߊ߬ߟߎ߫ ߟߊߕߊ߬ߡߌ߲߬ ߞߵߊ߬ߟߎ߫ ߞߍ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߎ߬ ߘߌ߫. If we ignore the remaining elements to format the box and place the image, the core content of the template will be this:

ߌ ߦߟߌߣߐ ߕߏ߫  ߟߊߓߊ߯ߙߊ ߡߵߊ߬ ߣߌ߫. ߏ߬ ߦߋ߫ ߛߌߟߊ߫ ߡߊߟߐ߲ߕߊ߫ ߟߋ߬ ߘߌ߫ ߞߙߊߞߏ߫ ߞߏ ߘߐ߫߸ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߡߍ߲ ߞߊߞߊ߲߫ ߞߊ߬ ߟߊߕߊ߬ߡߌ߲߬ ߊ߬ ߘߐ߫ ߣߌ߫ ߞߙߊߞߏ ߟߊߓߊ߯ߙߊ߫ ߘߊ߫. ߏ߬ ߦߟߌߣߐ ߕߊ߬ ߞߙߊߞߏ߫ ߞߏ ߘߐ߫߸ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߓߍ߯ ߟߊߡߌߣߌ߲ߣߍ߲߫ ߦߋ߫ ߜߌߙߌ߲ߘߌߛߓߍߢߌ߲ߞߏ߫: ߜߌߙߌ߲ߘߌߛߓߍߢߌ߲ߞߏ߫$ ߛߊ߬ߓߊ߫ ߟߋ߬ ߟߊ߫. ߏ߬ ߞߏ߬ߣߌ߲߫ ߓߐߣߍ߲߫ ߦߋ߫ ߞߙߊߞߏ ߢߊߓߘߍ ߕߐ߮ ߟߊߓߊ߯ߙߊ ߡߊ߬.

ߣߴߌ ߦߋ߫ ߞߙߊߞߏ ߟߊߓߊ߯ߙߊ ߞߊ߲߬ ߞߐߜߍ ߞߊ߲߬߸ ߌ ߦߋ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߡߐ߬ߟߐ߲ ߟߝߊ߫߸ ߡߍ߫ ߕߍߝߘߊߣߍ߲߫ ߦߋ߫ ߔߌߔ (ߔߊߔ$) ߟߊ߫. ߡߋߘߌߦߊߥߞߌ߫ ߘߌ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߊߘߌ߬ߢߍ߬ ߞߊ߬ ߛߋ߫ ߕߊ߬ߡߌ߲߬ ߠߊ߫ ߞߊ߬ ߞߍ߫ ߞߙߊߞߏ ߘߌ߫ ߛߌߟߊ߫ ߛߊ߬ߓߊ߫ ߞߊ߲߫: ߕߐ߯ߒߕߊ߲ߧߊ ߘߐ߫߸ ߝߙߍߕߍߦߊ ߘߐ߫߸ ߊ߬ ߣߌ߫ ߕߐ߯ߦߊߟߌ ߘߐ߫.

ߕߐ߯ߒߕߊ߲ߧߊ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ
ߞߊ߬ ߕߊ߬ߡߊ߬ߡߌ߲߬ ߕߐ߯ߒߕߊ߲ߧߊ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߘߐ߫߸ ߏ߬ ߟߎ߫ ߡߐ߬ߟߐ߲ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߎ߬ ߖߟߐ߬ߞߐ߬ߦߊ߬ߣߍ߲ ߠߋ߬:

ߛߋ߲߬ߧߊ ߏ߬ ߘߐ߫߸ ߞߙߊߞߏ ߟߊߛߐ߬ߘߐ߲߬ߠߌ߲ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ  ߊ߬ ߣߌ߫  ߸ ߟߊߥߟߏߟߌ:

ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߕߐ߯ߒߕߊ߲ ߦߋ߫ ߕߊ߬ߡߌ߲߬ ߠߊ߫ ߖߊ߬ߡߊߙߌ߬ ߛߊߣߌߡߊ߲ ߏ߬ ߟߋ ߟߴߊ߬ ߞߏߟߊߕߊ߯ߡߢߊ ߘߐ߫. ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߖߊ߬ߡߊߙߌ ߏ߬ ߘߌ߫ ߛߋ߫ ߞߐߦߟߍ߬ߡߊ߲߬ ߠߊ߫߸ ߦߏ߫ ߕߊ߲߬:

ߏ߬ ߘߌ߫ ߞߐߝߟߌ ߣߌ߲߬ ߠߊߥߟߏ߫:

ߝߙߍߕߍߦߊ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ
ߞߊ߬ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߊߕߊ߬ߡߌ߲߫ ߝߙߍߕߍ߸ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߓߍ߯ ߡߊߟߐ߲߫߸ ߊ߬ ߟߊߕߊ߬ߡߌ߲߫ ߕߎߡߊ.

ߛߋ߲߬ߧߊ ߣߌ߲߬ ߘߐ߫߸ ߞߙߊߞߏ  ߓߘߊ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ   ߟߊߛߐ߬ߘߐ߲߫߸ ߊ߬ ߣߌ߫  ߸ ߊ߬ ߓߘߊ߫ ߡߊߛߐ߫ ߊ߬ ߢߊߖߎ߮ ߡߊ߬ ߕߋ߲߬ ߝߛߊߦߌ߫߸ ߊ߬ ߣߌ߫ ߟߊߥߟߏ߫ ߕߊ߲߫:

ߕߐ߯ߟߊߟߌ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ
ߛߌߟߊ߫ ߛߓߊߣߊ߲ ߡߍ߲ ߦߋ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߊߕߊ߬ߡߌ߲߫ ߠߊ߫߸ ߏ߬ ߦߋ߫ ߕߐ߮ ߟߋ߬ ߘߴߌ ߞߘߐ߫ ߝߙߍߕߍߦߊ ߡߊ߬. ߛߋ߲߬߬ߧߊ ߏ߬ ߘߐ߫߸ ߞߙߊߞߏ ߞߣߐߘߐ ߘߌ߫ ߡߊߝߊ߬ߟߋ߲߫ ߞߊ߬ ߞߍ߫:

ߌ ߣߌ߫ ߗߋ߫ ߘߋߣߍ߲... ߦߋ߫. ߛߘߌ߬ߟߌ߸ { – }

ߒ߬ ߧߋ߫  ߟߊߓߊ߯ߙߊ߫ ߟߊ߫ ߞߙߊߞߏ ߡߍ߲ ߠߎ߬ ߘߐ߫߸ ߊ߬ ߣߌ߫   ߞߊ߬ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߎ߬ ߓߍ߯ ߡߊߟߐ߲߫ ߝߙߍߕߍ ߞߘߐ߫. ߞߊ߬ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߏ߬ ߟߊߕߊ߬ߡߌ߲߫ ߕߐ߮ ߘߌ߫߸ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߓߍ߯ ߡߊߟߐ߲߫ ߊ߬ ߟߊߕߊ߬ߡߌ߲߫ ߕߎߡߊ:

ߛߋ߲߬ߧߊ ߏ߬ ߘߐ߫߸ ߞߙߊߞߏ  ߘߌ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ   ߟߊߛߐ߬ߘߐ߲߫߸ ߊ߬ ߣߌ߫   ߊ߬ ߣߌ߫ ߞߊ߬ ߥߟߏ߫:

ߟߊ߫.

ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ߫ ߕߐ߯ߡߊ ߟߎ߬ ߖߊ߬ߙߌ߬ߒ߬ߕߋ߫ ߟߋ߬ ߞߍߟߌ ߘߐ߫߸ ߏ߬ ߘߐ߫:

ߟߊ߬ߥߟߏ߬ߟߌ:

The advantage of using named parameters in your template, besides also being flexible in the order parameters can be passed, is that it makes the template code much easier to understand if there are many parameters.

ߓߐߛߎ߲ ߡߐ߬ߟߐ߲
ߣߴߌ ߞߊ߬ ߟߊߥߊ߬ߟߊ߲߬ߞߌ߫ ߡߍ߲ ߞߍ߫ ߕߐ߫ ߦߋ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߊߛߐ߬ߘߐ߲߫ ߠߊ߫߸ ߞߏ߬ߣߵߊ߬ ߡߴߊ߬ߟߎ߬ ߟߊ߫ ߘߊߘߐߡߌߣߊߞߎ߲ߧߊ ߟߎ߬ ߡߊߛߐ߫߸ ߛߌߟߊ ߣߌ߲߬ ߝߍ߬:

ߝߙߍߕߍߦߊ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߘߐ߫߸ ߡߍ߲ ߞߏߟߊߒߞߏߡߊ ߦߋ߫ ߛߊ߲ߝߍ߬ ߌ ߘߌ߫ ߣߊ߬ ߟߊ߬ߓߊ߬ߕߏ߬ߟߌ ߣߌ߲߬ ߛߐ߬ߘߐ߲߫:

ߣߌ߫ ߘߊߘߐߡߌߣߊߞߎ߲ߧߊ ߝߋ߲߫ ߡߊ߫ ߡߊߛߐ߫ ߡߎߣߎ߲߬߸ ߞߙߊߞߏ ߦߋ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߖߍ߬ߘߍ ߟߋ߬ ߦߌ߬ߘߊ߬ ߟߊ߫߸ ߞߵߏ߬ ߞߍ߫ ߒߕߟߋߡߊ߬ ߡߐ߬ߟߐ߲߬ ߡߊߟߐ߲ߣߍ߲ ߞߊ߲ߞߕߐߡߊ߬. ߛߋ߲߬ߧߊ ߏ߬ ߘߐ߫߸ ߓߐߛߎ߲ ߡߐ߬ߟߐ߲ ߘߌ߫ ߛߋ߫ ߡߊߛߐ߫ ߟߴߏ߬ ߘߐ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߘߌ߫߸ ߝߊ߲ߓߏ߲ ߣߌߘߐ ߡߐ߬ߟߐ߲ ߘߌ߫ ߛߋ߫ ߟߊߓߊ߯ߙߊ߫ ߟߊ߫ ߣߌ߫ ߡߐ߬ߟߐ߲߬ ߛߌ߫ ߟߊߘߏ߲߬ߣߍ߲߫ ߕߍ߫. ߟߊߒߡߊ߫ ߘߐ߫߸ ߣߌ߫ ߞߙߊߞߏ ߞߣߐߘߐ ߡߊߝߊ߬ߟߋ߲߬ ߘߊ߫ ߞߵߊ߬ ߞߍ߫:

ߏ߬ ߘߐ߫  ߏ߬ ߦߴߊ߬ ߦߌ߬ߘߊ߬ ߟߊ߫ ߟߋ߬ ߞߏ߫ ߘߊߘߐߡߌߣߊߞߎ߲ߧߊ ߝߋ߲߫ ߕߍ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߞߣߐ߫   (ߊ߬ ߡߎ߰ߡߍ) ߘߌ߫ ߟߊߓߊ߯ߙߊ߫. ߏ߬ ߡߎߣߎ߲ߧߊ߸  ߓߐߛߎ߲ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ     ߡߐ߬ߟߐ߲ ߘߌ߫. ߞߙߊߞߏ ߘߌ߫ ߛߋ߫ ߟߊߥߊ߬ߟߊ߲߬ߞߌ߫ ߟߊ߫ ߞߵߊ߬ ߕߘߍ߬ ߘߊߘߐߡߌߘߊߞߎ߲ߧߊ߫ ߛߌ߫ ߕߍ߫߸ ߢߊ ߢߌ߲߬ ߠߎ߫ ߞߊ߲߬:

Often default values are used to specify alternate names of parameters. For example, if you have, the template will first look for a parameter named "a". If it is not set, it will use the parameter named "b". If neither "a" nor "b" is set, it will output nothing.

Evaluation
Generally speaking, template parameters are substituted into the template after tokenization, but as is. They are not evaluated until they are used.

This has a few consequences. First of all, if you have a  containing , and a   containing  , and put   on a page, mytemplate isn't transcluded, because tokens like "|" cannot be added by a template and keep their special meaning in templates. You can still use templates to control the name of a parameter or template, but you cannot split a template call amongst multiple templates.

The second consequence of this is dead-code elimination. If you make a template call like, and Template:Foo does not contain  , then the displaytitle is not used, since it is only evaluated when needed, and it there is no parameter to substitute it into, so it is never evaluated. This usually comes into play when using Extension:ParserFunctions, and can be especially noticed when used in combination with the  magic word that varies by user language.

Template calls starting with the magic word  or   are evaluated in a separate first pass that only happens at save time, along with ~ and links using the pipe trick. If they cannot be evaluated during the first pass, subst: calls are ignored, and safesubst: are treated as if a normal template.

Many but not all parser functions, parser tags and trancluded special pages are not directly included like templates but instead are replaced by a "strip marker". This means you cannot manipulate the results with parser functions like padleft: or similar functions from extensions, as they see the strip marker instead of the result of the parser function.

ߖߘߍ߬ߞߍ߬ߒ߬ߞߏ߬ߘߌ ߞߙߊߞߏ ߟߎ߬ ߘߐ߫
ߤߊߟߌ߬ ߞߙߊߞߏ ߖߘߍ߬ߞߊߣߌ߲ ߕߴߛߋ߫ ߡߋߘߌߦߊߥߞߌ߫ ߝߏ߬ߦߌ߬ ߓߊ߲ߓߊߟߌߦߊ ߖߘߍ߬ߞߍ߬ߒ߬ߞߏ߬ߘߌ ߘߌ߫. ߡߋߘߌߦߊߥߞߌ߫ ߘߌ߫ ߣߊ߬ ߖߘߍ߬ߞߍ߬ߒ߬ߞߏ߬ߘߌ ߟߎ߬ ߟߊߟߐ߬߸ ߡߍ߲ ߠߎ߬ ߞߙߊߞߏ ߕߐ߮ ߦߋ߫ ߛߓߍߘߋ߲߫ ߞߎ߲ߓߊ ߘߌ߫. ߟߊߒߡߊ߫ ߘߐ߫߸ ߣߌ߫ ߞߙߊߞߏ ߞߣߐߘߐ "ߞߙߊߞߏ:Aaaa" ߦߋ߫ " " ߟߋ߬ ߘߌ߫߸ ߊ߬ ߘߌ߫ ߦߌ߬ߘߊ߬ "Template:Aaaa" ߘߌ߫߸ ߊ߬ ߣߌ߫ ߞߊ߬ ߟߊߓߊ߯ߙߊ߫ template loop detected: template:Aaaa

ߞߙߊߞߏ ߖߘߍ߬ߞߍ߬ߒ߬ߞߏ߬ߘߌ ߡߊߡߊ߬ߙߊ
ߓߐߛߎ߲ ߡߊ߬߸ ߞߙߊߞߏ ߞߣߐߘߐ ߦߋ߫ ߟߊߓߊ߯ߙߊ߫ ߟߊ߫ ߊ߬ ߡߎ߰ߡߍ ߟߋ߬ ߘߌ߫ ߢߊ߫ ߝߌ߬ߟߊ߫ ߡߊ߬߸ ߌ ߓߊ߯ ߞߴߊ߬ ߖߍ߬ߘߍ ߘߐߜߍ߫ ߟߊ߫ ߒߕߟߋߡߊ߬߸ ߊ߬ ߣߌ߫ ߣߴߌ ߞߍ߫ ߘߴߊ߬ ߟߊߘߏ߲߬ ߠߊ߫ ߞߐߜߍ߫ ߜߘߍ߫ ߟߊ߫. ߏ߬ ߕߎ߬ߡߊ ߝߍ߬߸ ߌ ߘߌ߫ ߛߋ߫ ߞߙߊߞߏ ߝߊ߲߭ ߡߍ߲ ߠߎ߬ ߡߊߡߙߊ߬ ߟߊ߫߸ ߏ߬ ߟߎ߫ ߘߌ߫ ߦߋ߫ ߊ߬ ߣߌ߫ ߞߊ߬ ߟߊߘߏ߲߬  ߟߊߓߊ߯ߙߊ ߟߊ߫߸ ߊ߬ ߣߌ߫   ߣߌ߫   ߟߎ߬ ߟߊ߫

ߝߋ߲ ߛߎ߯-ߎ-ߛߎ߫ ߦߋ߫  ߣߌ߫   ߕߍߟߊ ߘߐ߫߸ ߏ߬ ߟߎ߬ ߘߌ߫ ߞߍ߫ ߦߋߕߊ ߘߌ߫ ߘߐߙߐ߲߫ ߣߌ߫ ߞߙߊߞߏ ߞߐߜߍ ߞߍ߫ ߘߊ߫ ߦߋߕߊ ߘߌ߫ ߒߕߟߋߡߊ߬߸ ߒ߬ߞߵߊ߬ ߕߍ߫ ߘߋ߬ ߣߴߊ߬ ߞߍ߫ ߘߊ߫ ߟߊߘߏ߲߬ ߠߊ߫ ߞߐߜߍ߫ ߜߘߍ߫ ߟߊ߫. ߏ߬ ߦߋ߫ ߟߊߓߊ߯ߙߕߊ ߞߏߟߌߞߏߟߌ߫ ߟߋ߬ ߘߌ߫ ߣߴߌ ߞߍ߫ ߘߊ߫ ߛߓߍߟߌ ߥߟߊ ߘߏߞߊ߲ (code) ߟߊߘߏ߲߬ ߠߊ߫ ߞߙߊߞߏ ߘߏ߫ ߘߐ߫ ߌ ߕߍ߫ ߡߍ߲ ߝߘߎߝߘߎ߫ ߞߏ߫ ߘߐ߫ ߞߐߜߍ߫ ߛߌ߫ ߟߊ߫߸ ߊ߬ ߟߊߘߏ߲߬ߣߍ߲߫ ߦߋ߫ ߡߍ߲ ߠߎ߬ ߟߊ߫߸ ߦߏ߫ ߕߊ߲߬:


 * ߦߌߟߡߊ ߛߘߌ߬ߜߋ߲ ߣߌ߫ ߞߙߊߞߏ ߖߍ߬ߘߍ ߞߍ߫ ߘߊ߫ ߦߌߟߡߊߦߊ߫ ߟߊ߫
 * ߞߊ߲ߣߌߢߐ߲߯ߕߍ ߛߘߌ߬ߜߋ߲ ߞߙߊߞߏ߫ ߡߎߣߎ߲ߣߍ߲ ߠߎ߬ ߟߊ߫ ߞߊ߲߫ ߘߐ ߟߎ߬ ߘߐ߫
 * ߘߊ߲߬ߕߍ߰ߟߌ߬ ߛߓߍ ߞߙߊߞߏ ߟߊߓߊ߯ߙߊߟߌ ߞߍߢߊ ߞߊ߲߬

ߊ߬ ߣߌ߫ ߝߣߊ߫߸ ߝߋ߲ ߛߎ߯-ߎ-ߛߎ߫ ߦߋ߫  ߣߌ߫   ߟߎ߫ ߕߍߟߊ ߘߐ߫߸ ߏ߬ ߟߎ߫ ߟߋ߬ ߦߋ߫ ߝߘߎߝߘߎ߫ ߟߴߊ߬ ߣߌ߫ ߞߵߊ߬ ߟߊߓߊ߯ߙߊ߫ ߘߐߙߐ߲߫ ߣߌ߫ ߞߐߜߍ ߞߍ߫ ߘߊ߫ ߟߊߘߏ߲߬ ߠߊ߫߸ ߒ߬ߞߵߊ߬ ߕߍ߫ ߘߋ߬ ߣߌ߫ ߞߙߊߞߏ ߞߐߜߍ ߟߎ߬ ߞߍ߫ ߘߊ߫ ߦߋߕߊ ߘߌ߫ ߒߕߋߟߋ߲ߡߊ߬߸ ߊ߬ ߣߴߊ߬ ߦߋ߫ ߟߊߓߊ߯ߙߕߊ߫ ߞߏߟߌߞߏߟߌ ߘߌ߫ ߟߌ߬ߤߟߊ ߟߎ߬ ߘߐ߫ ߦߏ߫ ߕߊ߲߬:


 * ߞߐߜߍ ߟߎ߬ ߦߌߟߡߊߦߊߟߌ ߞߙߊߞߏ ߟߊߘߏ߲߬ߣߍ߲߫ ߦߋ߫ ߡߍ߲ ߠߎ߬ ߟߊ߫.
 * ߞߟߏߜߍ: ߣߌ߫ ߞߙߊߞߏ ߟߊ߫ ߦߌߟߡߊ߫ ߟߊߘߏ߲߬ߣߍ߲ ߠߎ߬ ߞߍ߫ ߘߊ߫ ߡߊߝߊ߬ߟߋ߲߬ ߠߊ߫ ߞߍߢߊ ߣߌ߲߬ ߘߐ߫߸ ߞߐߜߍ ߟߎ߬ ߦߌߟߡߊߦߊߟߌ ߡߍ߲ ߠߎ߬ ߞߙߊߞߏ ߏ߬ ߟߎ߬ ߟߊߘߏ߲߬ߣߍ߲߬ ߦߋ߫ ߡߍ߲ ߠߎ߬ ߟߊ߫߸ ߏ߬ ߟߎ߬ ߕߍߣߊ߬ ߛߋ߫ ߟߊ߫ ߟߊߞߎߘߦߊ߫ ߟߊ߫ ߝߏ߫ ߣߌ߫ ߥߊ߯ߕߌ ߘߏ߫ ߕߊ߬ߡߌ߲߬ ߘߊ߫: ߏ߬ ߟߎ߬ ߦߋ߫ ߘߐߓߍ߲߬ ߠߊ߫ ߟߋ߬ ߓߟߏ߫. ߞߊ߬ ߞߐߜߍ߫ ߞߙߍߞߙߍߣߍ߲ ߦߌߟߡߊߦߊߟߌ ߡߊߛߊ߬ߦߌ ߞߘߊߡߊ߫߸ ߞߐߜߍ ߏ߬ ߘߊߦߟߍ߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߊ߲ߡߊ߬߸ ߊ߬ ߣߌ߫ ߞߵߊ߬ ߟߊߞߎ߲߬ߘߎ߫ ߞߵߊ߬ ߕߘߍ߬ ߌ ߡߊ߬ ߡߝߊ߬ߟߋ߲߬ߠߌ߲߬ ߞߍ߫.
 * Ensuring that the template's code is not executed when viewing the template page itself. Typically this is because it expects parameters, and its execution without parameters has an undesired result.

Everything outside  and   is processed and displayed normally; that is, both when the template page is being viewed directly and when the template is included in another page. The focus is on what is inside these two tags.

Everything outside  tags is discarded in the transclusion. Even sections tagged includeonly are discarded in the transclusion unless they are also tagged as onlyinclude. The focus is on what is outside this tag.

Nesting of these tags is also possible.

The three partial transclusion tags enable all possible combinations of what is processed and rendered. Comments also fill a role.

Organizing templates
For templates to be effective, users need to find them, and find out how to use them.

To find them, users can:
 * 1) Click ' > '
 * 2) In the ' list, choose Template and click '.

To give usage information, include an example like this one on the template page:

Usage
Welcome users:

Then, an editor can simply copy and paste the example to use the template.

Linking to a template
A template page can be linked to like any other wiki page. For example, the link is generated using the wikicode.

On many wikis, Template:Tl can be used to provide a link to a template formatted in a way that shows the "double curly-braces" wikicode necessary to transclude the template without actually doing the tranclusion. For example, the code  may be used to create the link Navbar.

This construct is commonly used in template documentation, on help pages, and on talk pages when referring to templates. The same effect can be achieved by using, but the tl approach involves much less typing. On any given wiki the Tl template, if it exists, may or may not render the text in a "code" element, as shown here. If not, another similarly named template may do so. See, for example, the "See also" section of the documentation of en:Template:Tl at the English Wikipedia.

Copying from one wiki to another
Templates often require CSS or other templates, so users frequently have trouble copying templates from one wiki to another. The steps below should work for most templates.

MediaWiki code
If you have import rights (Specifically importupload) on the new wiki:


 * 1) Go to Special:Export on the original wiki, and download an .xml file with the complete history of all necessary templates, as follows:
 * 2) * Enter the name of the template in the big text box, e.g. "Template:Welcome". Pay special attention to capitalization and special characters — if the template name isn't exactly correct, the export may still occur but the .xml file will not have the expected data.
 * 3) * Check the box "".
 * 4) * Uncheck the box "".
 * 5) * Click "".
 * 6) Go to Special:Import on the new wiki and upload the .xml file.

If you don't have import rights on the new wiki:


 * 1) Go to the template you want to copy from the original wiki. Go to the edit page, and copy all the wikitext
 * 2) On the new wiki, go to the page with the same name as the template you copied. Hit create/edit and paste the wikitext you copied. In the edit summary of each template, link to the original page for attribution.
 * 3) Back in the original wiki at the edit window, below the edit box, look at the list of "Templates used on this page". For each template listed follow these instructions. Also do that for any template used by any of these templates, and so on.

This will copy the entire code necessary, and will suffice for some templates. If it doesn't work also check for red links listed under "Pages transcluded onto the current version of this page:", below the edit box. If there are any repeat the above steps for these as well and also copy the code in the modules.

After successfully importing the template and all its linked templates from the other wiki, edit it to change customisations to suit your wiki. For example to change a logo, remove redundant categories or red links.

Extensions
An extension often used in templates is ParserFunctions. Visit page and check if any of the functions listed there are used in the templates you've copied. If so, you have to install the extension. To install it, you'll need system admin access to the server of your MediaWiki installation.

Another dependency that may be used in templates, especially those on Wikipedia, is Lua. Having   in template code is a good sign for it. In case it's used, you need to install the extension and system admin access is required too. See that page for more instructions about installing and using the extension.

CSS and JavaScript code
Besides MediaWiki code, many templates make use of CSS and some rely on JavaScript to work fully. If the copied templates are not behaving as expected, this may be the cause. To copy the required CSS and JavaScript to your wiki you'll normally need to have admin privileges, because you'll be editing system messages in the "MediaWiki:" namespace.


 * 1) Look for the use of CSS classes (text like  ) in the template text. If those classes appear in "MediaWiki:Common.css" or "MediaWiki:Monobook.css" on the original wiki, copy those classes to "MediaWiki:Common.css" on the new wiki and check if the template is now fine.
 * 2) If the copied template is still not working as expected, check if there is code in "MediaWiki:Common.js" or "MediaWiki:Monobook.js" on the original wiki. If so, you can try copying it to "MediaWiki:Common.js" on the new wiki. Normally, it is a good idea to only copy code from trusted sources, and first browsing the code to identify and select the parts that are relevant. You may find comments that can serve as clues to identify the functionality of each part.