silverstripe-autotoc 

silverstripe-autotoc

The source repository is available also on GitHub.

This is basically a SilverStripe 3 module that extends the DataObject class by providing two additional tags:

  • $Autotoc: containing the table of contents dynamically created from the content of the current page. The tree is provided as a mixture of ArrayData and ArrayList, ready to be consumed by templates.
  • $AugmentedContent: similar to $Content but augmented with anchors (<a> elements with the id attribute but without href) that adds proper destination targets to the links in $Autotoc.

To see a live example of this module, you can browse the ADG canvas website: every table of contents is generated dynamically!

Autotoc format

The $Autotoc is a tree that can be represented with the following pseudo representation:

$Autotoc = ArrayData( $Children <- <CHILDREN> )
<CHILDREN> = ArrayList( <ITEM> )
<ITEM> = ArrayData( $Id, $Title [, $Children <- <CHILDREN> ] )

In a more SilverStripe template way, this can be seen as:

$Autotoc
    $Children[]
        $Id
        $Title
        $Children[]

The Autotoc.ss and AutotocItem.ss shows a way to represent the whole table of content tree in a recursive way. The format used is intentionally compatible with the Bootstrap navlist components, so it can be used and it will be properly handled by the Silverstrap theme.

Development Team
Admins
Nicola Fontana

Powered by InDefero,
a CĂ©ondo Ltd initiative.