diff --git a/README.md b/README.md index caf25f0..3acc293 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,13 @@ Evernote | ev LinkedIn | in Pinterest | pi Skype | sk +WhatsApp | wa +Odnoklassniki | ok +Tumblr | tu +Hacker News | hn +Xing | xi EMail | mail +Print | print ## Customizing @@ -104,4 +110,4 @@ If your using [Font-Awesome](https://github.com/FortAwesome/Font-Awesome): ---- -© 2015 - 2018 Yauheni Pakala +© 2015 - 2019 Yauheni Pakala diff --git a/dist/share-buttons.js b/dist/share-buttons.js index 1c26cf9..fa4a986 100644 --- a/dist/share-buttons.js +++ b/dist/share-buttons.js @@ -1 +1 @@ -!function(p,m){"use strict";(new function(){var s=function(e,n){return e.replace(/\{(\d+)\}/g,function(e,t){return n[t]||e})},u=function(e){return e.join(" - ")};this.i=function(){var e,t=m.querySelectorAll(".share-btn");for(e=t.length;e--;)n(t[e])};var n=function(e){var t,n=e.querySelectorAll("a");for(t=n.length;t--;)r(n[t],{id:"",url:c(e),title:i(e),desc:o(e)})},r=function(e,t){t.id=l(e,"data-id"),t.id&&a(e,"click",t)},c=function(e){return l(e,"data-url")||location.href||" "},i=function(e){return l(e,"data-title")||m.title||" "},o=function(e){var t=m.querySelector("meta[name=description]");return l(e,"data-desc")||t&&l(t,"content")||" "},a=function(e,t,n){var r=function(){d(n.id,n.url,n.title,n.desc)};e.addEventListener?e.addEventListener(t,r):e.attachEvent("on"+t,function(){r.call(e)})},l=function(e,t){return e.getAttribute(t)},h=function(e){return encodeURIComponent(e)},d=function(e,t,n,r){var c=h(t),i=h(r),o=h(n),a=o||i||"";switch(e){case"fb":f(s("https://www.facebook.com/sharer/sharer.php?u={0}",[c]),n);break;case"vk":f(s("https://vk.com/share.php?url={0}&title={1}",[c,u([o,i])]),n);break;case"tw":f(s("https://twitter.com/intent/tweet?url={0}&text={1}",[c,u([o,i])]),n);break;case"tg":f(s("https://t.me/share/url?url={0}&text={1}",[c,u([o,i])]),n);break;case"pk":f(s("https://getpocket.com/edit?url={0}&title={1}",[c,u([o,i])]),n);break;case"re":f(s("https://reddit.com/submit/?url={0}",[c]),n);break;case"ev":f(s("https://www.evernote.com/clip.action?url={0}&t={1}",[c,o]),n);break;case"in":f(s("https://www.linkedin.com/shareArticle?mini=true&url={0}&title={1}&summary={2}&source={0}",[c,o,u([o,i])]),n);break;case"pi":f(s("https://pinterest.com/pin/create/button/?url={0}&media={0}&description={1}",[c,u([o,i])]),n);break;case"sk":f(s("https://web.skype.com/share?url={0}&source=button&text={1}",[c,u([o,i])]),n);break;case"mail":0 - - - Test page for sharing - - - - + + + Test page for sharing + + + + -

Share this page with:

- - - - -
- VK - Facebook - Twitter - Telegram - Pocket - Reddit - Evernote - LinkedIn - Pinterest - Skype - EMail -
- - - - - - +

Share this page with:

+ + + + +
+ VK + Facebook + Twitter + Telegram + Pocket + Reddit + Evernote + LinkedIn + Pinterest + Skype + WhatsApp + Odnoklassniki + Tumblr + Hacker News + Xing + EMail + Print +
+ + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3a0dad3..a833509 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "share-buttons", - "version": "1.0.0", + "version": "1.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -495,9 +495,9 @@ "dev": true }, "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, "component-emitter": { @@ -1716,15 +1716,16 @@ } }, "gulp-uglify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", - "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.1.tgz", + "integrity": "sha512-KVffbGY9d4Wv90bW/B1KZJyunLMyfHTBbilpDvmcrj5Go0/a1G3uVpt+1gRBWSw/11dqR3coJ1oWNTt1AiXuWQ==", "dev": true, "requires": { "gulplog": "^1.0.0", "has-gulplog": "^0.1.0", "lodash": "^4.13.1", "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", "through2": "^2.0.0", "uglify-js": "^3.0.5", "vinyl-sourcemaps-apply": "^0.2.0" @@ -2164,15 +2165,15 @@ } }, "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "make-error": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", - "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, "make-error-cause": { @@ -3231,12 +3232,12 @@ "dev": true }, "uglify-js": { - "version": "3.3.27", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.27.tgz", - "integrity": "sha512-O94wxMSb3td/TlofkITYvYIlvIVdldvNXDVRekzK13CQZuL37ua4nrdXX0Ro7MapfUVzglRHs0/+imPRUdOghg==", + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", "dev": true, "requires": { - "commander": "~2.15.0", + "commander": "~2.17.1", "source-map": "~0.6.1" }, "dependencies": { diff --git a/package.json b/package.json index 347d8c7..4c1c6f5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "share-buttons", - "version": "1.2.0", + "version": "1.3.0", "description": "Simple social buttons for your site.", "directories": { "example": "example" @@ -20,7 +20,7 @@ "homepage": "https://wcoder.github.io/share-buttons", "devDependencies": { "gulp": "^4.0.0", - "gulp-uglify": "^3.0.0" + "gulp-uglify": "^3.0.1" }, "main": "dist/share-buttons.js", "dependencies": {}, @@ -28,6 +28,7 @@ "social", "buttons", "share", + "fontawesome", "facebook", "vk", "twitter", @@ -38,6 +39,12 @@ "pocket", "reddit", "evernote", - "email" + "whatsapp", + "odnoklassniki", + "tumblr", + "hackernews", + "xing", + "email", + "print" ] } diff --git a/src/share-buttons.js b/src/share-buttons.js index 2760689..f6b6c6d 100644 --- a/src/share-buttons.js +++ b/src/share-buttons.js @@ -20,6 +20,11 @@ IN_LINK_FORMAT = 'https://www.linkedin.com/shareArticle?mini=true&url={0}&title={1}&summary={2}&source={0}', PI_LINK_FORMAT = 'https://pinterest.com/pin/create/button/?url={0}&media={0}&description={1}', SK_LINK_FORMAT = 'https://web.skype.com/share?url={0}&source=button&text={1}', + WA_LINK_FORMAT = 'whatsapp://send?text={0}%20{1}', + OK_LINK_FORMAT = 'https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl={0}', + TU_LINK_FORMAT = 'https://www.tumblr.com/widgets/share/tool?posttype=link&title={0}&caption={0}&content={1}&canonicalUrl={1}&shareSource=tumblr_share_button', + HN_LINK_FORMAT = 'https://news.ycombinator.com/submitlink?t={0}&u={1}', + XI_LINK_FORMAT = 'https://www.xing.com/app/user?op=share;url={0};title={1}', MAIL_LINK_FORMAT = 'mailto:?Subject={0}{1}&body={2}{3}', FB_CLASS_NAME = 'fb', VK_CLASS_NAME = 'vk', @@ -31,7 +36,13 @@ IN_CLASS_NAME = 'in', PI_CLASS_NAME = 'pi', SK_CLASS_NAME = 'sk', - MAIL_CLASS_NAME = 'mail'; + WA_CLASS_NAME = 'wa', + OK_CLASS_NAME = 'ok', + TU_CLASS_NAME = 'tu', + HN_CLASS_NAME = 'hn', + XI_CLASS_NAME = 'xi', + MAIL_CLASS_NAME = 'mail', + PRINT_CLASS_NAME = 'print'; /** * Method for get string in the special format by arguments @@ -251,6 +262,48 @@ titleDef); break; + case WA_CLASS_NAME: + popupCenter( + stringFormat(WA_LINK_FORMAT, [ + mergeForTitle([title, desc]), + url + ]), + titleDef); + break; + + case OK_CLASS_NAME: + popupCenter( + stringFormat(OK_LINK_FORMAT, [ url ]), + titleDef); + break; + + case TU_CLASS_NAME: + popupCenter( + stringFormat(TU_LINK_FORMAT, [ + mergeForTitle([title, desc]), + url + ]), + titleDef); + break; + + case HN_CLASS_NAME: + popupCenter( + stringFormat(HN_LINK_FORMAT, [ + mergeForTitle([title, desc]), + url + ]), + titleDef); + break; + + case XI_CLASS_NAME: + popupCenter( + stringFormat(XI_LINK_FORMAT, [ + url, + mergeForTitle([title, desc]) + ]), + titleDef); + break; + case MAIL_CLASS_NAME: if (title.length > 0 && desc.length > 0) { text = mergeForTitle([title, desc]); @@ -265,6 +318,10 @@ location.href = stringFormat(MAIL_LINK_FORMAT, [title, titleDef, text, url]); break; + case PRINT_CLASS_NAME: + window.print(); + break; + default: break; }