1
0
mirror of https://gitlab.com/Anson-Projects/projects.git synced 2025-06-16 15:06:53 +00:00
Projects/docs/index.html
2021-04-01 23:25:04 -07:00

2303 lines
56 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
<meta name="generator" content="distill" />
<style type="text/css">
/* Hide doc at startup (prevent jankiness while JS renders/transforms) */
body {
visibility: hidden;
}
</style>
<!--radix_placeholder_import_source-->
<!--/radix_placeholder_import_source-->
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css" data-origin="pandoc">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ad0000; } /* Alert */
code span.an { color: #5e5e5e; } /* Annotation */
code span.at { color: #20794d; } /* Attribute */
code span.bn { color: #ad0000; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007ba5; } /* ControlFlow */
code span.ch { color: #20794d; } /* Char */
code span.cn { color: #8f5902; } /* Constant */
code span.co { color: #5e5e5e; } /* Comment */
code span.cv { color: #5e5e5e; font-style: italic; } /* CommentVar */
code span.do { color: #5e5e5e; font-style: italic; } /* Documentation */
code span.dt { color: #ad0000; } /* DataType */
code span.dv { color: #ad0000; } /* DecVal */
code span.er { color: #ad0000; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #ad0000; } /* Float */
code span.fu { color: #4758ab; } /* Function */
code span.im { } /* Import */
code span.in { color: #5e5e5e; } /* Information */
code span.kw { color: #007ba5; } /* Keyword */
code span.op { color: #5e5e5e; } /* Operator */
code span.ot { color: #007ba5; } /* Other */
code span.pp { color: #ad0000; } /* Preprocessor */
code span.sc { color: #20794d; } /* SpecialChar */
code span.ss { color: #20794d; } /* SpecialString */
code span.st { color: #20794d; } /* String */
code span.va { color: #111111; } /* Variable */
code span.vs { color: #20794d; } /* VerbatimString */
code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
</style>
<!--radix_placeholder_meta_tags-->
<title>Anson's Projects</title>
<!-- https://developers.facebook.com/docs/sharing/webmasters#markup -->
<meta property="og:title" content="Anson&#39;s Projects"/>
<meta property="og:type" content="article"/>
<meta property="og:locale" content="en_US"/>
<meta property="og:site_name" content="Anson&#39;s Projects"/>
<!-- https://dev.twitter.com/cards/types/summary -->
<meta property="twitter:card" content="summary"/>
<meta property="twitter:title" content="Anson&#39;s Projects"/>
<!--/radix_placeholder_meta_tags-->
<!--radix_placeholder_rmarkdown_metadata-->
<script type="text/json" id="radix-rmarkdown-metadata">
{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","site","listing"]}},"value":[{"type":"character","attributes":{},"value":["Anson's Projects"]},{"type":"character","attributes":{},"value":["distill::distill_website"]},{"type":"character","attributes":{},"value":["posts"]}]}
</script>
<!--/radix_placeholder_rmarkdown_metadata-->
<!--radix_placeholder_navigation_in_header-->
<meta name="distill:offset" content=""/>
<script type="application/javascript">
window.headroom_prevent_pin = false;
window.document.addEventListener("DOMContentLoaded", function (event) {
// initialize headroom for banner
var header = $('header').get(0);
var headerHeight = header.offsetHeight;
var headroom = new Headroom(header, {
tolerance: 5,
onPin : function() {
if (window.headroom_prevent_pin) {
window.headroom_prevent_pin = false;
headroom.unpin();
}
}
});
headroom.init();
if(window.location.hash)
headroom.unpin();
$(header).addClass('headroom--transition');
// offset scroll location for banner on hash change
// (see: https://github.com/WickyNilliams/headroom.js/issues/38)
window.addEventListener("hashchange", function(event) {
window.scrollTo(0, window.pageYOffset - (headerHeight + 25));
});
// responsive menu
$('.distill-site-header').each(function(i, val) {
var topnav = $(this);
var toggle = topnav.find('.nav-toggle');
toggle.on('click', function() {
topnav.toggleClass('responsive');
});
});
// nav dropdowns
$('.nav-dropbtn').click(function(e) {
$(this).next('.nav-dropdown-content').toggleClass('nav-dropdown-active');
$(this).parent().siblings('.nav-dropdown')
.children('.nav-dropdown-content').removeClass('nav-dropdown-active');
});
$("body").click(function(e){
$('.nav-dropdown-content').removeClass('nav-dropdown-active');
});
$(".nav-dropdown").click(function(e){
e.stopPropagation();
});
});
</script>
<style type="text/css">
/* Theme (user-documented overrideables for nav appearance) */
.distill-site-nav {
color: rgba(255, 255, 255, 0.8);
background-color: #0F2E3D;
font-size: 15px;
font-weight: 300;
}
.distill-site-nav a {
color: inherit;
text-decoration: none;
}
.distill-site-nav a:hover {
color: white;
}
@media print {
.distill-site-nav {
display: none;
}
}
.distill-site-header {
}
.distill-site-footer {
}
/* Site Header */
.distill-site-header {
width: 100%;
box-sizing: border-box;
z-index: 3;
}
.distill-site-header .nav-left {
display: inline-block;
margin-left: 8px;
}
@media screen and (max-width: 768px) {
.distill-site-header .nav-left {
margin-left: 0;
}
}
.distill-site-header .nav-right {
float: right;
margin-right: 8px;
}
.distill-site-header a,
.distill-site-header .title {
display: inline-block;
text-align: center;
padding: 14px 10px 14px 10px;
}
.distill-site-header .title {
font-size: 18px;
min-width: 150px;
}
.distill-site-header .logo {
padding: 0;
}
.distill-site-header .logo img {
display: none;
max-height: 20px;
width: auto;
margin-bottom: -4px;
}
.distill-site-header .nav-image img {
max-height: 18px;
width: auto;
display: inline-block;
margin-bottom: -3px;
}
@media screen and (min-width: 1000px) {
.distill-site-header .logo img {
display: inline-block;
}
.distill-site-header .nav-left {
margin-left: 20px;
}
.distill-site-header .nav-right {
margin-right: 20px;
}
.distill-site-header .title {
padding-left: 12px;
}
}
.distill-site-header .nav-toggle {
display: none;
}
.nav-dropdown {
display: inline-block;
position: relative;
}
.nav-dropdown .nav-dropbtn {
border: none;
outline: none;
color: rgba(255, 255, 255, 0.8);
padding: 16px 10px;
background-color: transparent;
font-family: inherit;
font-size: inherit;
font-weight: inherit;
margin: 0;
margin-top: 1px;
z-index: 2;
}
.nav-dropdown-content {
display: none;
position: absolute;
background-color: white;
min-width: 200px;
border: 1px solid rgba(0,0,0,0.15);
border-radius: 4px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1);
z-index: 1;
margin-top: 2px;
white-space: nowrap;
padding-top: 4px;
padding-bottom: 4px;
}
.nav-dropdown-content hr {
margin-top: 4px;
margin-bottom: 4px;
border: none;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.nav-dropdown-active {
display: block;
}
.nav-dropdown-content a, .nav-dropdown-content .nav-dropdown-header {
color: black;
padding: 6px 24px;
text-decoration: none;
display: block;
text-align: left;
}
.nav-dropdown-content .nav-dropdown-header {
display: block;
padding: 5px 24px;
padding-bottom: 0;
text-transform: uppercase;
font-size: 14px;
color: #999999;
white-space: nowrap;
}
.nav-dropdown:hover .nav-dropbtn {
color: white;
}
.nav-dropdown-content a:hover {
background-color: #ddd;
color: black;
}
.nav-right .nav-dropdown-content {
margin-left: -45%;
right: 0;
}
@media screen and (max-width: 768px) {
.distill-site-header a, .distill-site-header .nav-dropdown {display: none;}
.distill-site-header a.nav-toggle {
float: right;
display: block;
}
.distill-site-header .title {
margin-left: 0;
}
.distill-site-header .nav-right {
margin-right: 0;
}
.distill-site-header {
overflow: hidden;
}
.nav-right .nav-dropdown-content {
margin-left: 0;
}
}
@media screen and (max-width: 768px) {
.distill-site-header.responsive {position: relative; min-height: 500px; }
.distill-site-header.responsive a.nav-toggle {
position: absolute;
right: 0;
top: 0;
}
.distill-site-header.responsive a,
.distill-site-header.responsive .nav-dropdown {
display: block;
text-align: left;
}
.distill-site-header.responsive .nav-left,
.distill-site-header.responsive .nav-right {
width: 100%;
}
.distill-site-header.responsive .nav-dropdown {float: none;}
.distill-site-header.responsive .nav-dropdown-content {position: relative;}
.distill-site-header.responsive .nav-dropdown .nav-dropbtn {
display: block;
width: 100%;
text-align: left;
}
}
/* Site Footer */
.distill-site-footer {
width: 100%;
overflow: hidden;
box-sizing: border-box;
z-index: 3;
margin-top: 30px;
padding-top: 30px;
padding-bottom: 30px;
text-align: center;
}
/* Headroom */
d-title {
padding-top: 6rem;
}
@media print {
d-title {
padding-top: 4rem;
}
}
.headroom {
z-index: 1000;
position: fixed;
top: 0;
left: 0;
right: 0;
}
.headroom--transition {
transition: all .4s ease-in-out;
}
.headroom--unpinned {
top: -100px;
}
.headroom--pinned {
top: 0;
}
/* adjust viewport for navbar height */
/* helps vertically center bootstrap (non-distill) content */
.min-vh-100 {
min-height: calc(100vh - 100px) !important;
}
</style>
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
<link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet"/>
<link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet"/>
<script src="site_libs/headroom-0.9.4/headroom.min.js"></script>
<script src="site_libs/autocomplete-0.37.1/autocomplete.min.js"></script>
<script src="site_libs/fuse-6.4.1/fuse.min.js"></script>
<script type="application/javascript">
function getMeta(metaName) {
var metas = document.getElementsByTagName('meta');
for (let i = 0; i < metas.length; i++) {
if (metas[i].getAttribute('name') === metaName) {
return metas[i].getAttribute('content');
}
}
return '';
}
function offsetURL(url) {
var offset = getMeta('distill:offset');
return offset ? offset + '/' + url : url;
}
function createFuseIndex() {
// create fuse index
var options = {
keys: [
{ name: 'title', weight: 20 },
{ name: 'categories', weight: 15 },
{ name: 'description', weight: 10 },
{ name: 'contents', weight: 5 },
],
ignoreLocation: true,
threshold: 0
};
var fuse = new window.Fuse([], options);
// fetch the main search.json
return fetch(offsetURL('search.json'))
.then(function(response) {
if (response.status == 200) {
return response.json().then(function(json) {
// index main articles
json.articles.forEach(function(article) {
fuse.add(article);
});
// download collections and index their articles
return Promise.all(json.collections.map(function(collection) {
return fetch(offsetURL(collection)).then(function(response) {
if (response.status === 200) {
return response.json().then(function(articles) {
articles.forEach(function(article) {
fuse.add(article);
});
})
} else {
return Promise.reject(
new Error('Unexpected status from search index request: ' +
response.status)
);
}
});
})).then(function() {
return fuse;
});
});
} else {
return Promise.reject(
new Error('Unexpected status from search index request: ' +
response.status)
);
}
});
}
window.document.addEventListener("DOMContentLoaded", function (event) {
// get search element (bail if we don't have one)
var searchEl = window.document.getElementById('distill-search');
if (!searchEl)
return;
createFuseIndex()
.then(function(fuse) {
// make search box visible
searchEl.classList.remove('hidden');
// initialize autocomplete
var options = {
autoselect: true,
hint: false,
minLength: 2,
};
window.autocomplete(searchEl, options, [{
source: function(query, callback) {
const searchOptions = {
isCaseSensitive: false,
shouldSort: true,
minMatchCharLength: 2,
limit: 10,
};
var results = fuse.search(query, searchOptions);
callback(results
.map(function(result) { return result.item; })
);
},
templates: {
suggestion: function(suggestion) {
var img = suggestion.preview && Object.keys(suggestion.preview).length > 0
? `<img src="${offsetURL(suggestion.preview)}"</img>`
: '';
var html = `
<div class="search-item">
<h3>${suggestion.title}</h3>
<div class="search-item-description">
${suggestion.description || ''}
</div>
<div class="search-item-preview">
${img}
</div>
</div>
`;
return html;
}
}
}]).on('autocomplete:selected', function(event, suggestion) {
window.location.href = offsetURL(suggestion.path);
});
// remove inline display style on autocompleter (we want to
// manage responsive display via css)
$('.algolia-autocomplete').css("display", "");
})
.catch(function(error) {
console.log(error);
});
});
</script>
<style type="text/css">
.nav-search {
font-size: x-small;
}
/* Algolioa Autocomplete */
.algolia-autocomplete {
display: inline-block;
margin-left: 10px;
vertical-align: sub;
background-color: white;
color: black;
padding: 6px;
padding-top: 8px;
padding-bottom: 0;
border-radius: 6px;
border: 1px #0F2E3D solid;
width: 180px;
}
@media screen and (max-width: 768px) {
.distill-site-nav .algolia-autocomplete {
display: none;
visibility: hidden;
}
.distill-site-nav.responsive .algolia-autocomplete {
display: inline-block;
visibility: visible;
}
.distill-site-nav.responsive .algolia-autocomplete .aa-dropdown-menu {
margin-left: 0;
width: 400px;
max-height: 400px;
}
}
.algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint {
width: 90%;
outline: none;
border: none;
}
.algolia-autocomplete .aa-hint {
color: #999;
}
.algolia-autocomplete .aa-dropdown-menu {
width: 550px;
max-height: 70vh;
overflow-x: visible;
overflow-y: scroll;
padding: 5px;
margin-top: 3px;
margin-left: -150px;
background-color: #fff;
border-radius: 5px;
border: 1px solid #999;
border-top: none;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion {
cursor: pointer;
padding: 5px 4px;
border-bottom: 1px solid #eee;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion:last-of-type {
border-bottom: none;
margin-bottom: 2px;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item {
overflow: hidden;
font-size: 0.8em;
line-height: 1.4em;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item h3 {
font-size: 1rem;
margin-block-start: 0;
margin-block-end: 5px;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-description {
display: inline-block;
overflow: hidden;
height: 2.8em;
width: 80%;
margin-right: 4%;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview {
display: inline-block;
width: 15%;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img {
height: 3em;
width: auto;
display: none;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img[src] {
display: initial;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor {
background-color: #eee;
}
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion em {
font-weight: bold;
font-style: normal;
}
</style>
<!--/radix_placeholder_navigation_in_header-->
<!--radix_placeholder_distill-->
<style type="text/css">
body {
background-color: white;
}
.pandoc-table {
width: 100%;
}
.pandoc-table>caption {
margin-bottom: 10px;
}
.pandoc-table th:not([align]) {
text-align: left;
}
.pagedtable-footer {
font-size: 15px;
}
d-byline .byline {
grid-template-columns: 2fr 2fr;
}
d-byline .byline h3 {
margin-block-start: 1.5em;
}
d-byline .byline .authors-affiliations h3 {
margin-block-start: 0.5em;
}
.authors-affiliations .orcid-id {
width: 16px;
height:16px;
margin-left: 4px;
margin-right: 4px;
vertical-align: middle;
padding-bottom: 2px;
}
d-title .dt-tags {
margin-top: 1em;
grid-column: text;
}
.dt-tags .dt-tag {
text-decoration: none;
display: inline-block;
color: rgba(0,0,0,0.6);
padding: 0em 0.4em;
margin-right: 0.5em;
margin-bottom: 0.4em;
font-size: 70%;
border: 1px solid rgba(0,0,0,0.2);
border-radius: 3px;
text-transform: uppercase;
font-weight: 500;
}
d-article table.gt_table td,
d-article table.gt_table th {
border-bottom: none;
}
.html-widget {
margin-bottom: 2.0em;
}
.l-screen-inset {
padding-right: 16px;
}
.l-screen .caption {
margin-left: 10px;
}
.shaded {
background: rgb(247, 247, 247);
padding-top: 20px;
padding-bottom: 20px;
border-top: 1px solid rgba(0, 0, 0, 0.1);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.shaded .html-widget {
margin-bottom: 0;
border: 1px solid rgba(0, 0, 0, 0.1);
}
.shaded .shaded-content {
background: white;
}
.text-output {
margin-top: 0;
line-height: 1.5em;
}
.hidden {
display: none !important;
}
d-article {
padding-top: 2.5rem;
padding-bottom: 30px;
}
d-appendix {
padding-top: 30px;
}
d-article>p>img {
width: 100%;
}
d-article h2 {
margin: 1rem 0 1.5rem 0;
}
d-article h3 {
margin-top: 1.5rem;
}
d-article iframe {
border: 1px solid rgba(0, 0, 0, 0.1);
margin-bottom: 2.0em;
width: 100%;
}
/* Tweak code blocks */
d-article div.sourceCode code,
d-article pre code {
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
}
d-article pre,
d-article div.sourceCode,
d-article div.sourceCode pre {
overflow: auto;
}
d-article div.sourceCode {
background-color: white;
}
d-article div.sourceCode pre {
padding-left: 10px;
font-size: 12px;
border-left: 2px solid rgba(0,0,0,0.1);
}
d-article pre {
font-size: 12px;
color: black;
background: none;
margin-top: 0;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
d-article pre a {
border-bottom: none;
}
d-article pre a:hover {
border-bottom: none;
text-decoration: underline;
}
d-article details {
grid-column: text;
margin-bottom: 0.8em;
}
@media(min-width: 768px) {
d-article pre,
d-article div.sourceCode,
d-article div.sourceCode pre {
overflow: visible !important;
}
d-article div.sourceCode pre {
padding-left: 18px;
font-size: 14px;
}
d-article pre {
font-size: 14px;
}
}
figure img.external {
background: white;
border: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
padding: 18px;
box-sizing: border-box;
}
/* CSS for d-contents */
.d-contents {
grid-column: text;
color: rgba(0,0,0,0.8);
font-size: 0.9em;
padding-bottom: 1em;
margin-bottom: 1em;
padding-bottom: 0.5em;
margin-bottom: 1em;
padding-left: 0.25em;
justify-self: start;
}
@media(min-width: 1000px) {
.d-contents.d-contents-float {
height: 0;
grid-column-start: 1;
grid-column-end: 4;
justify-self: center;
padding-right: 3em;
padding-left: 2em;
}
}
.d-contents nav h3 {
font-size: 18px;
margin-top: 0;
margin-bottom: 1em;
}
.d-contents li {
list-style-type: none
}
.d-contents nav > ul {
padding-left: 0;
}
.d-contents ul {
padding-left: 1em
}
.d-contents nav ul li {
margin-top: 0.6em;
margin-bottom: 0.2em;
}
.d-contents nav a {
font-size: 13px;
border-bottom: none;
text-decoration: none
color: rgba(0, 0, 0, 0.8);
}
.d-contents nav a:hover {
text-decoration: underline solid rgba(0, 0, 0, 0.6)
}
.d-contents nav > ul > li > a {
font-weight: 600;
}
.d-contents nav > ul > li > ul {
font-weight: inherit;
}
.d-contents nav > ul > li > ul > li {
margin-top: 0.2em;
}
.d-contents nav ul {
margin-top: 0;
margin-bottom: 0.25em;
}
.d-article-with-toc h2:nth-child(2) {
margin-top: 0;
}
/* Figure */
.figure {
position: relative;
margin-bottom: 2.5em;
margin-top: 1.5em;
}
.figure img {
width: 100%;
}
.figure .caption {
color: rgba(0, 0, 0, 0.6);
font-size: 12px;
line-height: 1.5em;
}
.figure img.external {
background: white;
border: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
padding: 18px;
box-sizing: border-box;
}
.figure .caption a {
color: rgba(0, 0, 0, 0.6);
}
.figure .caption b,
.figure .caption strong, {
font-weight: 600;
color: rgba(0, 0, 0, 1.0);
}
/* Citations */
d-article .citation {
color: inherit;
cursor: inherit;
}
div.hanging-indent{
margin-left: 1em; text-indent: -1em;
}
/* Citation hover box */
.tippy-box[data-theme~=light-border] {
background-color: rgba(250, 250, 250, 0.95);
}
.tippy-content > p {
margin-bottom: 0;
padding: 2px;
}
/* Tweak 1000px media break to show more text */
@media(min-width: 1000px) {
.base-grid,
distill-header,
d-title,
d-abstract,
d-article,
d-appendix,
distill-appendix,
d-byline,
d-footnote-list,
d-citation-list,
distill-footer {
grid-template-columns: [screen-start] 1fr [page-start kicker-start] 80px [middle-start] 50px [text-start kicker-end] 65px 65px 65px 65px 65px 65px 65px 65px [text-end gutter-start] 65px [middle-end] 65px [page-end gutter-end] 1fr [screen-end];
grid-column-gap: 16px;
}
.grid {
grid-column-gap: 16px;
}
d-article {
font-size: 1.06rem;
line-height: 1.7em;
}
figure .caption, .figure .caption, figure figcaption {
font-size: 13px;
}
}
@media(min-width: 1180px) {
.base-grid,
distill-header,
d-title,
d-abstract,
d-article,
d-appendix,
distill-appendix,
d-byline,
d-footnote-list,
d-citation-list,
distill-footer {
grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];
grid-column-gap: 32px;
}
.grid {
grid-column-gap: 32px;
}
}
/* Get the citation styles for the appendix (not auto-injected on render since
we do our own rendering of the citation appendix) */
d-appendix .citation-appendix,
.d-appendix .citation-appendix {
font-size: 11px;
line-height: 15px;
border-left: 1px solid rgba(0, 0, 0, 0.1);
padding-left: 18px;
border: 1px solid rgba(0,0,0,0.1);
background: rgba(0, 0, 0, 0.02);
padding: 10px 18px;
border-radius: 3px;
color: rgba(150, 150, 150, 1);
overflow: hidden;
margin-top: -12px;
white-space: pre-wrap;
word-wrap: break-word;
}
/* Include appendix styles here so they can be overridden */
d-appendix {
contain: layout style;
font-size: 0.8em;
line-height: 1.7em;
margin-top: 60px;
margin-bottom: 0;
border-top: 1px solid rgba(0, 0, 0, 0.1);
color: rgba(0,0,0,0.5);
padding-top: 60px;
padding-bottom: 48px;
}
d-appendix h3 {
grid-column: page-start / text-start;
font-size: 15px;
font-weight: 500;
margin-top: 1em;
margin-bottom: 0;
color: rgba(0,0,0,0.65);
}
d-appendix h3 + * {
margin-top: 1em;
}
d-appendix ol {
padding: 0 0 0 15px;
}
@media (min-width: 768px) {
d-appendix ol {
padding: 0 0 0 30px;
margin-left: -30px;
}
}
d-appendix li {
margin-bottom: 1em;
}
d-appendix a {
color: rgba(0, 0, 0, 0.6);
}
d-appendix > * {
grid-column: text;
}
d-appendix > d-footnote-list,
d-appendix > d-citation-list,
d-appendix > distill-appendix {
grid-column: screen;
}
/* Include footnote styles here so they can be overridden */
d-footnote-list {
contain: layout style;
}
d-footnote-list > * {
grid-column: text;
}
d-footnote-list a.footnote-backlink {
color: rgba(0,0,0,0.3);
padding-left: 0.5em;
}
/* Anchor.js */
.anchorjs-link {
/*transition: all .25s linear; */
text-decoration: none;
border-bottom: none;
}
*:hover > .anchorjs-link {
margin-left: -1.125em !important;
text-decoration: none;
border-bottom: none;
}
/* Social footer */
.social_footer {
margin-top: 30px;
margin-bottom: 0;
color: rgba(0,0,0,0.67);
}
.disqus-comments {
margin-right: 30px;
}
.disqus-comment-count {
border-bottom: 1px solid rgba(0, 0, 0, 0.4);
cursor: pointer;
}
#disqus_thread {
margin-top: 30px;
}
.article-sharing a {
border-bottom: none;
margin-right: 8px;
}
.article-sharing a:hover {
border-bottom: none;
}
.sidebar-section.subscribe {
font-size: 12px;
line-height: 1.6em;
}
.subscribe p {
margin-bottom: 0.5em;
}
.article-footer .subscribe {
font-size: 15px;
margin-top: 45px;
}
.sidebar-section.custom {
font-size: 12px;
line-height: 1.6em;
}
.custom p {
margin-bottom: 0.5em;
}
/* Styles for listing layout (hide title) */
.layout-listing d-title, .layout-listing .d-title {
display: none;
}
/* Styles for posts lists (not auto-injected) */
.posts-with-sidebar {
padding-left: 45px;
padding-right: 45px;
}
.posts-list .description h2,
.posts-list .description p {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
}
.posts-list .description h2 {
font-weight: 700;
border-bottom: none;
padding-bottom: 0;
}
.posts-list h2.post-tag {
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
padding-bottom: 12px;
}
.posts-list {
margin-top: 60px;
margin-bottom: 24px;
}
.posts-list .post-preview {
text-decoration: none;
overflow: hidden;
display: block;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
padding: 24px 0;
}
.post-preview-last {
border-bottom: none !important;
}
.posts-list .posts-list-caption {
grid-column: screen;
font-weight: 400;
}
.posts-list .post-preview h2 {
margin: 0 0 6px 0;
line-height: 1.2em;
font-style: normal;
font-size: 24px;
}
.posts-list .post-preview p {
margin: 0 0 12px 0;
line-height: 1.4em;
font-size: 16px;
}
.posts-list .post-preview .thumbnail {
box-sizing: border-box;
margin-bottom: 24px;
position: relative;
max-width: 500px;
}
.posts-list .post-preview img {
width: 100%;
display: block;
}
.posts-list .metadata {
font-size: 12px;
line-height: 1.4em;
margin-bottom: 18px;
}
.posts-list .metadata > * {
display: inline-block;
}
.posts-list .metadata .publishedDate {
margin-right: 2em;
}
.posts-list .metadata .dt-authors {
display: block;
margin-top: 0.3em;
margin-right: 2em;
}
.posts-list .dt-tags {
display: block;
line-height: 1em;
}
.posts-list .dt-tags .dt-tag {
display: inline-block;
color: rgba(0,0,0,0.6);
padding: 0.3em 0.4em;
margin-right: 0.2em;
margin-bottom: 0.4em;
font-size: 60%;
border: 1px solid rgba(0,0,0,0.2);
border-radius: 3px;
text-transform: uppercase;
font-weight: 500;
}
.posts-list img {
opacity: 1;
}
.posts-list img[data-src] {
opacity: 0;
}
.posts-more {
clear: both;
}
.posts-sidebar {
font-size: 16px;
}
.posts-sidebar h3 {
font-size: 16px;
margin-top: 0;
margin-bottom: 0.5em;
font-weight: 400;
text-transform: uppercase;
}
.sidebar-section {
margin-bottom: 30px;
}
.categories ul {
list-style-type: none;
margin: 0;
padding: 0;
}
.categories li {
color: rgba(0, 0, 0, 0.8);
margin-bottom: 0;
}
.categories li>a {
border-bottom: none;
}
.categories li>a:hover {
border-bottom: 1px solid rgba(0, 0, 0, 0.4);
}
.categories .active {
font-weight: 600;
}
.categories .category-count {
color: rgba(0, 0, 0, 0.4);
}
@media(min-width: 768px) {
.posts-list .post-preview h2 {
font-size: 26px;
}
.posts-list .post-preview .thumbnail {
float: right;
width: 30%;
margin-bottom: 0;
}
.posts-list .post-preview .description {
float: left;
width: 45%;
}
.posts-list .post-preview .metadata {
float: left;
width: 20%;
margin-top: 8px;
}
.posts-list .post-preview p {
margin: 0 0 12px 0;
line-height: 1.5em;
font-size: 16px;
}
.posts-with-sidebar .posts-list {
float: left;
width: 75%;
}
.posts-with-sidebar .posts-sidebar {
float: right;
width: 20%;
margin-top: 60px;
padding-top: 24px;
padding-bottom: 24px;
}
}
/* Improve display for browsers without grid (IE/Edge <= 15) */
.downlevel {
line-height: 1.6em;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
margin: 0;
}
.downlevel .d-title {
padding-top: 6rem;
padding-bottom: 1.5rem;
}
.downlevel .d-title h1 {
font-size: 50px;
font-weight: 700;
line-height: 1.1em;
margin: 0 0 0.5rem;
}
.downlevel .d-title p {
font-weight: 300;
font-size: 1.2rem;
line-height: 1.55em;
margin-top: 0;
}
.downlevel .d-byline {
padding-top: 0.8em;
padding-bottom: 0.8em;
font-size: 0.8rem;
line-height: 1.8em;
}
.downlevel .section-separator {
border: none;
border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.downlevel .d-article {
font-size: 1.06rem;
line-height: 1.7em;
padding-top: 1rem;
padding-bottom: 2rem;
}
.downlevel .d-appendix {
padding-left: 0;
padding-right: 0;
max-width: none;
font-size: 0.8em;
line-height: 1.7em;
margin-bottom: 0;
color: rgba(0,0,0,0.5);
padding-top: 40px;
padding-bottom: 48px;
}
.downlevel .footnotes ol {
padding-left: 13px;
}
.downlevel .base-grid,
.downlevel .distill-header,
.downlevel .d-title,
.downlevel .d-abstract,
.downlevel .d-article,
.downlevel .d-appendix,
.downlevel .distill-appendix,
.downlevel .d-byline,
.downlevel .d-footnote-list,
.downlevel .d-citation-list,
.downlevel .distill-footer,
.downlevel .appendix-bottom,
.downlevel .posts-container {
padding-left: 40px;
padding-right: 40px;
}
@media(min-width: 768px) {
.downlevel .base-grid,
.downlevel .distill-header,
.downlevel .d-title,
.downlevel .d-abstract,
.downlevel .d-article,
.downlevel .d-appendix,
.downlevel .distill-appendix,
.downlevel .d-byline,
.downlevel .d-footnote-list,
.downlevel .d-citation-list,
.downlevel .distill-footer,
.downlevel .appendix-bottom,
.downlevel .posts-container {
padding-left: 150px;
padding-right: 150px;
max-width: 900px;
}
}
.downlevel pre code {
display: block;
border-left: 2px solid rgba(0, 0, 0, .1);
padding: 0 0 0 20px;
font-size: 14px;
}
.downlevel code, .downlevel pre {
color: black;
background: none;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
.downlevel .posts-list .post-preview {
color: inherit;
}
</style>
<script type="application/javascript">
function is_downlevel_browser() {
if (bowser.isUnsupportedBrowser({ msie: "12", msedge: "16"},
window.navigator.userAgent)) {
return true;
} else {
return window.load_distill_framework === undefined;
}
}
// show body when load is complete
function on_load_complete() {
// add anchors
if (window.anchors) {
window.anchors.options.placement = 'left';
window.anchors.add('d-article > h2, d-article > h3, d-article > h4, d-article > h5');
}
// set body to visible
document.body.style.visibility = 'visible';
// force redraw for leaflet widgets
if (window.HTMLWidgets) {
var maps = window.HTMLWidgets.findAll(".leaflet");
$.each(maps, function(i, el) {
var map = this.getMap();
map.invalidateSize();
map.eachLayer(function(layer) {
if (layer instanceof L.TileLayer)
layer.redraw();
});
});
}
// trigger 'shown' so htmlwidgets resize
$('d-article').trigger('shown');
}
function init_distill() {
init_common();
// create front matter
var front_matter = $('<d-front-matter></d-front-matter>');
$('#distill-front-matter').wrap(front_matter);
// create d-title
$('.d-title').changeElementType('d-title');
// create d-byline
var byline = $('<d-byline></d-byline>');
$('.d-byline').replaceWith(byline);
// create d-article
var article = $('<d-article></d-article>');
$('.d-article').wrap(article).children().unwrap();
// move posts container into article
$('.posts-container').appendTo($('d-article'));
// create d-appendix
$('.d-appendix').changeElementType('d-appendix');
// flag indicating that we have appendix items
var appendix = $('.appendix-bottom').children('h3').length > 0;
// replace footnotes with <d-footnote>
$('.footnote-ref').each(function(i, val) {
appendix = true;
var href = $(this).attr('href');
var id = href.replace('#', '');
var fn = $('#' + id);
var fn_p = $('#' + id + '>p');
fn_p.find('.footnote-back').remove();
var text = fn_p.html();
var dtfn = $('<d-footnote></d-footnote>');
dtfn.html(text);
$(this).replaceWith(dtfn);
});
// remove footnotes
$('.footnotes').remove();
// move refs into #references-listing
$('#references-listing').replaceWith($('#refs'));
$('h1.appendix, h2.appendix').each(function(i, val) {
$(this).changeElementType('h3');
});
$('h3.appendix').each(function(i, val) {
var id = $(this).attr('id');
$('.d-contents a[href="#' + id + '"]').parent().remove();
appendix = true;
$(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('d-appendix'));
});
// show d-appendix if we have appendix content
$("d-appendix").css('display', appendix ? 'grid' : 'none');
// localize layout chunks to just output
$('.layout-chunk').each(function(i, val) {
// capture layout
var layout = $(this).attr('data-layout');
// apply layout to markdown level block elements
var elements = $(this).children().not('details, div.sourceCode, pre, script');
elements.each(function(i, el) {
var layout_div = $('<div class="' + layout + '"></div>');
if (layout_div.hasClass('shaded')) {
var shaded_content = $('<div class="shaded-content"></div>');
$(this).wrap(shaded_content);
$(this).parent().wrap(layout_div);
} else {
$(this).wrap(layout_div);
}
});
// unwrap the layout-chunk div
$(this).children().unwrap();
});
// remove code block used to force highlighting css
$('.distill-force-highlighting-css').parent().remove();
// remove empty line numbers inserted by pandoc when using a
// custom syntax highlighting theme
$('code.sourceCode a:empty').remove();
// load distill framework
load_distill_framework();
// wait for window.distillRunlevel == 4 to do post processing
function distill_post_process() {
if (!window.distillRunlevel || window.distillRunlevel < 4)
return;
// hide author/affiliations entirely if we have no authors
var front_matter = JSON.parse($("#distill-front-matter").html());
var have_authors = front_matter.authors && front_matter.authors.length > 0;
if (!have_authors)
$('d-byline').addClass('hidden');
// article with toc class
$('.d-contents').parent().addClass('d-article-with-toc');
// strip links that point to #
$('.authors-affiliations').find('a[href="#"]').removeAttr('href');
// add orcid ids
$('.authors-affiliations').find('.author').each(function(i, el) {
var orcid_id = front_matter.authors[i].orcidID;
if (orcid_id) {
var a = $('<a></a>');
a.attr('href', 'https://orcid.org/' + orcid_id);
var img = $('<img></img>');
img.addClass('orcid-id');
img.attr('alt', 'ORCID ID');
img.attr('src','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg==');
a.append(img);
$(this).append(a);
}
});
// hide elements of author/affiliations grid that have no value
function hide_byline_column(caption) {
$('d-byline').find('h3:contains("' + caption + '")').parent().css('visibility', 'hidden');
}
// affiliations
var have_affiliations = false;
for (var i = 0; i<front_matter.authors.length; ++i) {
var author = front_matter.authors[i];
if (author.affiliation !== "&nbsp;") {
have_affiliations = true;
break;
}
}
if (!have_affiliations)
$('d-byline').find('h3:contains("Affiliations")').css('visibility', 'hidden');
// published date
if (!front_matter.publishedDate)
hide_byline_column("Published");
// document object identifier
var doi = $('d-byline').find('h3:contains("DOI")');
var doi_p = doi.next().empty();
if (!front_matter.doi) {
// if we have a citation and valid citationText then link to that
if ($('#citation').length > 0 && front_matter.citationText) {
doi.html('Citation');
$('<a href="#citation"></a>')
.text(front_matter.citationText)
.appendTo(doi_p);
} else {
hide_byline_column("DOI");
}
} else {
$('<a></a>')
.attr('href', "https://doi.org/" + front_matter.doi)
.html(front_matter.doi)
.appendTo(doi_p);
}
// change plural form of authors/affiliations
if (front_matter.authors.length === 1) {
var grid = $('.authors-affiliations');
grid.children('h3:contains("Authors")').text('Author');
grid.children('h3:contains("Affiliations")').text('Affiliation');
}
// remove d-appendix and d-footnote-list local styles
$('d-appendix > style:first-child').remove();
$('d-footnote-list > style:first-child').remove();
// move appendix-bottom entries to the bottom
$('.appendix-bottom').appendTo('d-appendix').children().unwrap();
$('.appendix-bottom').remove();
// hoverable references
$('span.citation[data-cites]').each(function() {
var refHtml = $('#ref-' + $(this).attr('data-cites')).html();
window.tippy(this, {
allowHTML: true,
content: refHtml,
maxWidth: 500,
interactive: true,
interactiveBorder: 10,
theme: 'light-border',
placement: 'bottom-start'
});
});
// clear polling timer
clearInterval(tid);
// show body now that everything is ready
on_load_complete();
}
var tid = setInterval(distill_post_process, 50);
distill_post_process();
}
function init_downlevel() {
init_common();
// insert hr after d-title
$('.d-title').after($('<hr class="section-separator"/>'));
// check if we have authors
var front_matter = JSON.parse($("#distill-front-matter").html());
var have_authors = front_matter.authors && front_matter.authors.length > 0;
// manage byline/border
if (!have_authors)
$('.d-byline').remove();
$('.d-byline').after($('<hr class="section-separator"/>'));
$('.d-byline a').remove();
// remove toc
$('.d-contents').remove();
// move appendix elements
$('h1.appendix, h2.appendix').each(function(i, val) {
$(this).changeElementType('h3');
});
$('h3.appendix').each(function(i, val) {
$(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix'));
});
// inject headers into references and footnotes
var refs_header = $('<h3></h3>');
refs_header.text('References');
$('#refs').prepend(refs_header);
var footnotes_header = $('<h3></h3');
footnotes_header.text('Footnotes');
$('.footnotes').children('hr').first().replaceWith(footnotes_header);
// move appendix-bottom entries to the bottom
$('.appendix-bottom').appendTo('.d-appendix').children().unwrap();
$('.appendix-bottom').remove();
// remove appendix if it's empty
if ($('.d-appendix').children().length === 0)
$('.d-appendix').remove();
// prepend separator above appendix
$('.d-appendix').before($('<hr class="section-separator" style="clear: both"/>'));
// trim code
$('pre>code').each(function(i, val) {
$(this).html($.trim($(this).html()));
});
// move posts-container right before article
$('.posts-container').insertBefore($('.d-article'));
$('body').addClass('downlevel');
on_load_complete();
}
function init_common() {
// jquery plugin to change element types
(function($) {
$.fn.changeElementType = function(newType) {
var attrs = {};
$.each(this[0].attributes, function(idx, attr) {
attrs[attr.nodeName] = attr.nodeValue;
});
this.replaceWith(function() {
return $("<" + newType + "/>", attrs).append($(this).contents());
});
};
})(jQuery);
// prevent underline for linked images
$('a > img').parent().css({'border-bottom' : 'none'});
// mark non-body figures created by knitr chunks as 100% width
$('.layout-chunk').each(function(i, val) {
var figures = $(this).find('img, .html-widget');
if ($(this).attr('data-layout') !== "l-body") {
figures.css('width', '100%');
} else {
figures.css('max-width', '100%');
figures.filter("[width]").each(function(i, val) {
var fig = $(this);
fig.css('width', fig.attr('width') + 'px');
});
}
});
// auto-append index.html to post-preview links in file: protocol
// and in rstudio ide preview
$('.post-preview').each(function(i, val) {
if (window.location.protocol === "file:")
$(this).attr('href', $(this).attr('href') + "index.html");
});
// get rid of index.html references in header
if (window.location.protocol !== "file:") {
$('.distill-site-header a[href]').each(function(i,val) {
$(this).attr('href', $(this).attr('href').replace("index.html", "./"));
});
}
// add class to pandoc style tables
$('tr.header').parent('thead').parent('table').addClass('pandoc-table');
$('.kable-table').children('table').addClass('pandoc-table');
// add figcaption style to table captions
$('caption').parent('table').addClass("figcaption");
// initialize posts list
if (window.init_posts_list)
window.init_posts_list();
// implmement disqus comment link
$('.disqus-comment-count').click(function() {
window.headroom_prevent_pin = true;
$('#disqus_thread').toggleClass('hidden');
if (!$('#disqus_thread').hasClass('hidden')) {
var offset = $(this).offset();
$(window).resize();
$('html, body').animate({
scrollTop: offset.top - 35
});
}
});
}
document.addEventListener('DOMContentLoaded', function() {
if (is_downlevel_browser())
init_downlevel();
else
window.addEventListener('WebComponentsReady', init_distill);
});
</script>
<!--/radix_placeholder_distill-->
<script src="site_libs/header-attrs-2.7/header-attrs.js"></script>
<script src="site_libs/popper-2.6.0/popper.min.js"></script>
<link href="site_libs/tippy-6.2.7/tippy.css" rel="stylesheet" />
<link href="site_libs/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" />
<script src="site_libs/tippy-6.2.7/tippy.umd.min.js"></script>
<script src="site_libs/anchor-4.2.2/anchor.min.js"></script>
<script src="site_libs/bowser-1.9.3/bowser.min.js"></script>
<script src="site_libs/webcomponents-2.0.0/webcomponents.js"></script>
<script src="site_libs/distill-2.2.21/template.v2.js"></script>
<!--radix_placeholder_site_in_header-->
<!--/radix_placeholder_site_in_header-->
</head>
<body class="layout-listing">
<!--radix_placeholder_front_matter-->
<script id="distill-front-matter" type="text/json">
{"title":"Anson's Projects","authors":[]}
</script>
<!--/radix_placeholder_front_matter-->
<!--radix_placeholder_navigation_before_body-->
<header class="header header--fixed" role="banner">
<nav class="distill-site-nav distill-site-header">
<div class="nav-left">
<a href="index.html" class="title">Anson's Projects</a>
<input id="distill-search" class="nav-search hidden" type="text" placeholder="Search..."/>
</div>
<div class="nav-right">
<a href="index.html">Home</a>
<a href="about.html">About</a>
<a href="https://ansonbiggs.com">Resume</a>
<a href="javascript:void(0);" class="nav-toggle">&#9776;</a>
</div>
</nav>
</header>
<!--/radix_placeholder_navigation_before_body-->
<!--radix_placeholder_site_before_body-->
<!--/radix_placeholder_site_before_body-->
<!--radix_placeholder_article_listing-->
<script type="application/javascript">
function init_posts_list() {
function load_image(img) {
var src = $(img).attr('data-src');
if (src) {
$(img).attr('src', src);
$(img).load(function() {
img.removeAttribute('data-src');
});
}
}
function set_posts_visible(posts, visible) {
if (visible) {
// show bottom border by default
$(posts).removeClass('post-preview-last');
// apply limits if need be
var max_posts = 25;
var apply_limits = $('.posts-container').hasClass('posts-apply-limit');
if (apply_limits && posts.length > max_posts) {
posts = $(posts).slice(0, max_posts);
} else {
$('.posts-more a').addClass('hidden');
}
// apply last style
$(posts.slice(-1)[0]).addClass('post-preview-last');
$(posts).removeClass('hidden');
$(posts).find('img[data-src]').each(function(i, img) {
load_image(img);
});
} else {
$(posts).addClass('hidden');
}
}
function apply_hash_filter() {
// clear active state
$('.categories .active').removeClass('active');
// mark all posts invisible to start
set_posts_visible($('.posts-list').children('a'), false);
// if we have a hash filter
if (window.location.hash && window.location.hash.startsWith("#category:")) {
// mark posts that match the category visible
var page_category = window.location.hash.replace(/^#category:/, "");
var posts = $('.post-metadata').map(function(idx, script) {
var metadata = $.parseJSON($(script).html());
var post = null;
$.each(metadata.categories, function(idx, category) {
category = category.replace(/ /g,"_");
if ((page_category || '').toLowerCase() === "articles" || category === page_category) {
post = $(script).parent().get();
return false;
}
});
return post;
});
set_posts_visible(posts, true);
// mark the hash active
$('.categories li>a[href="' + window.location.hash + '"]').addClass('active');
// update the list_caption
var list_caption = $('.posts-list-caption');
var caption = (page_category || '').toLowerCase() === "articles"
? list_caption.attr('data-caption')
: ('Category: ' + page_category.replace(/_/g," "));
list_caption.text(caption);
} else {
// no hash filter, make all posts visible (subject to max display)
set_posts_visible($('.posts-list').children(), true);
// reset list caption
var list_caption = $('.posts-list-caption');
list_caption.text(list_caption.attr('data-caption'));
}
}
// more articles
function apply_post_limits(apply) {
if (apply) {
$('.posts-container').addClass('posts-apply-limit');
$('.posts-more a').removeClass('hidden');
} else {
$('.posts-container').removeClass('posts-apply-limit');
$('.posts-more a').addClass('hidden');
}
}
// click handling for tags
$('.dt-tag').click(function(ev) {
window.location.hash = '#category:' + $(this).text().replace(/ /g, "_");
return false;
})
// hash filter handling
apply_hash_filter();
$(window).on('hashchange',function() {
apply_post_limits(true);
apply_hash_filter();
});
// more articles link
$('.posts-more a').click(function(e) {
e.preventDefault();
apply_post_limits(false);
apply_hash_filter();
return false;
});
}
</script>
<div class="posts-container posts-with-sidebar posts-apply-limit l-screen-inset">
<div class="posts-list">
<h1 class="posts-list-caption" data-caption="Anson&#39;s Projects">Anson's Projects</h1>
<a href="posts/2021-04-01-air-propulsion-simulation/" class="post-preview">
<script class="post-metadata" type="text/json">{"categories":["Julia","Capstone"]}</script>
<div class="metadata">
<div class="publishedDate">April 1, 2021</div>
<div class="dt-authors">
<div class="dt-author">Anson Biggs</div>
</div>
</div>
<div class="thumbnail">
<img src="posts/2021-04-01-air-propulsion-simulation/air-propulsion-simulation_files/figure-html5/unnamed-chunk-4-J1.png"/>
</div>
<div class="description">
<h2>Air Propulsion Simulation</h2>
<div class="dt-tags">
<div class="dt-tag">Julia</div>
<div class="dt-tag">Capstone</div>
</div>
<p>Simulating the performace of an air propulsion system as an alternative to solid rocket motors.</p>
</div>
</a>
<a href="posts/welcome/" class="post-preview">
<script class="post-metadata" type="text/json">{"categories":[]}</script>
<div class="metadata">
<div class="publishedDate">April 1, 2021</div>
<div class="dt-authors">
<div class="dt-author">Nora Jones</div>
</div>
</div>
<div class="thumbnail">
<img/>
</div>
<div class="description">
<h2>Welcome to Anson's Projects</h2>
<div class="dt-tags"></div>
<p>Welcome to our new blog, Anson's Projects. We hope you enjoy
reading what we have to say!</p>
</div>
</a>
</div>
<div class="posts-sidebar">
<div class="sidebar-section categories">
<h3>Categories</h3>
<ul>
<li>
<a href="#category:Articles">Articles</a>
<span class="category-count">(2)</span>
</li>
<li>
<a href="#category:Capstone">Capstone</a>
<span class="category-count">(1)</span>
</li>
<li>
<a href="#category:Julia">Julia</a>
<span class="category-count">(1)</span>
</li>
</ul>
</div>
</div>
<div class="posts-more">
<a href="#">More articles &raquo;</a>
</div>
</div>
<!--/radix_placeholder_article_listing-->
<div class="d-title">
<h1>Ansons Projects</h1>
<!--radix_placeholder_categories-->
<!--/radix_placeholder_categories-->
</div>
<div class="d-article">
<div class="sourceCode" id="cb1"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div>
<!--radix_placeholder_article_footer-->
<!--/radix_placeholder_article_footer-->
</div>
<div class="d-appendix">
</div>
<!--radix_placeholder_site_after_body-->
<!--/radix_placeholder_site_after_body-->
<!--radix_placeholder_appendices-->
<div class="appendix-bottom"></div>
<!--/radix_placeholder_appendices-->
<!--radix_placeholder_navigation_after_body-->
<!--/radix_placeholder_navigation_after_body-->
</body>
</html>