projects.html 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. {{ $ := .root }}
  2. {{ $page := .page }}
  3. <!-- Projects widget -->
  4. <div class="row">
  5. <div class="col-xs-12 col-md-4 section-heading">
  6. <h1>{{ with $page.Title }}{{ . | markdownify }}{{ end }}</h1>
  7. {{ with $page.Params.subtitle }}<p>{{ . | markdownify }}</p>{{ end }}
  8. </div>
  9. <div class="col-xs-12 col-md-8">
  10. {{ with $page.Content }}<p>{{ . | markdownify }}</p>{{ end }}
  11. {{ $filter_default := default (int $page.Params.filter_default) 0 }}
  12. {{ with $page.Params.filter }}
  13. <span class="hidden default-project-filter">{{ (index $page.Params.filter ($filter_default)).tag }}</span>
  14. {{ end }}
  15. {{ if isset $page.Params "filter" }}
  16. {{ if gt (len $page.Params.filter) 1 }}
  17. <div class="project-toolbar">
  18. <div class="project-filters">
  19. <div class="btn-toolbar">
  20. <div class="btn-group">
  21. {{ range $idx, $item := $page.Params.filter }}
  22. {{ if or (eq (substr .tag 0 1) "*") (eq (substr .tag 0 1) ".") }}
  23. {{ $.Scratch.Set "tag" .tag }}
  24. {{ else }}
  25. {{ $.Scratch.Set "tag" (printf ".%s" (urlize .tag)) }}
  26. {{ end }}
  27. <a href="#" data-filter="{{ $.Scratch.Get "tag" }}" class="btn btn-primary btn-large{{ if eq $idx $filter_default }} active{{ end }}">{{ .name }}</a>
  28. {{ end }}
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. {{ end }}
  34. {{ end }}
  35. {{ if eq $page.Params.view 0 }}
  36. <div class="row isotope projects-container js-layout-row">
  37. {{ range where $.Site.RegularPages "Type" ($page.Params.folder | default "project") }}
  38. <div class="col-md-12 project-item isotope-item {{ delimit (apply .Params.tags "urlize" ".") " " }}" itemscope itemtype="http://schema.org/CreativeWork">
  39. <i class="fa fa-files-o pub-icon" aria-hidden="true"></i>
  40. <span class="project-title">
  41. {{ if .Content }}
  42. <a href="{{ .Permalink }}">
  43. {{ else }}
  44. {{ with .Params.external_link }}<a href="{{ . }}" target="_blank" rel="noopener">{{ end }}
  45. {{ end }}
  46. {{ .Title }}
  47. {{ if .Content }}</a>{{ else }}{{ with .Params.external_link }}</a>{{ end }}{{ end }}
  48. </span>
  49. {{ with .Params.summary }}<p class="project-summary">{{ . | markdownify }}</p>{{ end }}
  50. </div>
  51. {{ end }}
  52. </div>
  53. {{ else }}
  54. <div class="row isotope projects-container js-layout-masonry">
  55. {{ range $project := where $.Site.RegularPages "Type" ($page.Params.folder | default "project") }}
  56. {{ $.Scratch.Set "project_url" $project.Permalink }}
  57. {{ $.Scratch.Set "target" "" }}
  58. {{ if $project.Params.external_link }}
  59. {{ $.Scratch.Set "project_url" $project.Params.external_link }}
  60. {{ $.Scratch.Set "target" "target=\"_blank\"" }}
  61. {{ end }}
  62. <div class="col-xs-12 col-sm-6 col-md-4 col-lg-6 project-item isotope-item {{ delimit (apply .Params.tags "urlize" ".") " " }}">
  63. <div class="card">
  64. {{ with $project.Params.image_preview }}
  65. <a href="{{ $.Scratch.Get "project_url" }}" title="" class="card-image hover-overlay"
  66. {{ $.Scratch.Get "target" | safeHTMLAttr }}>
  67. <img src="{{ "/img/" | relURL }}{{ . }}" alt="" class="img-responsive">
  68. </a>
  69. {{ end }}
  70. <div class="card-text">
  71. <h4><a href="{{ $.Scratch.Get "project_url" }}" {{ $.Scratch.Get "target" | safeHTMLAttr }}>{{ .Title }}</a></h4>
  72. <div class="card-desription">
  73. {{ with $project.Params.summary }}<p>{{ . | markdownify }}</p>{{ end }}
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. {{ end }}
  79. </div>
  80. {{ end }}
  81. </div>
  82. </div>