1#============================================================= -*-perl-*- 2# 3# Template::Toolkit 4# 5# DESCRIPTION 6# Front-page for the Template Toolkit documentation 7# 8# AUTHOR 9# Andy Wardley <abw@wardley.org> 10# 11# COPYRIGHT 12# Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved. 13# 14# This module is free software; you can redistribute it and/or 15# modify it under the same terms as Perl itself. 16# 17#======================================================================== 18 19=head1 NAME 20 21Template::Toolkit - Template Processing System 22 23=head1 Introduction 24 25The Template Toolkit is a collection of Perl modules which implement a 26fast, flexible, powerful and extensible template processing system. 27 28It is "input-agnostic" and can be used equally well for processing any 29kind of text documents: HTML, XML, CSS, Javascript, Perl code, plain text, 30and so on. However, it is most often used for generating static and 31dynamic web content, so that's what we'll focus on here. 32 33Although the Template Toolkit is written in Perl, you don't need to be a Perl 34programmer to use it. It was designed to allow non-programmers to easily 35create and maintain template-based web sites without having to mess around 36writing Perl code or going crazy with cut-n-paste. 37 38However, the Template Toolkit is also designed to be extremely flexible and 39extensible. If you are a Perl programmer, or know someone who is, then you can 40easily hook the Template Toolkit into your existing code, data, databases and 41web applications. Furthermore, you can easily extend the Template Toolkit 42through the use of its plugin mechanism and other developer APIs. 43 44Whatever context you use it in, the primary purpose of the Template Toolkit is 45to allow you to create a clear separation between the presentation elements of 46your web site and everything else. 47 48If you're generating static web pages, then you can use it to separate the 49commonly repeated user interface elements on each page (headers, menus, 50footers, etc.) from the core content. If you're generating dynamic web pages 51for the front end of a web application, then you'll also be using it to keep 52the back-end Perl code entirely separate from the front-end HTML templates. 53Either way, a I<clear separation of concerns> is what allow you to 54concentrate on one thing at a time without the other things getting in your 55way. And that's what the Template Toolkit is all about. 56 57=head1 Documentation 58 59The documentation for the Template Toolkit is organised into five sections. 60 61The L<Template::Manual> contains detailed information about using the Template 62Toolkit. It gives examples of its use and includes a full reference of the 63template language, configuration options, filters, plugins and other component 64parts. 65 66The L<Template::Modules> page lists the Perl modules that comprise the 67Template Toolkit. It gives a brief explanation of what each of them does, and 68provides a link to the complete documentation for each module for further 69information. If you're a Perl programmer looking to use the Template Toolkit 70from your Perl programs then this section is likely to be of interest. 71 72Most, if not all of the information you need to call the Template Toolkit from 73Perl is in the documentation for the L<Template> module. You only really need 74to start thinking about the other modules if you want to extend or modify the 75Template Toolkit in some way, or if you're interested in looking under the 76hood to see how it all works. 77 78The documentation for each module is embedded as POD in each 79module, so you can always use C<perldoc> from the command line to read a 80module's documentation. e.g. 81 82 $ perldoc Template 83 $ perldoc Template::Context 84 ...etc... 85 86It's worth noting that all the other documentation, including the user manual 87is available as POD. e.g. 88 89 $ perldoc Template::Manual 90 $ perldoc Template::Manual::Config 91 ...etc... 92 93The L<Template::Tools> section contains the documentation for 94L<Template::Tools::tpage|tpage> and L<Template::Tools::ttree|ttree>. 95These are two command line programs that are distributed with the 96Template Toolkit. L<tpage|Template::Tools::tpage> is used to process 97a single template file, L<ttree|Template::Tools::ttree> for processing 98entire directories of template files. 99 100The L<Template::Tutorial> section contains two introductory tutorials on using 101the Template Toolkit. The first is L<Template::Tutorial::Web> on generating 102web content. The second is L<Template::Tutorial::Datafile> on using the 103Template Toolkit to generate other data formats including XML. 104 105The final section of the manual is L<Template::FAQ> which contains answers 106to some of the Frequently Asked Questions about the Template Toolkit. 107 108You can read the documentation in HTML format either online at the Template 109Toolkit web site, L<http://template-toolkit.org/>, or by downloading the 110HTML version of the documentation from 111L<http://template-toolkit.org/download/index.html#html_docs> and unpacking 112it on your local machine. 113 114=head1 Author 115 116The Template Toolkit was written by Andy Wardley (L<http://wardley.org/> 117L<mailto:abw@wardley.org>) with assistance and contributions from a great 118number of people. Please see L<Template::Manual::Credits> for a full list. 119 120=head1 Copyright 121 122Copyright (C) 1996-2008 Andy Wardley. All Rights Reserved. 123 124This module is free software; you can redistribute it and/or 125modify it under the same terms as Perl itself. 126 127=head1 See Also 128 129L<Template>, L<Template::Manual>, L<Template::Modules>, L<Template::Tools>, 130L<Template::Tutorial> 131 132=cut 133 134# Local Variables: 135# mode: perl 136# perl-indent-level: 4 137# indent-tabs-mode: nil 138# End: 139# 140# vim: expandtab shiftwidth=4: 141