template language
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3450
Template Lite 2.10
Template Lite is a smaller, faster alternative to the Smarty template engine. more>>
Template Lite is a smaller, faster alternative to the Smarty template engine.
For the most part, it is a drop in replacement for Smarty but uses around half of the memory and is considerably faster and far less CPU intensive when compiling and displaying templates.
Template lite was originally created by Paul Lockaby as a smaller replacement for Smarty. The original package was called Smarty Light. Even though Smarty is an Open Source project the creators of Smarty decided to trademark the name Smarty. Because of this trademarking of the name they contacted Paul Lockaby and told him he could nolonger use Smarty in the name for the package.
Paul Lockaby gave me permission to fork the project if I wanted as he was closing down support and developement for Smarty Light. The initial release of Template Lite contains a few minor bug fixes and some extra features.
I plan on adding more features to Template Lite over the next few months. For the most part Template Lite is a drop in replacement for Smarty. The nice thing about this package is how it uses around half of the memory of Smarty and it is considerably FASTER and far less CPU intensive when compiling and displaying templates.
Enhancements:
- register_resource and unregister_resource support was added.
- Different resources are supported by everything except for cached template output.
- The _get_resource internal function was added for processing "file:" and absolute tag resources.
- The resize_image plugin was added.
- Support for absolute paths to template files was fixed.
<<lessFor the most part, it is a drop in replacement for Smarty but uses around half of the memory and is considerably faster and far less CPU intensive when compiling and displaying templates.
Template lite was originally created by Paul Lockaby as a smaller replacement for Smarty. The original package was called Smarty Light. Even though Smarty is an Open Source project the creators of Smarty decided to trademark the name Smarty. Because of this trademarking of the name they contacted Paul Lockaby and told him he could nolonger use Smarty in the name for the package.
Paul Lockaby gave me permission to fork the project if I wanted as he was closing down support and developement for Smarty Light. The initial release of Template Lite contains a few minor bug fixes and some extra features.
I plan on adding more features to Template Lite over the next few months. For the most part Template Lite is a drop in replacement for Smarty. The nice thing about this package is how it uses around half of the memory of Smarty and it is considerably FASTER and far less CPU intensive when compiling and displaying templates.
Enhancements:
- register_resource and unregister_resource support was added.
- Different resources are supported by everything except for cached template output.
- The _get_resource internal function was added for processing "file:" and absolute tag resources.
- The resize_image plugin was added.
- Support for absolute paths to template files was fixed.
Download (0.086MB)
Added: 2007-01-05 License: LGPL (GNU Lesser General Public License) Price:
1029 downloads
Template::Multilingual 0.08
Template::Multilingual is a Perl module with multilingual templates for Template Toolkit. more>>
Template::Multilingual is a Perl module with multilingual templates for Template Toolkit.
SYNOPSIS
This subclass of Template Toolkits Template class supports multilingual templates: templates that contain text in several languages.
< t >
< en >Hello!< /en >
< fr >Bonjour !< /fr >
< /t >
Specify the language to use when processing a template:
use Template::Multilingual;
my $template = Template::Multilingual->new();
$template->language(en);
$template->process(example.ttml);
You can also provide the name of the template variable that will hold the language:
my $template = Template::Multilingual->new(LANGUAGE_VAR => foo);
$template->process(example.ttml, { foo => en });
METHODS
new(%params)
The new() constructor creates and returns a reference to a new template object. A reference to a hash may be supplied as a parameter to provide configuration values.
Configuration values are all valid Template superclass options, and one specific to this class:
LANGUAGE_VAR
The LANGUAGE_VAR option can be used to set the name of the template variable which contains the current language.
my $parser = Template::Multilingual->new({
LANGUAGE_VAR => global.language,
});
If this option is set, you code is responsible for setting the variables value to the current language when processing the template. Calling language() will have no effect.
If this option is not set, it defaults to language.
language($lcode)
Specify the language to be used when processing the template. Any string that matches w+ is fine, but we suggest sticking to ISO-639 which provides 2-letter codes for common languages and 3-letter codes for many others.
process
Used exactly as the original Template Toolkit process method. Be sure to call language before calling process.
<<lessSYNOPSIS
This subclass of Template Toolkits Template class supports multilingual templates: templates that contain text in several languages.
< t >
< en >Hello!< /en >
< fr >Bonjour !< /fr >
< /t >
Specify the language to use when processing a template:
use Template::Multilingual;
my $template = Template::Multilingual->new();
$template->language(en);
$template->process(example.ttml);
You can also provide the name of the template variable that will hold the language:
my $template = Template::Multilingual->new(LANGUAGE_VAR => foo);
$template->process(example.ttml, { foo => en });
METHODS
new(%params)
The new() constructor creates and returns a reference to a new template object. A reference to a hash may be supplied as a parameter to provide configuration values.
Configuration values are all valid Template superclass options, and one specific to this class:
LANGUAGE_VAR
The LANGUAGE_VAR option can be used to set the name of the template variable which contains the current language.
my $parser = Template::Multilingual->new({
LANGUAGE_VAR => global.language,
});
If this option is set, you code is responsible for setting the variables value to the current language when processing the template. Calling language() will have no effect.
If this option is not set, it defaults to language.
language($lcode)
Specify the language to be used when processing the template. Any string that matches w+ is fine, but we suggest sticking to ISO-639 which provides 2-letter codes for common languages and 3-letter codes for many others.
process
Used exactly as the original Template Toolkit process method. Be sure to call language before calling process.
Download (0.005MB)
Added: 2007-04-06 License: Perl Artistic License Price:
932 downloads
Translate! (multi-language) 1.0
Translate! (multi-language) is a Google-based, over-the-network translation desktop widget. more>>
Translate! (multi-language) is a Google-based, over-the-network translation desktop widget.
It automatically supports all languages translate.google.com supports as of the moment you start the widget.
(Double-)Click the Wrench button on the middle to chose the language pair.
<<lessIt automatically supports all languages translate.google.com supports as of the moment you start the widget.
(Double-)Click the Wrench button on the middle to chose the language pair.
Download (0.014MB)
Added: 2007-04-06 License: GPL (GNU General Public License) Price:
935 downloads
Template::Plugins 2.19
Template::Plugins is a Perl module with plugin provider module. more>>
Template::Plugins is a Perl module with plugin provider.
SYNOPSIS
use Template::Plugins;
$plugin_provider = Template::Plugins->new(%options);
($plugin, $error) = $plugin_provider->fetch($name, @args);
The Template::Plugins module defines a provider class which can be used to load and instantiate Template Toolkit plugin modules.
<<lessSYNOPSIS
use Template::Plugins;
$plugin_provider = Template::Plugins->new(%options);
($plugin, $error) = $plugin_provider->fetch($name, @args);
The Template::Plugins module defines a provider class which can be used to load and instantiate Template Toolkit plugin modules.
Download (0.76MB)
Added: 2007-08-08 License: Perl Artistic License Price:
807 downloads
Open Dice Language 1.5
Open Dice Language project is a language for describing dice rolls. more>>
Open Dice Language project is a language for describing dice rolls.
Open Dice Language is a language for describing dice rolls.
The language is nearly identical to what you see in most role-playing game texts (e.g., "1d20"). It provides several interfaces to the language.
To run in CLI interface mode:
# pushd $ODL_HOME
# java -jar ODL.jar
To run as Widget:
build using `ant widget`
widget is now installed in users widget directory
<<lessOpen Dice Language is a language for describing dice rolls.
The language is nearly identical to what you see in most role-playing game texts (e.g., "1d20"). It provides several interfaces to the language.
To run in CLI interface mode:
# pushd $ODL_HOME
# java -jar ODL.jar
To run as Widget:
build using `ant widget`
widget is now installed in users widget directory
Download (0.49MB)
Added: 2007-01-08 License: BSD License Price:
1019 downloads
Template::Manual::Plugins 2.15
Template::Manual::Plugins is Perl module for standard plugins. more>>
Template::Manual::Plugins is Perl module for standard plugins.
This section lists the standard plugins which can be used to extend the runtime functionality of the Template Toolkit. The plugins are distributed with the Template Toolkit but may required additional modules from CPAN.
TEMPLATE TOOLKIT PLUGINS
The following plugin modules are distributed with the Template Toolkit. Some of the plugins interface to external modules (detailed below) which should be downloaded from any CPAN site and installed before using the plugin.
Enhancements:
- Perl
<<lessThis section lists the standard plugins which can be used to extend the runtime functionality of the Template Toolkit. The plugins are distributed with the Template Toolkit but may required additional modules from CPAN.
TEMPLATE TOOLKIT PLUGINS
The following plugin modules are distributed with the Template Toolkit. Some of the plugins interface to external modules (detailed below) which should be downloaded from any CPAN site and installed before using the plugin.
Enhancements:
- Perl
Download (0.76MB)
Added: 2006-09-19 License: Perl Artistic License Price:
1132 downloads
V language 0.004
V language is a tiny concatenative language implemented for experimentation. more>>
V language is a tiny concatenative language implemented for experimentation.
The source is under Public Domain (un-copyrighted.)
The full featured language is on top of JVM, A native version (in alpha state) is also there in the codebase.
To run it, extract the distribution in any directory and do #gmake run.
gmake
gmake run
V
|
The language is a close relative of postscript, forth and joy. and is stack based. ie:
|2 3 *
=6
|2 3 * 5 +
=11
See status for a tutorial and more info.
The Functions available in V are available in this page: functions
(The releases are out of date and multiple fixes have gone in. Please check out and build rather than use them.)
Example functions in V. getting the roots (with out using the stack shuffling word view)
[quad-formula
[a b c] let
[minisub 0 b -].
[radical b b * 4 a * c * - sqrt].
[divisor 2 a *].
[root1 minisub radical + divisor /].
[root2 minisub radical - divisor /].
root1 root2
].
|2 4 -30 quad-formula ??
=(-5.0 3.0)
using view
[quad-root
[a b c : [0 b - b b * 4 a * c * - sqrt + 2 a * /]] view i
].
|2 4 -30 quad-root ??
=(3)
contrast this with the definition in scheme here
(define quadratic-formula
(lambda (a b c)
(let ([minusb (- 0 b)]
[radical (sqrt (- (* b b) (* 4 ( * a c))))]
[divisor (* 2 a)] )
let ([root1 (/ (+ minusb radical) divisor)]
[root2 (/ (- minusb radical) divisor)])
(cons root1 root2)))))
Definition of Qsort.
[qsort
#definitions
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
#args starts for binrec. notice that 2 arguments (termination condition
#and its result) are on first line.
[small?] []
[split_on_first_element]
#binrec recurses on the result of split_on_first_element before applying joinparts.
[joinparts]
binrec].
Some explanations.
The first and second lines (terminated by .) are internal function definitions
(Notice how qsort is also terminated by .) . is the definition syntax in V.
The first function joinparts
============================
The function joinpart contains just an application of the operator view.
view is list translator. It takes a list of the form [template : result]
then it tries to apply the template to the current stack. If it can be applied on the
stack, then the arguments named in the template are bound to values in stack. The result is then processed, and all the bound elements in result are replaced by their values.
[pivot [*list1] [*list2] : [*list1 pivot *list2]] view expects 3 arguments on the stack,
the first a single element pivot, then two lists list1 and list2.
It returns a list that is composed of elements of list1 followed by pivot
followed by elements of list2 (as defined in result - RHS of :).
ie:
44 [1 2 3] [5 6 7] [pivot [*list1] [*list2] : [*list1 pivot *list2]] view ??
=> [1 2 3 44 5 6 7]
(The function ?? is used to print out the elements in the stack now.)
The second function split_on_first_element
==========================================
The definition is [uncons [>] split&]
The uncons splits a list into the first element and the rest of the list.
ie:
[1 2 3 4 5] uncons ??
=1 [2 3 4 5]
split& takes two arguments, the first is the function F to split a list with,
and the second the list itself. All elements in the list that passes the function F
is put into the first list, and all that do not are put into the second list.
ie:
[1 2 3 4 5 6 7] [4 >] split& ??
=[5 6 7] [1 2 3 4]
The function F can also take an argument from the stack. so this also works.
4 [1 2 3 4 5 6 7] [>] split& ??
=[5 6 7] [1 2 3 4]
Thus the split_on_first_element takes the first element of a list, and split that
list based on that element as a filter.
binrec
=======
binrec expects 4 arguments,
Arg1 is the terminating condition,
Arg2 is the result if the terminating condition is met.
Arg3 is an executable statement that returns two entities.
The entire binrec statement is performed on each of the
two entities until the terminating condition is met.
Arg4 is what to do with the result of the previous statement.
Algorithm.
Here, the small? checks if the list is empty or contains just one element.
if it is, then the result is arg2 - []
ie:
[] small? ??
=true
[1] small? ??
=true
[1 2 3 4] small? ??
=false
split_on_first_element takes is executed on all lists that are larger than size 1
and as explained above, splits them into two based on the first element.
on the resultent lists, the entire qsort is performed again due to binrec.
The last joinparts takes these elements (pivot list1 list2) which are present now
on the stack, and combines them to produce a single sorted list.
A slightly friendlier function (with out the binrec.)
[qsort
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
[small?]
[]
[split_on_first_element [list1 list2 : [list1 qsort list2 qsort joinparts]] view i]
ifte].
The binrec and friends are more powerful than the explicit recursion done above, but for people new to concatenative languages, this kind of recursion may look more intuitive.
Enhancements:
- The language has become relatively stable.
- Lots of bugfixes were made in scope handling.
- Tree operations were added.
- Generic combinators were moved out into a separate library.
<<lessThe source is under Public Domain (un-copyrighted.)
The full featured language is on top of JVM, A native version (in alpha state) is also there in the codebase.
To run it, extract the distribution in any directory and do #gmake run.
gmake
gmake run
V
|
The language is a close relative of postscript, forth and joy. and is stack based. ie:
|2 3 *
=6
|2 3 * 5 +
=11
See status for a tutorial and more info.
The Functions available in V are available in this page: functions
(The releases are out of date and multiple fixes have gone in. Please check out and build rather than use them.)
Example functions in V. getting the roots (with out using the stack shuffling word view)
[quad-formula
[a b c] let
[minisub 0 b -].
[radical b b * 4 a * c * - sqrt].
[divisor 2 a *].
[root1 minisub radical + divisor /].
[root2 minisub radical - divisor /].
root1 root2
].
|2 4 -30 quad-formula ??
=(-5.0 3.0)
using view
[quad-root
[a b c : [0 b - b b * 4 a * c * - sqrt + 2 a * /]] view i
].
|2 4 -30 quad-root ??
=(3)
contrast this with the definition in scheme here
(define quadratic-formula
(lambda (a b c)
(let ([minusb (- 0 b)]
[radical (sqrt (- (* b b) (* 4 ( * a c))))]
[divisor (* 2 a)] )
let ([root1 (/ (+ minusb radical) divisor)]
[root2 (/ (- minusb radical) divisor)])
(cons root1 root2)))))
Definition of Qsort.
[qsort
#definitions
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
#args starts for binrec. notice that 2 arguments (termination condition
#and its result) are on first line.
[small?] []
[split_on_first_element]
#binrec recurses on the result of split_on_first_element before applying joinparts.
[joinparts]
binrec].
Some explanations.
The first and second lines (terminated by .) are internal function definitions
(Notice how qsort is also terminated by .) . is the definition syntax in V.
The first function joinparts
============================
The function joinpart contains just an application of the operator view.
view is list translator. It takes a list of the form [template : result]
then it tries to apply the template to the current stack. If it can be applied on the
stack, then the arguments named in the template are bound to values in stack. The result is then processed, and all the bound elements in result are replaced by their values.
[pivot [*list1] [*list2] : [*list1 pivot *list2]] view expects 3 arguments on the stack,
the first a single element pivot, then two lists list1 and list2.
It returns a list that is composed of elements of list1 followed by pivot
followed by elements of list2 (as defined in result - RHS of :).
ie:
44 [1 2 3] [5 6 7] [pivot [*list1] [*list2] : [*list1 pivot *list2]] view ??
=> [1 2 3 44 5 6 7]
(The function ?? is used to print out the elements in the stack now.)
The second function split_on_first_element
==========================================
The definition is [uncons [>] split&]
The uncons splits a list into the first element and the rest of the list.
ie:
[1 2 3 4 5] uncons ??
=1 [2 3 4 5]
split& takes two arguments, the first is the function F to split a list with,
and the second the list itself. All elements in the list that passes the function F
is put into the first list, and all that do not are put into the second list.
ie:
[1 2 3 4 5 6 7] [4 >] split& ??
=[5 6 7] [1 2 3 4]
The function F can also take an argument from the stack. so this also works.
4 [1 2 3 4 5 6 7] [>] split& ??
=[5 6 7] [1 2 3 4]
Thus the split_on_first_element takes the first element of a list, and split that
list based on that element as a filter.
binrec
=======
binrec expects 4 arguments,
Arg1 is the terminating condition,
Arg2 is the result if the terminating condition is met.
Arg3 is an executable statement that returns two entities.
The entire binrec statement is performed on each of the
two entities until the terminating condition is met.
Arg4 is what to do with the result of the previous statement.
Algorithm.
Here, the small? checks if the list is empty or contains just one element.
if it is, then the result is arg2 - []
ie:
[] small? ??
=true
[1] small? ??
=true
[1 2 3 4] small? ??
=false
split_on_first_element takes is executed on all lists that are larger than size 1
and as explained above, splits them into two based on the first element.
on the resultent lists, the entire qsort is performed again due to binrec.
The last joinparts takes these elements (pivot list1 list2) which are present now
on the stack, and combines them to produce a single sorted list.
A slightly friendlier function (with out the binrec.)
[qsort
[joinparts [pivot [*list1] [*list2] : [*list1 pivot *list2]] view].
[split_on_first_element uncons [>] split&].
[small?]
[]
[split_on_first_element [list1 list2 : [list1 qsort list2 qsort joinparts]] view i]
ifte].
The binrec and friends are more powerful than the explicit recursion done above, but for people new to concatenative languages, this kind of recursion may look more intuitive.
Enhancements:
- The language has become relatively stable.
- Lots of bugfixes were made in scope handling.
- Tree operations were added.
- Generic combinators were moved out into a separate library.
Download (0.10MB)
Added: 2007-07-25 License: MIT/X Consortium License Price:
824 downloads
Template::Magic 1.39
Template::Magic is a Perl module for magic merger of runtime values with templates. more>>
Template::Magic is a Perl module for magic merger of runtime values with templates.
SYNOPSIS
Just add these 2 magic lines to your code...
use Template::Magic;
Template::Magic->new->print( /path/to/template );
to have all your variable and subroutines merged with the template file, or set one or more constructor array to customize the output generation as you need:
use Template::Magic qw( -compile );
$tm = new Template::Magic
paths => [ qw(/any/path /any/other/path) ] ,
markers => [ qw( < / > ) ] ,
lookups => [ %my_hash, $my_obj, main ] ,
zone_handlers => [ &my_zone_handler, _EVAL_ ] ,
value_handlers => [ DEFAULT, &my_value_handler ] ,
text_handlers => sub {print lc $_[1]} ,
output_handlers => sub {print uc $_[1]} ,
post_handlers => &my_post_handler ,
options => no_cache ;
$tm->nprint( template => /path/to/template
lookups => %my_special_hash );
<<lessSYNOPSIS
Just add these 2 magic lines to your code...
use Template::Magic;
Template::Magic->new->print( /path/to/template );
to have all your variable and subroutines merged with the template file, or set one or more constructor array to customize the output generation as you need:
use Template::Magic qw( -compile );
$tm = new Template::Magic
paths => [ qw(/any/path /any/other/path) ] ,
markers => [ qw( < / > ) ] ,
lookups => [ %my_hash, $my_obj, main ] ,
zone_handlers => [ &my_zone_handler, _EVAL_ ] ,
value_handlers => [ DEFAULT, &my_value_handler ] ,
text_handlers => sub {print lc $_[1]} ,
output_handlers => sub {print uc $_[1]} ,
post_handlers => &my_post_handler ,
options => no_cache ;
$tm->nprint( template => /path/to/template
lookups => %my_special_hash );
Download (0.045MB)
Added: 2007-07-11 License: Perl Artistic License Price:
839 downloads
Template::FAQ 2.19
Template::FAQ contains Frequently Asked Questions about the Template Toolkit. more>>
Template::FAQ contains Frequently Asked Questions about the Template Toolkit.
Template Toolkit Language
Why doesnt [% a = b IF c %] work as expected?
Because the parser interprets it as
[% a = (b IF c) %]
Do this instead:
[% SET a = b IF c %]
If Im using TT to write out a TT template, is there a good way to escape [% and %]?
You can do this:
[% stag = "[%"
etag = "%]"
%]
and then:
[% stag; hello; etag %]
Or something like:
[% TAGS [- -] %]
[- INCLUDE foo -] # is a directive
[% INCLUDE foo %] # not a directive, just plain text, passed through
How do I iterate over a hash?
This is covered in the Template::Manual::VMethods section of the manual page. A list of all the keys that are in the hash can be obtained with the keys virtual method. You can then iterate over that list and by looking up each key in turn get the value.
[% FOREACH key = product.keys %]
[% key %] => [% product.$key %]
[% END %]
<<lessTemplate Toolkit Language
Why doesnt [% a = b IF c %] work as expected?
Because the parser interprets it as
[% a = (b IF c) %]
Do this instead:
[% SET a = b IF c %]
If Im using TT to write out a TT template, is there a good way to escape [% and %]?
You can do this:
[% stag = "[%"
etag = "%]"
%]
and then:
[% stag; hello; etag %]
Or something like:
[% TAGS [- -] %]
[- INCLUDE foo -] # is a directive
[% INCLUDE foo %] # not a directive, just plain text, passed through
How do I iterate over a hash?
This is covered in the Template::Manual::VMethods section of the manual page. A list of all the keys that are in the hash can be obtained with the keys virtual method. You can then iterate over that list and by looking up each key in turn get the value.
[% FOREACH key = product.keys %]
[% key %] => [% product.$key %]
[% END %]
Download (0.76MB)
Added: 2007-08-16 License: Perl Artistic License Price:
801 downloads
MAT Template Library 0.1.7
MAT is a C++ mathematical template class library. more>>
MAT Template Library is a C++ mathematical template class library. The library contains classes and routines for working with:
matrices
vectors
finding roots of polynomials
solving equations
and more...
<<lessmatrices
vectors
finding roots of polynomials
solving equations
and more...
Download (0.068MB)
Added: 2006-09-28 License: MIT/X Consortium License Price:
1122 downloads
Template::Ast 0.02
Template::Ast is a Perl module to process ASTs for Perl Template Toolkit. more>>
Template::Ast is a Perl module to process ASTs for Perl Template Toolkit.
SYNOPSIS
use Template::Ast;
# Rebuild AST stored in file:
$ast = Template::Ast->read(foo.ast) or
die Template::Ast->error();
# Writing existing AST to file:
$ast = { Marry => [24, F], John => [21, M] };
Template::Ast->write($ast, foo.ast) or
die Template::Ast->error();
$ast = Template::Ast->merge([1,2,3], undef); # [1,2,3]
$ast = Template::Ast->merge(undef, [1,2,3]); # [1,2,3]
$ast = Template::Ast->merge(undef, undef); # undef
$ast = Template::Ast->merge({A=>1,B=>2}, [C]); # [C]
$ast = Template::Ast->merge([1,2,3], [5,6]); # [5,6]
$ast = Template::Ast->merge([{A=>1},2], 5); # 5
$ast = Template::Ast->merge({A=>1,B=>2}, {C=>3}); # {A=>1,B=>2,C=>3}
$ast = Template::Ast->merge({A=>1,B=>2}, {B=>3}); # {A=>1,B=>3}
# {A=>1,B=>2}
$ast = Template::Ast->merge({A=>1,B=>undef}, {A=>undef,B=>2});
Template::Ast->merge(
{A=>1,B=>{C=>1,D=>2}},
{B=>{C=>1,D=>3,E=>4}}
); # {A=>1,B=>{C=>1,D=>3,E=>4}}
Template::Ast->merge(
{A=>1,B=>{C=>[1,2]}},
{B=>{C=>[3,4]}}
); # {A=>1,B=>{C=>[3,4]}}
print Template::Ast->dump([$vars], [vars]);
ASTs are essential in the programming model based on Perl Template Toolkit. This module provides some easy interface to do the dirty work involved in AST handling. The term AST used here are referred to any Perl referece pointed to a complex data structure, such as a nested hash, a nested array, or such.
<<lessSYNOPSIS
use Template::Ast;
# Rebuild AST stored in file:
$ast = Template::Ast->read(foo.ast) or
die Template::Ast->error();
# Writing existing AST to file:
$ast = { Marry => [24, F], John => [21, M] };
Template::Ast->write($ast, foo.ast) or
die Template::Ast->error();
$ast = Template::Ast->merge([1,2,3], undef); # [1,2,3]
$ast = Template::Ast->merge(undef, [1,2,3]); # [1,2,3]
$ast = Template::Ast->merge(undef, undef); # undef
$ast = Template::Ast->merge({A=>1,B=>2}, [C]); # [C]
$ast = Template::Ast->merge([1,2,3], [5,6]); # [5,6]
$ast = Template::Ast->merge([{A=>1},2], 5); # 5
$ast = Template::Ast->merge({A=>1,B=>2}, {C=>3}); # {A=>1,B=>2,C=>3}
$ast = Template::Ast->merge({A=>1,B=>2}, {B=>3}); # {A=>1,B=>3}
# {A=>1,B=>2}
$ast = Template::Ast->merge({A=>1,B=>undef}, {A=>undef,B=>2});
Template::Ast->merge(
{A=>1,B=>{C=>1,D=>2}},
{B=>{C=>1,D=>3,E=>4}}
); # {A=>1,B=>{C=>1,D=>3,E=>4}}
Template::Ast->merge(
{A=>1,B=>{C=>[1,2]}},
{B=>{C=>[3,4]}}
); # {A=>1,B=>{C=>[3,4]}}
print Template::Ast->dump([$vars], [vars]);
ASTs are essential in the programming model based on Perl Template Toolkit. This module provides some easy interface to do the dirty work involved in AST handling. The term AST used here are referred to any Perl referece pointed to a complex data structure, such as a nested hash, a nested array, or such.
Download (0.020MB)
Added: 2007-06-29 License: Perl Artistic License Price:
847 downloads
HTML::Template 2.9
HTML::Template module attempts to make using HTML templates simple and natural. more>>
HTML::Template module attempts to make using HTML templates simple and natural.
HTML::Template library extends standard HTML with a few new tags for variables, loops, if/else blocks and includes.
A file written with HTML and these new tags is called a template. Using this module you fill in the values for the variables and loops declared in the template.
This allows you to seperate design (the HTML) from the data, which you generate in the Perl script. While there are many other HTML template systems available, this module is simple and fast.
It doesnt try to reinvent Perl CGI, it just augments HTML with a few new and very useful abilities.
Enhancements:
- A new option was added to enforce Taint mode for unescaped variables.
- Several long-standing bugs were fixed.
- The enhanced tests produced by the Phalanx project are now part of the module.
<<lessHTML::Template library extends standard HTML with a few new tags for variables, loops, if/else blocks and includes.
A file written with HTML and these new tags is called a template. Using this module you fill in the values for the variables and loops declared in the template.
This allows you to seperate design (the HTML) from the data, which you generate in the Perl script. While there are many other HTML template systems available, this module is simple and fast.
It doesnt try to reinvent Perl CGI, it just augments HTML with a few new and very useful abilities.
Enhancements:
- A new option was added to enforce Taint mode for unescaped variables.
- Several long-standing bugs were fixed.
- The enhanced tests produced by the Phalanx project are now part of the module.
Download (0.061MB)
Added: 2007-01-31 License: GPL (GNU General Public License) Price:
998 downloads
Template::Plugin::MP3 1.02
Template::Plugin::MP3 is a Perl interface to the MP3::Info Module. more>>
Template::Plugin::MP3 is a Perl interface to the MP3::Info Module.
SYNOPSIS
[% USE mp3 = MP3("Montana.mp3") %]
[% mp3.title %]
[% mp3.album %]
# perldoc MP3::Info for more ideas
Template::Plugin::MP3 provides a simple wrapper for using MP3::Info in object oriented mode; see MP3::Info for more details.
<<lessSYNOPSIS
[% USE mp3 = MP3("Montana.mp3") %]
[% mp3.title %]
[% mp3.album %]
# perldoc MP3::Info for more ideas
Template::Plugin::MP3 provides a simple wrapper for using MP3::Info in object oriented mode; see MP3::Info for more details.
Download (0.018MB)
Added: 2006-11-08 License: Perl Artistic License Price:
1087 downloads
Template::Plugin::XML 2.16
Template::Plugin::XML is a XML plugin for the Template Toolkit. more>>
Template::Plugin::XML is a XML plugin for the Template Toolkit.
SYNOPSIS
[% USE XML;
dom = XML.dom(foo.xml);
xpath = XML.xpath(bar.xml);
simple = XML.simple(baz.xml);
rss = XML.simple(news.rdf);
%]
[% USE XML(file=foo.xml);
dom = XML.dom
xpath = XML.xpath
# ...etc...
%]
[% USE XML(dir=/path/to/xml);
file = XML.file(foo.xml );
dom = file.dom
xpath = file.xpath
# ...etc...
%]
The Template-XML distribution provides a number of Template Toolkit plugin modules for working with XML.
The Template::Plugin::XML module is a front-end to the various other XML plugin modules. Through this you can access XML files and directories of XML files via the Template::Plugin::XML::File and Template::Plugin::XML::Directory modules (which subclass from the Template::Plugin::File and Template::Plugin::Directory modules respectively). You can then create a Document Object Model (DOM) from an XML file (Template::Plugin::XML::DOM), examine it using XPath queries (Template::Plugin::XML::XPath), turn it into a Perl data structure (Template::Plugin::XML::Simple) or parse it as an RSS (RDF Site Summary) file.
The basic XML plugins were distributed as part of the Template Toolkit until version 2.15 released in May 2006. At this time they were extracted into this separate Template-XML distribution and an alpha version of this Template::Plugin::XML front-end module was added.
The Template::Plugin::XML module is still in development and not guaranteed to work correctly yet. However, all the other XML plugins are more-or-less exactly as they were in TT version 2.14 and should work as normal.
For general information on the Template Toolkit see the documentation for the Template module or http://template-toolkit.org. For information on using plugins, see Template::Plugins and "USE" in Template::Manual::Directives. For further information on XML, see http://xml.com/.
<<lessSYNOPSIS
[% USE XML;
dom = XML.dom(foo.xml);
xpath = XML.xpath(bar.xml);
simple = XML.simple(baz.xml);
rss = XML.simple(news.rdf);
%]
[% USE XML(file=foo.xml);
dom = XML.dom
xpath = XML.xpath
# ...etc...
%]
[% USE XML(dir=/path/to/xml);
file = XML.file(foo.xml );
dom = file.dom
xpath = file.xpath
# ...etc...
%]
The Template-XML distribution provides a number of Template Toolkit plugin modules for working with XML.
The Template::Plugin::XML module is a front-end to the various other XML plugin modules. Through this you can access XML files and directories of XML files via the Template::Plugin::XML::File and Template::Plugin::XML::Directory modules (which subclass from the Template::Plugin::File and Template::Plugin::Directory modules respectively). You can then create a Document Object Model (DOM) from an XML file (Template::Plugin::XML::DOM), examine it using XPath queries (Template::Plugin::XML::XPath), turn it into a Perl data structure (Template::Plugin::XML::Simple) or parse it as an RSS (RDF Site Summary) file.
The basic XML plugins were distributed as part of the Template Toolkit until version 2.15 released in May 2006. At this time they were extracted into this separate Template-XML distribution and an alpha version of this Template::Plugin::XML front-end module was added.
The Template::Plugin::XML module is still in development and not guaranteed to work correctly yet. However, all the other XML plugins are more-or-less exactly as they were in TT version 2.14 and should work as normal.
For general information on the Template Toolkit see the documentation for the Template module or http://template-toolkit.org. For information on using plugins, see Template::Plugins and "USE" in Template::Manual::Directives. For further information on XML, see http://xml.com/.
Download (0.026MB)
Added: 2006-09-09 License: Perl Artistic License Price:
1141 downloads
Mozilla Afrikaans Language Pack
Mozilla Afrikaans Language Pack is an Afrikaans translation of the Mozilla Web browser suite. more>>
The Mozilla Afrikaans Language Pack provides translations of the Mozilla suites Web browser, email program, and editor into Afrikaans.
All functions, errors, menus, and buttons are translated into Afrikaans.
<<lessAll functions, errors, menus, and buttons are translated into Afrikaans.
Download (0.48MB)
Added: 2005-04-15 License: MPL (Mozilla Public License) Price:
1656 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above template language search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed