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')) . '/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.
(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.
This method is provided to allow users to extend the internal
%APPROXIMATESlookup table: either alter an existing entry [for the life of the process] or add new entities.
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.