feature(share): support 28 kinds of share links

This commit is contained in:
Dillon
2020-02-18 02:53:07 +08:00
parent ad4655ce6a
commit 434f8fa676
18 changed files with 397 additions and 202 deletions

View File

@@ -82,7 +82,7 @@
{{- partial "function/icon-link.html" $options -}}
{{- end -}}
{{- /* 013: Tumblr */ -}}
{{- /* 013: Quora */ -}}
{{- with .Site.Params.Social.Quora -}}
{{- $options := dict "href" (printf "https://www.quora.com/profile/%s" .) "title" "Quora" -}}
{{- $options = dict "class" "fab fa-quora fa-fw" | merge $options -}}
@@ -152,9 +152,9 @@
{{- partial "function/icon-link.html" $options -}}
{{- end -}}
{{- /* 023: VKontakte */ -}}
{{- with .Site.Params.Social.VKontakte -}}
{{- $options := dict "href" (printf "https://vk.com/%s" .) "title" "VKontakte" -}}
{{- /* 023: VK */ -}}
{{- with .Site.Params.Social.VK -}}
{{- $options := dict "href" (printf "https://vk.com/%s" .) "title" "VK" -}}
{{- $options = dict "class" "fab fa-vk fa-fw" | merge $options -}}
{{- partial "function/icon-link.html" $options -}}
{{- end -}}

View File

@@ -21,7 +21,7 @@
{{- with .OutputFormats.Get "markdown" -}}
<span>
<a class="link-to-markdown" href="{{ .Permalink }}" target="_blank">
{{- T "seeMarkDown" -}}
{{- T "seeMarkdown" -}}
</a>
</span>
{{- end -}}

View File

@@ -1,71 +1,199 @@
{{- if .Params.share.enable | default .Site.Params.share.enable | eq true -}}
{{- .Scratch.Set "share" true -}}
{{- /* 001: Twitter */ -}}
{{- if .Params.Share.Twitter | default .Site.Params.Share.Twitter | eq true -}}
<a href="//twitter.com/share?url={{ .Permalink }}&amp;text={{ .Title }}&amp;via={{ .Site.Params.Social.Twitter }}" target="_blank" title="{{ T "share" }} Twitter">
<a href="javascript:void(0);" title="{{ T `share` }} Twitter" data-sharer="twitter" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.tags }} data-hashtags="{{ delimit . `,` }}"{{ end }}>
{{- partial "function/icon.html" (dict "class" "fab fa-twitter fa-fw") -}}
</a>
{{- end -}}
{{- /* 002: Facebook */ -}}
{{- if .Params.Share.Facebook | default .Site.Params.Share.Facebook | eq true -}}
<a href="//www.facebook.com/sharer/sharer.php?u={{ .Permalink }}" target="_blank" title="{{ T "share" }} Facebook">
<a href="javascript:void(0);" title="{{ T `share` }} Facebook" data-sharer="facebook" data-url="{{ .Permalink }}"{{ with .Params.tags }} data-hashtag="{{ index . 0 }}"{{ end }}>
{{- partial "function/icon.html" (dict "class" "fab fa-facebook-square fa-fw") -}}
</a>
{{- end -}}
{{- /* 003: Reddit */ -}}
{{- if .Params.Share.Reddit | default .Site.Params.Share.Reddit | eq true -}}
<a href="//reddit.com/submit?url={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="{{ T "share" }} Reddit">
{{- partial "function/icon.html" (dict "class" "fab fa-reddit fa-fw") -}}
</a>
{{- end -}}
{{- /* 004: Linkedin */ -}}
{{- /* 003: Linkedin */ -}}
{{- if .Params.Share.Linkedin | default .Site.Params.Share.Linkedin | eq true -}}
<a href="//www.linkedin.com/shareArticle?url={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="{{ T "share" }} LinkedIn">
<a href="javascript:void(0);" title="{{ T `share` }} Linkedin" data-sharer="linkedin" data-url="{{ .Permalink }}">
{{- partial "function/icon.html" (dict "class" "fab fa-linkedin fa-fw") -}}
</a>
{{- end -}}
{{- /* 005: Pinterest */ -}}
{{- /* 004: WhatsApp */ -}}
{{- if .Params.Share.Whatsapp | default .Site.Params.Share.Whatsapp | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} WhatsApp" data-sharer="whatsapp" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-web>
{{- partial "function/icon.html" (dict "class" "fab fa-whatsapp fa-fw") -}}
</a>
{{- end -}}
{{- /* 005: Viber */ -}}
{{- if .Params.Share.Viber | default .Site.Params.Share.Viber | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Viber" data-sharer="viber" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-viber fa-fw") -}}
</a>
{{- end -}}
{{- /* 006: Pinterest */ -}}
{{- if .Params.Share.Pinterest | default .Site.Params.Share.Pinterest | eq true -}}
<a href="//www.pinterest.com/pin/create/button/?url={{ .Permalink }}&amp;description={{ .Title }}" target="_blank" title="{{ T "share" }} Pinterest">
<a href="javascript:void(0);" title="{{ T `share` }} Pinterest" data-sharer="pinterest" data-url="{{ .Permalink }}"{{ with .Description }} data-description="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}>
{{- partial "function/icon.html" (dict "class" "fab fa-pinterest fa-fw") -}}
</a>
{{- end -}}
{{- /* 006: Hacker News */ -}}
{{- if .Params.Share.Hackernews | default .Site.Params.Share.Hackernews | eq true -}}
<a href="//news.ycombinator.com/submitlink?u={{ .Permalink }}&amp;description={{ .Title }}" target="_blank" title="{{ T "share" }} Hacker News">
{{- partial "function/icon.html" (dict "class" "fab fa-hacker-news fa-fw") -}}
</a>
{{- end -}}
{{- /* 007: Mix */ -}}
{{- if .Params.Share.Mix | default .Site.Params.Share.Mix | eq true -}}
<a href="//mix.com/add?url={{ .Permalink }}&amp;description={{ .Title }}" target="_blank" title="{{ T "share" }} Mix">
{{- partial "function/icon.html" (dict "class" "fab fa-mix fa-fw") -}}
</a>
{{- end -}}
{{- /* 008: Tumblr */ -}}
{{- /* 007: Tumblr */ -}}
{{- if .Params.Share.Tumblr | default .Site.Params.Share.Tumblr | eq true -}}
<a href="//www.tumblr.com/widgets/share/tool?canonicalUrl={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="{{ T "share" }} Tumblr">
<a href="javascript:void(0);" title="{{ T `share` }} Tumblr" data-sharer="tumblr" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.tags }} data-tags="{{ delimit . `,` }}"{{ end }}>
{{- partial "function/icon.html" (dict "class" "fab fa-tumblr fa-fw") -}}
</a>
{{- end -}}
{{- /* 009: VKontakte */ -}}
{{- if .Params.Share.VKontakte | default .Site.Params.Share.VKontakte | eq true -}}
<a href="//vk.com/share.php?url={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="{{ T "share" }} VKontakte ">
{{- /* 008: Hacker News */ -}}
{{- if .Params.Share.Hackernews | default .Site.Params.Share.Hackernews | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Hacker News" data-sharer="hackernews" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-hacker-news fa-fw") -}}
</a>
{{- end -}}
{{- /* 009: Reddit */ -}}
{{- if .Params.Share.Reddit | default .Site.Params.Share.Reddit | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Reddit" data-sharer="reddit" data-url="{{ .Permalink }}">
{{- partial "function/icon.html" (dict "class" "fab fa-reddit fa-fw") -}}
</a>
{{- end -}}
{{- /* 010: VK */ -}}
{{- if .Params.Share.VK | default .Site.Params.Share.VK | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} VK" data-sharer="vk" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}>
{{- partial "function/icon.html" (dict "class" "fab fa-vk fa-fw") -}}
</a>
{{- end -}}
{{- /* 010: 微博 */ -}}
{{- /* 011: Buffer */ -}}
{{- if .Params.Share.Buffer | default .Site.Params.Share.Buffer | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Buffer" data-sharer="buffer" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-picture="{{ . }}"{{ end }}>
{{- partial "function/icon.html" (dict "class" "fab fa-buffer fa-fw") -}}
</a>
{{- end -}}
{{- /* 012: Xing */ -}}
{{- if .Params.Share.Xing | default .Site.Params.Share.Xing | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Xing" data-sharer="xing" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-xing fa-fw") -}}
</a>
{{- end -}}
{{- /* 013: Line */ -}}
{{- if .Params.Share.Line | default .Site.Params.Share.Line | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Line" data-sharer="line" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-line fa-fw") -}}
</a>
{{- end -}}
{{- /* 014: Instapaper */ -}}
{{- if .Params.Share.Instapaper | default .Site.Params.Share.Instapaper | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Instapaper" data-sharer="instapaper" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
{{- partial "function/icon.html" (dict "class" "loveit it-instapaper-fill" "type" "other" "scratch" .Scratch) -}}
</a>
{{- end -}}
{{- /* 015: Pocket */ -}}
{{- if .Params.Share.Pocket | default .Site.Params.Share.Pocket | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Pocket" data-sharer="pocket" data-url="{{ .Permalink }}">
{{- partial "function/icon.html" (dict "class" "fab fa-get-pocket fa-fw") -}}
</a>
{{- end -}}
{{- /* 016: Digg */ -}}
{{- if .Params.Share.Digg | default .Site.Params.Share.Digg | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Digg" data-sharer="digg" data-url="{{ .Permalink }}">
{{- partial "function/icon.html" (dict "class" "fab fa-digg fa-fw") -}}
</a>
{{- end -}}
{{- /* 017: StumbleUpon */ -}}
{{- if .Params.Share.Stumbleupon | default .Site.Params.Share.Stumbleupon | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} StumbleUpon" data-sharer="stumbleupon" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-stumbleupon fa-fw") -}}
</a>
{{- end -}}
{{- /* 018: Flipboard */ -}}
{{- if .Params.Share.Flipboard | default .Site.Params.Share.Flipboard | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Flipboard" data-sharer="flipboard" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-flipboard fa-fw") -}}
</a>
{{- end -}}
{{- /* 019: 微博 */ -}}
{{- if .Params.Share.Weibo | default .Site.Params.Share.Weibo | eq true -}}
<a href="//service.weibo.com/share/share.php?url={{ .Permalink }}&amp;appkey=&amp;title={{ .Title }}{{ with $.Params.featuredImage }}&amp;pic={{ . }}{{- end -}}" target="_blank" title="{{ T "share" }} 微博">
<a href="javascript:void(0);" title="{{ T `share` }} 微博" data-sharer="weibo" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}{{ with .Site.Params.Social.Weibo }} data-ralateuid="{{ . }}"{{ end }}>
{{- partial "function/icon.html" (dict "class" "fab fa-weibo fa-fw") -}}
</a>
{{- end -}}
{{- /* 020: 人人 */ -}}
{{- if .Params.Share.Renren | default .Site.Params.Share.Renren | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} 人人" data-sharer="renren" data-url="{{ .Permalink }}">
{{- partial "function/icon.html" (dict "class" "fab fa-renren fa-fw") -}}
</a>
{{- end -}}
{{- /* 021: Myspace */ -}}
{{- if .Params.Share.Myspace | default .Site.Params.Share.Myspace | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Myspace" data-sharer="myspace" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
{{- partial "function/icon.html" (dict "class" "loveit it-myspace-fill" "type" "other" "scratch" .Scratch) -}}
</a>
{{- end -}}
{{- /* 022: Blogger */ -}}
{{- if .Params.Share.Blogger | default .Site.Params.Share.Blogger | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Blogger" data-sharer="blogger" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
{{- partial "function/icon.html" (dict "class" "fab fa-blogger fa-fw") -}}
</a>
{{- end -}}
{{- /* 023: 百度 */ -}}
{{- if .Params.Share.Baidu | default .Site.Params.Share.Baidu | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} 百度" data-sharer="baidu" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "loveit it-baidu-fill" "type" "other" "scratch" .Scratch) -}}
</a>
{{- end -}}
{{- /* 024: OK.RU */ -}}
{{- if .Params.Share.Odnoklassniki | default .Site.Params.Share.Odnoklassniki | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} OK.RU" data-sharer="okru" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-odnoklassniki fa-fw") -}}
</a>
{{- end -}}
{{- /* 025: Evernote */ -}}
{{- if .Params.Share.Evernote | default .Site.Params.Share.Evernote | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Evernote" data-sharer="evernote" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-evernote fa-fw") -}}
</a>
{{- end -}}
{{- /* 026: Skype */ -}}
{{- if .Params.Share.Skype | default .Site.Params.Share.Skype | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Skype" data-sharer="skype" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
{{- partial "function/icon.html" (dict "class" "fab fa-skype fa-fw") -}}
</a>
{{- end -}}
{{- /* 027: Trello */ -}}
{{- if .Params.Share.Trello | default .Site.Params.Share.Trello | eq true -}}
<a href="javascript:void(0);" title="{{ T `share` }} Trello" data-sharer="trello" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
{{- partial "function/icon.html" (dict "class" "fab fa-trello fa-fw") -}}
</a>
{{- end -}}
{{- /* 028: Mix */ -}}
{{- if .Params.Share.Mix | default .Site.Params.Share.Mix | eq true -}}
<a href="//mix.com/add?url={{ .Permalink }}&amp;description={{ .Title }}" target="_blank" title="{{ T `share` }} Mix">
{{- partial "function/icon.html" (dict "class" "fab fa-mix fa-fw") -}}
</a>
{{- end -}}
{{- end -}}

View File

@@ -10,13 +10,6 @@
{{- slice "css/lib/iconfont/iconfont.css" | .Scratch.Add "linkLocal" -}}
{{- end -}}
{{- /* lazysizes https://github.com/aFarkas/lazysizes */ -}}
{{- with $CDN.lazysizesJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/lazysizes/lazysizes.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- /* Smooth Scroll https://github.com/cferdinandi/smooth-scroll */ -}}
{{- with $CDN.smoothScrollJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
@@ -24,6 +17,22 @@
{{- slice "js/lib/smooth-scroll/smooth-scroll.polyfills.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- /* Sharer.js https://github.com/ellisonleao/sharer.js */ -}}
{{- if .Scratch.Get "share" -}}
{{- with $CDN.sharerJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/sharer/sharer.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- end -}}
{{- /* lazysizes https://github.com/aFarkas/lazysizes */ -}}
{{- with $CDN.lazysizesJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/lazysizes/lazysizes.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- /* TypeIt https://github.com/alexmacarthur/typeit */ -}}
{{- with .Scratch.Get "typeitMap" -}}
{{- with $CDN.typeitJS -}}