Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Template::Parser(3)   User Contributed Perl Documentation  Template::Parser(3)

NAME
       Template::Parser	- LALR(1) parser for compiling template	documents

SYNOPSIS
	   use Template::Parser;

	   $parser   = Template::Parser->new(\%config);
	   $template = $parser->parse($text)
	       || die $parser->error(),	"\n";

DESCRIPTION
       The "Template::Parser" module implements	a LALR(1) parser and
       associated methods for parsing template documents into Perl code.

PUBLIC METHODS
   new(\%params)
       The "new()" constructor creates and returns a reference to a new
       "Template::Parser" object.

       A reference to a	hash may be supplied as	a parameter to provide
       configuration values.  See "CONFIGURATION OPTIONS" below	for a summary
       of these	options	and Template::Manual::Config for full details.

	   my $parser =	Template::Parser->new({
	       START_TAG => quotemeta('<+'),
	       END_TAG	 => quotemeta('+>'),
	   });

   parse($text)
       The "parse()" method parses the text passed in the first	parameter and
       returns a reference to a	hash array of data defining the	compiled
       representation of the template text, suitable for passing to the
       Template::Document new()	constructor method. On error, undef is
       returned.

	   $data = $parser->parse($text)
	       || die $parser->error();

       The $data hash reference	returned contains a "BLOCK" item containing
       the compiled Perl code for the template,	a "DEFBLOCKS" item containing
       a reference to a	hash array of sub-template "BLOCK"s defined within in
       the template, and a "METADATA" item containing a	reference to a hash
       array of	metadata values	defined	in "META" tags.

CONFIGURATION OPTIONS
       The "Template::Parser" module accepts the following configuration
       options.	 Please	see Template::Manual::Config for further details on
       each option.

   START_TAG, END_TAG
       The START_TAG and END_TAG options are used to specify character
       sequences or regular expressions	that mark the start and	end of a
       template	directive.

	   my $parser =	Template::Parser->new({
	       START_TAG => quotemeta('<+'),
	       END_TAG	 => quotemeta('+>'),
	   });

   TAG_STYLE
       The TAG_STYLE option can	be used	to set both START_TAG and END_TAG
       according to pre-defined	tag styles.

	   my $parser =	Template::Parser->new({
	       TAG_STYLE => 'star',	# [* ... *]
	   });

   PRE_CHOMP, POST_CHOMP
       The PRE_CHOMP and POST_CHOMP can	be set to remove any whitespace	before
       or after	a directive tag, respectively.

	   my $parser =	Template::Parser-E<gt>new({
	       PRE_CHOMP  => 1,
	       POST_CHOMP => 1,
	   });

   INTERPOLATE
       The INTERPOLATE flag can	be set to allow	variables to be	embedded in
       plain text blocks.

	   my $parser =	Template::Parser->new({
	       INTERPOLATE => 1,
	   });

       Variables should	be prefixed by a "$" to	identify them, using curly
       braces to explicitly scope the variable name where necessary.

	   Hello ${name},

	   The day today is ${day.today}.

   ANYCASE
       The ANYCASE option can be set to	allow directive	keywords to be
       specified in any	case.

	   # with ANYCASE set to 1
	   [% INCLUDE foobar %]	   # OK
	   [% include foobar %]	   # OK
	   [% include =	10   %]	   # ERROR, 'include' is a reserved word

   GRAMMAR
       The GRAMMAR configuration item can be used to specify an	alternate
       grammar for the parser. This allows a modified or entirely new template
       language	to be constructed and used by the Template Toolkit.

	   use MyOrg::Template::Grammar;

	   my $parser =	Template::Parser->new({
	       GRAMMAR = MyOrg::Template::Grammar->new();
	   });

       By default, an instance of the default Template::Grammar	will be
       created and used	automatically if a "GRAMMAR" item isn't	specified.

   DEBUG
       The DEBUG option	can be used to enable various debugging	features of
       the "Template::Parser" module.

	   use Template::Constants qw( :debug );

	   my $template	= Template->new({
	       DEBUG =>	DEBUG_PARSER | DEBUG_DIRS,
	   });

AUTHOR
       Andy Wardley <abw@wardley.org> <http://wardley.org/>

COPYRIGHT
       Copyright (C) 1996-2007 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.

       The main	parsing	loop of	the "Template::Parser" module was derived from
       a standalone parser generated by	version	0.16 of	the "Parse::Yapp"
       module. The following copyright notice appears in the "Parse::Yapp"
       documentation.

	   The Parse::Yapp module and its related modules and shell
	   scripts are copyright (c) 1998 Francois Desarmenien,
	   France. All rights reserved.

	   You may use and distribute them under the terms of either
	   the GNU General Public License or the Artistic License, as
	   specified in	the Perl README	file.

SEE ALSO
       Template, Template::Grammar, Template::Directive

perl v5.32.1			  2020-07-13		   Template::Parser(3)

NAME | SYNOPSIS | DESCRIPTION | PUBLIC METHODS | CONFIGURATION OPTIONS | AUTHOR | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Template::Parser&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help