mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-01 07:36:18 +00:00
60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
title: Transclusion and Substitution
|
|
created: 20141018090608643
|
|
modified: 20150220190346000
|
|
type: text/vnd.tiddlywiki
|
|
|
|
The power of WikiText comes from the ability to use the content of one tiddler inside another one. This ability takes several different forms that can easily be confused.
|
|
|
|
The main distinction is between a transclusion and a textual substitution:
|
|
|
|
* A transclusion is replaced dynamically with the value of either:
|
|
** a tiddler field
|
|
** a variable
|
|
* Textual substitutions are performed on the text of macro definitions before they are used
|
|
|
|
! Tiddler Field Transclusion
|
|
|
|
[[Transclusion in WikiText]] describes the basics of transclusion. For example:
|
|
|
|
```
|
|
{{MyTiddler}}
|
|
```
|
|
|
|
As described in [[HTML in WikiText]], you can also transclude tiddler field values as attributes of HTML elements and widgets. For example:
|
|
|
|
```
|
|
<$text text={{MyTiddler}}/>
|
|
```
|
|
|
|
As described in [[Introduction to Filters]], you can also transclude tiddler field values as filter operands. For example:
|
|
|
|
```
|
|
{{{ [tag{TiddlerContainingMyTag}] }}}
|
|
```
|
|
|
|
! Variable/Macro Transclusion
|
|
|
|
Variables that were defined with parameter or variable substitution are referred to as "macros". The value of a variable/macro can be transcluded with the syntax:
|
|
|
|
```
|
|
<<myMacro param:"Value of parameter">>
|
|
```
|
|
|
|
As described in [[HTML in WikiText]], you can also transclude a variable as the value of an attribute of HTML elements and widgets. For example:
|
|
|
|
```
|
|
<$text text=<<myMacro>>/>
|
|
```
|
|
|
|
As described in [[Introduction to Filters]], you can also transclude a variable as the value of a filter operand. For example:
|
|
|
|
```
|
|
{{{ [tag<myMacro>] }}}
|
|
```
|
|
|
|
! Textual Substitution
|
|
|
|
Textual substitution occurs when the value of a macro/variable is used. It is described in [[Macros in WikiText]].
|
|
|
|
The key difference between substitution and transclusion is that substitution occurs before WikiText parsing. This means that you can use substitution to build WikiText constructions. Transclusions are processed independently, and cannot be combined with adjacent text to define WikiText constructions.
|