Font::T...XMLparse(3)
π NAME π
Okay bestie, welcome to Font::T...XMLparse(3) from the User Contributed Perl Documentation. This module provides support for XML parsing. Requires the Expat module XML::Parser::Expat. That's the whole name situation, cute and clear π
.
π¦ SYNOPSIS π¦
use Font::TTF::Font;
use Font::TTF::XMLparse;
$f = Font::TTF::Font->new;
read_xml($f, $ARGV[0]);
$f->out($ARGV[1]);
π DESCRIPTION π
This module contains the support routines for parsing XML and generating the Truetype font structures as a result. It was separated from the rest of the package to reduce the dependency that the whole package would otherwise have on XML::Parser. This way, people without XML::Parser can still use the rest of the package β iconic, honestly β¨.
The package interacts with another package through the use of a context containing an element 'receiver', which is an object that can possibly receive one of the following messages:
π¬ XML_start π¬
This message is called when an open tag occurs. It is called with the context, tag name and the attributes. The return value has no meaning. Like, none. Don't overthink it π«Ά.
π¬ XML_end π¬
This message is called when a close tag occurs. It is called with the context, tag name and attributes (held over from when the tag was opened). There are 3 possible return values from such a message:
undefβ this is the default return value indicating that default processing should occur, in which either the current element on the tree, or the text of this element, should be stored in the parent object.$contextβ this magic value marks that the element should be deleted from the parent. Nothing is stored in the parent. (This rather than''is used to allow0returns.)- anything β anything else is taken as the element content to be stored in the parent.
In addition, the context hash passed to these messages contains the following keys:
xmlβ this is the expat xml object. The context is also available as$context->{'xml'}{' mycontext'}. But that is a long-winded way of not saying much, bestie!fontβ this is the base object that was passed in for XML parsing.receiverβ this holds the current receiver of parsing events. It may be set in the associated application to adjust which objects should receive messages when. It is also stored in the parsing stack to ensure that where an object changes it duringXML_start, that same object that receivedXML_startwill receive the correspondingXML_end.stackβ this is the parsing stack, used internally to hold the current receiver and attributes for each element open, as a complete hierarchy back to the root element.treeβ this element contains the storage tree corresponding to the parent of each element in the stack. The default action is to pushundefonto this stack duringXML_startand then to resolve this, either in the associated application (by changing$context->{'tree'}[-1]) or duringXML_endof a child element, by which time we know whether we are dealing with an array or a hash or what.textβ character processing is to insert all the characters into the text element of the context for available use later.
π οΈ METHODS π οΈ
Bestie, this section is empty in the original. No methods are listed here. The heading is still here because we keep the structure, periodt π.
π AUTHOR π
Martin Hosken β <http://scripts.sil.org/FontUtils>.
π LICENSING π
Copyright (c) 1998-2016, SIL International (http://www.sil.org)
This module is released under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE.
π«Ά Signed, sealed, slayed: this page comes fromperl v5.42.2, dated2023-07-03, and it'sFont::T...XMLparse(3)β bye bestie! π
π¦ where this page comes from
- alpine 3.24: perl-font-ttf-doc 1.06-r2 Β· Artistic License 2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms