{{ define "main" }} {{ $catData := index hugo.Data .Params.category }} {{ $config := "" }} {{ if eq .Params.engine "linear" }} {{ $config = dict "fromFactor" .Params.from_factor "toFactor" .Params.to_factor | jsonify }} {{ else if eq .Params.engine "intermediate" }} {{ $toExpr := index $catData.to_intermediate .Params.from | default "v" }} {{ $fromExpr := index $catData.from_intermediate .Params.to | default "v" }} {{ $config = printf "{ toIntermediate: v => %s, fromIntermediate: v => %s }" $toExpr $fromExpr }} {{ else if eq .Params.engine "runtime" }} {{ $fromCode := .Params.from }} {{ $toCode := .Params.to }} {{ $config = printf "{ init: async function () { const pbUrl = document.querySelector('meta[name=\\'pocketbase-url\\']')?.content || 'https://www.alphabreed.com'; try { const response = await fetch(`${pbUrl}/api/collections/currencies/records`); if (!response.ok) { this.ratesError = 'Wechselkurse konnten nicht geladen werden.'; return; } const data = await response.json(); for (const item of data.items || []) { this.rates[item.id] = item.rate; } } catch (e) { this.ratesError = 'Wechselkurse konnten nicht geladen werden.'; } }, convert: function (value) { const fromRate = '%s' === 'eur' ? 1 : this.rates['%s']; const toRate = '%s' === 'eur' ? 1 : this.rates['%s']; if (!fromRate || !toRate) { return null; } return value.times(new Decimal(toRate)).dividedBy(new Decimal(fromRate)); } }" $fromCode $fromCode $toCode $toCode }} {{ end }} {{ $availableUnits := partial "available-units.html" (dict "category" .Params.category "units" $catData.units) }}

{{ .Params.from_name }} in {{ .Params.to_name }} umrechnen

{{ partial "conversion-formula.html" . }}
{{ partial "conversion-seo-texts.html" . }}
{{ end }}