| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | {{/* Portfolio Widget */}}{{/* Initialise */}}{{ $ := .root }}{{ $st := .page }}{{ $items_type := $st.Params.content.page_type | default "project" }}{{ $columns := $st.Params.design.columns | default "2" }}{{ if ne $columns "1" }}{{/* Standard dual-column layout. */}}<div class="row">  <div class="col-xs-12 col-md-4 section-heading">    {{ with $st.Title }}<h1>{{ . | markdownify | emojify }}</h1>{{ end }}    {{ with $st.Params.subtitle }}<p>{{ . | markdownify | emojify }}</p>{{ end }}  </div>  <div class="col-xs-12 col-md-8">{{ else }}{{/* Single column layout. */}}<div class="margin-auto">  <div class="center-text">    {{ with $st.Title }}<h1 class="mt-0">{{ . | markdownify | emojify }}</h1>{{ end }}    {{ with $st.Params.subtitle }}<p>{{ . | markdownify | emojify }}</p>{{ end }}  </div>  <div>{{ end }}    {{ with $st.Content }}<p>{{ . }}</p>{{ end }}    {{ if $st.Params.content.filter_button }}      {{ $filter_default := default (int $st.Params.content.filter_default) 0 }}      {{/* Parse default filter tag from front matter in the form of either tag name or CSS class name. */}}      {{ $default_filter_tag_raw := (index $st.Params.content.filter_button ($filter_default)).tag }}      {{ $default_filter_tag := printf ".js-id-%s" (replace $default_filter_tag_raw " " "-") }}      {{ if or (eq (substr $default_filter_tag_raw 0 1) "*") (eq (substr $default_filter_tag_raw 0 1) ".") }}        {{ $default_filter_tag = $default_filter_tag_raw }}      {{ end }}      <span class="d-none default-project-filter">{{ $default_filter_tag }}</span>      {{/* Only show filter buttons if there are multiple filters. */}}      {{ if gt (len $st.Params.content.filter_button) 1 }}      <div class="project-toolbar">        <div class="project-filters">          <div class="btn-toolbar">            <div class="btn-group flex-wrap">              {{ range $idx, $item := $st.Params.content.filter_button }}                {{/* Parse filter tag from front matter in the form of either tag name or CSS class name. */}}                {{ $data_filter := printf ".js-id-%s" (replace .tag " " "-") }}                {{ if or (eq (substr .tag 0 1) "*") (eq (substr .tag 0 1) ".") }}                  {{ $data_filter = .tag }}                {{ end }}                <a href="#" data-filter="{{ $data_filter | safeHTMLAttr }}" class="btn btn-primary btn-lg{{ if eq $idx $filter_default }} active{{ end }}">{{ .name }}</a>              {{ end }}            </div>          </div>        </div>      </div>      {{ end }}    {{ end }}    <div class="{{ if or $st.Params.content.filter_button (eq $st.Params.design.view 3) }}isotope projects-container{{end}} {{if eq $st.Params.design.view 3}}js-layout-masonry{{else}}row js-layout-row{{end}} {{ if eq $st.Params.design.view 5 }}project-showcase mt-5{{end}}">      {{ range $idx, $item := where site.RegularPages "Type" $items_type }}        {{ $link := $item.RelPermalink }}        {{ $target := "" }}        {{ if $item.Params.external_link }}          {{ $link = $item.Params.external_link }}          {{ $target = "target=\"_blank\" rel=\"noopener\"" }}        {{ end }}        {{ if eq $st.Params.design.view 1 }}          {{ partial "project_li_list" (dict "widget" $st "index" $idx "item" $item "link" $link "target" $target) }}        {{ else if eq $st.Params.design.view 3 }}          {{ partial "project_li_card" (dict "widget" $st "index" $idx "item" $item "link" $link "target" $target) }}        {{ else }}          {{ partial "project_li_showcase" (dict "widget" $st "index" $idx "item" $item "link" $link "target" $target) }}        {{ end }}      {{ end }}    </div>  </div></div>
 |