NAME
Parse::BBCode::Tag - Tag Class for Parse::BBCode
DESCRIPTION
If you parse a bbcode with Parse::BBCode Parse::BBCode::parse
returns a parse tree of Tag objects.
METHODS
- add_content
-
$tag->add_content('string');
Adds 'string' to the end of the tag content.
$tag->add_content($another_tag);
Adds
$another_tag
to the end of the tag content. - raw_text
-
my $bbcode = $tag->raw_text;
Returns the raw text of the parse tree, so all tags are converted back to bbcode.
- raw_content
-
my $bbcode = $tag->raw_content;
Returns the raw content of the tag without the opening and closing tags. So if you have tag that was parsed from
[i]italic and [bold]test[/b][/i]
it will return
italic and [bold]test[/b]
- walk
-
Utility to do a breadth first search ('bfs') over the parsed tree.
$tag->walk('bfs', sub { # tag is in $_ ... return 0; });
When the sub returns 1 it stops walking the tree. Useful for finding a certain tag.
ACCESSORS
The accessors of a tag are currently
name attr attr_raw content finished start end close class
You can call each accessor with get_*
and set_*
- name
-
The tag name. for
[i]...[/i]
it isi
, the lowercase tag name. - attr
-
TODO
- attr_raw
-
The raw text of the attribute
- content
-
An arrayref of the content of the tag, each element either a string or a tag itself.
- finished
-
Used during parsing, true if the end of the tag was found.
- start
-
The original start string, e.g. '
[size=7]
' - end
-
The original end string, e.g. '
[/size]
' - close
-
True if the tag needs a closing tag. A tag which doesn't need a closing tag is
[*]
for example, inside of[list]
tags. - class
-
'block', 'inline' or 'url'
- single
-
If this tag does not have a closing tag and also no content, like [hr], for example, set this to true. Default is 0.
- num
-
Absolute number of tag with this name in the tree. Useful if you want to number code tags and offer download links.
- level
-
Level of tag
For the tag [u] in the following bbcode
[b]bold [i]italic [u]underlined[/u][/i][/b]
it returns 3.