The Typo3 template record contains the instruction for rendering the website, which features it has, how it is configured, etc. A template record is always needed to start any new website in TYPO3 (using the default frontend engine).
Typo3 templates can be created entirely in Typoscript, or following this approach will use an HTML & CSS based shell to control the display of the site.
Before proceeding with this section of the Howto the Auto-Template Parser Extension must be installed.
Directions to Install Extension (Auto-template Parser)
Create an HTML/CSS-based template that structures your page the way you would like.
Upload it using the Back-end Module Filelist to a directory /fileadmin/template. Place any associated CSS and graphics in that directory or subdirectories under /fileadmin/template/.
We always create a /media directory for graphic images associated with the template.
It is a good idea to use the /div structure for creating separate blocks that you want Typo3 to be able to address.
NVU is a good open-source / cross platform (Macintosh / Linux / Windows) tool for creating your HTML-based template. We aren't fond of the CSS-editor as embedded in NVU - Nvu review
Initial Steps

You now have a template! Won't display what you want (Just Hello World!), but the big Typo3 error is gone from your site.
Alas, our work isn't done.
First basic editing
You will see
# Default PAGE object:
page = PAGE
page.10 = TEXT
page.10.value = HELLO WORLD!
This block of TypoScript tells the Typo3 front-end to display 'HELLO WORLD!'
First the basics
# Configuring the Auto-Parser for main template:
#Note 1
plugin.tx_automaketemplate_pi1 {
#Note 2
# Read the template file:
content = FILE
content.file = fileadmin/template/index.html
#Note 3
# Here we define which elements in the HTML that
# should be wrapped in subpart-comments:
elements {
BODY.all = 1
BODY.all.subpartMarker = DOCUMENT_BODY
HEAD.all = 1
HEAD.all.subpartMarker = DOCUMENT_HEADER
HEAD.rmTagSections = Title
TD.all = 1
#Note 4
#Note: Map these to the Divs you want manged by Typo3
DIV.id.nav-main = 1
DIV.id.content = 1
DIV.id.nav-supp = 1
DIV.id.nav-announcement = 1
DIV.id.nav-testimonial = 1
DIV.id.nav-newsletter = 1
}
#Note 5
# Prefix all relative paths with this value:
# Allows Typo3 to find things like the CSS & Graphics
relPathPrefix = fileadmin/template/
}
#Note 6
# Note: Locate your favicon
page.shortcutIcon = fileadmin/templates/favicon.ico
# Note 7
# Note: Spam Protection
config.spamProtectEmailAddresses = 2
config.spamProtectEmailAddresses_atSubst = (at)
#Note: Auto-generated menus will be here
# Menu 1 cObject
#Note 8
#Note: Auto-generated content will be here
# Main TEMPLATE cObject for the BODY
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
# Feeding the content from the Auto-parser to the TEMPLATE cObject:
template =< plugin.tx_automaketemplate_pi1
# Select only the content between the -tags
workOnSubpart = DOCUMENT_BODY
#Note 8.1
# Substitute the ###content## subpart with some example content:
subparts.content < styles.content.get
}
# Main TEMPLATE cObject for the HEAD
temp.headTemplate = TEMPLATE
temp.headTemplate {
# Feeding the content from the Auto-parser to the TEMPLATE cObject:
template =< plugin.tx_automaketemplate_pi1
# Select only the content between the -tags
workOnSubpart = DOCUMENT_HEADER
}
# Default PAGE object:
page = PAGE
page.typeNum = 0
# Copying the content from TEMPLATE for -section:
page.10 < temp.mainTemplate
# Copying the content from TEMPLATE for -section:
page.headerData.10 < temp.headTemplate

In this section we will enable auto-generated menus and provide the ability to attach additional content to selected parts of the page.
Typo3's back-end is built around a columnar web-page model.
In the section above we added the DIVs nav-main & nav-bottom to the Typoscript template. These will be limited to top-level navigation. The DIV nav-supp will be used for second level navigation.
To enable Front End editing add this line to the Setup field of your page template:
Typo3's columnar model provides 4 sections that content can be added to: 'Right', 'Left', 'Border' and 'Content'. We have already aligned 'Content' with the template's DIV Content. In this section we will align the other sections with other divisions. There may be more elegant ways of achieving this - but we don't know them and find this method very helpful. As Typo3 evolves there is a chance that this back-end structure may go away, if it does we will have to update our sites - we are counting on evolutionary conservatism.
In this section we will link 'Right' to DIV nav-announcement; 'Left' to DIV nav-testimonial and 'Border' to DIV nav-newsletter. 'Content' and DIV content are already linked.
Note: It will help confirm things are working as designed if you take a moment to enter some content in each of these sections
Setting up the menus is fairly easy. We will take advantage of Typoscripts object structure. First, define a temporary menu object and align it with the DIV nav-main defined above. Then repeat this section for the matching DIV nav-bottom. Lastly, create a temporary menu object for the secondary menu items and align with DIV nav-supp.
Lots of problems
Paste
# Menu 1 cObject temp.menu_1 = HMENU # First level menu-object, textual temp.menu_1.1 = TMENU temp.menu_1.1 { # Normal state properties NO.allWrap =