NAME

Text::GooglewikiFormat::Blocks - blocktypes for Text::GooglewikiFormat

SYNOPSIS

None. Use Text::GooglewikiFormat as the public interface, unless you want to create your own block type.

DESCRIPTION

This module merely creates subclasses of Text::GooglewikiFormat::Block, which is the interesting code. A block is a collection of related lines, such as a code block (text to display verbatim in a monospaced font), a header, an unordered list, an ordered list, and a paragraph (text to display in a proportional font).

Every block extends Text::GooglewikiFormat::Block.

METHODS

The following methods exist:

  • new( %args )

    Creates and returns a new block. The valid arguments are:

    • text

      The text of the line found in the block.

    • args

      The arguments captured by the block-identifying regular expression.

    • level

      The level of indentation for the block (usually only useful for list blocks).

    • tags

      The tags in effect for the current type of wiki formatting.

    • opts

      The options in effect for the current type of wiki formatting.

    Use the accessors of the same names to retrieve the values of the attributes.

  • add_text( @lines_of_text )

    Adds a list of lines of text to the current text for the block. This is very useful when you encounter a block and want to merge it with the previous block of the same type

  • add_args( @arguments )

    Adds further arguments to the block; useful when merging blocks.

  • formatted_text()

    Returns text formatted appropriately for this block. Blocks don't have to have formatters, but they may.

  • formatter( $line_of_text )

    Formats the $line using Text::GooglewikiFormat::format_line(). You can add your own formatter here; this is worth overriding.

  • merge( $next_block )

    Merges the current block with $next_block (the next block encountered) if they're of the same type and are at the same level. This adds the text and args of $next_block to the current block. It's your responsibility to remove $next_block from whatever your code iterates over.

  • nests()

    Returns true if this block should nest (as in lists and unordered lists) for the active wiki formatting.

  • nest( $next_block )

    Nests $next_block under this block if the both nest and if $next_block has a level greater than the current block. This actually adds $next_block as a text item within the current block. Beware.

AUTHOR

Fayland Lam, <fayland at gmail.com>

BUGS

http://code.google.com/p/fayland/issues/list

COPYRIGHT & LICENSE

Copyright 2007 Fayland Lam, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.