---
name: "Text::WikiFormat::Blocks"
section: "3pm"
platform: "linux"
package: "libtext-wikiformat-perl"
version: "0.81-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Text::WikiFormat::Blocks"
---

# Text::WikiFormat::Blocks(3pm)

blocktypes for Text::WikiFormat

## NAME

Text::WikiFormat::Blocks - blocktypes for Text::WikiFormat

## SYNOPSIS

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

## DESCRIPTION

This module merely creates subclasses of Text::WikiFormat::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::WikiFormat::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::WikiFormat::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

chromatic, `"chromatic at wgz dot org"`

## BUGS

No known bugs.

## COPYRIGHT

Copyright (c) 2006, chromatic.  Some rights reserved.

This module is free software; you can use, redistribute, and modify it under the same terms as Perl 5.8.x.
