children.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. {{ $showhidden := .Get "showhidden"}}
  2. {{ $style := .Get "style" | default "li" }}
  3. {{ $depth := .Get "depth" | default 1 }}
  4. {{ $withDescription := .Get "description" | default false }}
  5. {{ $sortTerm := .Get "sort" | default "Weight" }}
  6. <ul class="children children-{{$style}}">
  7. {{ .Scratch.Set "pages" .Page.Pages }}
  8. {{ if .Page.Sections}}
  9. {{ .Scratch.Set "pages" (.Page.Pages | union .Page.Sections) }}
  10. {{end}}
  11. {{ $pages := (.Scratch.Get "pages") }}
  12. {{if eq $sortTerm "Weight"}}
  13. {{template "childs" dict "menu" $pages.ByWeight "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
  14. {{else if eq $sortTerm "Name"}}
  15. {{template "childs" dict "menu" $pages.ByTitle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
  16. {{else if eq $sortTerm "PublishDate"}}
  17. {{template "childs" dict "menu" $pages.ByPublishDate "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
  18. {{else if eq $sortTerm "Date"}}
  19. {{template "childs" dict "menu" $pages.ByDate "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
  20. {{else if eq $sortTerm "Length"}}
  21. {{template "childs" dict "menu" $pages.ByLength "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
  22. {{else}}
  23. {{template "childs" dict "menu" $pages "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
  24. {{end}}
  25. </ul>
  26. {{.Inner|safeHTML}}
  27. {{ define "childs" }}
  28. {{ range .menu }}
  29. {{ if and .Params.hidden (not $.showhidden) }}
  30. {{else}}
  31. {{if hasPrefix $.style "h"}}
  32. {{$num := sub ( int (trim $.style "h") ) 1 }}
  33. {{$numn := add $num $.count }}
  34. {{(printf "<h%d>" $numn)|safeHTML}}
  35. <a href="{{.URL}}" >{{ .Title }}</a>
  36. {{(printf "</h%d>" $numn)|safeHTML}}
  37. {{else}}
  38. {{(printf "<%s>" $.style)|safeHTML}}
  39. <a href="{{.URL}}" >{{ .Title }}</a>
  40. {{(printf "</%s>" $.style)|safeHTML}}
  41. {{end}}
  42. {{if $.description}}
  43. {{if .Description}}
  44. <p>{{.Description}}</p>
  45. {{else}}
  46. <p>{{.Summary}}</p>
  47. {{end}}
  48. {{end}}
  49. {{ if lt $.count $.depth}}
  50. {{if eq $.style "li"}}
  51. <ul>
  52. {{end}}
  53. {{ $.Page.Scratch.Set "pages" .Pages }}
  54. {{ if .Sections}}
  55. {{ $.Page.Scratch.Set "pages" (.Pages | union .Sections) }}
  56. {{end}}
  57. {{ $pages := ($.Page.Scratch.Get "pages") }}
  58. {{if eq $.sortTerm "Weight"}}
  59. {{template "childs" dict "menu" $pages.ByWeight "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
  60. {{else if eq $.sortTerm "Name"}}
  61. {{template "childs" dict "menu" $pages.ByTitle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
  62. {{else if eq $.sortTerm "PublishDate"}}
  63. {{template "childs" dict "menu" $pages.ByPublishDate "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
  64. {{else if eq $.sortTerm "Date"}}
  65. {{template "childs" dict "menu" $pages.ByDate "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
  66. {{else if eq $.sortTerm "Length"}}
  67. {{template "childs" dict "menu" $pages.ByLength "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
  68. {{else}}
  69. {{template "childs" dict "menu" $pages "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
  70. {{end}}
  71. {{if eq $.style "li"}}
  72. </ul>
  73. {{end}}
  74. {{end}}
  75. {{end}}
  76. {{end}}
  77. {{end}}