You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.1 KiB
70 lines
2.1 KiB
{{ $key := .page.Title }} |
|
{{ $pages := where .page.Site.RegularPages "Type" "in" (slice "posts") }} |
|
{{ $count := len $pages }} |
|
{{ $param_title := .param_title }} |
|
|
|
{{ $totalWidth := 100.0 }} |
|
{{ $totalHeight := 50.0 }} |
|
{{/* {{ $width := div $totalWidth ( len ( $pages.GroupByDate "2006" ) ) }} */}} |
|
{{ $width := div $totalWidth ( len ( $pages.GroupByDate "2006" ) ) }} |
|
|
|
{{ $color := "#357edd" }} |
|
|
|
<script> |
|
function onyearover(year, key, count){ |
|
document.getElementById( key ).innerHTML = year + ": " + count + " km"; |
|
} |
|
|
|
function onyearout(key){ |
|
document.getElementById( key ).innerHTML = "<br>"; |
|
} |
|
</script> |
|
|
|
<svg width="{{ $totalWidth }}%" height="{{ $totalHeight }}" xmlns="http://www.w3.org/2000/svg"> |
|
<rect height="100%" width="100%" opacity="0.1" fill="{{ $color }}"/> |
|
|
|
{{ $x := 0 }} |
|
{{ $year := 0 }} |
|
{{ range sort ( $pages.GroupByDate "2006" ) "Key" }} |
|
{{ $maxDist := 0.00 }} |
|
{{ $maxCount := 0 }} |
|
{{ $dist := 0.00 }} |
|
{{ $count := 0 }} |
|
|
|
{{ range .Pages }} |
|
{{ $maxCount = add 1 $maxCount }} |
|
{{ $year = dateFormat "2006" .Date }} |
|
|
|
{{ $isMember := false }} |
|
|
|
{{ range .Params.members }} |
|
{{ if eq . $key }} |
|
{{ $isMember = true }} |
|
{{ $count = add 1 $count }} |
|
{{ end }} |
|
{{ end }} |
|
|
|
{{ with .Params.distance_km }} |
|
{{ $maxDist = add . $maxDist }} |
|
{{ if $isMember }} |
|
{{ $dist = add . $dist }} |
|
{{ end }} |
|
{{ end }} |
|
{{ end }} |
|
|
|
{{ $height := 0 }} |
|
{{ if gt $maxDist 0 }} |
|
{{ $height = mul (float $totalHeight ) ( div (float $dist ) ( float $maxDist ) ) }} |
|
{{ else }} |
|
{{ $height = mul (float $totalHeight ) ( div (float $count ) ( float $maxCount ) ) }} |
|
{{ end }} |
|
{{/* $maxDist */}} |
|
{{/* $dist */}} |
|
{{/* $x */}} |
|
{{/* $height */}} |
|
<rect onmouseover="onyearover({{ $year }}, {{ $param_title }}, {{ math.Round $dist }} )" onmouseout="onyearout({{ $param_title }})" opacity="0.2" height="{{ $height }}" y="{{ sub $totalHeight $height }}" x="{{ $x }}%" |
|
width="{{ $width }}%" fill="{{ $color }}" stroke-width="1.5" stroke="{{$color}}"/> |
|
|
|
{{ $x = add $x $width }} |
|
{{ end }} |
|
</svg>
|
|
|