{{ define "main" }} {{ $semesterRaw := .Params.semester }} {{ $subjectcodeRaw := .Params.subjectcode }} {{ $semester := "" }} {{ if reflect.IsSlice $semesterRaw }} {{ $semester = index $semesterRaw 0 }} {{ else }} {{ $semester = $semesterRaw }} {{ end }} {{ $subjectcode := "" }} {{ if reflect.IsSlice $subjectcodeRaw }} {{ $subjectcode = index $subjectcodeRaw 0 }} {{ else }} {{ $subjectcode = $subjectcodeRaw }} {{ end }}
{{ with $semester }}{{ . }}{{ end }} {{ with $subjectcode }}{{ . }}{{ end }} {{ with .Params.notecategory }} {{ . }} {{ end }}

{{ .Params.unit | default .Title }}

{{ partial "page/toc.html" . }} {{ .Content }} {{ partial "page/terms.html" (dict "taxonomy" "tags" "page" .) }} {{ partial "page/terms.html" (dict "taxonomy" "categories" "page" .) }} {{/* Next/prev among sibling UNITS in the same subjectcode — deduplicated by unit label */}} {{ if $subjectcode }} {{ $subPage := site.GetPage (printf "/subjectcode/%s" ($subjectcode | urlize)) }} {{ if $subPage }} {{/* Build a deduplicated list of units: one entry per unit label, using the Self page as representative */}} {{ $unitMap := slice }} {{ $seenUnits := slice }} {{ range $subPage.Pages.ByWeight }} {{ $unitLabel := (.Params.unit | default .Title) }} {{ if not (in $seenUnits $unitLabel) }} {{ $seenUnits = $seenUnits | append $unitLabel }} {{ $unitMap = $unitMap | append . }} {{ end }} {{ end }} {{ $currentUnit := (.Params.unit | default .Title) }} {{ $currentIdx := 0 }} {{ range $i, $p := $unitMap }} {{ if eq ($p.Params.unit | default $p.Title) $currentUnit }}{{ $currentIdx = $i }}{{ end }} {{ end }} {{ if gt (len $unitMap) 1 }} {{ end }} {{ end }} {{ end }} {{ partial "page/page-end.html" . }} {{ end }}