mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-09-11 23:09:42 +00:00
54 lines
1.9 KiB
Plaintext
54 lines
1.9 KiB
Plaintext
caption: Variables, Parameters, Substitutions
|
|
created: 20141018090608643
|
|
modified: 20141018181414011
|
|
tags: WikiText
|
|
title: Variables, Macros and Substitutions in WikiText
|
|
type: text/vnd.tiddlywiki
|
|
|
|
! Syntax for Attributes
|
|
|
|
The syntax for the attributes of [[HTML elements|HTML in WikiText]] and [[widgets|Widgets in WikiText]]:
|
|
|
|
* `"text"`, `'text'`, `"""text"""` - passed as a literal value
|
|
* `{{text reference}}` - [[transcludes|Transclusion in WikiText]] a text reference
|
|
* `<<macro>>` - transcludes a variable or macro invocation
|
|
|
|
! Syntax for Filters
|
|
|
|
Using single brace `{...}` and `<...>` when referenced as operands in [[Filter expression|Introduction to Filters]].
|
|
|
|
* Text reference as `[search{$:/temp/search}]` or `[prefix{tiddlerA!!fieldname}]`
|
|
* Variable reference as `[search<currentTiddler>]`
|
|
|
|
! Variables and Macros
|
|
|
|
[[Variables|Variables in WikiText]] and [[macros|Macros in WikiText]] are indeed the same thing. Macros are just variables that have their parameters substituted before use.
|
|
|
|
! Textual Substitution
|
|
|
|
* `$parametername$` - for [[macro parameters|Macros in WikiText]]
|
|
```
|
|
\define mysamplemacro(name:"Bugs Bunny",address:"Rabbit Hole Hill")
|
|
Hi, I'm $name$ and I live in $address$
|
|
\end
|
|
```
|
|
|
|
* `$(variablename)$` - for variable substitutions ''within macros''
|
|
```
|
|
\define mysamplemacro2()
|
|
Hi, I'm $(name)$ and I live in $(address)$
|
|
\end
|
|
|
|
<$set name="name" value="Bugs Bunny">
|
|
<$set name="address" value="Rabbit Hole Hill">
|
|
<<mysamplemacro2>>
|
|
</$set></$set>
|
|
```
|
|
The difference between textual substitution and other syntax:
|
|
|
|
* Textual substitution is performed before the macro is parsed, the values are inserted into the target.
|
|
* While the `<<...>>` syntax is a transclusion, where the "WikiText" is inserted and rendered separately.
|
|
* Textual substitution behaves as text. So that they can be combined with other text, and the usage should include all braces like :
|
|
** `filter="[prefix[$:/$(a)$/$(b)$]]"` or
|
|
** `<$reveal ... text="$(c)$"> `
|