mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-08-23 18:16:44 +00:00
28 lines
1.3 KiB
Plaintext
28 lines
1.3 KiB
Plaintext
created: 20131211222303769
|
|
modified: 20140120130146763
|
|
tags: dev
|
|
title: JavaScript Macros
|
|
type: text/vnd.tiddlywiki
|
|
|
|
Macros can be implemented as JavaScript modules as well as via the [[wikitext syntax|Macros in WikiText]].
|
|
|
|
! Overview
|
|
|
|
JavaScript macros are modules with their ''module-type'' field set to ''macro''. They must export these three properties:
|
|
|
|
* ''name'': A string giving the name used to invoke the macro
|
|
* ''params'': An array of objects with the following properties:
|
|
** //name//: name of the parameter
|
|
** //default//: (optional) default value for the parameter
|
|
* ''run'': Function called when the macro requires evaluation. The parameters are pulled from the macro call and arranged according to the ''params'' array. The ''run'' function should return the string value of the macro. When invoked, `this` points to the widget node invoking the macro.
|
|
|
|
Note that if the ''params'' array is missing or blank, then all the supplied parameters are passed to the `run()` method.
|
|
|
|
! Writing JavaScript macros
|
|
|
|
There are several JavaScript macros built into the core which can serve as a jumping off point for your own macros:
|
|
|
|
https://github.com/Jermolene/TiddlyWiki5/tree/master/core/modules/macros
|
|
|
|
Note that JavaScript macros work on both the client and the server, and so do not have access to the browser DOM.
|