NAME
Tags::Output::Raw - Raw printing 'Tags' structure to tags code.
SYNOPSIS
use Tags::Output::Raw;
my $tags = Tags::Output::Raw->new(%params);
$tags->put(['b', 'tag']);
my @elements = $tags->open_elements;
$tags->finalize;
$tags->flush($reset_flag);
$tags->reset;
# Deprecated methods.
my @tags = $obj->open_tags;
METHODS
new(%params)
-
Constructor.
attr_callback
Subroutine for output processing of attribute key and value. Input argument is reference to array. Default value is &Tags::Utils::encode_attr_entities. Example is similar as 'data_callback'.
attr_delimeter
String, that defines attribute delimeter. Default is '"'. Possible is '"' or "'". Example: Prints <tag attr='val' /> instead default <tag attr="val" /> my $tags = Tags::Output::Raw->new( 'attr_delimeter' => "'", ); $tags->put(['b', 'tag'], ['a', 'attr', 'val'], ['e', 'tag']); $tags->flush;
auto_flush
Auto flush flag. Default is 0.
cdata_callback
Subroutine for output processing of cdata. Input argument is reference to array. Default value is undef. Example is similar as 'data_callback'.
data_callback
Subroutine for output processing of data. Input argument is reference to array. Default value is &Tags::Utils::encode_char_entities. Example: 'data_callback' => sub { my ($data_ar, $self) = @_; foreach my $data (@{$data_ar}) { # Some process. $data =~ s/^\s*//ms; } return; }
input_tags_item_callback
Input 'Tags' item callback. Callback is processing before main 'Tags' put(). It's usefull for e.g. validation. Default value is undef.
no_data_callback
Reference to array of tags, that can't use data callback. Default is ['script', 'style']. Example: For elements defined in this field we don't use 'data_callback'. It's used for doing of HTML escape sequences. Prints <script>&</script> instead <script>&</script> in default setting of 'data_callback'. my $tags = Tags::Output::Raw->new( 'no_data_callback' => ['script'], ); $tags->put(['b', 'script'], ['d', '&'], ['e', 'script']); $tags->flush;
no_simple
Reference to array of tags, that can't by simple. Default is []. Example: That's normal in html pages, web browsers has problem with <script /> tag. Prints <script></script> instead <script />. my $tags = Tags::Output::Raw->new( 'no_simple' => ['script'], ); $tags->put(['b', 'script'], ['e', 'script']); $tags->flush;
output_callback
Output callback. Input argument is reference to scalar of output string. Default value is callback which encode to output encoding, if parameter 'output_encoding' is present. Arguments of callback: - $data_sr - Reference to data - $self - Object Example for output encoding in iso-8859-2: 'output_callback' => sub { my ($data_sr, $self) = @_; ${$data_sr} = encode('iso-8859-2', ${$data_sr}); return; }
output_encoding
Output encoding. Default value is undef, which mean not encode.
output_handler
Handler for print output strings. Must be a GLOB. Default is undef.
preserved
List of elements, which content will be preserved. Default value is reference to blank array.
raw_callback
Subroutine for output processing of raw data. Input argument is reference to array. Default value is undef. Example is similar as 'data_callback'.
skip_bad_tags
Skip bad tags. Default value is 0.
strict_instruction
Strict instruction. Default value is 1.
xml
Flag, that means xml output. Default is 0 (sgml).
finalize()
-
Finalize Tags output. Automaticly puts end of all opened tags. Returns undef.
flush($reset_flag)
-
Flush tags in object. If defined 'output_handler' flush to its. Or return code. If enabled $reset_flag, then resets internal variables via reset method.
open_elements()
-
Return array of opened tags.
put(@data)
-
Put tags code in tags format. Returns undef.
reset()
-
Resets internal variables. Returns undef.
DEPRECATED METHODS
-
Return array of opened tags.
ERRORS
new():
Bad attribute delimeter '%s'.
From Tags::Output::new():
Auto-flush can't use without output handler.
Output handler is bad file handler.
From Class::Utils::set_params():
Unknown parameter '%s'.
flush():
From Tags::Output::flush():
Cannot write to output handler.
put():
Bad tag type 'a'.
Bad CDATA data.
Ending bad tag: '%s' doesn't begin.
Ending bad tag: '%s' in block of tag '%s'.
In XML mode must be a attribute '%s' value.
From Tags::Output::put():
Bad data.
Bad type of data.
Bad number of arguments. 'Tags' structure %s
EXAMPLE1
use strict;
use warnings;
use Tags::Output::Raw;
# Object.
my $tags = Tags::Output::Raw->new;
# Put data.
$tags->put(
['b', 'text'],
['d', 'data'],
['e', 'text'],
);
# Print.
print $tags->flush."\n";
# Output:
# <text>data</text>
EXAMPLE2
use strict;
use warnings;
use Encode;
use Tags::Output::Raw;
# Object.
my $tags = Tags::Output::Raw->new(
'data_callback' => sub {
my ($data_ar, $self) = @_;
foreach my $data (@{$data_ar}) {
$data = encode_utf8($data);
}
return;
},
);
# Data in characters.
my $data = decode_utf8('řčěšřšč');
# Put data.
$tags->put(
['b', 'text'],
['d', $data],
['e', 'text'],
);
# Print.
print $tags->flush."\n";
# Output:
# <text>řčěšřšč</text>
DEPENDENCIES
Error::Pure, List::Util, Readonly, Tags::Utils::Preserve.
SEE ALSO
- Task::Tags
-
Install the Tags modules.
REPOSITORY
https://github.com/michal-josef-spacek/Tags
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2005-2024 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.16