Browse Source

added home tiles

master
Chris 6 years ago
parent
commit
f17d03dfe2
  1. 70
      layouts/index.html
  2. 137
      layouts/partials/home-summary.html

70
layouts/index.html

@ -1,6 +1,6 @@
{{ define "main" }}
{{ partial "navigation-bar.html" ( dict "context" . "items" (slice "sports" "eventtypes" "members" "locations") )}}
<article class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center measure-wide lh-copy mid-gray">
<article class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center w-100 w-70-ns center lh-copy mid-gray">
Der Kollege lädt ein, man trifft sich zum Radeln.
@ -9,21 +9,69 @@
{{ $total_ascent := 0 }}
{{ $total_nr_of_tours := 0 }}
{{ range .Pages }}
{{ range .Pages}}
{{ $act_ascent:= int .Params.ascent_m }}
{{ $total_ascent = add $act_ascent $total_ascent }}
{{ range .Pages }}
{{ range .Pages}}
{{ $act_ascent:= int .Params.ascent_m }}
{{ $total_ascent = add $act_ascent $total_ascent }}
{{ $act_distance:= int .Params.distance_km }}
{{ $total_distance = add $act_distance $total_distance }}
{{ $total_nr_of_tours = add 1 $total_nr_of_tours }}
{{ end }}
{{ end }}
{{ $act_distance:= int .Params.distance_km }}
{{ $total_distance = add $act_distance $total_distance }}
<div class="flex flex-wrap justify-center">
<div class="flex flex-column items-center pa3 ma3 bg-white">
<div class="flex fw9">
Touren
</div>
<div class="flex">
{{ partial "home-summary.html" (dict "context" . "param_name" "count" ) }}
</div>
</div>
<div class="flex flex-column items-center pa3 ma3 bg-white">
<div class="flex fw9">
Teilnehmer
</div>
<div class="flex">
{{ partial "home-summary.html" (dict "context" . "param_name" "members" ) }}
</div>
</div>
<div class="flex flex-column items-center pa3 ma3 bg-white">
<div class="flex fw9">
Entfernung
</div>
<div class="flex">
{{ partial "home-summary.html" (dict "context" . "param_name" "distance_km" ) }}
</div>
</div>
<div class="flex flex-column items-center pa3 ma3 bg-white">
<div class="flex fw9">
Aufstieg
</div>
<div class="flex">
{{ partial "home-summary.html" (dict "context" . "param_name" "ascent_m" ) }}
</div>
</div>
</div>
{{ $pages := where .Site.RegularPages "Type" "in" (slice "posts") }}
{{ $firstYear := 0 }}
{{ $lastYear := 0 }}
{{ $total_nr_of_tours = add 1 $total_nr_of_tours }}
{{ range first 1 ( sort ( $pages.GroupByDate "2006" ) "Key") }}
{{ $firstYear = .Key }}
{{ end }}
{{ range last 1 ( sort ( $pages.GroupByDate "2006" ) "Key") }}
{{ $lastYear = .Key }}
{{ end }}
Seit {{ sub ( int $lastYear ) ( int $firstYear ) }} Jahren.
<p></p>
{{ partial "statistic-summary.html" ( dict "total_nr" $total_nr_of_tours "distance" $total_distance "ascent" $total_ascent ) }}
</article>
</article>
{{/* Define a section to pull recent posts from. For Hugo 0.20 this will default to the section with the most number of pages. */}}
{{ $mainSections := .Site.Params.mainSections | default (slice "post") }}
{{/* Create a variable with that section to use in multiple places. */}}

137
layouts/partials/home-summary.html

@ -0,0 +1,137 @@
{{ $pages := where .context.Site.RegularPages "Type" "in" (slice "posts") }}
{{ $count := len $pages }}
{{ $param_name := .param_name }}
{{ $totalWidth := 200.0 }}
{{ $totalHeight := 150.0 }}
{{ $width := div $totalWidth ( len ( $pages.GroupByDate "2006" ) ) }}
{{ $maxCount := 0 }}
{{ $totalCount := 0 }}
{{ $actualCount := 0 }}
{{ $maxDistance_km := 0 }}
{{ $totalDistance_km := 0 }}
{{ $actualDistance_km := 0 }}
{{ $maxAscent_m := 0 }}
{{ $totalAscent_m := 0 }}
{{ $actualAscent_m := 0 }}
{{ $maxMembers := 0 }}
{{ $totalMembers := 0 }}
{{ $actualMembers := 0 }}
{{ range sort ( $pages.GroupByDate "2006" ) "Key" }}
{{ $count := 0 }}
{{ $distance_km := 0 }}
{{ $ascent_m := 0 }}
{{ $members := 0 }}
{{ range .Pages }}
{{ $count = add 1 $count }}
{{ with .Params.distance_km }}
{{ $distance_km = add . $distance_km }}
{{ end }}
{{ with .Params.ascent_m }}
{{ $ascent_m = add . $ascent_m }}
{{ end }}
{{ with .Params.members }}
{{ $members = add ( len . ) $members }}
{{ end }}
{{ end }}
{{ if gt $distance_km $maxDistance_km }}
{{ $maxDistance_km = $distance_km }}
{{ end }}
{{ if gt $ascent_m $maxAscent_m }}
{{ $maxAscent_m = $ascent_m }}
{{ end }}
{{ if gt $count $maxCount }}
{{ $maxCount = $count }}
{{ end }}
{{ if gt $members $maxMembers }}
{{ $maxMembers = $members }}
{{ end }}
{{ $totalCount = add $count $totalCount }}
{{ $totalMembers = add $members $totalMembers }}
{{ $totalDistance_km = add $distance_km $totalDistance_km }}
{{ $totalAscent_m = add $ascent_m $totalAscent_m }}
{{ $actualCount = $count }}
{{ $actualMembers = $members }}
{{ $actualDistance_km = $distance_km }}
{{ $actualAscent_m = $ascent_m }}
{{ end }}
{{ $value := "" }}
{{ $actualHeight := 0 }}
{{ if eq $param_name "distance_km"}}
{{ $value = partial "func/NumberFormatter.html" ( dict "number" $totalDistance_km "precision" 0 ) }}
{{ $actualHeight = mul $actualDistance_km ( div $totalHeight $maxDistance_km ) }}
{{ end }}
{{ if eq $param_name "ascent_m"}}
{{ $value = partial "func/NumberFormatter.html" ( dict "number" $totalAscent_m "precision" 0 ) }}
{{ $actualHeight = mul $actualAscent_m ( div $totalHeight $maxAscent_m ) }}
{{ end }}
{{ if eq $param_name "count"}}
{{ $value = $totalCount }}
{{ $actualHeight = mul $actualCount ( div $totalHeight $maxCount ) }}
{{ end }}
{{ if eq $param_name "members"}}
{{ $value = $totalMembers }}
{{ $actualHeight = mul $actualMembers ( div $totalHeight $maxMembers ) }}
{{ end }}
{{ $color := "#a8c7f0" }}
{{ $fontcolor := "#123a6d" }}
{{ $fontstroke := "#e9f1fb" }}
{{ $actualColor := "#123a6d" }}
<svg width="{{ $totalWidth }}px" height="{{ $totalHeight }}px" xmlns="http://www.w3.org/2000/svg">
<rect height="100%" width="100%" opacity="0.1" fill="{{ $color }}"/>
{{ $x := 0 }}
{{ range sort ( $pages.GroupByDate "2006" ) "Key" }}
{{ $count := 0 }}
{{ $distance_km := 0 }}
{{ range .Pages }}
{{ with .Params.distance_km }}
{{ $distance_km = add . $distance_km }}
{{ end }}
{{ $count = add 1 $count }}
{{ end }}
{{ $height := 0 }}
{{ $height = mul (float $totalHeight ) ( div (float $count ) ( float $maxCount ) ) }}
<rect opacity="0.2" height="{{ $height }}" y="{{ sub $totalHeight $height }}" x="{{ $x }}px"
width="{{ $width }}px" fill="{{ $color }}" stroke-width="0" />
{{ $x = add $x $width }}
{{ end }}
<rect opacity="0.8" height="5px" y="{{ sub $totalHeight $actualHeight }}" x="0px"
width="{{ $totalWidth }}px" fill="{{ $actualColor }}" stroke-width="0" />
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-size="50px"
font-weight="bold" fill="{{ $fontcolor }}" stroke-width="1px" stroke="{{$fontstroke}}">{{ $value }}</text>
</svg>
Loading…
Cancel
Save