1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-07-02 02:03:14 +00:00
TiddlyWiki5/editions/tw5.com/tiddlers/macros/TableOfContentsMacro.tid
gernert 8d48e194cf Update TableOfContentsMacro.tid
Seen the many questions in the group, the TableOfContentsMacro is a hot item but a bit difficult to understand.
I thought a graphical representation with the real tags for the examples might help.
2014-09-25 10:23:03 +02:00

50 lines
2.3 KiB
Plaintext

caption: toc
created: 20140919155729620
modified: 20140919155735567
tags: Macros
title: TableOfContentsMacro
type: text/vnd.tiddlywiki
The table of contents macro produces a hierarchical tree of tiddlers based on their tags.
The top level entries of the table of contents are defined by a root tag. The subentries under each of those entries are tagged with the title of the entry. Entries can be ordered using the `list` field of the tag tiddler as described in [[Tagging]].
The text for each entry is taken from the ''caption'' field if it is present, otherwise the ''title'' is used.
Entries are rendered as a link to the corresponding tiddler unless the tiddler has the value ''no'' in the field ''toc-link''. In the examples below, the entry SecondThree is set up in this way to not appear as a link.
There are several variants of the macro:
* `<<toc>>` produces a simple hierarchical tree of links
* `<<toc-expandable>>` produces an expandable tree of links
* `<<toc-selective-expandable>>` produces an expandable tree of links where the expand/contract buttons are only shown for entries that possess child nodes
The macros all generate HTML ordered lists. The `<ol>` elements are given the class `tc-toc`, with the expandable variant also having the class `tc-toc-expandable` and the selective expandable variant also having the class `tc-toc-selective-expandable`.
! Parameters
|!Position |!Name |!Description |!Default |
|1st |tag |The root tag that identifies the top level of the hierarchy | |
|2nd |sort |Optional sorting subfilter (eg `sort[title]`) | |
The ''tag'' and ''sort'' parameters are combined to make a filter expression of the form:
```
[tag[$tag$]$sort$]
```
! Examples
The top level entries of the table of contents examples are defined by the root tag 'Contents'<br>
The subentries under each of those entries are tagged with the title of the entry, here 'First', 'Second', 'Third', and 'Fourth'. One level deeper only '~SecondThree' has subentries.
Graphically, shown with - clickable - tag pills:
{{Contents||$:/core/ui/TagTemplate}}
*{{First||$:/core/ui/TagTemplate}}
*{{Second||$:/core/ui/TagTemplate}}
**{{SecondThree||$:/core/ui/TagTemplate}}
*{{Third||$:/core/ui/TagTemplate}}
*{{Fourtth||$:/core/ui/TagTemplate}}
<<tabs "[tag[table-of-contents-example]]" "TableOfContentsMacro Simple Example">>