The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Parse::Man::DOM - parse nroff-formatted manpages and return a DOM tree

SYNOPSIS

 use Parse::Man::DOM;

 my $parser = Parse::Man::DOM->new;

 my $document = $parser->from_file( "my_manpage.1" );

 print "The manpage name is", $document->meta( "name" ), "\n";

DESCRIPTION

This subclass of Parse::Man returns an object tree representing the parsed content of the input file. The returned result will be an object of the Parse::Man::DOM::Document class, which itself will contain other objects nested within it.

Parse::Man::DOM::Document

Represents the document as a whole.

$meta = $document->meta( $key )

Returns a Parse::Man::DOM::Metadata object for the named item of metadata.

  • name

    The page name given to the .TH directive.

  • section

    The section number given to the .TH directive.

@paras = $document->paras

Returns a list of Parse::Man::DOM::Heading or Parse::Man::DOM::Para or subclass objects, containing the actual page content.

Parse::Man::DOM::Metadata

Represents a single item of metadata about the page.

$name = $metadata->name

The string name of the metadata

$value = $metadata->value

The string value of the metadata

Parse::Man::DOM::Heading

Represents the contents of a .SH or .SS heading

$level = $heading->level

The heading level number; 1 for .SH, 2 for .SS

$text = $heading->text

The plain text string of the heading title

Parse::Man::DOM::Para

Represents a paragraph of formatted text content. Will be one of the following subclasses.

$filling = $para->filling

Returns true if filling (.fi) is in effect, or false if no-filling (.nf) is in effect.

$chunklist = $para->body

Returns a Parse::Man::DOM::Chunklist to represent the actual content of the paragraph.

Parse::Man::DOM::Para::Plain

Represent a plain (.P or .PP) paragraph.

$type = $para->type

Returns "plain".

Parse::Man::DOM::Para::Term

Represents a term paragraph (.TP).

$type = $para->type

Returns "term".

$chunklist = $para->term

Returns a Parse::Man::DOM::Chunklist for the defined term name.

$chunklist = $para->definition

Returns a Parse::Man::DOM::Chunklist for the defined term definition.

Parse::Man::DOM::Para::Indent

Represents an indented paragraph (.IP).

$type = $para->type

Returns "indent".

Parse::Man::DOM::Chunklist

Contains a list of Parse::Man::DOM::Chunk objects to represent paragraph content.

@chunks = $chunklist->chunks

Returns a list of Parse::Man::DOM::Chunk objects.

Parse::Man::DOM::Chunk

Represents a chunk of text with a particular format applied.

$text = $chunk->text

The plain string value of the text for this chunk.

$font = $chunk->font

The font name in effect for this chunk. One of "R", "B", "I" or "SM".

$size = $chunk->size

The size of this chunk, relative to the paragraph base of 0.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>