{{- define "singlebody" -}}
  {{ $cssOutput := "" }}
  {{ $cssHashes := ""  }}

  {{ $s := partialCached "scratch.html" . }}
  {{ $p := $.GetPage .Params.print }}
  {{ $scratch := $s.Get (printf "/%s" $p.File) }}

  {{ $authorsPages := (slice) }}
  {{ with $p.Params.authors }}
    {{ range $n, $authorFile := . }}
      {{ $author := $.GetPage (printf "/author/%s" $authorFile) }}
      {{ $authorsPages = (uniq $authorsPages) | append $author }}
    {{ end }}
  {{ end }}

  {{ $editorsPages := (slice) }}
  {{ with $p.Params.editors }}
    {{ range $n, $editorFile := . }}
      {{ $editor := $.GetPage (printf "/editor/%s" $editorFile) }}
      {{ $editorsPages = (uniq $editorsPages) | append $editor }}
    {{ end }}
  {{ end }}

  {{ $currentDir := "" }}
  {{ with .File }}
    {{ $currentDir = .Dir }}
  {{ end }}

  <div class="print0">{{ partial "printsinglebody.html" $p }}</div>
  <div class="content">{{ $p.Content }}</div>

  {{ range $scratch.has_children }}
    <div class="crustpage">
      {{ $addS := 0  }}
      {{ with .Params.authors }}
        {{ $addS = len . }}
      {{ end }}

      {{ with .Params.editors }}
        {{ range $n, $editorFile := . }}
          {{ $editor := $.GetPage (printf "/editor/%s" $editorFile) }}
          {{ $editorsPages = (uniq $editorsPages) | append $editor }}
        {{ end }}
      {{ end }}

      {{ range $n, $authorFile := .Params.authors }}
        {{ $author := $.GetPage (printf "/author/%s" $authorFile) }}
        {{ $authorsPages = (uniq $authorsPages) | append $author }}
        {{ if eq $n 0 }}
          <div class="runningAuthors"><span class="sup">author{{ with (gt $addS 1) }}s{{ end  }}⁄</span><a href="#ph-{{ $author.File.UniqueID  }}">{{ $author.Title }}</a>
        {{ else }}
            , <a href="#ph-{{ $author.File.UniqueID  }}">{{ $author.Title }}</a>
        {{ end }}
      {{ end }}
      {{ with .Params.authors }}</div>{{ end }}
      
      {{ $tit := .Title  }}
      {{ if gt (len .Title) 54 }}
        {{ $tit = printf "%s…" (substr .Title 0 50) }}
      {{ end  }}
      <div class="runningTitle"><span class="sup">{{ index $scratch.crust 0 }}⁄</span><a href="#ph-{{ .File.UniqueID }}">{{ $tit }}</a></div>
      {{ partial "printsinglebody.html" . }}
      {{ .Content }}
      {{ $kid := $s.Get (printf "/%s" .File) }}
      {{ range $kid.has_children }}
        <div class="crustpage">
          {{ $addS := 0  }}
          {{ with .Params.authors }}
            {{ $addS = len . }}
          {{ end }}
          {{ range $n, $authorFile := .Params.authors }}
            {{ $author := $.GetPage (printf "/author/%s" $authorFile) }}
            {{ if eq $n 0 }}
              <div class="runningAuthors"><span class="sup">author{{ with (gt $addS 1) }}s{{ end  }}⁄</span><a href="#ph-{{ $author.File.UniqueID  }}">{{ $author.Title }}</a>
            {{ else }}
                , <a href="#ph-{{ $author.File.UniqueID  }}">{{ $author.Title }}</a>
            {{ end }}
          {{ end }}
          {{ with .Params.authors }}</div>{{ end }}

          {{ $tit := .Title  }}
          {{ if gt (len .Title) 54 }}
            {{ $tit = printf "%s…" (substr .Title 0 50) }}
          {{ end  }}
          <div class="runningTitle"><span class="sup">{{ index $scratch.crust 0 }}⁄</span><a href="#ph-{{ .File.UniqueID }}">{{ $tit }}</a></div>
          {{ partial "printsinglebody.html" . }}
          {{ .Content }}
      {{ end }}
  {{ end }}

  {{ range union (uniq $editorsPages) (uniq $authorsPages) }}
    <div class="authorpage">
      <div class="runningTitle runningAuthors"><span class="sup">{{ index $scratch.mantle 0 }}⁄</span><a href="#ph-{{ $p.File.UniqueID }}">{{ $p.Title }}</a></div>
      <div id="ph-{{ .File.UniqueID }}" class="{{ $scratch.depth | default "crust" }}title"><span class="supt">{{ substr .File.Dir 0 -1 }}⁄</span>{{ .Title }}</div>
      {{ .Content  }}

      {{ if in .Page.Site.Params.sandpointsMentionedIn (substr .File.Dir 0 -1) }}
        {{ $ss := $s.Get (printf "/%s" .File)  }}
        <div class="has hasmentionedin">
          {{ with $ss }}
            <div class="hassup">mentioned in⁄</div>
          {{ end }}
          <div class="afterhas">
            {{ range $ss.backlinks }}
              <div class="{{ $ss.child_depth }}">
                <a href="#ph-{{ .File.UniqueID }}">{{ .Title }}</a>
              </div>
            {{ end }}
          </div></div>
      {{ end }}
  {{ end  }}
{{- end -}}
