Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / i486-linux-gnu-thread-multi / Template / Toolkit.pod
CommitLineData
3fea05b9 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: