{{- $cdn := .Scratch.Get "cdn" | default dict -}} {{- $fingerprint := .Scratch.Get "fingerprint" -}} {{- $comment := .Scratch.Get "comment" | default (dict "disqus" dict "gitalk" dict "valine" dict "facebook" dict "telegram" dict "commento" dict "utterances" dict) -}} {{- $commentConfig := dict -}} {{- if $comment.enable -}}
{{- /* Disqus Comment System */ -}} {{- if $comment.disqus.enable -}}
{{- $source := printf "https://%s.disqus.com/embed.js" $comment.disqus.shortname -}} {{- dict "source" $source "defer" true | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- end -}} {{- /* Gitalk Comment System */ -}} {{- if $comment.gitalk.enable -}} {{- $gitalk := $comment.gitalk -}}
{{- $source := $cdn.gitalkCSS | default "lib/gitalk/gitalk.css" -}} {{- dict "source" $source "minify" true "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}} {{- $source := $cdn.gitalkJS | default "lib/gitalk/gitalk.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- $commentConfig = dict "id" .Date "title" .Title "clientID" $gitalk.clientId "clientSecret" $gitalk.clientSecret "repo" $gitalk.repo "owner" $gitalk.owner "admin" (slice $gitalk.owner) | dict "gitalk" | merge $commentConfig -}} {{- end -}} {{- /* Valine Comment System */ -}} {{- if $comment.valine.enable -}} {{- $valine := $comment.valine -}}
{{- $options := dict "targetPath" "lib/valine/valine.min.css" -}} {{- dict "source" "lib/valine/valine.scss" "toCSS" $options | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}} {{- $source := $cdn.valineJS | default "lib/valine/Valine.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- $commentConfig = dict "el" "#valine" "appId" $valine.appId "appKey" $valine.appKey "lang" ($valine.lang | default (T "valineLang")) "visitor" $valine.visitor "recordIP" $valine.recordIP "placeholder" ($valine.placeholder | default (T "valinePlaceholder")) "highlight" (ne $valine.highlight false) "enableQQ" $valine.enableQQ | dict "valine" | merge $commentConfig -}} {{- with $valine.avatar -}} {{- $commentConfig = dict "avatar" . | dict "valine" | merge $commentConfig -}} {{- end -}} {{- with $valine.meta -}} {{- $commentConfig = dict "meta" . | dict "valine" | merge $commentConfig -}} {{- end -}} {{- with $valine.pageSize -}} {{- $commentConfig = dict "pageSize" . | dict "valine" | merge $commentConfig -}} {{- end -}} {{- with $valine.serverURLs -}} {{- $commentConfig = dict "serverURLs" . | dict "valine" | merge $commentConfig -}} {{- end -}} {{- end -}} {{- /* Facebook Comment System */ -}} {{- if $comment.facebook.enable -}} {{- $facebook := $comment.facebook -}}
{{- $source := printf "https://connect.facebook.net/%s/sdk.js#xfbml=1&version=v5.0&appId=%s&autoLogAppEvents=1" ($facebook.languageCode | default (T "facebookLanguageCode")) $facebook.appId -}} {{- dict "source" $source "defer" true | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- end -}} {{- /* Telegram Comments System */ -}} {{- if $comment.telegram.enable -}} {{- $telegram := $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 "attr" $attr | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- end -}} {{- /* Commento Comment System */ -}} {{- if $comment.commento.enable -}}
{{- dict "source" "https://cdn.commento.io/js/commento.js" "defer" true | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- end -}} {{- /* Utterances Comment System */ -}} {{- if $comment.utterances.enable -}}
{{- $utterances := $comment.utterances -}} {{- $commentConfig = dict "repo" $utterances.repo | dict "utterances" | merge $commentConfig -}} {{- $commentConfig = $utterances.issueTerm | default "pathname" | dict "issueTerm" | dict "utterances" | merge $commentConfig -}} {{- $commentConfig = dict "label" $utterances.label | dict "utterances" | merge $commentConfig -}} {{- $commentConfig = $utterances.lightTheme | default "github-light" | dict "lightTheme" | dict "utterances" | merge $commentConfig -}} {{- $commentConfig = $utterances.darkTheme | default "github-dark" | dict "darkTheme" | dict "utterances" | merge $commentConfig -}} {{- end -}}
{{- end -}} {{- dict "comment" $commentConfig | dict "config" | merge (.Scratch.Get "this") | .Scratch.Set "this" -}}