{{- define "singlebody" -}}
  {{ $cssTemplate := `.css-_rplc_-h2 {
    counter-reset: css-_rplc_-h3;
  }

  .css-_rplc_-h3 {
    counter-reset: css-_rplc_-h4;
  }

  .css-_rplc_-h4 {
    counter-reset: css-_rplc_-h5;
  }

  .css-_rplc_-h5 {
    counter-reset: css-_rplc_-h6;
  }

  .css-_rplc_-h2:before {
    color: rgba(0, 0, 0, 0.4);
    counter-increment: css-_rplc_-h2 1;
    content: counter(css-_rplc_-h2) ". ";
  }

  .css-_rplc_-h3:before {
    color: rgba(0, 0, 0, 0.4);
    counter-increment: css-_rplc_-h3 1;
    content: counter(css-_rplc_-h2) "." counter(css-_rplc_-h3) ". ";
  }

  .css-_rplc_-h4:before {
    color: rgba(0, 0, 0, 0.4);
    counter-increment: css-_rplc_-h4 1;
    content: counter(css-_rplc_-h2) "." counter(css-_rplc_-h3) "." counter(css-_rplc_-h4) ". ";
  }

  .css-_rplc_-h5:before {
    color: rgba(0, 0, 0, 0.4);
    counter-increment: css-_rplc_-h5 1;
    content: counter(css-_rplc_-h2) "." counter(css-_rplc_-h3) "." counter(css-_rplc_-h4) "." counter(css-_rplc_-h5) ". ";
  }

  .css-_rplc_-h6:before {
    color: rgba(0, 0, 0, 0.4);
    counter-increment: css-_rplc_-h6 1;
    content: counter(css-_rplc_-h2) "." counter(css-_rplc_-h3) "." counter(css-_rplc_-h4) "." counter(css-_rplc_-h5) "."
    counter(css-_rplc_-h6) ". ";
  }

  .css-_rplc_-h2.nocount:before,
  .css-_rplc_-h3.nocount:before,
  .css-_rplc_-h4.nocount:before,
  .css-_rplc_-h5.nocount:before,
  .css-_rplc_-h6.nocount:before {
    content: "";
    counter-increment: none;
  }` }}

  {{ $cssOutput := "" }}
  {{ $cssHashes := ""  }}

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

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

  <div class="print0">{{ partial "printsinglebody.html" $p }}</div>
  {{ $tit := $p.Title  }}
  {{ if gt (len $p.Title) 54 }}
    {{ $tit = printf "%s…" (substr $p.Title 0 50) }}
  {{ end  }}
  <div class="runningTitle"><span class="sup">{{ substr $p.File.Dir 0 -1 }}⁄</span><a href="#ph-{{ $p.File.UniqueID }}">{{ $tit }}</a></div>
  <div class="content">{{ $p.Content }}</div>
  {{ $cssOutput = printf "%s\n%s" $cssOutput (replace $cssTemplate "_rplc_" $p.File.UniqueID) }}
  {{ $cssHashes = printf "%s css-%s-h2" $cssHashes $p.File.UniqueID }}

  {{ range $scratch.has_children }}
    <div class="crustpage">
      {{ if not (.Scratch.Get "alreadyRendered") }}
        {{ $addS := 0  }}
        {{ with .Params.editors }}
          {{ $addS = len . }}
        {{ end }}
        {{ range $n, $authorFile := .Params.editors }}
          {{ $author := $.GetPage (printf "/editor/%s" $authorFile) }}
          {{ if eq $n 0 }}
            <div class="runningAuthors"><span class="sup">editor{{ 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.editors }}</div>{{ end }}

        {{ $tit := .Title  }}
        {{ if gt (len .Title) 54 }}
          {{ $tit = printf "%s…" (substr .Title 0 50) }}
        {{ end  }}
        <div class="runningTitle"><span class="sup">{{ substr .File.Dir 0 -1 }}⁄</span><a href="#ph-{{ .File.UniqueID }}">{{ $tit }}</a></div>
        {{ partial "printsinglebody.html" . }}
        {{ .Content }}
        {{ .Scratch.Set "alreadyRendered" true }}
        {{ $cssOutput = printf "%s\n%s" $cssOutput (replace $cssTemplate "_rplc_" .File.UniqueID) }}
        {{ $cssHashes = printf "%s css-%s-h2" $cssHashes .File.UniqueID }}

      {{end}}
      {{ $kid := $s.Get (printf "/%s" .File) }}
      {{ range $kid.has_children }}
        {{ if not (.Scratch.Get "alreadyRendered") }}
          <div class="crustpage">
            {{ $addS := 0  }}
            {{ with .Params.editors }}
              {{ $addS = len . }}
            {{ end }}
            {{ range $n, $authorFile := .Params.editors }}
              {{ $author := $.GetPage (printf "/editor/%s" $authorFile) }}
              {{ if eq $n 0 }}
                <div class="runningAuthors"><span class="sup">editor{{ 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.editors }}</div>{{ end }}

            {{ $tit := .Title  }}
            {{ if gt (len .Title) 54 }}
              {{ $tit = printf "%s…" (substr .Title 0 50) }}
            {{ end  }}
            <div class="runningTitle"><span class="sup">{{ substr .File.Dir 0 -1  }}⁄</span><a href="#ph-{{ .File.UniqueID }}">{{ $tit }}</a></div>
            {{ partial "printsinglebody.html" . }}
            {{ .Content }}
            {{ $k := $s.Get (printf "/%s" .File) }}
            {{ if gt (len $k.is_in) 0 }}
              <div class="backlinks"><span class="supt">is in⁄</span>{{- range $i, $v := $k.is_in -}}{{ if ne $i 0 }}, {{ end }}<a href="#ph-{{ .File.UniqueID }}">{{ .Title }}</a>{{- end -}}</div>
            {{ end }}

            {{ .Scratch.Set "alreadyRendered" true }}
            {{ $cssOutput = printf "%s\n%s" $cssOutput (replace $cssTemplate "_rplc_" .File.UniqueID) }}
            {{ $cssHashes = printf "%s css-%s-h2" $cssHashes .File.UniqueID }}
        {{ end }}
      {{end}}
  {{ end }}

  {{ range where $.Site.RegularPages "Section" "in" (slice "author" "editor") }}
    <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)  }}
        {{ with $ss }}
        <div class="backlinks"><span class="supt">mentioned in⁄</span>{{- range $i, $v := $ss.backlinks -}}{{ if ne $i 0 }}, {{ end }}<a href="#ph-{{ .File.UniqueID }}">{{ .Title }}</a>{{- end -}}</div>
        {{ end }}
      {{ end }}
  {{ end  }}

  {{ $cssOutput = printf "body {counter-reset: %s;}\n%s" $cssHashes $cssOutput }}
  {{ $var := $cssOutput | resources.FromString "css/dyn.css" }}
  {{ $dummy := $var.Permalink  }}
{{- end -}}
