gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) { var SITES = { 'github': { 'label': 'Github', 'icon': 'fa fa-github', 'onClick': function(e) { e.preventDefault(); var repo = $('meta[name="github-repo"]').attr('content'); if (typeof repo === 'undefined') throw("Github repo not defined"); window.open("https://github.com/"+repo); } }, 'facebook': { 'label': 'Facebook', 'icon': 'fa fa-facebook', 'onClick': function(e) { e.preventDefault(); window.open("http://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(location.href)); } }, 'twitter': { 'label': 'Twitter', 'icon': 'fa fa-twitter', 'onClick': function(e) { e.preventDefault(); window.open("http://twitter.com/intent/tweet?text="+encodeURIComponent(document.title)+"&url="+encodeURIComponent(location.href)+"&hashtags=rmarkdown,bookdown"); } }, 'linkedin': { 'label': 'LinkedIn', 'icon': 'fa fa-linkedin', 'onClick': function(e) { e.preventDefault(); window.open("https://www.linkedin.com/shareArticle?mini=true&url="+encodeURIComponent(location.href)+"&title="+encodeURIComponent(document.title)); } }, 'weibo': { 'label': 'Weibo', 'icon': 'fa fa-weibo', 'onClick': function(e) { e.preventDefault(); window.open("http://service.weibo.com/share/share.php?content=utf-8&url="+encodeURIComponent(location.href)+"&title="+encodeURIComponent(document.title)); } }, 'instapaper': { 'label': 'Instapaper', 'icon': 'fa fa-italic', 'onClick': function(e) { e.preventDefault(); window.open("http://www.instapaper.com/text?u="+encodeURIComponent(location.href)); } }, 'vk': { 'label': 'VK', 'icon': 'fa fa-vk', 'onClick': function(e) { e.preventDefault(); window.open("http://vkontakte.ru/share.php?url="+encodeURIComponent(location.href)); } }, 'whatsapp': { 'label': 'Whatsapp', 'icon': 'fa fa-whatsapp', 'onClick': function(e) { e.preventDefault(); var url = encodeURIComponent(location.href); window.open((isMobile() ? "whatsapp://send" : "https://web.whatsapp.com/send") + "?text=" + url); } }, }; function isMobile() { return !!navigator.maxTouchPoints; } gitbook.events.bind("start", function(e, config) { var opts = config.sharing; if (!opts) return; // Create dropdown menu var menu = _.chain(opts.all) .map(function(id) { var site = SITES[id]; if (!site) return; return { text: site.label, onClick: site.onClick }; }) .compact() .value(); // Create main button with dropdown if (menu.length > 0) { gitbook.toolbar.createButton({ icon: 'fa fa-share-alt', label: 'Share', position: 'right', dropdown: [menu] }); } // Direct actions to share _.each(SITES, function(site, sideId) { if (!opts[sideId]) return; gitbook.toolbar.createButton({ icon: site.icon, label: site.label, title: site.label, position: 'right', onClick: site.onClick }); }); }); });