{{ define "title" }}
<title>{{ .Title }} - Christine Dodrill</title>

<!-- Twitter -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@theprincessxena" />
<meta name="twitter:title" content="{{ .Title }}" />
<meta name="twitter:description" content="Posted on {{ .Date }}" />

<!-- Facebook -->
<meta property="og:type" content="website" />
<meta property="og:title" content="{{ .Title }}" />
<meta property="og:site_name" content="Christine Dodrill's Blog" />

<!-- Description -->
<meta name="description" content="{{ .Title }} - Christine Dodrill's Blog" />
<meta name="author" content="Christine Dodrill">

<link rel="canonical" href="https://christine.website/{{ .Link }}">

<script type="application/ld+json">
 {
   "@context": "http://schema.org",
   "@type": "Article",
   "headline": "{{ .Title }}",
   "image": "https://christine.website/static/img/avatar.png",
   "url": "https://christine.website/{{ .Link }}",
   "datePublished": "{{ .Date }}",
   "mainEntityOfPage": {
       "@type": "WebPage",
       "@id": "https://christine.website/{{ .Link }}"
   },
   "author": {
       "@type": "Person",
       "name": "Christine Dodrill"
   },
   "publisher": {
       "@type": "Person",
       "name": "Christine Dodrill"
   }
 }
</script>
{{ end }}

{{ define "content" }}
{{ .BodyHTML }}

<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 }}
