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