
Taxonomy of macros shipped with core
Actually we should consider non-core plugins that are good examples of any type of macro that isn't represented in core and needs to be considered for
FormaliseMacroSpecification. Eg:
Table
This table is not going to be the final answer in coming up with a taxonomy, but should be a useful first step in an iterative process.
- Tag
- DOM type
- NO - produces no body output
- HO - produces head output
- T - produces text (generally without markup)
- TM - produces text (often with manually written markup, eg. format strings)
- X - produces XHTML markup
- XP - produces partial XHTML output which must be balanced with a corresponding start or end tag
- Params
- NA - takes named parameters
- DE - uses default parameter
- AR - takes arbitrary un-named parameters
- FMT - takes
$format $tokens in any of its params
- Dependencies
- Dependencies the macro has on its output into the topic body, tbd..
- Tables
- Other macros
- Headings
- Web, script, topic name, form presence
- Meta
- info (date, author, revision)
- formfields/form name
- prefs
- custom
- Other topics
- Server environment (wall clock, locale, paths, etc)
- Groups, users
- URL parameters
- Variables
- External databases/files
- External linked data/web services
- Session data (IP address, SID, etc)