NAME
Text::Widont - Suppress typographic widows
SYNOPSIS
use Text::Widont;
# For a single string...
my $string = 'Look behind you, a Three-Headed Monkey!';
print widont($string, nbsp->{html}); # "...a Three-Headed Monkey!"
# For a number of strings...
my $strings = [
'You fight like a dairy farmer.',
'How appropriate. You fight like a cow.',
];
print join "\n", @{ widont( $strings, nbsp->{html} ) };
Or the object oriented way:
use Text::Widont qw( nbsp );
my $tw = Text::Widont->new( nbsp => nbsp->{html} );
my $string = "I'm selling these fine leather jackets.";
print $tw->widont($string); # "...fine leather jackets."
DESCRIPTION
Collins English Dictionary defines a "widow" in typesetting as:
A short line at the end of a paragraph, especially one that occurs as the
top line of a page or column.
For example, in the text...
How much wood could a woodchuck
chuck if a woodchuck could chuck
wood?
...the word "wood" at the end is considered a widow. Using
"Text::Widont", that sentence would instead appear as...
How much wood could a woodchuck
chuck if a woodchuck could
chuck wood?
NON-BREAKING SPACE TYPES
"Text::Widont" exports a hash ref, "nbsp", that contains the following
representations of a non-breaking space to be used with the widont
function:
html
The " " HTML character entity.
html_hex
The " " HTML character entity.
html_dec
The " " HTML character entity.
unicode
Unicode's "No-Break Space" character.
FUNCTIONS
widont( $string, $nbsp )
The "widont" function takes a string and returns a copy with the space
between the final two words replaced with the given $nbsp. $string can
optionally be a reference to an array of strings to transform. In this
case strings will be modified in place as well as a copy returned.
In the absence of an explicit $nbsp, Unicode's No-Break Space character
will be used.
METHODS
"Text::Widont" also provides an object oriented interface.
->new( nbsp => $nbsp )
Instantiates a new "Text::Widont" object. "nbsp" is an optional argument
that will be used when performing the substitution. It defaults to
Unicode's No-Break Space character.
->widont( $string )
Performs the substitution described above, using the object's "nbsp"
property and the given string.
DEPENDENCIES
"Text::Widont" requires the following modules:
* Carp
BUGS
Please report any bugs or feature requests to "bug-text-widont at
rt.cpan.org", or through the web interface at
<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Text-Widont>.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Text::Widont
You may also look for information at:
* Text::Widont
<http://perlprogrammer.co.uk/modules/Text::Widont/>
* AnnoCPAN: Annotated CPAN documentation
<http://annocpan.org/dist/Text-Widont/>
* RT: CPAN's request tracker
<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Text-Widont>
* Search CPAN
<http://search.cpan.org/dist/Text-Widont/>
AUTHOR
Dave Cardwell <dcardwell@cpan.org>
ACKNOWLEDGEMENTS
I was first introduced to the concept of typesetting widows and how they
might be solved programatically by Shaun Inman.
<http://www.shauninman.com/archive/2006/08/22/widont_wordpress_plugin>
COPYRIGHT AND LICENSE
Copyright (c) 2007 Dave Cardwell. All rights reserved.
This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself. See perlartistic.