mirror of
https://gitlab.com/Anson-Projects/projects.git
synced 2025-06-15 14:36:47 +00:00
1512 lines
40 KiB
HTML
1512 lines
40 KiB
HTML
<!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>Julia for Matlabbers</title>
|
|
|
|
<meta property="description" itemprop="description" content="Everything a Matlab programmer needs to know to get started with Julia."/>
|
|
|
|
<link rel="license" href="https://creativecommons.org/licenses/by/4.0/"/>
|
|
|
|
<!-- https://schema.org/Article -->
|
|
<meta property="article:published" itemprop="datePublished" content="2021-08-24"/>
|
|
<meta property="article:created" itemprop="dateCreated" content="2021-08-24"/>
|
|
<meta name="article:author" content="Anson Biggs"/>
|
|
|
|
<!-- https://developers.facebook.com/docs/sharing/webmasters#markup -->
|
|
<meta property="og:title" content="Julia for Matlabbers"/>
|
|
<meta property="og:type" content="article"/>
|
|
<meta property="og:description" content="Everything a Matlab programmer needs to know to get started with Julia."/>
|
|
<meta property="og:locale" content="en_US"/>
|
|
|
|
<!-- https://dev.twitter.com/cards/types/summary -->
|
|
<meta property="twitter:card" content="summary"/>
|
|
<meta property="twitter:title" content="Julia for Matlabbers"/>
|
|
<meta property="twitter:description" content="Everything a Matlab programmer needs to know to get started with Julia."/>
|
|
|
|
<!--/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","description","draft","author","date","output","categories","creative_commons","preview"]}},"value":[{"type":"character","attributes":{},"value":["Julia for Matlabbers"]},{"type":"character","attributes":{},"value":["Everything a Matlab programmer needs to know to get started with Julia.\n"]},{"type":"logical","attributes":{},"value":[false]},{"type":"list","attributes":{},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","url"]}},"value":[{"type":"character","attributes":{},"value":["Anson Biggs"]},{"type":"character","attributes":{},"value":["https://ansonbiggs.com"]}]}]},{"type":"character","attributes":{},"value":["08-24-2021"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["distill::distill_article"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["self_contained"]}},"value":[{"type":"logical","attributes":{},"value":[false]}]}]},{"type":"character","attributes":{},"value":["Julia","Matlab"]},{"type":"character","attributes":{},"value":["CC BY"]},{"type":"character","attributes":{},"value":["preview.png"]}]}
|
|
</script>
|
|
<!--/radix_placeholder_rmarkdown_metadata-->
|
|
|
|
<script type="text/json" id="radix-resource-manifest">
|
|
{"type":"character","attributes":{},"value":["julia-for-matlabbers_files/anchor-4.2.2/anchor.min.js","julia-for-matlabbers_files/bowser-1.9.3/bowser.min.js","julia-for-matlabbers_files/distill-2.2.21/template.v2.js","julia-for-matlabbers_files/header-attrs-2.10/header-attrs.js","julia-for-matlabbers_files/jquery-1.11.3/jquery.min.js","julia-for-matlabbers_files/popper-2.6.0/popper.min.js","julia-for-matlabbers_files/tippy-6.2.7/tippy-bundle.umd.min.js","julia-for-matlabbers_files/tippy-6.2.7/tippy-light-border.css","julia-for-matlabbers_files/tippy-6.2.7/tippy.css","julia-for-matlabbers_files/tippy-6.2.7/tippy.umd.min.js","julia-for-matlabbers_files/webcomponents-2.0.0/webcomponents.js","preview.png"]}
|
|
</script>
|
|
<!--radix_placeholder_navigation_in_header-->
|
|
<!--/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 !== " ") {
|
|
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="julia-for-matlabbers_files/header-attrs-2.10/header-attrs.js"></script>
|
|
<script src="julia-for-matlabbers_files/jquery-1.11.3/jquery.min.js"></script>
|
|
<script src="julia-for-matlabbers_files/popper-2.6.0/popper.min.js"></script>
|
|
<link href="julia-for-matlabbers_files/tippy-6.2.7/tippy.css" rel="stylesheet" />
|
|
<link href="julia-for-matlabbers_files/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" />
|
|
<script src="julia-for-matlabbers_files/tippy-6.2.7/tippy.umd.min.js"></script>
|
|
<script src="julia-for-matlabbers_files/anchor-4.2.2/anchor.min.js"></script>
|
|
<script src="julia-for-matlabbers_files/bowser-1.9.3/bowser.min.js"></script>
|
|
<script src="julia-for-matlabbers_files/webcomponents-2.0.0/webcomponents.js"></script>
|
|
<script src="julia-for-matlabbers_files/distill-2.2.21/template.v2.js"></script>
|
|
<!--radix_placeholder_site_in_header-->
|
|
<!--/radix_placeholder_site_in_header-->
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<!--radix_placeholder_front_matter-->
|
|
|
|
<script id="distill-front-matter" type="text/json">
|
|
{"title":"Julia for Matlabbers","description":"Everything a Matlab programmer needs to know to get started with Julia.","authors":[{"author":"Anson Biggs","authorURL":"https://ansonbiggs.com","affiliation":" ","affiliationURL":"#","orcidID":""}],"publishedDate":"2021-08-24T00:00:00.000-07:00","citationText":"Biggs, 2021"}
|
|
</script>
|
|
|
|
<!--/radix_placeholder_front_matter-->
|
|
<!--radix_placeholder_navigation_before_body-->
|
|
<!--/radix_placeholder_navigation_before_body-->
|
|
<!--radix_placeholder_site_before_body-->
|
|
<!--/radix_placeholder_site_before_body-->
|
|
|
|
<div class="d-title">
|
|
<h1>Julia for Matlabbers</h1>
|
|
<!--radix_placeholder_categories-->
|
|
<div class="dt-tags">
|
|
<div class="dt=tag">Julia</div>
|
|
<div class="dt=tag">Matlab</div>
|
|
</div>
|
|
<!--/radix_placeholder_categories-->
|
|
<p><p>Everything a Matlab programmer needs to know to get started with Julia.</p></p>
|
|
</div>
|
|
|
|
<div class="d-byline">
|
|
Anson Biggs <a href="https://ansonbiggs.com" class="uri">https://ansonbiggs.com</a>
|
|
|
|
<br/>08-24-2021
|
|
</div>
|
|
|
|
<div class="d-article">
|
|
<p>Pluto is unfortunately a more proprietary format than I initially thought and lacks proper tooling to easily export into a more open format. If the notebook does not show up below you can find it at <a href="https://julia.ansonbiggs.com/" class="uri">https://julia.ansonbiggs.com/</a> or the repository <a href="https://gitlab.com/MisterBiggs/julia-for-matlabbers" class="uri">https://gitlab.com/MisterBiggs/julia-for-matlabbers</a></p>
|
|
<iframe style="height: 80vh;" src="https://julia.ansonbiggs.com/">
|
|
</iframe>
|
|
<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">
|
|
<h3 id="reuse">Reuse</h3>
|
|
<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p>
|
|
</div>
|
|
<!--/radix_placeholder_appendices-->
|
|
<!--radix_placeholder_navigation_after_body-->
|
|
<!--/radix_placeholder_navigation_after_body-->
|
|
|
|
</body>
|
|
|
|
</html>
|