Table of Contents Plugin

Name Table of Contents Plugin
Vendor CustomWare Asia Pacific (Website)
Authors David Peterson
Homepage http://www.customware.net/repository/display/AtlassianPlugins/Table+of+Contents+Plugin
Issue Management http://developer.atlassian.com/jira/browse/TOC
Categories Content Macros
Version 2.4.7
Availability Confluence v2.6.0 to v2.9-m5
State Stable
Support Atlassian Supported Plugins
License Freeware / Open Source (BSD)
Price Free
Release Docs http://www.customware.net/repository/display/AtlassianPlugins/Table+of+Contents+Plugin
Java API Docs n/a
Download Source http://svn.atlassian.com/fisheye/browse/public/contrib/confluence/toc-plugin/tags/toc-plugin-2.4.7
Download JAR toc-plugin-2.4.7.jar

Compatibility With Confluence

Plugin Version 2.4.5 2.5.8 2.6.2 2.7.3 2.8.2 Tested
2.4.1   David Chui (Jan/09/2008)
2.4.5     David Chui (Apr/14/2008)
2.4.7     David Chui (Jul/09/2008)

Description/Features

This macro generates a Table of Contents for the current page based on its headings.

Versions of this plugin prior to 2.3 require the appropriate Utilities Plugin to be installed into WEB-INF/lib.

This macro generates a Table of Contents for the current page based on its headings.

For more information, visit this plugin's homepage

Version History

Version Date State License Price
Show description 2.4.7 (#15) 07 Jul 2008 Stable Freeware / Open Source (BSD) Free

Release Notes
function initializeColumnWidth(columnArray) { var columnWidths = {}; if (columnArray == undefined || columnArray.length <= 0) return columnWidths; // compute for the space that can be allocated, the overhead of the columns are also accounted for var spaceRemaining = getWindowWidth() - (37 + (columnArray.length*11)); var hasSummary = false; var columnsWithWidth = 0; var otherColumnWidth = 140; // set the widths for columns with default column width for (var i=0; i columnsWithWidth)) { otherColumnWidth = spaceRemaining / (columnArray.length - columnsWithWidth); // adjust the size the columns with for (var i=0; iJira Issues', page: 1, useRp: false, rp: 1000, showTableToggleBtn: true, height: 160, onSubmit: onSubmitFunction_jiraissues_0, onError: onErrorFunction_jiraissues_0, onReload: onReloadFunction_jiraissues_0, errormsg: 'Connection Error', pagestat: 'Displaying {from} to {to} of {total} items', procmsg: 'Processing, please wait...', nomsg: 'No items' }); });

Contributors

  • David Peterson — Developer

Show description 2.4.5 (#14) 08 Apr 2008 Stable Freeware / Open Source (BSD) Free

Release Notes
onErrorFunction_jiraissues_1 = (function(XMLHttpRequest, textStatus, errorThrown){ jQuery('#jiraissues_1 .pReload').removeClass('loading'); // TODO: may want to change it to an error sign or something? // and probably need to add macro id here this.loading = false; jQuery('#jiraissues_1 .pPageStat').html('Error: '+XMLHttpRequest.responseText); }); onReloadFunction_jiraissues_1 = (function(){ this.onSubmit = reloadOnSubmitFunction_jiraissues_1; return true; }); reloadOnSubmitFunction_jiraissues_1 = (function(){ this.params = [{name:'useCache',value:'false'}]; this.onSubmit = onSubmitFunction_jiraissues_1; return true; }); onSubmitFunction_jiraissues_1 = (function(){ this.params = [{name:'useCache',value:'true'}]; return true; }); showTrustWarningsFunction_jiraissues_1 = (function(data){ if(data.trustedMessage) { jQuery('#jiraissues_1_trusted td:last').html(data.trustedMessage); jQuery('#jiraissues_1_trusted').css('display','block'); } else jQuery('#jiraissues_1_trusted').css('display','none'); }); jQuery(document).ready(function(){ var columnArray = new Array(); columnArray.push("type".toLowerCase()); columnArray.push("key".toLowerCase()); columnArray.push("summary".toLowerCase()); columnArray.push("assignee".toLowerCase()); columnArray.push("reporter".toLowerCase()); columnArray.push("priority".toLowerCase()); columnArray.push("status".toLowerCase()); columnArray.push("resolution".toLowerCase()); columnArray.push("created".toLowerCase()); columnArray.push("updated".toLowerCase()); columnArray.push("due".toLowerCase()); var columnWidths = initializeColumnWidth(columnArray); ; jQuery('#jiraissues_1_table').flexigrid({ url: '/plugins/servlet/issue-retriever?columns=type&columns=key&columns=summary&columns=assignee&columns=reporter&columns=priority&columns=status&columns=resolution&columns=created&columns=updated&columns=due&url=http%3A%2F%2Fdeveloper.atlassian.com%2Fjira%2Fsr%2Fjira.issueviews%3Asearchrequest-xml%2Ftemp%2FSearchRequest.xml%3F%26type%3D1%26type%3D4%26type%3D2%26pid%3D10501%26fixfor%3D11513&useTrustedConnection=false', method: 'GET', dataType: 'json', colModel: [ {display: 'type', name : 'type', width : columnWidths['type'.toLowerCase()], sortable : true, align: 'left'}, {display: 'key', name : 'key', width : columnWidths['key'.toLowerCase()], sortable : true, align: 'left'}, {display: 'summary', name : 'summary', width : columnWidths['summary'.toLowerCase()], sortable : true, align: 'left'}, {display: 'assignee', name : 'assignee', width : columnWidths['assignee'.toLowerCase()], sortable : true, align: 'left'}, {display: 'reporter', name : 'reporter', width : columnWidths['reporter'.toLowerCase()], sortable : true, align: 'left'}, {display: 'priority', name : 'priority', width : columnWidths['priority'.toLowerCase()], sortable : true, align: 'left'}, {display: 'status', name : 'status', width : columnWidths['status'.toLowerCase()], sortable : true, align: 'left'}, {display: 'resolution', name : 'resolution', width : columnWidths['resolution'.toLowerCase()], sortable : true, align: 'left'}, {display: 'created', name : 'created', width : columnWidths['created'.toLowerCase()], sortable : true, align: 'left'}, {display: 'updated', name : 'updated', width : columnWidths['updated'.toLowerCase()], sortable : true, align: 'left'}, {display: 'due', name : 'due', width : columnWidths['due'.toLowerCase()], sortable : true, align: 'left'} ], sortname: 'key', sortorder: 'desc', usepager: true, title: 'Jira Issues', page: 1, useRp: false, rp: 1000, showTableToggleBtn: true, height: 160, onSubmit: onSubmitFunction_jiraissues_1, onError: onErrorFunction_jiraissues_1, onReload: onReloadFunction_jiraissues_1, errormsg: 'Connection Error', pagestat: 'Displaying {from} to {to} of {total} items', procmsg: 'Processing, please wait...', nomsg: 'No items' }); });

Contributors

  • David Peterson — Developer

Show description 2.4.1 (#13) 10 Jul 2007 Stable Freeware / Open Source (BSD) Free

Release Notes
onErrorFunction_jiraissues_2 = (function(XMLHttpRequest, textStatus, errorThrown){ jQuery('#jiraissues_2 .pReload').removeClass('loading'); // TODO: may want to change it to an error sign or something? // and probably need to add macro id here this.loading = false; jQuery('#jiraissues_2 .pPageStat').html('Error: '+XMLHttpRequest.responseText); }); onReloadFunction_jiraissues_2 = (function(){ this.onSubmit = reloadOnSubmitFunction_jiraissues_2; return true; }); reloadOnSubmitFunction_jiraissues_2 = (function(){ this.params = [{name:'useCache',value:'false'}]; this.onSubmit = onSubmitFunction_jiraissues_2; return true; }); onSubmitFunction_jiraissues_2 = (function(){ this.params = [{name:'useCache',value:'true'}]; return true; }); showTrustWarningsFunction_jiraissues_2 = (function(data){ if(data.trustedMessage) { jQuery('#jiraissues_2_trusted td:last').html(data.trustedMessage); jQuery('#jiraissues_2_trusted').css('display','block'); } else jQuery('#jiraissues_2_trusted').css('display','none'); }); jQuery(document).ready(function(){ var columnArray = new Array(); columnArray.push("type".toLowerCase()); columnArray.push("key".toLowerCase()); columnArray.push("priority".toLowerCase()); columnArray.push("summary".toLowerCase()); columnArray.push("updated".toLowerCase()); columnArray.push("reporter".toLowerCase()); columnArray.push("status".toLowerCase()); var columnWidths = initializeColumnWidth(columnArray); ; jQuery('#jiraissues_2_table').flexigrid({ url: '/plugins/servlet/issue-retriever?columns=type&columns=key&columns=priority&columns=summary&columns=updated&columns=reporter&columns=status&url=http%3A%2F%2Fdeveloper.atlassian.com%2Fjira%2Fsr%2Fjira.issueviews%3Asearchrequest-xml%2Ftemp%2FSearchRequest.xml%3F%26pid%3D10501%26fixfor%3D11066&useTrustedConnection=false', method: 'GET', dataType: 'json', colModel: [ {display: 'type', name : 'type', width : columnWidths['type'.toLowerCase()], sortable : true, align: 'left'}, {display: 'key', name : 'key', width : columnWidths['key'.toLowerCase()], sortable : true, align: 'left'}, {display: 'priority', name : 'priority', width : columnWidths['priority'.toLowerCase()], sortable : true, align: 'left'}, {display: 'summary', name : 'summary', width : columnWidths['summary'.toLowerCase()], sortable : true, align: 'left'}, {display: 'updated', name : 'updated', width : columnWidths['updated'.toLowerCase()], sortable : true, align: 'left'}, {display: 'reporter', name : 'reporter', width : columnWidths['reporter'.toLowerCase()], sortable : true, align: 'left'}, {display: 'status', name : 'status', width : columnWidths['status'.toLowerCase()], sortable : true, align: 'left'} ], sortname: 'key', sortorder: 'desc', usepager: true, title: 'Jira Issues', page: 1, useRp: false, rp: 1000, showTableToggleBtn: true, height: 160, onSubmit: onSubmitFunction_jiraissues_2, onError: onErrorFunction_jiraissues_2, onReload: onReloadFunction_jiraissues_2, errormsg: 'Connection Error', pagestat: 'Displaying {from} to {to} of {total} items', procmsg: 'Processing, please wait...', nomsg: 'No items' }); });

Contributors

  • David Peterson — Developer

Show description 2.4 (#12) 30 Jun 2007 Stable Freeware / Open Source (BSD) Free

Release Notes
onErrorFunction_jiraissues_3 = (function(XMLHttpRequest, textStatus, errorThrown){ jQuery('#jiraissues_3 .pReload').removeClass('loading'); // TODO: may want to change it to an error sign or something? // and probably need to add macro id here this.loading = false; jQuery('#jiraissues_3 .pPageStat').html('Error: '+XMLHttpRequest.responseText); }); onReloadFunction_jiraissues_3 = (function(){ this.onSubmit = reloadOnSubmitFunction_jiraissues_3; return true; }); reloadOnSubmitFunction_jiraissues_3 = (function(){ this.params = [{name:'useCache',value:'false'}]; this.onSubmit = onSubmitFunction_jiraissues_3; return true; }); onSubmitFunction_jiraissues_3 = (function(){ this.params = [{name:'useCache',value:'true'}]; return true; }); showTrustWarningsFunction_jiraissues_3 = (function(data){ if(data.trustedMessage) { jQuery('#jiraissues_3_trusted td:last').html(data.trustedMessage); jQuery('#jiraissues_3_trusted').css('display','block'); } else jQuery('#jiraissues_3_trusted').css('display','none'); }); jQuery(document).ready(function(){ var columnArray = new Array(); columnArray.push("type".toLowerCase()); columnArray.push("key".toLowerCase()); columnArray.push("priority".toLowerCase()); columnArray.push("summary".toLowerCase()); columnArray.push("updated".toLowerCase()); columnArray.push("reporter".toLowerCase()); columnArray.push("status".toLowerCase()); var columnWidths = initializeColumnWidth(columnArray); ; jQuery('#jiraissues_3_table').flexigrid({ url: '/plugins/servlet/issue-retriever?columns=type&columns=key&columns=priority&columns=summary&columns=updated&columns=reporter&columns=status&url=http%3A%2F%2Fdeveloper.atlassian.com%2Fjira%2Fsr%2Fjira.issueviews%3Asearchrequest-xml%2Ftemp%2FSearchRequest.xml%3F%26pid%3D10501%26fixfor%3D11065&useTrustedConnection=false', method: 'GET', dataType: 'json', colModel: [ {display: 'type', name : 'type', width : columnWidths['type'.toLowerCase()], sortable : true, align: 'left'}, {display: 'key', name : 'key', width : columnWidths['key'.toLowerCase()], sortable : true, align: 'left'}, {display: 'priority', name : 'priority', width : columnWidths['priority'.toLowerCase()], sortable : true, align: 'left'}, {display: 'summary', name : 'summary', width : columnWidths['summary'.toLowerCase()], sortable : true, align: 'left'}, {display: 'updated', name : 'updated', width : columnWidths['updated'.toLowerCase()], sortable : true, align: 'left'}, {display: 'reporter', name : 'reporter', width : columnWidths['reporter'.toLowerCase()], sortable : true, align: 'left'}, {display: 'status', name : 'status', width : columnWidths['status'.toLowerCase()], sortable : true, align: 'left'} ], sortname: 'key', sortorder: 'desc', usepager: true, title: 'Jira Issues', page: 1, useRp: false, rp: 1000, showTableToggleBtn: true, height: 160, onSubmit: onSubmitFunction_jiraissues_3, onError: onErrorFunction_jiraissues_3, onReload: onReloadFunction_jiraissues_3, errormsg: 'Connection Error', pagestat: 'Displaying {from} to {to} of {total} items', procmsg: 'Processing, please wait...', nomsg: 'No items' }); });

Contributors

  • David Peterson — Developer

Show description 2.3.2 (#11) 07 Mar 2007 Stable Freeware / Open Source (BSD) Free

Release Notes
onErrorFunction_jiraissues_4 = (function(XMLHttpRequest, textStatus, errorThrown){ jQuery('#jiraissues_4 .pReload').removeClass('loading'); // TODO: may want to change it to an error sign or something? // and probably need to add macro id here this.loading = false; jQuery('#jiraissues_4 .pPageStat').html('Error: '+XMLHttpRequest.responseText); }); onReloadFunction_jiraissues_4 = (function(){ this.onSubmit = reloadOnSubmitFunction_jiraissues_4; return true; }); reloadOnSubmitFunction_jiraissues_4 = (function(){ this.params = [{name:'useCache',value:'false'}]; this.onSubmit = onSubmitFunction_jiraissues_4; return true; }); onSubmitFunction_jiraissues_4 = (function(){ this.params = [{name:'useCache',value:'true'}]; return true; }); showTrustWarningsFunction_jiraissues_4 = (function(data){ if(data.trustedMessage) { jQuery('#jiraissues_4_trusted td:last').html(data.trustedMessage); jQuery('#jiraissues_4_trusted').css('display','block'); } else jQuery('#jiraissues_4_trusted').css('display','none'); }); jQuery(document).ready(function(){ var columnArray = new Array(); columnArray.push("type".toLowerCase()); columnArray.push("key".toLowerCase()); columnArray.push("priority".toLowerCase()); columnArray.push("summary".toLowerCase()); columnArray.push("updated".toLowerCase()); columnArray.push("reporter".toLowerCase()); columnArray.push("status".toLowerCase()); var columnWidths = initializeColumnWidth(columnArray); ; jQuery('#jiraissues_4_table').flexigrid({ url: '/plugins/servlet/issue-retriever?columns=type&columns=key&columns=priority&columns=summary&columns=updated&columns=reporter&columns=status&url=http%3A%2F%2Fdeveloper.atlassian.com%2Fjira%2Fsr%2Fjira.issueviews%3Asearchrequest-xml%2Ftemp%2FSearchRequest.xml%3F%26pid%3D10501%26fixfor%3D11064&useTrustedConnection=false', method: 'GET', dataType: 'json', colModel: [ {display: 'type', name : 'type', width : columnWidths['type'.toLowerCase()], sortable : true, align: 'left'}, {display: 'key', name : 'key', width : columnWidths['key'.toLowerCase()], sortable : true, align: 'left'}, {display: 'priority', name : 'priority', width : columnWidths['priority'.toLowerCase()], sortable : true, align: 'left'}, {display: 'summary', name : 'summary', width : columnWidths['summary'.toLowerCase()], sortable : true, align: 'left'}, {display: 'updated', name : 'updated', width : columnWidths['updated'.toLowerCase()], sortable : true, align: 'left'}, {display: 'reporter', name : 'reporter', width : columnWidths['reporter'.toLowerCase()], sortable : true, align: 'left'}, {display: 'status', name : 'status', width : columnWidths['status'.toLowerCase()], sortable : true, align: 'left'} ], sortname: 'key', sortorder: 'desc', usepager: true, title: 'Jira Issues', page: 1, useRp: false, rp: 1000, showTableToggleBtn: true, height: 160, onSubmit: onSubmitFunction_jiraissues_4, onError: onErrorFunction_jiraissues_4, onReload: onReloadFunction_jiraissues_4, errormsg: 'Connection Error', pagestat: 'Displaying {from} to {to} of {total} items', procmsg: 'Processing, please wait...', nomsg: 'No items' }); });

Contributors

  • David Peterson — Developer

Show description 2.3.1 (#10) 01 Mar 2007 Stable Freeware / Open Source (BSD) Free

Release Notes
onErrorFunction_jiraissues_5 = (function(XMLHttpRequest, textStatus, errorThrown){ jQuery('#jiraissues_5 .pReload').removeClass('loading'); // TODO: may want to change it to an error sign or something? // and probably need to add macro id here this.loading = false; jQuery('#jiraissues_5 .pPageStat').html('Error: '+XMLHttpRequest.responseText); }); onReloadFunction_jiraissues_5 = (function(){ this.onSubmit = reloadOnSubmitFunction_jiraissues_5; return true; }); reloadOnSubmitFunction_jiraissues_5 = (function(){ this.params = [{name:'useCache',value:'false'}]; this.onSubmit = onSubmitFunction_jiraissues_5; return true; }); onSubmitFunction_jiraissues_5 = (function(){ this.params = [{name:'useCache',value:'true'}]; return true; }); showTrustWarningsFunction_jiraissues_5 = (function(data){ if(data.trustedMessage) { jQuery('#jiraissues_5_trusted td:last').html(data.trustedMessage); jQuery('#jiraissues_5_trusted').css('display','block'); } else jQuery('#jiraissues_5_trusted').css('display','none'); }); jQuery(document).ready(function(){ var columnArray = new Array(); columnArray.push("type".toLowerCase()); columnArray.push("key".toLowerCase()); columnArray.push("priority".toLowerCase()); columnArray.push("summary".toLowerCase()); columnArray.push("updated".toLowerCase()); columnArray.push("reporter".toLowerCase()); columnArray.push("status".toLowerCase()); var columnWidths = initializeColumnWidth(columnArray); ; jQuery('#jiraissues_5_table').flexigrid({ url: '/plugins/servlet/issue-retriever?columns=type&columns=key&columns=priority&columns=summary&columns=updated&columns=reporter&columns=status&url=http%3A%2F%2Fdeveloper.atlassian.com%2Fjira%2Fsr%2Fjira.issueviews%3Asearchrequest-xml%2Ftemp%2FSearchRequest.xml%3F%26pid%3D10501%26fixfor%3D11063&useTrustedConnection=false', method: 'GET', dataType: 'json', colModel: [ {display: 'type', name : 'type', width : columnWidths['type'.toLowerCase()], sortable : true, align: 'left'}, {display: 'key', name : 'key', width : columnWidths['key'.toLowerCase()], sortable : true, align: 'left'}, {display: 'priority', name : 'priority', width : columnWidths['priority'.toLowerCase()], sortable : true, align: 'left'}, {display: 'summary', name : 'summary', width : columnWidths['summary'.toLowerCase()], sortable : true, align: 'left'}, {display: 'updated', name : 'updated', width : columnWidths['updated'.toLowerCase()], sortable : true, align: 'left'}, {display: 'reporter', name : 'reporter', width : columnWidths['reporter'.toLowerCase()], sortable : true, align: 'left'}, {display: 'status', name : 'status', width : columnWidths['status'.toLowerCase()], sortable : true, align: 'left'} ], sortname: 'key', sortorder: 'desc', usepager: true, title: 'Jira Issues', page: 1, useRp: false, rp: 1000, showTableToggleBtn: true, height: 160, onSubmit: onSubmitFunction_jiraissues_5, onError: onErrorFunction_jiraissues_5, onReload: onReloadFunction_jiraissues_5, errormsg: 'Connection Error', pagestat: 'Displaying {from} to {to} of {total} items', procmsg: 'Processing, please wait...', nomsg: 'No items' }); });

Contributors

  • David Peterson — Developer

Show description 2.3 (#9) 01 Dec 2006 Stable Freeware / Open Source (BSD) Free

Release Notes

  • Compatibility with Confluence 2.3

Contributors

  • David Peterson — Developer

Show description 1.4.7 (#8) 10 Jan 2006 Stable Freeware / Open Source (BSD) Free

Release Notes
onErrorFunction_jiraissues_6 = (function(XMLHttpRequest, textStatus, errorThrown){ jQuery('#jiraissues_6 .pReload').removeClass('loading'); // TODO: may want to change it to an error sign or something? // and probably need to add macro id here this.loading = false; jQuery('#jiraissues_6 .pPageStat').html('Error: '+XMLHttpRequest.responseText); }); onReloadFunction_jiraissues_6 = (function(){ this.onSubmit = reloadOnSubmitFunction_jiraissues_6; return true; }); reloadOnSubmitFunction_jiraissues_6 = (function(){ this.params = [{name:'useCache',value:'false'}]; this.onSubmit = onSubmitFunction_jiraissues_6; return true; }); onSubmitFunction_jiraissues_6 = (function(){ this.params = [{name:'useCache',value:'true'}]; return true; }); showTrustWarningsFunction_jiraissues_6 = (function(data){ if(data.trustedMessage) { jQuery('#jiraissues_6_trusted td:last').html(data.trustedMessage); jQuery('#jiraissues_6_trusted').css('display','block'); } else jQuery('#jiraissues_6_trusted').css('display','none'); }); jQuery(document).ready(function(){ var columnArray = new Array(); columnArray.push("type".toLowerCase()); columnArray.push("key".toLowerCase()); columnArray.push("priority".toLowerCase()); columnArray.push("summary".toLowerCase()); columnArray.push("updated".toLowerCase()); columnArray.push("reporter".toLowerCase()); columnArray.push("status".toLowerCase()); var columnWidths = initializeColumnWidth(columnArray); ; jQuery('#jiraissues_6_table').flexigrid({ url: '/plugins/servlet/issue-retriever?columns=type&columns=key&columns=priority&columns=summary&columns=updated&columns=reporter&columns=status&url=http%3A%2F%2Fdeveloper.atlassian.com%2Fjira%2Fsr%2Fjira.issueviews%3Asearchrequest-xml%2Ftemp%2FSearchRequest.xml%3F%26pid%3D10501%26fixfor%3D11062&useTrustedConnection=false', method: 'GET', dataType: 'json', colModel: [ {display: 'type', name : 'type', width : columnWidths['type'.toLowerCase()], sortable : true, align: 'left'}, {display: 'key', name : 'key', width : columnWidths['key'.toLowerCase()], sortable : true, align: 'left'}, {display: 'priority', name : 'priority', width : columnWidths['priority'.toLowerCase()], sortable : true, align: 'left'}, {display: 'summary', name : 'summary', width : columnWidths['summary'.toLowerCase()], sortable : true, align: 'left'}, {display: 'updated', name : 'updated', width : columnWidths['updated'.toLowerCase()], sortable : true, align: 'left'}, {display: 'reporter', name : 'reporter', width : columnWidths['reporter'.toLowerCase()], sortable : true, align: 'left'}, {display: 'status', name : 'status', width : columnWidths['status'.toLowerCase()], sortable : true, align: 'left'} ], sortname: 'key', sortorder: 'desc', usepager: true, title: 'Jira Issues', page: 1, useRp: false, rp: 1000, showTableToggleBtn: true, height: 160, onSubmit: onSubmitFunction_jiraissues_6, onError: onErrorFunction_jiraissues_6, onReload: onReloadFunction_jiraissues_6, errormsg: 'Connection Error', pagestat: 'Displaying {from} to {to} of {total} items', procmsg: 'Processing, please wait...', nomsg: 'No items' }); });

Contributors

  • David Peterson — Developer

Show description 1.4.6 (#6) 13 Oct 2005 Stable Freeware / Open Source (BSD) Free

Release Notes

  • TOC-4 - Add 'class' property to most macros to allow better CSS control
  • Added security checking for imported pages.
  • Moved 'style=flat' to 'type=flat' and 'style=outline' to 'outline=true' to allow more flexible combinations of settings.
  • TOC-1 - Bullets rendered incorrectly when using custom bullet style
  • TOC-3 - Badly formed XHTML - UL > UL instead of UL > LI > UL

Contributors

  • David Peterson — Developer

Show description 1.4.5 (#5) 19 Sep 2005 Stable Freeware / Open Source (BSD) Free

Release Notes

  • Added a 'printable' parameter which can be set to 'false' to hide the TOC when printing.

Contributors

  • David Peterson — Developer

Show description 1.4.4 (#4) 13 Sep 2005 Stable Freeware / Open Source (BSD) Free

Release Notes

  • Added a work-around for using '|' in a filter. Use '//' where you would usually use '|'.
  • Fixed a bug when outputing an empty TOC in 'flat' mode.

Contributors

  • David Peterson — Developer

Show description 1.4.3 (#3) 10 Sep 2005 Stable Freeware / Open Source (BSD) Free

Release Notes

  • Added the {toc-zone} macro, which only lists headings which occur inside its body.
  • Added the 'filter' parameter, allowing regex filtering of allowed headings.
  • Added the 'flat' style, which outputs each link on a single line, separated by standard characters.
  • Added the 'separator' parameter, which allows control over which characters separate links when in 'flat' style.

Contributors

  • David Peterson — Developer

Show description 1.4.2 (#2) 18 Jul 2005 Beta Freeware / Open Source (BSD) Free

Release Notes

  • Renders all macro/markup content that exists in the headings. WARNING!!! May have side effects!
  • Now optionally includes headings in included pages in the TOC.
  • Added 'outline' style which outputs subheadings in 1.2.3 style.
  • Added the 'minLevel' parameter.
  • Updated to use 1.4 renderer.
  • Renamed the 'depth' parameter to 'maxLevel' to match 'minLevel'.
  • Fixed bug with styles being inherited from previous TOC if more than one exists on a single page.
  • Fixed bug when being rendered on Templates or when previewing a new page.

Contributors

  • David Peterson — Developer

Show description 1.0 (#1) 25 Apr 2005 Alpha Freeware / Open Source (BSD) Free

Release Notes

  • Original release.

Contributors

  • David Peterson — Developer

Labels

atlassian-supported atlassian-supported Delete
confluence14 confluence14 Delete
plugin plugin Delete
macro macro Delete
confluence13 confluence13 Delete
confluence15 confluence15 Delete
confluence20 confluence20 Delete
confluence21 confluence21 Delete
repository_current repository_current Delete
confluence22 confluence22 Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Mar 05, 2007

    Mark Derricutt says:

    A common complaint/bugbear I'm hearing from our users is that the TOC macro's ge...

    A common complaint/bugbear I'm hearing from our users is that the TOC macro's generated URLs for headdings are way way way too long to put in an email (they're often 3-4 lines long).

    This is mostly a symptom of people using long headers (not a bad thing). I was wondering if there was a way to generate much smaller URLs at all? For example using the built-in tinyurl as a base, and then generated a hash of the link heading to use in the URL. This would make the URL much shorter/easier to paste to people.

    Ideally our pages should be split up, but some of our users like to write long long long pages which are easier to print. Having the links automatically generated is a godsend but the URL length seems to be a problem.

    1. Mar 05, 2007

      David Peterson says:

      Hi Mark, Confluence generates the anchor tags for each heading itself. The TOC ...

      Hi Mark,

      Confluence generates the anchor tags for each heading itself. The TOC plugin just uses Confluence's API to use the same anchor code.

      As such, to change this would require a change built into Confluence itself, as opposed to the TOC plugin. I like your idea of using something like the tinyurl hashing algorithm. Currently Confluence's anchor-generation code breaks if there is a macro in the heading (which is quite common). Using a hash would get around this problem.

      Anyway, I'd suggest creating a feature request here for an improvement to Confluence. I'll happily vote for it.

      1. Mar 07, 2007

        Mark Derricutt says:

        Added a ticket as
      2. Apr 10

        Anitha Raghavan says:

        Hi David, I would like to create&nbsp; a TOC on my dashboard that will list all ...

        Hi David,

        I would like to create  a TOC on my dashboard that will list all the spaces and thier pages. Is there  a way to do it in Confluence 2.7.

        Could you please let me know how to do that in 2.7?

        Thanks,

        Anitha

        1. Apr 10

          David Peterson says:

          To modify the dashboard you will either need to create your own theme plugin or ...

          To modify the dashboard you will either need to create your own theme plugin or use something like Atlassian's 'Builder Theme'. Once you've done that, you can use something like the Reporting Plugin or the Page Tree plugin to generate a list of pages.

          However, I'm not sure I'd recommend putting that much information on the dashboard, particularly if you are expecting the site to grow. Having to display every space and page name will kind of defeat the purpose of having a dashboard, which is fast access to the important parts of the site.

          The other options is to create a Space/Page which basically acts like a custom dashboard and have that as the default entry to the site. Then you can put whatever you want on it.

  2. Apr 24, 2007

    Mingyi Liu says:

    Seems toc 2.3.2 does not work in Firefox whenever there's an escaped character i...

    Seems toc 2.3.2 does not work in Firefox whenever there's an escaped character in the link. Can you update the macro to simply get rid of the escaping? Otherwise only IE would work whenever user used a comma in the h2 title or used a ? at the end of the title, just to name a couple examples. Thanks!

    1. Apr 24, 2007

      David Peterson says:

      This is actually a bug in Confluence (CONF8238

      This is actually a bug in Confluence (CONF-8238). Atlassian changed the way that header anchors are created to resolve another issue, but didn't seem to account for non-ASCII characters. The TOC plugin just uses Atlassian's code to generate the anchors.

      There is a workaround listed on the above bug - you can revert your copy of Confluence to the old behaviour if you wish.

      Otherwise, please comment/vote/watch the above issue, and hopefully it will be resolved soon!

      1. Apr 25, 2007

        Mingyi Liu says:

        Thanks for your quick reply. I suggested a fix that should work very well, hopef...

        Thanks for your quick reply. I suggested a fix that should work very well, hopefully Confluence will fix it soon.

  3. Jul 05, 2007

    Scott Lawley says:

    Hi, I'm running Confluence 2.5.4....

    Hi,

    I'm running Confluence 2.5.4. The TOC macro produces html as such:

    <ul>
        <li><a href='#CommunityNetworkStatusReport-June2007-KeyPerformanceIndicators'>Key Performance Indicators</a></li>
    <ul>
        <li><a href='#CommunityNetworkStatusReport-June2007-CommunityMembers'>Community Members</a></li>
        <li><a href='#CommunityNetworkStatusReport-June2007-BPXMembers'>BPX Members</a></li>
        <li><a href='#CommunityNetworkStatusReport-June2007-ActiveContributors'>Active Contributors</a></li>
        <li><a href='#CommunityNetworkStatusReport-June2007-UniqueMonthlyVisitors'>Unique Monthly Visitors</a></li>
        <li><a href='#CommunityNetworkStatusReport-June2007-Revenue'>Revenue</a></li>
    </ul>
        <li><a href='#CommunityNetworkStatusReport-June2007-CommunityStatistics'>Community Statistics</a></li>
        <li><a href='#CommunityNetworkStatusReport-June2007-TeamStatusReports'>Team Status Reports</a></li>
    <ul>
        <li><a href='#CommunityNetworkStatusReport-June2007-PlatformTeam'>Platform Team</a></li>
        <li><a href='#CommunityNetworkStatusReport-June2007-SMOTeams'>SMO Teams</a></li>
        <li><a href='#CommunityNetworkStatusReport-June2007-BusinessDevelopmentTeam'>Business