<ol>
  {{#clazz}}
  {{#hasPublicConstructors}}
  <li class="section-title"><a href="{{{href}}}#constructors">Constructors</a></li>
  {{#publicConstructors}}
  <li><a{{#isDeprecated}} class="deprecated"{{/isDeprecated}} href="{{{href}}}">{{shortName}}</a></li>
  {{/publicConstructors}}
  {{/hasPublicConstructors}}

  {{#hasPublicProperties}}
  <li class="section-title{{ #allPublicInstancePropertiesInherited }} inherited{{ /allPublicInstancePropertiesInherited }}">
    <a href="{{{href}}}#instance-properties">Properties</a>
  </li>
  {{#allPublicInstanceProperties}}
  <li{{ #isInherited }} class="inherited"{{ /isInherited}}>{{{ linkedName }}}</li>
  {{/allPublicInstanceProperties}}
  {{/hasPublicProperties}}

  {{#hasPublicMethods}}
  <li class="section-title{{ #allPublicInstanceMethodsInherited }} inherited{{ /allPublicInstanceMethodsInherited }}"><a href="{{{href}}}#instance-methods">Methods</a></li>
  {{#allPublicInstanceMethods}}
  <li{{ #isInherited }} class="inherited"{{ /isInherited}}>{{{ linkedName }}}</li>
  {{/allPublicInstanceMethods}}
  {{/hasPublicMethods}}

  {{#hasPublicOperators}}
  <li class="section-title{{ #allPublicOperatorsInherited }} inherited{{ /allPublicOperatorsInherited}}"><a href="{{{href}}}#operators">Operators</a></li>
  {{#allPublicOperators}}
  <li{{ #isInherited }} class="inherited"{{ /isInherited}}>{{{ linkedName }}}</li>
  {{/allPublicOperators}}
  {{/hasPublicOperators}}

  {{#hasPublicStaticProperties}}
  <li class="section-title"><a href="{{{href}}}#static-properties">Static properties</a></li>
  {{#publicStaticProperties}}
  <li>{{{ linkedName }}}</li>
  {{/publicStaticProperties}}
  {{/hasPublicStaticProperties}}

  {{#hasPublicStaticMethods}}
  <li class="section-title"><a href="{{{href}}}#static-methods">Static methods</a></li>
  {{#publicStaticMethods}}
  <li>{{{ linkedName }}}</li>
  {{/publicStaticMethods}}
  {{/hasPublicStaticMethods}}

  {{#hasPublicConstants}}
  <li class="section-title"><a href="{{{href}}}#constants">Constants</a></li>
  {{#publicConstants}}
  <li>{{{linkedName}}}</li>
  {{/publicConstants}}
  {{/hasPublicConstants}}
  {{/clazz}}
</ol>
