Creating a "Share on Mastodon" button is done relatively easily with pure JavaScript.

Here's some code. It's even commented:

<!-- 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 hashtags = "#256Kilobytes"; // Tagging users, such as offical accounts or the author of the post var author = "@256Kilobytes@linuxrocks.online"; // Create the Share URL // https://someinstance.tld/share?text=URL%20encoded%20text mastodon_url = instance + "share?text=" + encodeURIComponent(title + "



" + url + "



" + hashtags + " " + author); // Open a new window at the share location window.open(mastodon_url, '_blank'); } } </script>

Feel free to use and/or modify this code on your site, if that's something that you want to do. Or share this post on Mastodon with this button:

Share on Mastodon

Share This Post