1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-07 18:39:57 +00:00
TiddlyWiki5/editions/tw5.com/tiddlers/pragmas/Pragma_ _define.tid
jeremy@jermolene.com 9641345b92 Docs updates
2022-10-03 14:40:27 +01:00

36 lines
1.3 KiB
Plaintext

created: 20220917112233317
modified: 20221003133242496
tags: Pragmas
title: Pragma: \define
type: text/vnd.tiddlywiki
The ''\define'' [[pragma|Pragmas]] is used to [[define macros|Macro Definitions]]. It is a shortcut syntax for the SetVariableWidget.
The usual form allows macros to span multiple lines:
```
\define <macro-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...)
<multiple-line-definition-text>
\end
```
There is also a single line form for shorter macros:
```
\define <macro-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>
```
The first line of the definition specifies the macro name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the macro. The lines that follow contain the text of the macro text (i.e. the snippet represented by the macro name), until `\end` appears on a line by itself:
For example:
<$codeblock code={{$:/editions/tw5.com/macro-examples/say-hi}}/>
Alternatively, the entire definition can be presented on a single line without an `\end` marker:
```
\define sayhi(name:"Bugs Bunny") Hi, I'm $name$.
```
A more formal [[presentation|Macro Definition Syntax]] of this syntax is also available.