rip out go templates
This commit is contained in:
parent
0aad5be271
commit
4c848455b5
|
@ -1,91 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{{ template "title" . }}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="go-import" content="christine.website git https://github.com/Xe/site">
|
||||
<link rel="stylesheet" href="/css/hack.css" />
|
||||
<link rel="stylesheet" href="/css/gruvbox-dark.css" />
|
||||
<!-- <link rel="stylesheet" href="/css/snow.css" /> -->
|
||||
<link rel="manifest" href="/static/manifest.json" />
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://christine.website/blog.rss" />
|
||||
<link rel="alternate" type="application/atom+xml" href="https://christine.website/blog.atom" />
|
||||
<link rel="alternate" title="My Feed" type="application/json" href="https://christine.website/blog.json" />
|
||||
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="/static/favicon/apple-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="/static/favicon/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="/static/favicon/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="/static/favicon/apple-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="/static/favicon/apple-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="/static/favicon/apple-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="/static/favicon/apple-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="/static/favicon/apple-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/static/favicon/apple-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/static/favicon/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/static/favicon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="/static/favicon/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/static/favicon/favicon-16x16.png">
|
||||
<link rel="manifest" href="/static/favicon/manifest.json">
|
||||
<meta name="msapplication-TileColor" content="#ffffff">
|
||||
<meta name="msapplication-TileImage" content="/static/favicon/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<style>
|
||||
.main {
|
||||
padding: 20px 10px;
|
||||
}
|
||||
|
||||
.hack h1 {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
footer.footer {
|
||||
border-top: 1px solid #ccc;
|
||||
margin-top: 80px;
|
||||
margin-top: 5rem;
|
||||
padding: 48px 0;
|
||||
padding: 3rem 0;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
padding: 1em;
|
||||
}
|
||||
</style>
|
||||
{{ template "styles" . }}
|
||||
</head>
|
||||
<body class="snow hack gruvbox-dark">
|
||||
{{ template "scripts" . }}
|
||||
<div class="container">
|
||||
<header>
|
||||
<p><a href="/">Christine Dodrill</a> - <a href="/blog">Blog</a> - <a href="/contact">Contact</a> - <a href="/gallery">Gallery</a> - <a href="/resume">Resume</a> - <a href="/talks">Talks</a> - <a href="/signalboost">Signal Boost</a> - <a href="/feeds">Feeds</a> | <a target="_blank" rel="noopener noreferrer" href="https://graphviz.christine.website">GraphViz</a> - <a target="_blank" rel="noopener noreferrer" href="https://when-then-zen.christine.website/">When Then Zen</a></p>
|
||||
</header>
|
||||
|
||||
<div class="snowframe">
|
||||
{{ template "content" . }}
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<blockquote>Copyright 2020 Christine Dodrill. Any and all opinions listed here are my own and not representative of my employers; future, past and present.</blockquote>
|
||||
<br />
|
||||
{{/* <p>Like what you see? Donate on <a href="https://www.patreon.com/cadey">Patreon</a> like <a href="/patrons">these awesome people</a>!</p> */}}
|
||||
<p>Looking for someone for your team? Take a look <a href="/signalboost">here</a>.</p>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
if (navigator.serviceWorker.controller) {
|
||||
console.log("Active service worker found, no need to register");
|
||||
} else {
|
||||
navigator.serviceWorker.register("/sw.js").then(function(reg) {
|
||||
console.log("Service worker has been registered for scope:" + reg.scope);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/instantpage-3.0.0.js" defer type="module"> </script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
{{ define "scripts" }}{{ end }}
|
||||
{{ define "styles" }}{{ end }}
|
|
@ -1,92 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Blog - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Blogposts</h1>
|
||||
|
||||
<p>If you have a compatible reader, be sure to check out my <a href="/blog.rss">RSS Feed</a> for automatic updates. Also check out the <a href="/blog.json">JSONFeed</a>.</p>
|
||||
|
||||
<p>For a breakdown by post series, see <a href="/blog/series">here</a>.</p>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
{{ range . }}
|
||||
<li>{{ .DateString }} - <a href="{{ .Link }}">{{ .Title }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<br />
|
||||
|
||||
<h2>Other Blogs I Find Interesting</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://write.as/excerpts/">Excerpts</a></li>
|
||||
<li><a href="https://heartmender.writeas.com/">Heartmender</a></li>
|
||||
<li><a href="https://celestialboon.github.io/">CelestialBoon</a></li>
|
||||
<li><a href="https://slatestarcodex.com/">Star Slate Codex</a></li>
|
||||
<li><a href="https://shamanic.vision/">Shamanic Vision</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Selected Commentary on These Blogposts</h2>
|
||||
|
||||
<h3><a href="/blog/experimental-rilkef-2018-11-30">I Put Words on this Webpage so You Have to Listen to Me Now</a></h3>
|
||||
|
||||
<p>
|
||||
<blockquote>
|
||||
Top tier satire. Won't be read by anyone who should read it, and will be ignored/laughed at by anyone who does/already agrees. <br />
|
||||
|
||||
Literally preaching to the literal choir.
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
Hired.
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
It’s things like this that make me realize just how bizarre this profession really is.
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
Meanwhile, in two weeks the entire Haskell ecosystem will adapt.
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
dont read any of the other posts if u dont want to melt ur brain backwards
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
but yeah needless to say you've basically written the generic form of basically every time I'm subconsciously annoyed by a software dev social pattern
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
Well executed. The only thing this is missing is a truncated y-axis on the graph.
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
Why would you do that? Just use jRilkef and call $.flopnax() and it'll automatically flopnax your ropjar. (Marked +240345 by flopnax overflow)
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
The comments I am reading in response to the words on the website miss the point completely. It is clear from the words on the web page on the link that the point is different than what people here are saying it is. Did you even read those words on the internet web page, accessed from the link, downloaded and subsequently rendered by your browser of choice?
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<h3><a href="https://christine.website/blog/templeos-2-god-the-rng-2019-05-30">TempleOS: 2 - <code>god</code>, the Random Number Generator</a> </h3>
|
||||
|
||||
<p>
|
||||
<blockquote>
|
||||
Thank you very much for this series.
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
I think Terry was more right than most of us would dare to admit. Playing with the thought of setting up a fund to build a statue in his honor!!
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
I ran the voice of god generator and the first thing it did was call me gay.
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
{{ end }}
|
|
@ -1,115 +0,0 @@
|
|||
{{ 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>
|
||||
|
||||
<p>This article was posted on {{ .Date }}. Facts and circumstances may have changed since publication. Please <a href="/contact">contact me</a> before jumping to conclusions if something seems wrong or unclear.</p>
|
||||
|
||||
{{ if ne .Series "" }}
|
||||
<p>Series: <a href="/blog/series/{{ .Series }}">{{ .Series }}</a></p>
|
||||
{{ end }}
|
||||
|
||||
{{ 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 = "#blogpost";
|
||||
|
||||
{{ if ne .SeriesTag "" }}hashtags += " #{{ .SeriesTag }}";{{ end }}
|
||||
{{ 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 }}
|
|
@ -1,36 +0,0 @@
|
|||
{{ define "title" }}<title>Contact - Christine Dodrill</title>{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Contact Information</h1>
|
||||
<div class="grid">
|
||||
<div class="cell -6of12">
|
||||
<h3>Email</h3>
|
||||
<p>me@christine.website</p>
|
||||
|
||||
<p>My GPG fingerprint is <code>799F 9134 8118 1111</code>. If you get an email that appears to be from me and the signature does not match that fingerprint, it is not from me. You may download a copy of my public key <a href="/static/gpg.pub">here</a>.</p>
|
||||
|
||||
<h3>Social Media</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/Xe">Github</a></li>
|
||||
<li><a href="https://twitter.com/theprincessxena">Twitter</a></li>
|
||||
<li><a href="https://keybase.io/xena">Keybase</a></li>
|
||||
<li><a href="https://www.coinbase.com/christinedodrill">Coinbase</a></li>
|
||||
<li><a href="https://ko-fi.com/A265JE0">Ko-fi</a></li>
|
||||
<li><a href="https://www.patreon.com/cadey">Patreon</a></li>
|
||||
<li><a href="https://www.facebook.com/chrissycade1337">Facebook</a></li>
|
||||
<li><a href="https://mst3k.interlinked.me/@cadey">@cadey@mst3k.interlinked.me</a></li>
|
||||
<li>Fortnite: Within Reason</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="cell -6of12">
|
||||
<h3>Other Information</h3>
|
||||
<p>I have a <a href="https://www.patreon.com/cadey">Patreon</a> if you want to send donations, otherwise my <a href="https://ko-fi.com/A265JE0">Ko-Fi</a> works too.</p>
|
||||
|
||||
<h4>Telegram</h4>
|
||||
<p><a href="https://t.me/miamorecadenza">@miamorecadenza</a></p>
|
||||
|
||||
<h4>Discord</h4>
|
||||
<p><code>Cadey~#1337</code></p>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
|
@ -1,9 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Error - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<pre>
|
||||
{{ . }}
|
||||
</pre>
|
||||
{{ end }}
|
|
@ -1,14 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Feeds - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Feeds</h1>
|
||||
|
||||
<ul>
|
||||
<li>Blog: <a href="/blog.rss">RSS</a> - <a href="/blog.json">JSONFeed</a></li>
|
||||
<li>Twitter: <a href="https://rssbox.herokuapp.com/twitter/2573767249/theprincessxena">RSS</a></li>
|
||||
<li>Mastodon: <a href="https://mst3k.interlinked.me/users/cadey.rss">RSS</a></li>
|
||||
</ul>
|
||||
|
||||
{{ end }}
|
|
@ -1,26 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Gallery - Christine Dodrill</title>
|
||||
<meta name="furbooru-validation" value="FUR-LINKVALIDATION-CD28668CBF" />
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Gallery</h1>
|
||||
|
||||
<p>Here are links to all of the art I have done in the last few years.</p>
|
||||
|
||||
<p>If you have a compatible reader, be sure to check out my <a href="/blog.rss">RSS Feed</a> for automatic updates. Also check out the <a href="/blog.json">JSONFeed</a>.</p>
|
||||
|
||||
<p>
|
||||
<div class="grid">
|
||||
{{ range . }}
|
||||
<div class="card cell -4of12 blogpost-card">
|
||||
<header class="card-header">{{ .Title }}</header>
|
||||
<div class="card-content">
|
||||
<center><p>Posted on {{ .DateString }} <br><a href="{{ .Link }}"><img src="{{ .ThumbURL }}" /></a></p></center>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</p>
|
||||
|
||||
{{ end }}
|
|
@ -1,116 +0,0 @@
|
|||
{{ 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 }}
|
|
@ -1,88 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Christine Dodrill</title>
|
||||
<link rel="authorization_endpoint" href="https://idp.christine.website/auth">
|
||||
<link rel="canonical" href="https://christine.website/">
|
||||
<meta name="google-site-verification" content="rzs9eBEquMYr9Phrg0Xm0mIwFjDBcbdgJ3jF6Disy-k" />
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "Person",
|
||||
"name": "Christine Dodrill",
|
||||
"alternateName": "Cadey, Xe, Xena",
|
||||
"url": "https://christine.website",
|
||||
"image": "https://christine.website/static/img/avatar_large.png",
|
||||
"sameAs": [
|
||||
"https://github.com/Xe",
|
||||
"https://git.xeserv.us/xena",
|
||||
"https://twitter.com/theprincessxena",
|
||||
"https://mst3k.interlinked.me/@cadey",
|
||||
"https://www.linkedin.com/in/christine-dodrill-1827a010b/",
|
||||
"https://www.youtube.com/user/shadowh511"
|
||||
]
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@theprincessxena" />
|
||||
<meta name="twitter:title" content="Christine Dodrill" />
|
||||
<meta name="twitter:description" content="Full-stack Engineer" />
|
||||
|
||||
<!-- Facebook -->
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Christine Dodrill" />
|
||||
<meta property="og:site_name" content="Full-stack Engineer" />
|
||||
|
||||
<!-- Description -->
|
||||
<meta name="description" content="Full-stack Engineer" />
|
||||
<meta name="author" content="Christine Dodrill">
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<div class="grid">
|
||||
<div class="cell -3of12 content">
|
||||
<img src="/static/img/avatar.png" alt="My Avatar">
|
||||
<br />
|
||||
<a href="/contact" class="justify-content-center">Contact Me</a>
|
||||
</div>
|
||||
<div class="cell -9of12 content">
|
||||
<h1>Christine Dodrill</h1>
|
||||
<h4>Full-stack Engineer</h4>
|
||||
<h5>Skills</h5>
|
||||
<ul>
|
||||
<li>Go, Lua, Nim, Haskell, C, Rust and other languages</li>
|
||||
<li>Docker (deployment, development & more)</li>
|
||||
<li>Mashups of data</li>
|
||||
<li>Package maintainer for Adélie Linux</li>
|
||||
</ul>
|
||||
|
||||
<h5>Highlighted Projects</h5>
|
||||
<ul>
|
||||
<li><a href="https://github.com/PonyvilleFM/aura">Aura</a> - PonyvilleFM live DJ recording bot</li>
|
||||
<li><a href="https://github.com/Elemental-IRCd/elemental-ircd">Elemental-IRCd</a> - IRC Server Software</li>
|
||||
<li><a href="https://github.com/Xe/site">This website</a> - The backend and templates for this website</li>
|
||||
<li><a href="https://github.com/Xe/olin">Olin</a> - WebAssembly on the server</li>
|
||||
<li><a href="https://github.com/Xe/when-then-zen">when-then-zen</a> - Meditation instructions in Gherkin</li>
|
||||
<li><a href="https://github.com/Xe/creators-code">Creator's Code</a> - Minimal code of conduct for communities</li>
|
||||
<li><a href="https://github.com/Xe/printerfacts">printerfacts</a> - Informative facts about printers</li>
|
||||
<li><a href="https://github.com/Xe/x">x</a> - Experiments and toys</li>
|
||||
<li><a href="https://github.com/Xe/PonyAPI">PonyAPI</a> - My Little Pony: Friendship is Magic Episode information API</li>
|
||||
<li><a href="https://github.com/Xe/bsnk">bsnk</a> - Battlesnake bots</li>
|
||||
<li><a href="https://tulpa.dev/cadey/xeos">XeOS</a> - An experimental microkernel in Rust</li>
|
||||
<li><a href="https://h.christine.website">h</a> - A satirical programming language</li>
|
||||
<li><a href="https://github.com/Xe/gruvbox-css">gruvbox-css</a> - My minimal Gruvbox CSS theme</li>
|
||||
<li><a href="https://tulpa.dev/Xe/quickserv">quickserv</a> - A quick HTTP fileserver</li>
|
||||
</ul>
|
||||
|
||||
<h5>Quick Links</h5>
|
||||
<ul>
|
||||
<li><a href="https://github.com/Xe" rel="me">GitHub</a></li>
|
||||
<li><a href="https://twitter.com/theprincessxena" rel="me">Twitter</a></li>
|
||||
<li><a href="https://mst3k.interlinked.me/@cadey" rel="me">Mastodon</a></li>
|
||||
<li><a href="https://www.patreon.com/cadey" rel="me">Patreon</a></li>
|
||||
</ul>
|
||||
|
||||
<p>Looking for someone for your team? Check <a href="/signalboost">here</a>.
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
|
@ -1,20 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Patrons - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Patrons</h1>
|
||||
|
||||
<p>These awesome people donate to me on <a href="https://patreon.com/cadey">Patreon</a>. If you would like to show up in this list, please donate to me on Patreon. This is refreshed every time the site is deployed.</p>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
{{- range . }}
|
||||
<li>{{ . }}</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>Thank you so much! Your support helps make my projects possible.</p>
|
||||
|
||||
{{ end }}
|
|
@ -1,9 +0,0 @@
|
|||
{{ define "title" }}<title>Resume - Christine Dodrill</title>{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
{{ . }}
|
||||
|
||||
<hr />
|
||||
|
||||
<a href="/static/resume/resume.md">Plain-text version of this resume here</a>
|
||||
{{ end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Blog Series - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Series</h1>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
{{ range . }}
|
||||
<li><a href="/blog/series/{{ . }}">{{ . }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
{{ end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Blog {{.Name}} - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Series: {{ .Name }}</h1>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
{{ range .Posts }}
|
||||
<li>{{ .DateString }} - <a href="/{{ .Link }}">{{ .Title }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
{{ end }}
|
|
@ -1,30 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Signal Boosts - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Signal Boosts</h1>
|
||||
|
||||
<p>These awesome people are currently looking for a job. If you are looking for anyone with these skills, please feel free to reach out to them.</p>
|
||||
|
||||
<p>To add yourself to this list, fork <a href="https://github.com/Xe/site">this website's source code</a> and send a pull request with edits to <code>signalboost.dhall</code>.</p>
|
||||
|
||||
{{/* Remove this after COVID-19 is less of a thing */}}
|
||||
|
||||
<p>With COVID-19 raging across the world, these people are in need of a job now more than ever.</p>
|
||||
|
||||
{{/* end COVID-19 note */}}
|
||||
|
||||
<h2>People</h2>
|
||||
|
||||
<div class="grid signalboost">
|
||||
{{ range . }}
|
||||
<div class="cell -4of12 content">
|
||||
<big>{{ .Name }}</big>
|
||||
<p>{{ range .Tags }}{{ . }} {{ end }}</p>
|
||||
<a href="{{ .GitLink }}">GitHub</a> - <a href="{{ .Twitter }}">Twitter</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ end }}
|
|
@ -1,20 +0,0 @@
|
|||
{{ define "title" }}
|
||||
<title>Talks - Christine Dodrill</title>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<h1>Talks</h1>
|
||||
|
||||
<p>Here is a link to all of the talks I have done at conferences. Each of these will have links to the slides (PDF) as well as some brief information about them.</p>
|
||||
|
||||
<p>If you have a compatible reader, be sure to check out my <a href="/blog.rss">RSS Feed</a> for automatic updates. Also check out the <a href="/blog.json">JSONFeed</a>.</p>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
{{ range . }}
|
||||
<li>{{ .DateString }} - <a href="{{ .Link }}">{{ .Title }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
{{ end }}
|
|
@ -1,106 +0,0 @@
|
|||
{{ 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": "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 }}
|
||||
|
||||
<a href="{{ .SlidesLink }}">Link to the slides</a>
|
||||
|
||||
<hr />
|
||||
|
||||
<!-- The button that should be clicked. -->
|
||||
<button onclick="share_on_mastodon()">Share on Mastodon</button>
|
||||
|
||||
<p>This article was posted on {{ .Date }}. Facts and circumstances may have changed since publication. Please <a href="/contact">contact me</a> before jumping to conclusions if something seems wrong or unclear.</p>
|
||||
|
||||
<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 = "#talk";
|
||||
|
||||
// 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 }}
|
Loading…
Reference in New Issue