117 lines
3.8 KiB
HTML
117 lines
3.8 KiB
HTML
|
{{ 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="Talk by Christine Dodrill" />
|
||
|
|
||
|
<!-- Description -->
|
||
|
<meta name="description" content="{{ .Title }} - Talk by Christine Dodrill" />
|
||
|
<meta name="author" content="Christine Dodrill">
|
||
|
|
||
|
<link rel="canonical" href="https://christine.website/{{ .Link }}">
|
||
|
|
||
|
<script type="application/ld+json">
|
||
|
{
|
||
|
"@context": "http://schema.org",
|
||
|
"@type": "Painting",
|
||
|
"headline": "{{ .Title }}",
|
||
|
"image": "https://christine.website{{ .Image }}",
|
||
|
"url": "https://christine.website/{{ .Link }}",
|
||
|
"datePublished": "{{ .Date }}",
|
||
|
"mainEntityOfPage": {
|
||
|
"@type": "",
|
||
|
"@id": "https://christine.website{{ .Image }}"
|
||
|
},
|
||
|
"creator": {
|
||
|
"@type": "Person",
|
||
|
"name": "Christine Dodrill"
|
||
|
},
|
||
|
"publisher": {
|
||
|
"@type": "Person",
|
||
|
"name": "Christine Dodrill"
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
{{ end }}
|
||
|
|
||
|
{{ define "content" }}
|
||
|
|
||
|
<h1>{{ .Title }}</h1>
|
||
|
|
||
|
{{ .BodyHTML }}
|
||
|
|
||
|
<center>
|
||
|
<img src="{{ .Image }}" />
|
||
|
</center>
|
||
|
|
||
|
<hr />
|
||
|
|
||
|
<!-- The button that should be clicked. -->
|
||
|
<button onclick="share_on_mastodon()">Share on Mastodon</button>
|
||
|
|
||
|
<p>This artwork was posted on {{ .Date }}.</p>
|
||
|
|
||
|
{{ if ne .Tags "" }}
|
||
|
<p>Tags:{{.Tags}}</p>
|
||
|
{{ end }}
|
||
|
|
||
|
<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 = "#art";
|
||
|
{{ if ne .Tags "" }}hashtags += " {{ .Tags }}";{{ end }}
|
||
|
|
||
|
// 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 }}
|