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.