summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-plugin-sharing/src/SITES.js
diff options
context:
space:
mode:
authorNicolas Gaborit <soreine.plume@gmail.com>2016-10-13 12:56:46 +0200
committerSamy Pessé <samypesse@gmail.com>2016-10-13 12:56:46 +0200
commit3aea3e5d88384822440517c9a2b722c405547155 (patch)
tree84ef0448c7e2e7ed95941f2795e86ca65f7cd809 /packages/gitbook-plugin-sharing/src/SITES.js
parent95b3b4ebb7277f7a96ee79e5d75baafb3b5aab1e (diff)
downloadgitbook-3aea3e5d88384822440517c9a2b722c405547155.zip
gitbook-3aea3e5d88384822440517c9a2b722c405547155.tar.gz
gitbook-3aea3e5d88384822440517c9a2b722c405547155.tar.bz2
Adapt plugin sharing (#1553)
* Reuse old package config * Add plugin config shape * Add ButtonGroup to core components * List all sharing sites * Displaying buttons from config * First iteration of Dropdown component (need CSS) * Using Dropdown for sharing button * Create HotKeys component * Move Backdrop to its own file * Trying a cleaner API for Dropdown * Add README.md * livereload: Add missing gitbook-plugin dependency * sharing: Now use Immutable state * sharing: Adapt quickly to new Dropdown * sharing: Fix sharing from dropdown
Diffstat (limited to 'packages/gitbook-plugin-sharing/src/SITES.js')
-rw-r--r--packages/gitbook-plugin-sharing/src/SITES.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/packages/gitbook-plugin-sharing/src/SITES.js b/packages/gitbook-plugin-sharing/src/SITES.js
new file mode 100644
index 0000000..86eae74
--- /dev/null
+++ b/packages/gitbook-plugin-sharing/src/SITES.js
@@ -0,0 +1,72 @@
+// All the sharing platforms
+const SITES = {
+
+ // One sharing platform
+ 'facebook': {
+ // Displayed name
+ label: 'Facebook',
+
+ // Font-awesome icon id
+ icon: 'facebook',
+
+ /**
+ * Share a page on this platform
+ * @param {String} url The url to share
+ * @param {String} title The title of the url page
+ */
+ onShare(url, title) {
+ url = encodeURIComponent(url);
+ window.open(`http://www.facebook.com/sharer/sharer.php?s=100&p[url]=${url}`);
+ }
+ },
+
+ 'twitter': {
+ label: 'Twitter',
+ icon: 'twitter',
+ onShare(url, title) {
+ const status = encodeURIComponent(title + ' ' + url);
+ window.open(`http://twitter.com/home?status=${status}`);
+ }
+ },
+
+ 'google': {
+ label: 'Google+',
+ icon: 'google-plus',
+ onShare(url, title) {
+ url = encodeURIComponent(url);
+ window.open(`https://plus.google.com/share?url=${url}`);
+ }
+ },
+
+ 'weibo': {
+ label: 'Weibo',
+ icon: 'weibo',
+ onShare(url, title) {
+ url = encodeURIComponent(url);
+ title = encodeURIComponent(title);
+ window.open(`http://service.weibo.com/share/share.php?content=utf-8&url=${url}&title=${title}`);
+ }
+ },
+
+ 'instapaper': {
+ label: 'Instapaper',
+ icon: 'instapaper',
+ onShare(url, title) {
+ url = encodeURIComponent(url);
+ window.open(`http://www.instapaper.com/text?u=${url}`);
+ }
+ },
+
+ 'vk': {
+ label: 'VK',
+ icon: 'vk',
+ onShare(url, title) {
+ url = encodeURIComponent(url);
+ window.open(`http://vkontakte.ru/share.php?url=${url}`);
+ }
+ }
+};
+
+SITES.ALL = Object.keys(SITES);
+
+module.exports = SITES;