NAME
Tags::Output::Indent - Indent class
for
Tags.
SYNOPSIS
my
$tags
= Tags::Output::Indent->new;
$tags
->put([
'b'
,
'tag'
]);
my
@open_tags
=
$tags
->open_tags;
$tags
->finalize;
$tags
->flush;
$tags
->
reset
;
METHODS
new
my
$tags
= Tags::Output::Indent->new;
Constructor.
Returns instance of class.
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::Indent->new(
'attr_delimeter'
=>
"'"
,
);
$tags
->put(
[
'b'
,
'tag'
],
[
'a'
,
'attr'
,
'val'
],
[
'e'
,
'tag'
],
);
$tags
->flush;
auto_flush
Auto flush flag.
Default is 0.
cdata_indent
Flag, that means indent CDATA section.
Default value is
no
-indent (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
=
shift
;
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
.
line_size
Line size.
Default value is 79.
next_indent
Value of indent, which are added to begin of line.
Default value is
" "
.
no_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::Indent->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
undef
.
Example is similar as
'data_callback'
.
output_handler
Handler
for
print
output strings.
Must be a GLOB.
Default is
undef
.
output_sep
Output separator.
Default value is newline (\n).
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.
finalize
$tags
->finalize;
Finalize Tags output. Automaticly puts end of all opened tags.
flush
$tags
->flush;
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_tags
my
@open_tags
=
$tags
->open_tags;
Return array of opened tags.
put
$tags
->put([
'b'
,
'tag'
]);
Put tags code in tags format.
reset
$tags
->
reset
;
Resets internal variables.
ERRORS
'auto_flush'
parameter can
't use without '
output_handler' parameter.
Bad attribute delimeter
'%s'
.
Bad CDATA section.
Bad data.
Bad parameter
'%s'
.
Bad tag type
'a'
.
Bad type of data.
Ending bad tag:
'%s'
in block of tag
'%s'
.
In XML mode must be a attribute value.
EXAMPLE
use
strict;
use
warnings;
use
Tags::Output::Indent;
# Object.
my
$tags
= Tags::Output::Indent->new;
# Put data.
$tags
->put(
[
'b'
,
'text'
],
[
'd'
,
'data'
],
[
'e'
,
'text'
],
);
# Print.
$tags
->flush.
"\n"
;
# Output:
# <text>
# data
# </text>
DEPENDENCIES
Error::Pure, Indent, Indent::Word, Indent::Block, List::Util, Readonly, Tags::Utils::Preserve.
SEE ALSO
- Tags
-
Structure oriented SGML/XML/HTML/etc. elements manipulation.
- Tags::Output
-
Base class for Tags::Output::*.
- Task::Tags
-
Install the Tags modules.
REPOSITORY
https://github.com/michal-josef-spacek/Tags-Output-Indent
AUTHOR
Michal Josef Špaček skim@cpan.org
LICENSE AND COPYRIGHT
© 2011-2023 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.10