projects.html 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. {{ $ := .root }}
  2. {{ $page := .page }}
  3. <!-- Projects widget -->
  4. {{ $widget_layout := $page.Params.widget_layout | default 0 }}
  5. {{ if eq $widget_layout 0 }}
  6. {{/* Standard dual-column layout. */}}
  7. <div class="row">
  8. <div class="col-xs-12 col-md-4 section-heading">
  9. <h1>{{ with $page.Title }}{{ . | markdownify }}{{ end }}</h1>
  10. {{ with $page.Params.subtitle }}<p>{{ . | markdownify }}</p>{{ end }}
  11. </div>
  12. <div class="col-xs-12 col-md-8">
  13. {{ else }}
  14. {{/* Single column layout. */}}
  15. <div class="margin-auto">
  16. <div class="center-text">
  17. {{ with $page.Title }}<h1 class="mt-0">{{ . | markdownify }}</h1>{{ end }}
  18. {{ with $page.Params.subtitle }}<p>{{ . | markdownify }}</p>{{ end }}
  19. </div>
  20. <div>
  21. {{ end }}
  22. {{ with $page.Content }}<p>{{ . | markdownify }}</p>{{ end }}
  23. {{ if $page.Params.filter }}
  24. {{ $filter_default := default (int $page.Params.filter_default) 0 }}
  25. {{/* Parse default filter tag from front matter in the form of either tag name or CSS class name. */}}
  26. {{ $default_filter_tag_raw := (index $page.Params.filter ($filter_default)).tag }}
  27. {{ $default_filter_tag := printf ".js-id-%s" (replace $default_filter_tag_raw " " "-") }}
  28. {{ if or (eq (substr $default_filter_tag_raw 0 1) "*") (eq (substr $default_filter_tag_raw 0 1) ".") }}
  29. {{ $default_filter_tag = $default_filter_tag_raw }}
  30. {{ end }}
  31. <span class="d-none default-project-filter">{{ $default_filter_tag }}</span>
  32. {{/* Only show filter buttons if there are multiple filters. */}}
  33. {{ if gt (len $page.Params.filter) 1 }}
  34. <div class="project-toolbar">
  35. <div class="project-filters">
  36. <div class="btn-toolbar">
  37. <div class="btn-group flex-wrap">
  38. {{ range $idx, $item := $page.Params.filter }}
  39. {{/* Parse filter tag from front matter in the form of either tag name or CSS class name. */}}
  40. {{ $data_filter := printf ".js-id-%s" (replace .tag " " "-") }}
  41. {{ if or (eq (substr .tag 0 1) "*") (eq (substr .tag 0 1) ".") }}
  42. {{ $data_filter = .tag }}
  43. {{ end }}
  44. <a href="#" data-filter="{{ $data_filter | safeHTMLAttr }}" class="btn btn-primary btn-lg{{ if eq $idx $filter_default }} active{{ end }}">{{ .name }}</a>
  45. {{ end }}
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. {{ end }}
  51. {{ end }}
  52. <div class="{{ if or $page.Params.filter (eq $page.Params.view 3) }}isotope projects-container{{end}} {{if eq $page.Params.view 3}}js-layout-masonry{{else}}row js-layout-row{{end}} {{ if eq $page.Params.view 5 }}project-showcase mt-5{{end}}">
  53. {{ range $idx, $item := where $.Site.RegularPages "Type" ($page.Params.folder | default "project") }}
  54. {{ $link := $item.RelPermalink }}
  55. {{ $target := "" }}
  56. {{ if $item.Params.external_link }}
  57. {{ $link = $item.Params.external_link }}
  58. {{ $target = "target=\"_blank\" rel=\"noopener\"" }}
  59. {{ end }}
  60. {{ if eq $page.Params.view 1 }}
  61. {{ partial "project_li_list" (dict "widget" $page "index" $idx "item" $item "link" $link "target" $target) }}
  62. {{ else if eq $page.Params.view 3 }}
  63. {{ partial "project_li_card" (dict "widget" $page "index" $idx "item" $item "link" $link "target" $target) }}
  64. {{ else }}
  65. {{ partial "project_li_showcase" (dict "widget" $page "index" $idx "item" $item "link" $link "target" $target) }}
  66. {{ end }}
  67. {{ end }}
  68. </div>
  69. </div>
  70. </div>