mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-11-04 09:33:00 +00:00 
			
		
		
		
	Extend TOC macros to allow custom link targets
This commit is contained in:
		@@ -16,7 +16,7 @@ tags: $:/tags/Macro
 | 
				
			|||||||
      <$set name="excluded" filter="""[enlist<__exclude__>] [<__tag__>]""">
 | 
					      <$set name="excluded" filter="""[enlist<__exclude__>] [<__tag__>]""">
 | 
				
			||||||
        <$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item">
 | 
					        <$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item">
 | 
				
			||||||
          <li class=<<toc-item-class>>>
 | 
					          <li class=<<toc-item-class>>>
 | 
				
			||||||
            <$list filter="[all[current]toc-link[no]]" emptyMessage="<$link><$view field='caption'><$view field='title'/></$view></$link>">
 | 
					            <$list filter="[all[current]toc-link[no]]" emptyMessage="<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}><$view field='caption'><$view field='title'/></$view></$link>">
 | 
				
			||||||
              <<toc-caption>>
 | 
					              <<toc-caption>>
 | 
				
			||||||
            </$list>
 | 
					            </$list>
 | 
				
			||||||
            <$macrocall $name="toc-body" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>
 | 
					            <$macrocall $name="toc-body" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>
 | 
				
			||||||
@@ -37,7 +37,7 @@ tags: $:/tags/Macro
 | 
				
			|||||||
<$qualify name="toc-state" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>
 | 
					<$qualify name="toc-state" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>
 | 
				
			||||||
  <$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item">
 | 
					  <$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item">
 | 
				
			||||||
    <li class=<<toc-item-class>>>
 | 
					    <li class=<<toc-item-class>>>
 | 
				
			||||||
    <$link>
 | 
					    <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>
 | 
				
			||||||
      <$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
 | 
					      <$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
 | 
				
			||||||
        <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
 | 
					        <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
 | 
				
			||||||
          {{$:/core/images/right-arrow}}
 | 
					          {{$:/core/images/right-arrow}}
 | 
				
			||||||
@@ -105,7 +105,7 @@ tags: $:/tags/Macro
 | 
				
			|||||||
<$qualify name="toc-state" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>
 | 
					<$qualify name="toc-state" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>
 | 
				
			||||||
  <$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item" >
 | 
					  <$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item" >
 | 
				
			||||||
    <li class=<<toc-item-class>>>
 | 
					    <li class=<<toc-item-class>>>
 | 
				
			||||||
      <$link>
 | 
					      <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>
 | 
				
			||||||
          <$list filter="[all[current]tagging[]$sort$limit[1]]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>">
 | 
					          <$list filter="[all[current]tagging[]$sort$limit[1]]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>">
 | 
				
			||||||
          <$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
 | 
					          <$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
 | 
				
			||||||
            <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
 | 
					            <$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
created: 20140919155729620
 | 
					created: 20140919155729620
 | 
				
			||||||
modified: 20150221224034000
 | 
					modified: 20201017134038305
 | 
				
			||||||
tags: Macros [[Core Macros]]
 | 
					tags: Macros [[Core Macros]]
 | 
				
			||||||
title: Table-of-Contents Macros
 | 
					title: Table-of-Contents Macros
 | 
				
			||||||
type: text/vnd.tiddlywiki
 | 
					type: text/vnd.tiddlywiki
 | 
				
			||||||
@@ -34,6 +34,8 @@ The tree displays the <<.field caption>> field of a tiddler if it has one, or th
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Each tiddler in the tree is normally displayed as a link. To suppress this, give the tiddler a <<.field toc-link>> field with the the value <<.value no>>. In the [[examples|Table-of-Contents Macros (Examples)]], the SecondThree tiddler is set up like this. Clicking such a tiddler in the tree causes its branch to expand or collapse.
 | 
					Each tiddler in the tree is normally displayed as a link. To suppress this, give the tiddler a <<.field toc-link>> field with the the value <<.value no>>. In the [[examples|Table-of-Contents Macros (Examples)]], the SecondThree tiddler is set up like this. Clicking such a tiddler in the tree causes its branch to expand or collapse.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<<.from-version "5.1.23">> By default, the links open the tiddlers making up the table of contents. Alternatively, if the tiddler contains a <<.field target>> field then its contents will be used as the target of the link.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The table of contents is generated as an HTML ordered list. The `<ol>` elements always have the class `tc-toc`. Expandable trees have the additional class `tc-toc-expandable`. Selectively expandable trees (including those in the two-panel browser) have `tc-toc-selective-expandable`.
 | 
					The table of contents is generated as an HTML ordered list. The `<ol>` elements always have the class `tc-toc`. Expandable trees have the additional class `tc-toc-expandable`. Selectively expandable trees (including those in the two-panel browser) have `tc-toc-selective-expandable`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To make a table of contents appear in the sidebar, see [[How to add a new tab to the sidebar]].
 | 
					To make a table of contents appear in the sidebar, see [[How to add a new tab to the sidebar]].
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user