From a3c022929effee24efe6c5881ae35734f4fa8540 Mon Sep 17 00:00:00 2001 From: Yauheni Pakala Date: Tue, 12 Jun 2018 18:30:18 +0300 Subject: [PATCH] Add Reddit #3 --- README.md | 1 + dist/share-buttons.js | 2 +- example/index.html | 1 + src/share-buttons.js | 8 ++++++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 205148e..bf35e3c 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Simple social buttons for your site. * Twitter * Telegram * Pocket +* Reddit * EMail ## Browser support diff --git a/dist/share-buttons.js b/dist/share-buttons.js index 49fd055..96cbf05 100644 --- a/dist/share-buttons.js +++ b/dist/share-buttons.js @@ -1 +1 @@ -!function(c,l){"use strict";(new function(){var a=function(t,n){return t.replace(/\{(\d+)\}/g,function(t,e){return n[e]||t})},h=function(t){return t.join(" - ")};this.init=function(){var t,e=l.querySelectorAll(".share-btn");for(t=e.length;t--;)this.initForElement(e[t])},this.initForElement=function(t){var e,n=t.querySelectorAll("a");for(e=n.length;e--;)this.prepareLink(n[e],{id:"",url:this.getUrl(t),title:this.getTitle(t),desc:this.getDesc(t)})},this.prepareLink=function(t,e){e.id=t.getAttribute("data-id"),e.id&&this.addEventListener(t,"click",e)},this.getUrl=function(t){return t.getAttribute("data-url")||location.href||" "},this.getTitle=function(t){return t.getAttribute("data-title")||l.title||" "},this.getDesc=function(t){var e=l.querySelector("meta[name=description]");return t.getAttribute("data-desc")||e&&e.getAttribute("content")||" "},this.addEventListener=function(t,e,n){var i=this,r=function(){i.share(n.id,n.url,n.title,n.desc)};t.addEventListener?t.addEventListener(e,r):t.attachEvent("on"+e,function(){r.call(t)})},this.share=function(t,e,n,i){var r=encodeURIComponent(e),o=encodeURIComponent(i),s=encodeURIComponent(n),c=s||o||"";switch(t){case"fb":this.popupCenter(a("https://www.facebook.com/sharer/sharer.php?u={0}",[r]),n);break;case"vk":this.popupCenter(a("https://vk.com/share.php?url={0}&title={1}",[r,h([s,o])]),n);break;case"tw":this.popupCenter(a("https://twitter.com/intent/tweet?url={0}&text={1}",[r,h([s,o])]),n);break;case"tg":this.popupCenter(a("https://t.me/share/url?url={0}&text={1}",[r,h([s,o])]),n);break;case"pk":this.popupCenter(a("https://getpocket.com/edit?url={0}&title={1}",[r,h([s,o])]),n);break;case"mail":0 Twitter Telegram Pocket + Reddit EMail diff --git a/src/share-buttons.js b/src/share-buttons.js index 61dfb41..27cb8a7 100644 --- a/src/share-buttons.js +++ b/src/share-buttons.js @@ -15,12 +15,14 @@ TW_LINK_FORMAT = 'https://twitter.com/intent/tweet?url={0}&text={1}', TG_LINK_FORMAT = 'https://t.me/share/url?url={0}&text={1}', POCKET_LINK_FORMAT = 'https://getpocket.com/edit?url={0}&title={1}', + RE_LINK_FORMAT = 'https://reddit.com/submit/?url={0}', MAIL_LINK_FORMAT = 'mailto:?Subject={0}{1}&body={2}{3}', FB_CLASS_NAME = 'fb', VK_CLASS_NAME = 'vk', TW_CLASS_NAME = 'tw', TG_CLASS_NAME = 'tg', PK_CLASS_NAME = 'pk', + RE_CLASS_NAME = 're', MAIL_CLASS_NAME = 'mail', // from https://wcoder.github.io/notes/string-format-for-string-formating-in-javascript @@ -165,6 +167,12 @@ titleDef); break; + case RE_CLASS_NAME: + this.popupCenter( + stringFormat(RE_LINK_FORMAT, [url]), + titleDef); + break; + case MAIL_CLASS_NAME: if (title.length > 0 && desc.length > 0) { text = mergeForTitle([title, desc]);