created: 20131205160746466
modified: 20140409133148420
tags: wikitext
title: Macros in WikiText
type: text/vnd.tiddlywiki

! Defining Macros

Macros are snippets of text that can be inserted with a concise shortcut.

Multi-line macros are defined like this:

```
\define mysamplemacro(name:"Bugs Bunny",address:"Rabbit Hole Hill")
Hi, I'm $name$ and I live in $address$
\end
```

The first line of the definition specifies the macro name and any parameters. Parameters are named and can optionally have default values that are used if the parameter isn't specified at the time of calling. The body of the macro definition follows, terminated with `\end`. The macro can include parameters using the `$name$` construction.

Single-line macros can omit the `\end` marker like this:

```
\define mysamplemacro(name:"Bugs Bunny") Hi, I'm $name$
```

Macro definitions must be placed at the top of a tiddler. Macros are available to the tiddler that defines them, plus any tiddlers that it transcludes.

[[JavaScript Macros]] can also be used for more flexibility.

! Using Macros

Macros are used like this:

```
<<mysamplemacro>>
<<mysamplemacro "Donald Duck">>
<<mysamplemacro "Mickey Mouse" "Mouse House">>
```

Resulting in:

```
Hi I'm Bugs Bunny and I live in Rabbit Hole Hill
Hi I'm Donald Duck and I live in Rabbit Hole Hill
Hi I'm Mickey Mouse and I live in Mouse House

```
