The code below is for an action called ""{{headings}}"". It uses the css modification for the floating boxes suggested by DotMG (see bottom of this page). Use is "">>{{headings}}>>"" where it'll provide a list of headings on the page on the right hand side of the page. The exception to this is that any heading (such as a page title) with 6 "=" signs will not be on the list. Original code (before considerable modification) was from a suggestion at wikini for TOC code. Save the following code as ##actions/headings.php##... %%(php) LoadPage($this->getPageTag()); $toc = $page["body"]; // remove some characters $toc = str_replace("\r", "", $toc); $toc = chop($toc)."\n"; // Removes all but the titles $nonEgEg = "([^=]*=?[^=]+)*"; // Suite de caractères sans == Continuation of characters without == $toc = preg_replace("($nonEgEg((=){2,6})$nonEgEg((=){2,6})$nonEgEg)ms", "\\2#NumTitre#\\4\\2 ", $toc); // Puts the headings in order $toc = preg_replace_callback("(#NumTitre#)ms", create_function ( '$matches', 'static $numTitre = 0; return "#".++$numTitre."#";' ) , $toc); // Creating the bulleted list $toc = preg_replace("((=){6}#(([0-9]+))#($nonEgEg)(=){6} )", "", $toc); $toc = preg_replace("((=){5}#(([0-9]+))#($nonEgEg)(=){5} )", "