<div class="section-index">
    {{ $pages := (where .Site.Pages "Section" .Section).ByWeight }}
    {{ $parent := .Page }}
    {{ if $parent.Params.no_list }}
    {{/* If no_list is true we don't show a list of subpages */}}
    {{ else if $parent.Params.simple_list }}
    {{/* If simple_list is true we show a bulleted list of subpages */}}
        <ul>
            {{ range $pages }}
                {{ if eq .Parent $parent }}
                    <li><a href="{{ .RelPermalink }}">{{- .Title -}}</a></li>
                {{ end }}
            {{ end }}
        </ul>
    {{ else }}
    {{/* Otherwise we show a nice formatted list of subpages with page descriptions */}}
    <hr class="panel-line">
        {{ range $pages }}
            {{ if eq .Parent $parent }}
                <div class="entry">
                    <h5>
                        <a href="{{ .RelPermalink }}">{{- .Title -}}</a>
                    </h5>
                    <p>{{ .Description | markdownify }}</p>
                </div>
            {{ end }}
        {{ end }}
    {{ end }}
</div>
