App-Basis-ConvertText2-UtfTransform
view release on metacpan or search on metacpan
lib/App/Basis/ConvertText2/UtfTransform.pm view on Meta::CPAN
# ABSTRACT: Convert ascii text into UTF8 to simulate text formatting
=head1 NAME
App::Basis::ConvertText2::UtfTransform
=head1 SYNOPSIS
use 5.10.0 ;
use strict ;
use warnings ;
use App::Basis::ConvertText2::UtfTransform
my $string = "<b>bold text</b>
<i>italic text</i>
<f>flipped upside down text and reversed</f>
<l>Some Leet speak</l>
<o>text in bubbles</o>
<s>script text</s>
<l>are you leet</l>" ;
say utf_transform( $string) ;
my $smile = ":beer: is food! :) I <3 :cake: ;)" ;
say uttf_smilies( $smile ) ;
=head1 DESCRIPTION
A number of popular websites (eg twitter) do not allow the use of HTML to create
bold/italic font effects or perform smily transformations
However we can simulate this with some clever transformations of plain ascii text
into UTF8 codes which are a different font and so effectively create the same effect.
We have transformations for flip (reverses the string and flips upside down,
bold, italic, bubbles and leet.
We can transform A-Z a-z 0-9 and ? ! ,
I have only implemented a small set of smilies, ones that I am likely to use
=head1 Note
You cannot embed one format within another, so you cannot have bold script, or
bold italic.
=head1 See Also
L<http://txtn.us/>
=head1 Functions
=over 4
=cut
package App::Basis::ConvertText2::UtfTransform;
$App::Basis::ConvertText2::UtfTransform::VERSION = '0.4.0';
use 5.014;
use warnings;
use strict;
use Acme::LeetSpeak;
use Text::Emoticon;
use Exporter;
use vars qw( @EXPORT @ISA);
@ISA = qw(Exporter);
# this is the list of things that will get imported into the loading packages
# namespace
@EXPORT = qw(
utf_transform
utf_smilies
);
# ----------------------------------------------------------------------------
# UTF8 codes to transform normal ascii to different UTF8 codes
# to perform text effects that can be used on websites that allow UTF8 but
# do not allow HTML codes
# ----------------------------------------------------------------------------
my %flip = (
"a" => "\x{0250}",
"b" => "q",
"c" => "\x{0254}",
"d" => "p",
"e" => "\x{01DD}",
"f" => "\x{025F}",
"g" => "\x{0183}",
"h" => "\x{0265}",
"i" => "\x{0131}",
( run in 0.871 second using v1.01-cache-2.11-cpan-ceb78f64989 )