{{- $scratch := .Scratch.Get "scratch" -}} {{- $CDN := $scratch.Get "CDN" -}} {{- $fingerprint := $scratch.Get "fingerprint" -}} {{- if eq hugo.Environment "production" | and (ne .Site.Params.comment.enable false) | and (ne .Params.comment false) -}}
{{- /* Disqus Comment System */ -}} {{- if .Site.Params.comment.disqus.enable -}}
{{- $source := printf "https://%s.disqus.com/embed.js" .Site.Params.comment.disqus.shortname -}} {{- dict "source" $source "defer" true "crossorigin" true | slice | $scratch.Add "script" -}} {{- end -}} {{- /* Gitalk Comment System */ -}} {{- if .Site.Params.comment.gitalk.enable -}} {{- $gitalk := .Site.Params.comment.gitalk -}}
{{- with $CDN.gitalkCSS -}} {{- dict "source" . "crossorigin" true | slice | $scratch.Add "stylesheet" -}} {{- else -}} {{- dict "source" "lib/gitalk/gitalk.css" "minify" true "fingerprint" $fingerprint | slice | $scratch.Add "stylesheet" -}} {{- end -}} {{- with $CDN.gitalkJS -}} {{- dict "source" . "crossorigin" true | slice | $scratch.Add "script" -}} {{- else -}} {{- dict "source" "lib/gitalk/gitalk.min.js" "fingerprint" $fingerprint | slice | $scratch.Add "script" -}} {{- end -}} {{- $gitalkConfig := dict "id" .Date "title" .Title "clientID" $gitalk.clientId "clientSecret" $gitalk.clientSecret "repo" $gitalk.repo "owner" $gitalk.owner "admin" (slice $gitalk.owner) -}} {{- $scratch.SetInMap "comment" "gitalk" $gitalkConfig -}} {{- end -}} {{- /* Valine Comment System */ -}} {{- if .Site.Params.comment.valine.enable -}} {{- $valine := .Site.Params.comment.valine -}}
{{- $options := dict "targetPath" "lib/valine/valine.min.css" -}} {{- dict "source" "lib/valine/valine.scss" "toCSS" $options | slice | $scratch.Add "stylesheet" -}} {{- with $CDN.valineJS -}} {{- dict "source" . "crossorigin" true | slice | $scratch.Add "script" -}} {{- else -}} {{- dict "source" "lib/valine/Valine.min.js" "fingerprint" $fingerprint | slice | $scratch.Add "script" -}} {{- end -}} {{- $valineConfig := dict "el" "#valine" "appId" $valine.appId "appKey" $valine.appKey "lang" ($valine.lang | default "en") "notify" $valine.notify "verify" $valine.verify "visitor" $valine.visitor "recordIP" $valine.recordIP -}} {{- with $valine.placeholder -}} {{- $valineConfig = dict "placeholder" . | merge $valineConfig -}} {{- end -}} {{- with $valine.avatar -}} {{- $valineConfig = dict "avatar" . | merge $valineConfig -}} {{- end -}} {{- with $valine.meta -}} {{- $valineConfig = dict "meta" . | merge $valineConfig -}} {{- end -}} {{- with $valine.pageSize -}} {{- $valineConfig = dict "pageSize" . | merge $valineConfig -}} {{- end -}} {{- $scratch.SetInMap "comment" "valine" $valineConfig -}} {{- end -}} {{- /* Facebook Comment System */ -}} {{- if .Site.Params.comment.facebook.enable -}} {{- $facebook := .Site.Params.comment.facebook -}}
{{- $source := printf "https://connect.facebook.net/%s/sdk.js#xfbml=1&version=v5.0&appId=%s&autoLogAppEvents=1" $facebook.languageCode $facebook.appId -}} {{- dict "source" $source "defer" true "crossorigin" true | slice | $scratch.Add "script" -}} {{- end -}} {{- /* Telegram Comments System */ -}} {{- if .Site.Params.comment.telegram.enable -}} {{- $telegram := .Site.Params.comment.telegram -}}
{{- $attr := printf `data-comments-app-website="%s"` $telegram.siteID -}} {{- $attr = printf `%s data-limit="%s"` $attr ($telegram.limit | default 5) -}} {{- with $telegram.height -}} {{- $attr = printf `%s data-height="%s"` $attr . -}} {{- end -}} {{- with $telegram.color -}} {{- $attr = printf `%s data-color="%s"` $attr . -}} {{- end -}} {{- if $telegram.colorful -}} {{- $attr = printf `%s data-colorful="1"` $attr -}} {{- end -}} {{- if $telegram.dislikes -}} {{- $attr = printf `%s data-dislikes="1"` $attr -}} {{- end -}} {{- if $telegram.outlined -}} {{- $attr = printf `%s data-outlined="1"` $attr -}} {{- end -}} {{- dict "source" "https://comments.app/js/widget.js?2" "defer" true "crossorigin" true "attr" $attr | slice | $scratch.Add "script" -}} {{- end -}}
{{- end -}}