This is an advanced topic. You must be at least this ----> tall to read.
Normal pages on AllAbout are freeform. You type your page content in one great big text box, putting headers and so on wherever you want. This is fine when you're creating lots of different kinds of pages. It's not so much fun when you're making lots of the same kinds of pages, like recipes.
Recipes have things in common with each other, such as a list of ingredients and a set of directions. A recipe template would allow you to build an input form with fields called "Ingredients" and "Directions" and so on. The template would take the information in those fields and create a nicely formatted page with the appropriate headers.
This saves a lot of time when entering recipes, and ensures that all recipes have a common appearance.
A template is a page on AllAbout with at least two keywords. The first keyword must be the special keyword: Special:Template. The second keyword describes the particular sort of template, and should be similar to this: Template:Recipe.
The template itself is a normal AllAbout content page with headers and formatting. It also has, instead of regular content, special commands embedded in it to describe the fields that make up the template.
We'll continue the Recipe example because it is simple and straightforward. Here is a template for a simple recipe with ingredients and directions:
= Recipe Ingredients Here are the ingredients you'll need: %%ingredients%% = Directions Step-by-step directions: %%directions%%
As you can see, the template has two header lines, a little bit of text, and two field names surrounded by double % marks.
The field names represent the data that you'll type into the recipe page when the template is assigned to it. When you edit a Recipe page, instead of the big "Page Text" text box, you'll get two smaller text boxes, labeled "ingredients" and "directions".
When the page is shown to the user, they'll see the headers, the text, and then the ingredients and directions right where they belong -- without you having to type them over and over.
To use a template on a page, include the Template:Recipe (or whatever you called it) keyword in the page. Since that keyword is also used on another page with the Special:Template keyword, AllAbout knows to apply the template.
You can change a template even after it has been used in other pages. This can be to add more formatting, rearrange the fields, or to even add other fields. Be sure, however, to keep the NAMES of your fields the same. If you change the field names, you'll have to go back to all the pages that use that template and fix the field data.
To change the size of the edit area for a field, specify how many lines of text should be presented after the fieldname with a comma:
That would make the field labeled comment be ten lines high.
You can add instructions about the field that's shown to the right of the field when editing the data by appending it after the fieldname (and/or field size) with a vertical bar character, like this:
That would create a one-line high field named "price" with some explanatory text next to it to help the person filling out the form.
If you enclose portions of your template in double parentheses, like these: (( )) , the portion of the template inside the parentheses will only be drawn if the fields used inside the parethesis are non-blank.
This makes it easy to build versatile templates and entry forms that can handle a variety of situations without having ugly pages with lots of blank headings for fields that simply don't apply.
The rule for finding a template to apply to a page is as follows:
To use the recipe example again, the way the current Recipe Site works, the template has these keywords: Special:Template Site:Recipes Recipe. Thus, the template matches pages with the Site:Recipes Recipe keywords, without having to create a special template-specific keyword like Template:Recipe.
However, there's no shame in using a template-specific keyword when you want to, or when you need to, to specifically reference a certain template.
The following special tokens work in templates as described. They are most useful when creating list templates, but can be used otherwise.