# Template::Toolkit - phpMan

## NAME
    [Template::Toolkit] - Template Processing System

Introduction
    The Template Toolkit is a collection of Perl modules which implement a
    fast, flexible, powerful and extensible template processing system.

    It is "input-agnostic" and can be used equally well for processing any
    kind of text documents: HTML, XML, CSS, Javascript, Perl code, plain
    text, and so on. However, it is most often used for generating static
    and dynamic web content, so that's what we'll focus on here.

    Although the Template Toolkit is written in Perl, you don't need to be a
    Perl programmer to use it. It was designed to allow non-programmers to
    easily create and maintain template-based web sites without having to
    mess around writing Perl code or going crazy with cut-n-paste.

    However, the Template Toolkit is also designed to be extremely flexible
    and extensible. If you are a Perl programmer, or know someone who is,
    then you can easily hook the Template Toolkit into your existing code,
    data, databases and web applications. Furthermore, you can easily extend
    the Template Toolkit through the use of its plugin mechanism and other
    developer APIs.

    Whatever context you use it in, the primary purpose of the Template
    Toolkit is to allow you to create a clear separation between the
    presentation elements of your web site and everything else.

    If you're generating static web pages, then you can use it to separate
    the commonly repeated user interface elements on each page (headers,
    menus, footers, etc.) from the core content. If you're generating
    dynamic web pages for the front end of a web application, then you'll
    also be using it to keep the back-end Perl code entirely separate from
    the front-end HTML templates. Either way, a *clear separation of
    concerns* is what allow you to concentrate on one thing at a time
    without the other things getting in your way. And that's what the
    Template Toolkit is all about.

Documentation
    The documentation for the Template Toolkit is organised into five
    sections.

    The [Template::Manual] contains detailed information about using the
    Template Toolkit. It gives examples of its use and includes a full
    reference of the template language, configuration options, filters,
    plugins and other component parts.

    The [Template::Modules] page lists the Perl modules that comprise the
    Template Toolkit. It gives a brief explanation of what each of them
    does, and provides a link to the complete documentation for each module
    for further information. If you're a Perl programmer looking to use the
    Template Toolkit from your Perl programs then this section is likely to
    be of interest.

    Most, if not all of the information you need to call the Template
    Toolkit from Perl is in the documentation for the Template module. You
    only really need to start thinking about the other modules if you want
    to extend or modify the Template Toolkit in some way, or if you're
    interested in looking under the hood to see how it all works.

    The documentation for each module is embedded as POD in each module, so
    you can always use "perldoc" from the command line to read a module's
    documentation. e.g.

        $ perldoc Template
        $ perldoc [Template::Context]
          ...etc...

    It's worth noting that all the other documentation, including the user
    manual is available as POD. e.g.

        $ perldoc [Template::Manual]
        $ perldoc [Template::Manual::Config]
          ...etc...

    The [Template::Tools] section contains the documentation for
    [Template::Tools::tpage] and [Template::Tools::ttree]. These are two command
    line programs that are distributed with the Template Toolkit. tpage is
    used to process a single template file, ttree for processing entire
    directories of template files.

    The [Template::Tutorial] section contains two introductory tutorials on
    using the Template Toolkit. The first is [Template::Tutorial::Web] on
    generating web content. The second is [Template::Tutorial::Datafile] on
    using the Template Toolkit to generate other data formats including XML.

    The final section of the manual is [Template::FAQ] which contains answers
    to some of the Frequently Asked Questions about the Template Toolkit.

    You can read the documentation in HTML format either online at the
    Template Toolkit web site, <<http://template-toolkit.org/>>, or by
    downloading the HTML version of the documentation from
    <<http://template-toolkit.org/download/index.html#html_docs>> and
    unpacking it on your local machine.

Author
    The Template Toolkit was written by Andy Wardley (<<http://wardley.org/>>
    <mailto:<abw@wardley.org>>) with assistance and contributions from a great
    number of people. Please see [Template::Manual::Credits] for a full list.

Copyright
    Copyright (C) 1996-2013 Andy Wardley. All Rights Reserved.

    This module is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

See Also
    Template, [Template::Manual], [Template::Modules], [Template::Tools],
    [Template::Tutorial]

