Filters: Table of Contents Generator

filter_toc
Maintained by Picture of Ben Chenoweth Ben Chenoweth
Automatically generated table of contents for a page of content.
52 sites
165 downloads
4 fans
Moodle 2.1, 2.2, 2.3, 2.4

Table of Contents (TOC) Filter

2017 version


The Table of Contents filter scans pages for heading tags (like h1, h2, etc) and automatically generates a nested list of these tags as a table of contents. Each entry in the table is made into an html link to the actual heading.

The plugin has both global and local settings.


Global Settings

  • Headings: you can nominate which headings tags you want the filter to look for (default: h1,h2,h3,h4)
  • Search in divs: you can choose whether or not to look for headings tags located inside divs (default: yes)
  • Backlink: you can choose whether or not to include a backlink at the end of the heading that links back to the TOC.
  • TOC Title: you can nominate the title used in the TOC (default: Table of Contents)
  • TOC Title Heading Tag: you can choose which heading tag is used for the TOC's title (default: 1)


Local Settings

(The local settings allow you to override the global settings on a per page basis.)

  • Headings: you can nominate which headings tags you want the filter to look for
  • TOC Title: you can nominate the title used in the TOC
  • TOC Title Heading Tag: you can choose which heading tag is used for the TOC's title


Hiding Individual Headings

You can also hide specific headings from the TOC by wrapping the heading in a div with class="non-toc".  For example,

<div class="non-toc">
<h1>Lesson 1 — Greco-Roman Civilisation</h1>
</div>


Location

By default, the location of the TOC is placed at the beginning of the page. However, you can nominate a different position by putting the string

[contents]

where you want the TOC to appear.


CSS

CSS styling may be used to modify the appearance of the table. The entire table is contained within a div with the 'toc' class. The backlinks have the class 'toc_link' applied to them.  For example,

/* Hide bullets in TOCs */
.toc ul {
    list-style: none;
}

(Add to the custom CSS field of your moodle theme.)

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5

Contributors

Picture of Ben Chenoweth
Ben Chenoweth (Lead maintainer)
Picture of Nigel Cunningham
Nigel Cunningham: Original author
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Just wondering . . .
    Mon, 26 Jan 2015, 10:44 AM
    Does anyone know if this still works with recent versions?

    -Derek
  • Picture of Ben Chenoweth
    Fri, 6 Mar 2015, 6:01 AM
    Yes, we have it working on Moodle 2.8.3, using the Essential theme.
  • Picture of sirisha g@
    Sat, 23 May 2015, 6:14 AM
    I have installed the plugin successfully on Moodle 2.8.3 and also made it active in SiteAdministration->Plugin->Filter->Manage Filters. But I do not see any changes in any of the courses. This might be a dump question but could anyone please let me know how to see the table of contents?

    -Sirisha
  • Picture of Jon Bolton
    Sun, 27 Dec 2015, 1:26 PM
    Just add
    [contents]
    to generate the table of contents
  • Picture of Zabelle Motte
    Wed, 28 Dec 2016, 5:28 PM
    Still working on Moodle 3.1
  • Picture of Zabelle Motte
    Mon, 18 Sep 2017, 10:09 PM
    Still working on Moodle 3.3 with a slight modification becaus there is a default toc in wiki ...

    In public function filter(), add the following lines :
    if (strpos($PAGE->url,"wiki"))
    return $text;
    after these lines :
    if ($PAGE->pagelayout <> "incourse")
    return $text;
  • Picture of David Mudrák
    Fri, 29 Sep 2017, 7:23 PM

    I am happy to announce that Ben Chenoweth became a new maintainer of this plugin and hopefully will be able to release an update for more recent Moodle versions soon. Good luck Ben, and thanks for your offer to maintain this!

Please login to post comments