book_menu.html 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. {{ define "book-menu" }}
  2. {{- $first := false -}}
  3. {{- $current_node := .current_node -}}
  4. {{- $order_by := .order_by -}}
  5. {{ $icon := "" }}
  6. {{ with .sect }}
  7. {{ if .IsSection}}
  8. {{- $first = eq $current_node.FirstSection . -}}
  9. {{- safeHTML $current_node.FirstSection.Params.pre_nav -}}
  10. {{/* Get section icon. */}}
  11. {{ $pack := or .Params.icon_pack "fas" }}
  12. {{ $pack_prefix := $pack }}
  13. {{ if in (slice "fab" "fas" "far" "fal") $pack }}
  14. {{ $pack_prefix = "fa" }}
  15. {{ end }}
  16. {{ with .Params.icon }}
  17. {{- if eq $pack "emoji" -}}
  18. {{- . | emojify -}}
  19. {{- else if eq $pack "custom" -}}
  20. {{- $svg_icon := resources.Get (printf "images/icon-pack/%s.svg" .) -}}
  21. {{- if $svg_icon -}}
  22. {{ $icon = printf "<img src=\"%s\" alt=\"%s\" class=\"svg-icon svg-baseline pr-1\">" $svg_icon.RelPermalink . }}
  23. {{- end -}}
  24. {{- else -}}
  25. {{ $icon = printf "<i class=\"%s %s-%s pr-1\"></i>" $pack $pack_prefix . }}
  26. {{- end -}}
  27. {{ end }}
  28. {{ if $first }}
  29. <ul class="nav docs-sidenav">
  30. <li class="{{ if and .File $current_node.File | and (eq .File.UniqueID $current_node.File.UniqueID) }}active{{ end }}"><a href="{{ .RelPermalink }}">{{ safeHTML $icon }}{{ .LinkTitle | default .Title }}</a></li>
  31. {{else}}
  32. <div class="docs-toc-item">
  33. <a class="docs-toc-link {{ if and .File $current_node.File | and (eq .File.UniqueID $current_node.File.UniqueID) }} active{{ end }}" href="{{ .RelPermalink }}">{{ safeHTML $icon }}{{ .LinkTitle | default .Title }}</a>
  34. {{end}}
  35. {{- $page_count := (add (len .Pages) (len .Sections)) -}}
  36. {{ if ne $page_count 0 }}
  37. {{ if not $first }}
  38. <ul class="nav docs-sidenav">
  39. {{end}}
  40. {{- .Scratch.Set "pages" .Pages -}}
  41. {{- if .Sections -}}
  42. {{- .Scratch.Set "pages" (.Pages | union .Sections) -}}
  43. {{- end -}}
  44. {{- $pages := (.Scratch.Get "pages") -}}
  45. {{- if eq $order_by "title" -}}
  46. {{- range $pages.ByTitle -}}
  47. {{ template "book-menu" dict "sect" . "current_node" $current_node "order_by" $order_by }}
  48. {{- end -}}
  49. {{- else if eq $order_by "title_desc" -}}
  50. {{- range $pages.ByTitle.Reverse -}}
  51. {{ template "book-menu" dict "sect" . "current_node" $current_node "order_by" $order_by }}
  52. {{- end -}}
  53. {{- else -}}
  54. {{- range $pages.ByWeight -}}
  55. {{ template "book-menu" dict "sect" . "current_node" $current_node "order_by" $order_by }}
  56. {{- end -}}
  57. {{- end}}
  58. {{ if not $first }}
  59. </ul>
  60. {{end}}
  61. {{end}}
  62. {{ if not $first }}
  63. </div>
  64. {{else}}
  65. </ul>
  66. {{end}}
  67. {{- else -}}
  68. {{- if not .Params.Hidden -}}
  69. <li class="{{ if and .File $current_node.File | and (eq .File.UniqueID $current_node.File.UniqueID) }}active{{ end }}"><a href="{{ .RelPermalink }}">{{ safeHTML $icon }}{{ .LinkTitle | default .Title }}</a></li>
  70. {{- end -}}
  71. {{ end -}}
  72. {{- end -}}
  73. {{/* End define. */}}
  74. {{ end -}}