NAME

Posy::Plugin::Toc - Posy plugin create a table of contents.

VERSION

This describes version 0.50 of Posy::Plugin::Toc.

SYNOPSIS

    @plugins = qw(Posy::Core Posy::Plugin::Toc));
    @entry_actions = qw(header
	    ...
	    parse_entry
	    make_toc
	    render_entry
	    ...
	);

DESCRIPTION

Creates a table of contents generated from headings.

The table of contents will be generated only if the entry contains the 'toc_split' or the 'toc_split_after' values, and only from headers below the match.

If there are no headers (element $toc_chapter_element), then no table of contents will be generated.

This creates a 'make_toc' entry action, which should be placed after 'parse_entry' and before 'render_entry' in the entry_action list. If you are using the Posy::Plugin::ShortBody plugin, this should be placed after 'short_body' in the entry_action list, not before it.

Configuration

This expects configuration settings in the $self->{config} hash, which, in the default Posy setup, can be defined in the main "config" file in the config directory.

toc_split

String which will be replaced by the table of contents. (default: <!-- toc -->)

toc_split_after

If this is defined, then the table of contents will be placed after the first match of this string. This is useful for putting a ToC after the first <h1> header in a file, for example. This overrides toc_split if it is defined. (default: nothing)

toc_chapter_element

Which element marks the header of the "chapters"? (default: h3)

toc_chapter_prefix

This will prefix the chapters' headers.

toc_anchor

Contents of the anchor of chapters prefix.

toc_prefix

Prefix of the table of contents. (default: <h3>Table of Contents</h3><ul class="PageTOC">)

toc_line_prefix

Prefix of the line for each chapter will be inserted into the TOC (default: <li>)

toc_line_suffix

Suffix of the line for each chapter will be inserted into the TOC (default: </li>)

toc_suffix

Suffix of the table of contents. (default: </ul>)

OBJECT METHODS

Documentation for developers and those wishing to write plugins.

init

Do some initialization; make sure that default config values are set.

Entry Action Methods

Methods implementing per-entry actions.

make_toc

$self->make_toc($flow_state, $current_entry, $entry_state)

Alters $current_entry->{body} by adding a table-of-contents if the "toc_split" or the "toc_split_after" string is in the body.

Private Methods

_toc_do_stuff

Return the stuff to be substituted in found header anchors, and append to the $toc information.

REQUIRES

Posy
Posy::Core

Test::More

SEE ALSO

perl(1). Posy

BUGS

Please report any bugs or feature requests to the author.

AUTHOR

Kathryn Andersen (RUBYKAT)
perlkat AT katspace dot com
http://www.katspace.com

COPYRIGHT AND LICENCE

Copyright (c) 2004-2005 by Kathryn Andersen

Based on the blosxom 'toc' plugin by Gregor Rayman (copyright 2003) <rayman <at> grayman <dot> de>

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