Skip to content

Commit

Permalink
Fix feature shortcode for Hugo
Browse files Browse the repository at this point in the history
Algorithm for splitting string by dots and comparing major, minor
version one by one separately. There is no break statement for
range loop, that's why added special handling for that case.
  • Loading branch information
aLekSer committed Mar 15, 2019
1 parent b133e52 commit 6f8ae99
Showing 1 changed file with 32 additions and 1 deletion.
33 changes: 32 additions & 1 deletion site/layouts/shortcodes/feature.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,37 @@
{{- $version := getenv "RELEASE_VERSION" | default $.Page.Site.Params.release_version }}
{{- $publishVersion := (.Get "publishVersion" ) | default "0.0.0" }}
{{- $expiryVersion := (.Get "expiryVersion") | default "9999.0.0"}}
{{- if and (ge $version $publishVersion) (lt $version $expiryVersion) }}
{{- $publDigits := split $publishVersion "." }}
{{- $curDigits := split $version "." }}
{{- $expDigits := split $expiryVersion "." }}
{{- $print := 0}}
{{- $multiplier := 10000 }}
{{- $current := 0}}
{{- $publish := 0}}
{{- $expire := 0}}
{{- $index := 0}}

{{/*Generate initial shift of most significant number*/}}
{{- $shift := 1 }}
{{- range $curDigits}}
{{- $shift = mul $shift $multiplier }}
{{- end}}
{{- $shift = div $shift $multiplier }}

{{/* loop three times */}}
{{- range $curDigits}}
{{/* Get integer from dot separated string at index */}}
{{- $c := int (index $curDigits $index)}}
{{- $p := int (index $publDigits $index)}}
{{- $e := int (index $expDigits $index)}}
{{/* current += digit * shift */}}
{{- $current = (add $current (mul $c $shift ))}}
{{- $publish = (add $publish (mul $p $shift ))}}
{{- $expire = (add $expire (mul $e $shift ))}}
{{- $shift = (div $shift $multiplier)}}

{{- $index = (add $index 1) }}
{{- end}}
{{- if and (ge $current $publish) (lt $current $expire) }}
{{.Inner}}
{{- end}}

0 comments on commit 6f8ae99

Please sign in to comment.