comment: |
  Macros in (Extended) Creole are formated like this:
  {{{
  <<macroname args />>
  }}}
  or:
  {{{
  <<macroname args>>body text<</macroname>>
  }}}
  
  The following macros are supported by this <<AppConfig.appname/>>.
  
  == Property references ==
  * {{{<<element.prop />>}}}: replaced by the contents of the
  specified property of the specified element.  Some values
  for element and prop have special meaning: 
  ** {{{current}}}: refers to the current top-level element 
  whose prop value is being rendered,
  regardless of what references have been followed, unless explicitly
  overridden.
  ** {{{me}}}: refers to the element where this prop is defined.
  ** {{{parent}}}: refers to the parent of the element where this
  prop is defined.
  ** {{{this}}}: refers to the containing prop.
  * {{{<<element />>}}}: replaced by the substitution of the element.
  For [[Owner]]s, this is its name.
  * {{{<<element>>...<</element>>}}}: replaced by the element's substitution,
  passing the content.  For [[Owner]]s, this evaluates the content overriding
  current element to be the element specified.
  * {{{{{foo/bar}}}}}: use blob prop bar of element foo as an image.

  == Built-in macros ==

  <<foreachmacro m>>
  * ##<<m />>##: <<macrodoc m/>>
  <</foreachmacro>>

  == Pronouns and Name Parsing ==

  The following pronouns can be used when the current element is a character:
  
  <<foreachmacro m pronoun>>
  * ##<<m />>##
  (<<let gender="m">><<macro m/>><</let>>,
  <<let gender="f">><<macro m/>><</let>>,
  <<let gender="n">><<macro m/>><</let>>,
  <<let gender="u">><<macro m/>><</let>>)
  <</foreachmacro>>

  (When unique, any of the pronoun variations may be used as macros.
  Capitalized versions are also available.)
  
  Similarly, the following macros extract various parts of character names:
  
  <<let name="Dr. Charles H. DeVore, Esq.">>
  <<foreachmacro m namepart>>
  * ##<<m />>##: <<macro m/>>
  <</foreachmacro>>
  <</let>>
  
  == User macros ==
  
  You can also define custom macros in <<AppConfig.appname/>> itself.
  You create a macro {{{<<Foo/>>}}} or {{{<<Foo>>text<</Foo>>}}} by
  defining an element named {{{Foo}}} with a ##substitution## property.  
  Traditionally,
  such elements are children of [[Macros]].  When defining these
  macros, you can use pseudomacros like {{{<<arg1/>>}}} and {{{<<arg2/>>}}}
  to refer to arguments, {{{<<content/>>}}} to refer to the macro
  content, if any, and {{{<<args/>>}}} to refer to the whole argument
  string.
  
  <<foreach Macros m>>
  * [[m]]: <<m.comment/>>
  <</foreach>>
