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)
Tag DOM Params Dependencies  
ACTIVATEDPLUGINS        
ADDTOHEAD        
ALLVARIABLES        
AQUA        
ATTACHURL        
ATTACHURLPATH        
AUTHREALM        
BASETOPIC        
BASEWEB        
BB        
BB2        
BB3        
BB4        
BLACK        
BLUE        
BR        
BROWN        
BULLET        
CALC{"formula"}        
CARET        
COMMENT{ attributes }        
DATE        
DISPLAYTIME{"format"}        
EDITACTION        
EDITTABLE{ attributes }        
ENCODE{"string"}        
ENDCOLOR        
ENDSECTION{"name"}        
ENV{"varname"}        
FAILEDPLUGINS        
FORMFIELD{"fieldname"}        
GMTIME{"format"}        
GRAY        
GREEN        
GROUPS        
H        
HOMETOPIC        
HTTP        
HTTP_HOST        
HTTPS        
I        
ICON{"name"}        
ICONURL{"name"}        
ICONURLPATH{"name"}        
IF{"condition" ...}        
IMAGEGALLERY{"topic" options...}        
INCLUDE{"page"}        
INCLUDINGTOPIC        
INCLUDINGWEB        
LANGUAGE        
LANGUAGES        
LIME        
LOCALSITEPREFS        
LOGIN        
LOGOUT        
M        
MAINWEB        
MAKETEXT        
MAROON        
META        
METASEARCH        
N        
NAVY        
NOP        
NOTIFYTOPIC        
NRIMAGES{"topic"}        
OLIVE        
ORANGE        
P        
PERMLINK{ attributes } - renders a permanent link to a given topic        
PINK        
PLUGINDESCRIPTIONS        
PLUGINVERSION        
PUBURL        
PUBURLPATH        
PURPLE        
Q        
QUERYPARAMS        
QUERYSTRING        
RED        
REMOTE_ADDR        
REMOTE_PORT        
REMOTE_USER        
RENDERFORM        
RENDERLIST        
REVINFO        
REVINFO{"format"}        
S        
SCRIPTNAME        
SCRIPTSUFFIX        
SCRIPTURL{"script"}        
SCRIPTURLPATH{"script"}        
SEARCH{"text"}        
SERVERTIME{"format"}        
SESSIONID        
SESSIONVAR        
SESSION_VARIABLE        
SILVER        
SLIDESHOWEND        
SLIDESHOWSTART        
SPACEDTOPIC        
SPACEOUT{"string"}        
STARTINCLUDE        
STARTSECTION        
STATISTICSTOPIC        
STOPINCLUDE        
SUBSCRIBE{ attributes } - subscribe the current user for notification of changes to the current topic        
SYSTEMWEB        
T        
TABLE{ attributes }        
TAGCLOUDCLICK        
TAGSEARCH        
TEAL        
TOC{"Topic"}        
TOPIC        
TOPICLIST{"format"}        
TOPICURL        
TWIKIWEB        
U        
URLPARAM{"name"}        
USERINFO{"name"}        
USERNAME        
USERSWEB        
VAR{"NAME" web="Web"}        
VBAR        
WEB        
WEBLIST{"format"}        
WEBPREFSTOPIC        
WHITE        
WIKIHOMEURL        
WIKINAME        
WIKIPREFSTOPIC        
WIKITOOLNAME        
WIKIUSERNAME        
WIKIUSERSTOPIC        
WIKIVERSION        
X        
Y        
YELLOW        

BasicForm edit

TopicClassification BrainStorming
TopicSummary A taxonomy of Foswiki macros to be used in formulating a formal macro specification
InterestedParties WysiwygTaskTeam
Topic revision: r2 - 02 Feb 2010, PaulHarvey
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy