#set( $nl = " " ) #set( $rn = $ruleInfo.ruleName) #set( $rnl = $rn.replaceAll("[.]", "_").toLowerCase()) {.starlark-object} #[[##]]# $ruleName #set( $hasAttrs = false) {.starlark-signature} ${ruleInfo.ruleName}(## Comment to consume newline #foreach ($attr in $ruleInfo.getAttributeList()) #set( $hasAttrs = true) [${attr.name}](#${rnl}_${attr.name})## Comment to consume newline #if(!$attr.getDefaultValue().isEmpty()) =$attr.getDefaultValue()#end#if($foreach.hasNext), #end #end ) $ruleInfo.docString #if ($hasAttrs) {#${rnl}_attributes} **ATTRIBUTES** [¶](#${rnl}_attributes){.headerlink} #foreach ($attr in $ruleInfo.getAttributeList()) #set($link = $rnl + "_" + $attr.name) #if($attr.mandatory) #set($opt = "required") #else #set($opt = "optional") #end #if($attr.type == "NAME") #set($type = "[Name][target-name]") #elseif($attr.type == "LABEL_LIST") #set($type = "list of [label][attr-label]s") #end #if(!$attr.getDefaultValue().isEmpty()) #set($default = ", default `" + $attr.getDefaultValue() + "`") #else #set($default = "") #end :[${attr.name}[¶](#$link){.headerlink}]{.span}: []{#$link} _($opt $type$default)_ $attr.docString.replaceAll("$nl", "$nl ") #end #end