<@ macro typeList(types) -@> <@ for typeName in types @><$ typeName | escape $><@ endfor @> <@- endmacro -@> <@- macro directiveParam(name, type, join, sep) @> <@- if type.optional @>[<@ endif -@> <$ name | dashCase $><$ join $><$ type.description $><$ sep $> <@- if type.optional @>]<@ endif -@> <@ endmacro -@> <@- macro functionSyntax(fn) @> <@- set sep = joiner(', ') -@> <@ marked -@> `<$ fn.name $>(<@- for param in fn.params @><$ sep() $> <@- if param.type.optional @>[<@ endif -@> <$ param.name $> <@- if param.type.optional @>]<@ endif -@> <@ endfor @>);` <@- endmarked @> <@ endmacro -@> <@- macro typeInfo(fn) -@>
<$ typeList(fn.typeList) $> <$ fn.description | marked $>
<@- endmacro -@>