book_sidebar.html 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <form class="docs-search d-flex align-items-center">
  2. <button class="btn docs-toggle d-md-none p-0 mr-3" type="button" data-toggle="collapse" data-target="#docs-nav" aria-controls="docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
  3. <span><i class="fas fa-bars"></i></span>
  4. </button>
  5. {{ if eq site.Params.search.engine 1 }}
  6. <button class="form-control sidebar-search js-search">
  7. <i class="fas fa-search pr-2"></i>
  8. <span class="sidebar-search-text">{{ i18n "search_placeholder" }}</span>
  9. <span class="sidebar-search-shortcut">/</span>
  10. </button>
  11. {{ end }}
  12. </form>
  13. <nav class="collapse docs-links" id="docs-nav">
  14. {{ $current_node := . }}
  15. {{ $menu_name := "" }}
  16. {{ $order_by := site.Params.books.order_by | default "weight" }}
  17. {{ $query := "" }}
  18. {{ $root_page := .GetPage "/_index.md" }}
  19. {{ $is_root := false}}
  20. {{/* Case where homepage is a book */}}
  21. {{ if $root_page | and (eq $root_page.Type "book") }}
  22. {{ $is_root = true}}
  23. <ul class="nav docs-sidenav">
  24. <li class="{{ if .IsHome }}active{{ end }}"><a href="{{ $root_page.RelPermalink }}">{{$root_page.Title}}</a></li>
  25. </ul>
  26. {{- if eq $order_by "title" -}}
  27. {{- $query = .Site.Home.Sections.ByTitle -}}
  28. {{- else if eq $order_by "title_desc" -}}
  29. {{- $query = .Site.Home.Sections.ByTitle.Reverse -}}
  30. {{- else -}}
  31. {{- $query = .Site.Home.Sections.ByWeight -}}
  32. {{- end}}
  33. {{else}}
  34. {{/* Case where homepage is NOT a book */}}
  35. {{ if eq .FirstSection.Type "book" }}
  36. {{/* Case where first section is a book. */}}
  37. {{ $menu_name = (path.Base (path.Split .FirstSection).Dir) }}
  38. {{/* For any folder named `updates`, use descending title order (e.g. latest release note first). */}}
  39. {{ $order_by = cond (eq $menu_name "updates") "title_desc" $order_by }}
  40. {{- if eq $order_by "title" -}}
  41. {{- $query = where .Site.Home.Sections.ByTitle "Section" $menu_name -}}
  42. {{- else if eq $order_by "title_desc" -}}
  43. {{- $query = where .Site.Home.Sections.ByTitle.Reverse "Section" $menu_name -}}
  44. {{- else -}}
  45. {{- $query = where .Site.Home.Sections.ByWeight "Section" $menu_name -}}
  46. {{- end -}}
  47. {{- range $query -}}
  48. {{ template "book-menu" dict "sect" . "current_node" $current_node "order_by" $order_by "is_root" $is_root }}
  49. {{- end -}}
  50. {{ else }}
  51. {{/* Case where first section is a general page (e.g. book of books). */}}
  52. {{ $first_node := $current_node }}
  53. {{ if ne .Parent .FirstSection }}
  54. {{ if ne .Parent.Parent .FirstSection }}
  55. {{ $first_node = $current_node.Parent.Parent }}
  56. {{else}}
  57. {{ $first_node = $current_node.Parent }}
  58. {{end}}
  59. {{end}}
  60. {{- if eq $order_by "title" -}}
  61. {{- $query = $first_node.Pages.ByTitle -}}
  62. {{- else if eq $order_by "title_desc" -}}
  63. {{- $query = $first_node.Pages.ByTitle.Reverse -}}
  64. {{- else -}}
  65. {{- $query = $first_node.Pages.ByWeight -}}
  66. {{- end -}}
  67. {{ template "book-menu" dict "sect" $first_node "current_node" $current_node "order_by" $order_by "is_root" $is_root }}
  68. {{end}}
  69. {{end}}
  70. </nav>