| Template-Toolkit documentation | Contained in the Template-Toolkit distribution. |
Template::Plugin::Wrap - Plugin interface to Text::Wrap
[% USE wrap %]
# call wrap subroutine
[% wrap(mytext, width, initial_tab, subsequent_tab) %]
# or use wrap FILTER
[% mytext FILTER wrap(width, initital_tab, subsequent_tab) %]
This plugin provides an interface to the Text::Wrap module which provides simple paragraph formatting.
It defines a wrap subroutine which can be called, passing the input
text and further optional parameters to specify the page width (default:
72), and tab characters for the first and subsequent lines (no defaults).
[% USE wrap %]
[% text = BLOCK %]
First, attach the transmutex multiplier to the cross-wired
quantum homogeniser.
[% END %]
[% wrap(text, 40, '* ', ' ') %]
Output:
* First, attach the transmutex
multiplier to the cross-wired quantum
homogeniser.
It also registers a wrap filter which accepts the same three optional
arguments but takes the input text directly via the filter input.
Example 1:
[% FILTER bullet = wrap(40, '* ', ' ') -%]
First, attach the transmutex multiplier to the cross-wired quantum
homogeniser.
[%- END %]
Output:
* First, attach the transmutex
multiplier to the cross-wired quantum
homogeniser.
Example 2:
[% FILTER bullet -%]
Then remodulate the shield to match the harmonic frequency, taking
care to correct the phase difference.
[% END %]
Output:
* Then remodulate the shield to match
the harmonic frequency, taking
care to correct the phase difference.
Andy Wardley <abw@wardley.org> http://wardley.org/
The Text::Wrap module was written by David Muir Sharnoff with help from Tim Pierce and many others.
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.
| Template-Toolkit documentation | Contained in the Template-Toolkit distribution. |
#============================================================= -*-Perl-*- # # Template::Plugin::Wrap # # DESCRIPTION # Plugin for wrapping text via the Text::Wrap module. # # AUTHOR # Andy Wardley <abw@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. # #============================================================================ package Template::Plugin::Wrap; use strict; use warnings; use base 'Template::Plugin'; use Text::Wrap; our $VERSION = 2.68; sub new { my ($class, $context, $format) = @_;; $context->define_filter('wrap', [ \&wrap_filter_factory => 1 ]); return \&tt_wrap; } sub tt_wrap { my $text = shift; my $width = shift || 72; my $itab = shift; my $ntab = shift; $itab = '' unless defined $itab; $ntab = '' unless defined $ntab; $Text::Wrap::columns = $width; Text::Wrap::wrap($itab, $ntab, $text); } sub wrap_filter_factory { my ($context, @args) = @_; return sub { my $text = shift; tt_wrap($text, @args); } } 1; __END__