Maxime Delporte 51ea013bc3
All checks were successful
Deploying Website / build (push) Successful in 16s
first commit
2025-04-04 18:47:44 -03:00

150 lines
5.9 KiB
HTML

{{ $site := .Site}}
{{$top := . }}
{{$needsContentRender := true }}
{{ range .Params.content }}
{{ $currentContent := . }}
{{ if .file }}
{{ if $top.Resources.GetMatch .file }}
{{ $currentContent = $top.Resources.GetMatch .file | transform.Unmarshal }}
{{ else }}
{{ $currentContent = resources.Get .file | transform.Unmarshal }}
{{ end }}
{{ end }}
{{ $types := split $currentContent.type " " }}
<section {{with $currentContent.title}}id="{{. | urlize}}" {{ end }} class="meta {{$currentContent.type | default "default"}}"
{{ with $currentContent.background }}
{{ $bg := (partial "util/image.html" (dict "Page" $top "image" .)).Fill "1400x940" }}
style="background-image:url({{$bg.RelPermalink}})"
{{ end }}
>
{{$title := $currentContent.title}}
{{ with $currentContent.icon }}
{{$title = default $title (findRE "\\w+(?:\\.\\w+)*$" .)}}
{{ partialCached "util/icon" (dict "key" . "size" 50 "class" "main-icon" "alt" $title) (print . "main-icon") }}
{{ end }}
{{ with $currentContent.image }}
{{$anchor := .anchor | default "" }}
{{ $cover := (partial "util/image.html" (dict "Page" $top "image" .href)).Fill (print (mul .width 2) "x" (mul .height 2) " " $anchor) }}
<img intrinsicsize="{{print (mul .width 2) "x" (mul .height 2)}}" width="{{.width}}" height="{{.height}}" alt="{{.alt}}" src="{{$cover.RelPermalink}}" />
{{ end }}
{{with $currentContent.title}}<h1>{{. | markdownify}}</h1>{{ end }}
{{with $currentContent.subtitle}}<p class="subtitle">{{. | markdownify}}</p>{{ end }}
{{with $currentContent.content}}<p>{{. | markdownify}}</p>{{ end }}
{{ if in $types "content" }}
{{ $needsContentRender = false }}
{{ $top.Content }}
{{ end }}
{{ if in $types "blog" }}
<ul class="items items-{{.count | default 6}}">
{{ range first (default 6 .count) (where (where $site.Pages ".Section" $currentContent.section) ".Kind" "page" ) }}
{{partialCached "util/post.html" . .RelPermalink}}
{{ end }}
</ul>
{{ end }}
{{ $defaultFilter := $currentContent.filter }}
{{ $filter := false }}
{{ $list := "" }}
{{ $filters := newScratch }}
{{ if in $types "filter" }}
{{ range $currentContent.items }}
{{ $list = print $list " " (trim .filter " ") }}
{{ end }}
{{ $list = uniq (split (trim $list " ") " ") }}
{{ $title := .title | urlize}}
{{ range $index, $element := $list }}
{{ $filters.Set $element $index }}
<label class="sr-only" for="filter-{{$element}}">{{$element}}</label>
<input id="filter-{{$element}}" type="radio" role="button" name="{{$title}}" {{if eq $defaultFilter $element}} checked="true"
{{end}} class="filter button filter-{{$index}}" value="{{$element}}">
{{ end }}
{{ end }}
{{ with $currentContent.items}}
<div class="items items-{{len .}}">
{{ range . }}
<div class="item {{ if ne $list "" -}}
{{- with .filter -}}
{{- range (split (trim . " ") " ") -}}
filter-{{$filters.Get .}} {{ end -}}
{{- end -}}
{{- end -}}">
{{ $title := .title }}
{{ with .image }}
{{$anchor := .anchor | default "" }}
{{ $cover := (partial "util/image.html" (dict "Page" $top "image" .href)).Fill (print (mul .width 2) "x" (mul .height 2) " " $anchor) }}
<img class="item-cover" intrinsicsize="{{print (mul .width 2) "x" (mul .height 2)}}" width="{{.width}}" alt="{{.alt | default $title}}" src="{{$cover.RelPermalink}}" />
{{ end }}
{{ with .video }}
<video class="item-cover" loop autoplay muted width="{{.width}}" height="{{.height}}">
<source src="{{.href}}" type="{{.format}}">
The browser does not support the video format {{.format}}.
</video>
{{ end }}
{{$title := .title }}
{{ with .icon }}
{{$title = default $title (findRE "\\w+(?:\\.\\w+)*$" .href)}}
{{ partialCached "util/icon" (dict "key" .href "size" (default 40 .width) "alt" $title "class" "item-icon") (print . "item-icon") }}
{{ end }}
{{ with .title }}
<h2>{{. | markdownify }}</h2>
{{ end }}
{{ with .subtitle }}
<h3>{{. | markdownify}}</h3>
{{ end }}
{{ with .heading }}
<h4>{{. | markdownify}}</h4>
{{ end }}
{{ with .content}}
<div class="content">{{. | markdownify}}</div>
{{ end }}
{{ with .attribution}}
<small class="attribution">{{. |markdownify}}</small>
{{ end }}
{{ $title := default .title "" }}
{{ with .links}}
<div class="links">
{{ range . }}
<a href="{{.href}}" class="button-small" target="_blank" rel="noopener">
{{ with .icon }}
{{ partialCached "util/icon" (dict "key" . "size" 18 "class" "link-icon" "alt" $title) (print . "link-icon") }}
{{ end }}
<span class="link-text">{{.title | markdownify}}</span>
</a>
{{ end }}
</div>
{{ end }}
</div>
{{ end }}
</div>
{{ end }}
{{ with .attribution }}
<small class="attribution">{{. |markdownify}}</small>
{{ end }}
</section>
{{ end }}
{{ if (and (or (not .Params.Content) .Content) $needsContentRender) }}
<section class="meta content with-background">
<article>
<div class="cover">
{{- partial "util/cover.html" (dict "class" "banner-holder" "page" . "width" 1024 "height" 330) -}}
</div>
{{with .Title}}<h1 class='title'>{{.}}</h1>{{end}}
{{ with .Params.subtitle }}
<span class='subtitle'>{{.}}</span>
{{ end }}
{{ .Content }}
{{- with .Params.tags }}
<div class="tags">
{{- range . -}}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">
{{- partialCached "util/icon" (dict "key" "tag" "size" 20) "tag-20" -}} {{ . | humanize }} </a>
{{- end -}}
</div>
{{ end }}
</article>
</section>
{{ end }}