MathML::Entities::Approximate - Returns approximated ASCII characters for XHTML+MathML Named Entities
A subclass of MathML::Entities that supplies ASCII-approximate characters for XHTML+MathML Named Entities.
use lib (getpwnam('sdadmin'))[7] . '/perlib'; use MathML::Entities::Approximate; $html = '<strong>avancée</strong>'; # convert to HTML character reference. Standard MathML::Entities $numeric = name2numbered($html) # <strong>avancée</strong> # convert to standard ASCII $ascii = name2approximated($html) # <strong>avancee</strong> # Muck around with the lookup table... MathML::Entities::Approximate::getSet(aacute); # returns 'a' MathML::Entities::Approximate::getSet(aacute, z); # returns 'z' MathML::Entities::Approximate::getSet(aacute); # now returns 'z'
MathML::Entities::Approximate is a content conversion filter for named XHTML+MathML entities. There are over two thousand named entities in the XHTML+MathML DTD, however only a fraction of them are variants on standard ASCII characters.
A string is parsed and every Named Entity is converted to a reasonable ASCII (7-bit ASCII set), or removed from the string.
There two functions, one of which is exported by default.
name2approximated
(Exported by default)
XHTML+MathML named entities in the argument of name2approximated() are replaced by the corresponding 7-bit ASCII character. Any entitiy which cannot be approximated is removed.
name2approximated()
getSet
(Never Exported)
This method is provided to allow users to extend the internal %APPROXIMATES lookup table: either alter an existing entry [for the life of the process] or add new entities.
%APPROXIMATES
Of course, for a large update to the lookup table, you have the option of:
%MathML::Entities::Approximate:APPROXIMATES = ( %MathML::Entities::Approximate:APPROXIMATES, 'foobar' => 'fb', # LOWERCASE WELL SCUNNERED 'FooBar' => 'FB', # UPPERCASE WELL SCUNNERED 'landrover' => 'landie', # LOWERCASE PROPER MOTOR 'LandRover' => 'Landie' # UPPERCASE PROPER MOTOR );
Ian Stuart <Ian.Stuart@ed.ac.uk>
Copyright (c) 2005 Ian Stuart. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
MathML::Entities, HTML::Entities, HTML::Entities::Numbered, http://www.w3.org/TR/REC-html40/sgml/entities.html, http://www.w3.org/Math/characters/
To install MathML::Entities::Approximate, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MathML::Entities::Approximate
CPAN shell
perl -MCPAN -e shell install MathML::Entities::Approximate
For more information on module installation, please visit the detailed CPAN module installation guide.