Parse::BBCode::Tag(3) 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 is "i", 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.