caption: macrocall created: 20131024141900000 modified: 20220122193731433 tags: Widgets title: MacroCallWidget type: text/vnd.tiddlywiki ! Introduction The macro call widget provides a more flexible alternative syntax for invoking macros compared to the usual `<>` syntax documented in [[Macros in WikiText]]. For example, a macro called `italicise` that takes a single parameter called `text` would usually be invoked like this: ``` <> <> ``` The same macro can be invoked using the macro call widget like this: ``` <$macrocall $name="italicise" text="Text to be made into italics"/> <$macrocall $name="italicise" text={{Title of tiddler containing text to be italicised}}/> <$macrocall $name="italicise" text=<>/> ``` The advantages of the widget formulation are: * Macro parameters are specified as widget attributes, thus allowing indirection via `{{title!!field}}`, `<>` or `{{{filter}}}` * The output format can be chosen from several options: ** `text/html` wikifies the result of the macro ** `text/plain` wikifies the result of the macro and then extracts the plain text characters (ie. ignoring HTML tags) ** <<.from-version "5.1.23">> `text/raw` returns the result of the macro, without wikification You can see several examples of the macro call widget within the core: * Listing module information: [[$:/snippets/modules]] * Listing field information: [[$:/snippets/allfields]] * Generating `data:` URIs: [[$:/themes/tiddlywiki/starlight/styles.tid]] See also [[WikiText parser mode: macro examples]] ! Content and Attributes The content of the `<$macrocall>` widget is ignored. |!Attribute |!Description | |$name |Name of the macro to invoke | |$type |ContentType with which the macro text should be parsed (defaults to `text/vnd.tiddlywiki`) | |$output |ContentType for the output rendering (defaults to `text/html`, can also be `text/plain` or `text/raw`) | |//parameters// |Macro parameters specified as attributes |