The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Posy::Plugin::TextTemplate - Posy plugin for interpolating with Text::Template.

VERSION

This describes version 0.44 of Posy::Plugin::TextTemplate.

SYNOPSIS

    @plugins = qw(Posy::Core
        Posy::Plugin::TextTemplate
        ...);

DESCRIPTION

This overrides Posy's simple interpolate() method, by using the Text::Template module. This is not compatible with core Posy style interpolation.

Note that, if you want access to any of posy's methods inside a template, the Posy object should be available through the variable "$Posy".

This also supplies a helper method, 'safe_backtick', which can be used to safely call another program and return the results, rather than using a backtick `` which is insecure (and explicitly not allowed by this module). Note that this will probably only work in a UNIX-like environment.

Configuration

This expects configuration settings in the $self->{config} hash, which, in the default Posy setup, can be defined in the main "config" file in the data directory.

tt_recurse_into_entry

Do you want me to recursively interpolate into the entry $title and $body? Consider carefully before turning this on, since if anyone other than you has the ability to post entries, there is a chance of foolishness or malice, exposing variables and calling actions/subroutines you might not want called. (0 = No, 1 = Yes)

tt_left_delim tt_right_delim

The delimiters to use for Text::Template; for the sake of speed, it is best not to use the original '{' '}' delimiters. (default: tt_left_delim='[==', tt_right_delim='==]')

tt_entry_left_delim tt_entry_right_delim

The delimiters to use for Text::Template inside an entry (if tt_recurse_into_entry is true) (default: tt_entry_left_delim='<?perl' tt_entry_right_delim='perl?>')

I used these defaults because they look like XML directives, and for compatibility with teperl.

OBJECT METHODS

Documentation for developers and those wishing to write plugins.

init

Do some initialization; make sure that default config values are set.

Helper Methods

Methods which can be called from within other methods.

set_vars

    my %vars = $self->set_vars($flow_state);
    my %vars = $self->set_vars($flow_state, $current_entry, $entry_state);

Sets variable hashes to be used in interpolation of templates.

This can be called from a flow action or as an entry action, and will use the given state hashes accordingly.

interpolate

$content = $self->interpolate($chunk, $template, \%vars);

Interpolate the contents of the vars hash with the template and return the result.

safe_backtick

<?perl $OUT = $Posy->safe_backtick('myprog', @args); perl?>

Return the results of a program, without risking evil shell calls. This requires that the program and the arguments to that program be given separately.

INSTALLATION

Installation needs will vary depending on the particular setup a person has.

Administrator, Automatic

If you are the administrator of the system, then the dead simple method of installing the modules is to use the CPAN or CPANPLUS system.

    cpanp -i Posy::Plugin::TextTemplate

This will install this plugin in the usual places where modules get installed when one is using CPAN(PLUS).

Administrator, By Hand

If you are the administrator of the system, but don't wish to use the CPAN(PLUS) method, then this is for you. Take the *.tar.gz file and untar it in a suitable directory.

To install this module, run the following commands:

    perl Build.PL
    ./Build
    ./Build test
    ./Build install

Or, if you're on a platform (like DOS or Windows) that doesn't like the "./" notation, you can do this:

   perl Build.PL
   perl Build
   perl Build test
   perl Build install

User With Shell Access

If you are a user on a system, and don't have root/administrator access, you need to install Posy somewhere other than the default place (since you don't have access to it). However, if you have shell access to the system, then you can install it in your home directory.

Say your home directory is "/home/fred", and you want to install the modules into a subdirectory called "perl".

Download the *.tar.gz file and untar it in a suitable directory.

    perl Build.PL --install_base /home/fred/perl
    ./Build
    ./Build test
    ./Build install

This will install the files underneath /home/fred/perl.

You will then need to make sure that you alter the PERL5LIB variable to find the modules.

Therefore you will need to change the PERL5LIB variable to add /home/fred/perl/lib

        PERL5LIB=/home/fred/perl/lib:${PERL5LIB}

REQUIRES

    Posy
    Posy::Core
    Text::Template

    Test::More

SEE ALSO

perl(1). Posy Text::Template

BUGS

Please report any bugs or feature requests to the author.

AUTHOR

    Kathryn Andersen (RUBYKAT)
    perlkat AT katspace dot com
    http://www.katspace.com

COPYRIGHT AND LICENCE

Copyright (c) 2004-2005 by Kathryn Andersen

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.