{{ define "main" }} {{ $subjectCode := .Title }} {{/* Find which semester this subject belongs to */}} {{ $semester := "" }} {{ range .Pages }} {{ if eq $semester "" }} {{ $raw := .Params.semester }} {{ if reflect.IsSlice $raw }} {{ $semester = index $raw 0 }} {{ else }} {{ $semester = $raw }} {{ end }} {{ end }} {{ end }} {{/* Breadcrumbs */}}

{{ $subjectCode }}

{{/* List units sorted by date */}} {{/* Subject prev/next — siblings are other subjectcodes in the same semester */}} {{ if $semester }} {{ $semPage := site.GetPage (printf "/semester/%s" ($semester | urlize)) }} {{ if $semPage }} {{ $siblingCodes := slice }} {{ range $semPage.Pages }} {{ $raw := .Params.subjectcode }} {{ $code := "" }} {{ if reflect.IsSlice $raw }} {{ $code = index $raw 0 }} {{ else }} {{ $code = $raw }} {{ end }} {{ if and $code (not (in $siblingCodes $code)) }} {{ $siblingCodes = $siblingCodes | append $code }} {{ end }} {{ end }} {{ $siblingCodes = sort $siblingCodes }} {{ if gt (len $siblingCodes) 1 }} {{ $currentIdx := 0 }} {{ range $i, $c := $siblingCodes }} {{ if eq $c $subjectCode }}{{ $currentIdx = $i }}{{ end }} {{ end }} {{ end }} {{ end }} {{ end }} {{ end }}