diff options
| author | Christine Dodrill <me@christine.website> | 2019-03-20 09:37:33 -0700 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2019-03-20 09:37:33 -0700 |
| commit | 733b0dc47f3dda1317d2b556bbef320064be1ef5 (patch) | |
| tree | 4fee57c242f25da2ebbc7c3b4c432d11449e5ae0 /templates | |
| parent | 68551814827d91e5ece378ee86f9116ce09ec105 (diff) | |
| download | xesite-733b0dc47f3dda1317d2b556bbef320064be1ef5.tar.xz xesite-733b0dc47f3dda1317d2b556bbef320064be1ef5.zip | |
templates/blogpost: share on mastodon button
Diffstat (limited to 'templates')
| -rw-r--r-- | templates/blogpost.html | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/templates/blogpost.html b/templates/blogpost.html index d79a536..a7bad20 100644 --- a/templates/blogpost.html +++ b/templates/blogpost.html @@ -47,4 +47,55 @@ <hr /> +<!-- The button that should be clicked. --> +<button onclick="share_on_mastodon()">Share on Mastodon</button> +<script> + +// The actual function. Set this as an onclick function for your "Share on Mastodon" button +function share_on_mastodon() { + // Prefill the form with the user's previously-specified Mastodon instance, if applicable + var default_url = localStorage['mastodon_instance']; + + // If there is no cached instance/domain, then insert a "https://" with no domain at the start of the prompt. + if (!default_url) + default_url = "https://"; + + var instance = prompt("Enter your instance's address: (ex: https://linuxrocks.online)", default_url); + if (instance) { + // Handle URL formats + if ( !instance.startsWith("https://") && !instance.startsWith("http://") ) + instance = "https://" + instance; + + // Get the current page's URL + var url = window.location.href; + + // Get the page title from the og:title meta tag, if it exists. + var title = document.querySelectorAll('meta[property="og:title"]')[0].getAttribute("content"); + + // Otherwise, use the <title> tag as the title + if (!title) var title = document.getElementsByTagName("title")[0].innerHTML; + + // Handle slash + if ( !instance.endsWith("/") ) + instance = instance + "/"; + + // Cache the instance/domain for future requests + localStorage['mastodon_instance'] = instance; + + // Hashtags + var hashtags = "#blogpost"; + + // Tagging users, such as offical accounts or the author of the post + var author = "@cadey@mst3k.interlinked.me"; + + // Create the Share URL + // https://someinstance.tld/share?text=URL%20encoded%20text + mastodon_url = instance + "share?text=" + encodeURIComponent(title + "\n\n" + url + "\n\n" + hashtags + " " + author); + + // Open a new window at the share location + window.open(mastodon_url, '_blank'); + } +} +</script> + {{ end }} |
