Template::Plugin::Clickable::Email - Make email addresses in to HTML links


Template-Plugin-Clickable-Email documentation Contained in the Template-Plugin-Clickable-Email distribution.

Index


Code Index:

NAME

Top

Template::Plugin::Clickable::Email - Make email addresses in to HTML links

VERSION

Top

Version 0.01

SYNOPSIS

Top

  [% USE link_emails = Clickable::Email %]

Then

  [% text | $link_emails %]

or

  [% FILTER $link_emails %]
  <p>Some text that contains an address: nik@FreeBSD.org.</p>
  [% END %]

DESCRIPTION

Top

Template::Plugin::Clickable::Email converts any e-mail addresses found in the filtered text in to HTML mailto: links.

This module uses Email::Find, see the documentation for that module for caveats relating to how addresses are parsed, and why some false positives may occur.

AUTHOR

Top

Nik Clayton, <nik@FreeBSD.org>

BUGS

Top

Please report any bugs or feature requests to bug-template-plugin-clickable-email@rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Template-Plugin-Clickable-Email. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE

Top


Template-Plugin-Clickable-Email documentation Contained in the Template-Plugin-Clickable-Email distribution.
package Template::Plugin::Clickable::Email;

# Copyright (c) 2005 Nik Clayton
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.

use warnings;
use strict;

use Template::Plugin::Filter;
use base qw(Template::Plugin::Filter);

use Email::Find;

our $VERSION = '0.01';

sub filter {
    my($self, $text) = @_;
    my $finder =
      Email::Find->new(
		       sub {
			 my($email, $orig_email) = @_;
			 my($address) = $email->format;
			 return qq|<a href="mailto:$address">$orig_email</a>|;
		       },
		      );
    $finder->find(\$text);
    return $text;
}

1; # End of Template::Plugin::Clickable::Email