<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title/><link>https://bennetoutland.github.io/</link><atom:link href="https://bennetoutland.github.io/index.xml" rel="self" type="application/rss+xml"/><description/><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 24 Oct 2022 00:00:00 +0000</lastBuildDate><image><url>https://bennetoutland.github.io/media/icon_hu_da05098ef60dc2e7.png</url><title/><link>https://bennetoutland.github.io/</link></image><item><title>Orbital Stability of Closely-Spaced Four-planet Systems</title><link>https://bennetoutland.github.io/publications/four-planet-stability/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/publications/four-planet-stability/</guid><description/></item><item><title>VLEO Satellite Modeling and Orbital Maintenance</title><link>https://bennetoutland.github.io/events/vleo-satellite-aas-2025/</link><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/events/vleo-satellite-aas-2025/</guid><description/></item><item><title>⚡️ Turn Jupyter Notebooks into Blog Posts</title><link>https://bennetoutland.github.io/blog/notebook-onboarding/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/blog/notebook-onboarding/</guid><description>&lt;p&gt;As a researcher or data scientist, your work often lives in Jupyter Notebooks. But sharing those insights effectively usually means taking screenshots, messy copy-pasting, or exporting to PDF.&lt;/p&gt;
&lt;p&gt;Hugo Blox changes that. With the &lt;code&gt;{{&amp;lt; notebook &amp;gt;}}&lt;/code&gt; shortcode, you can render your actual &lt;code&gt;.ipynb&lt;/code&gt; files directly as beautiful, interactive blog posts or project pages. Keep your code, outputs, and narrative in one place.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" open&gt;
&lt;summary&gt;Table of Contents&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#why-publish-notebooks"&gt;Why publish notebooks?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#example-data-science-workflow"&gt;Example: Data Science Workflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#how-to-add-a-notebook"&gt;How to add a notebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#next-steps"&gt;Next steps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="why-publish-notebooks"&gt;Why publish notebooks?&lt;/h2&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-emerald-100 dark:bg-emerald-900 border-emerald-500"
data-callout="tip"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-emerald-600 dark:text-emerald-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 18v-5.25m0 0a6 6 0 0 0 1.5-.189m-1.5.189a6 6 0 0 1-1.5-.189m3.75 7.478a12.1 12.1 0 0 1-4.5 0m3.75 2.383a14.4 14.4 0 0 1-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 1 0-7.517 0c.85.493 1.509 1.333 1.509 2.316V18"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Tip&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;&lt;strong&gt;Reproducible Research&lt;/strong&gt;: By publishing the actual notebook, you allow others to download and run your code, verifying your results and building upon your work.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No more screenshots&lt;/strong&gt; – Render crisp code and vector plots directly from your source.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Theme consistent&lt;/strong&gt; – Notebooks automatically adapt to your site&amp;rsquo;s theme (including dark mode).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible sourcing&lt;/strong&gt; – Display notebooks from your &lt;code&gt;assets/&lt;/code&gt; folder, page bundles, or even directly from a remote GitHub URL.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interactive&lt;/strong&gt; – Users can copy code blocks or download the full notebook to run locally.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="example-data-science-workflow"&gt;Example: Data Science Workflow&lt;/h2&gt;
&lt;p&gt;Below is a live example of a notebook rendered right here in this post. Notice how the markdown, code, and outputs (text, HTML, and JSON) are all preserved and styled.&lt;/p&gt;
&lt;div id="hb-notebook-86b2483a72d99021c62bf6617361405b" class="hb-notebook not-prose" data-hb-component="notebook" aria-label="Notebook Launch Readiness Analysis" style="--hb-notebook-output-max-height:26rem;"&gt;
&lt;div class="hb-notebook-header"&gt;
&lt;div class="hb-notebook-heading"&gt;
&lt;p class="hb-notebook-title"&gt;Launch Readiness Analysis&lt;/p&gt;
&lt;p class="hb-notebook-subtitle"&gt;Python · Kernel: Python 3 · nbformat 4.5 · 6 cells&lt;/p&gt;
&lt;/div&gt;
&lt;a class="hb-notebook-download" href="https://bennetoutland.github.io/blog/notebook-onboarding/hugoblox-onboarding.ipynb" download&gt;
&lt;svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3"/&gt;&lt;/svg&gt;
&lt;span&gt;Download notebook&lt;/span&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;dl class="hb-notebook-metadata"&gt;
&lt;div&gt;
&lt;dt&gt;Language&lt;/dt&gt;
&lt;dd&gt;Python&lt;/dd&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;dt&gt;Version&lt;/dt&gt;
&lt;dd&gt;3.11&lt;/dd&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;dt&gt;Kernel&lt;/dt&gt;
&lt;dd&gt;Python 3 python3&lt;/dd&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;dt&gt;nbformat&lt;/dt&gt;
&lt;dd&gt;4.5&lt;/dd&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;dt&gt;Authors&lt;/dt&gt;
&lt;dd&gt;Ownable CMS&lt;/dd&gt;
&lt;/div&gt;
&lt;/dl&gt;&lt;div class="hb-notebook-body"&gt;&lt;article class="hb-notebook-cell hb-notebook-cell--markdown" data-cell-type="markdown"&gt;
&lt;header class="hb-notebook-cell-header"&gt;
&lt;span class="hb-notebook-pill"&gt;Markdown&lt;/span&gt;
&lt;/header&gt;
&lt;div class="hb-notebook-markdown prose dark:prose-invert"&gt;
&lt;h1 id="ship-notebook-stories-in-minutes"&gt;Ship Notebook Stories in Minutes&lt;/h1&gt;
&lt;p&gt;Hugo Blox Notebook renderer turns your &lt;code&gt;.ipynb&lt;/code&gt; experiments into beautiful long-form posts.
Use this sample to see how markdown, code, and outputs flow together.&lt;/p&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class="hb-notebook-cell hb-notebook-cell--markdown" data-cell-type="markdown"&gt;
&lt;header class="hb-notebook-cell-header"&gt;
&lt;span class="hb-notebook-pill"&gt;Markdown&lt;/span&gt;
&lt;/header&gt;
&lt;div class="hb-notebook-markdown prose dark:prose-invert"&gt;
&lt;ol&gt;
&lt;li&gt;Drop notebooks inside &lt;code&gt;assets/notebooks/&lt;/code&gt; (or import them as page resources).&lt;/li&gt;
&lt;li&gt;Reference them with &lt;code&gt;{{&amp;lt;/* notebook src=&amp;quot;your.ipynb&amp;quot; */&amp;gt;}}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Control code, outputs, metadata badges, and download links via shortcode params.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class="hb-notebook-cell hb-notebook-cell--code" data-cell-type="code"&gt;
&lt;header class="hb-notebook-cell-header"&gt;
&lt;span class="hb-notebook-pill"&gt;In [1]&lt;/span&gt;
&lt;div class="hb-notebook-tags"&gt;
&lt;span&gt;demo&lt;/span&gt;
&lt;span&gt;quickstart&lt;/span&gt;
&lt;/div&gt;
&lt;/header&gt;
&lt;div class="hb-notebook-code" data-language="python"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;accuracy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.982&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Collecting data...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Training notebook-ready block...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Done!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;accuracy&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class="hb-notebook-outputs"&gt;&lt;pre class="hb-notebook-output hb-notebook-output--stream"&gt;&lt;code&gt;Collecting data...
Training notebook-ready block...
Done!
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class="hb-notebook-output hb-notebook-output--text"&gt;&lt;code&gt;0.982&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class="hb-notebook-cell hb-notebook-cell--code" data-cell-type="code"&gt;
&lt;header class="hb-notebook-cell-header"&gt;
&lt;span class="hb-notebook-pill"&gt;In [2]&lt;/span&gt;
&lt;/header&gt;
&lt;div class="hb-notebook-code" data-language="python"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;IPython.display&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;HTML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;HTML&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;lt;div style=&amp;#39;font-family:Inter,ui-sans-serif;&amp;#39;&amp;gt;&amp;lt;strong&amp;gt;Launch Readiness:&amp;lt;/strong&amp;gt; &amp;lt;span style=&amp;#39;color:#22c55e;&amp;#39;&amp;gt;98.2&lt;/span&gt;&lt;span class="si"&gt;% c&lt;/span&gt;&lt;span class="s2"&gt;onfidence&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;em&amp;gt;Notebook blocks are theme-aware and dark-mode friendly.&amp;lt;/em&amp;gt;&amp;lt;/div&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class="hb-notebook-outputs"&gt;
&lt;div class="hb-notebook-output hb-notebook-output--html"&gt;&lt;div style='font-family:Inter,ui-sans-serif;'&gt;&lt;strong&gt;Launch Readiness:&lt;/strong&gt; &lt;span style='color:#22c55e;'&gt;98.2% confidence&lt;/span&gt;&lt;br&gt;&lt;em&gt;Notebook blocks are theme-aware and dark-mode friendly.&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class="hb-notebook-cell hb-notebook-cell--code" data-cell-type="code"&gt;
&lt;header class="hb-notebook-cell-header"&gt;
&lt;span class="hb-notebook-pill"&gt;In [3]&lt;/span&gt;
&lt;div class="hb-notebook-tags"&gt;
&lt;span&gt;metrics&lt;/span&gt;
&lt;/div&gt;
&lt;/header&gt;
&lt;div class="hb-notebook-code" data-language="python"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;metrics&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;metrics&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;engagement_rate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.73&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;read_time_minutes&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;4.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;subscribers&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1280&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;metrics&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class="hb-notebook-outputs"&gt;&lt;pre class="hb-notebook-output hb-notebook-output--json"&gt;&lt;code&gt;{
"metrics": {
"engagement_rate": 0.73,
"read_time_minutes": 4.6,
"subscribers": 1280
}
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/article&gt;&lt;article class="hb-notebook-cell hb-notebook-cell--markdown" data-cell-type="markdown"&gt;
&lt;header class="hb-notebook-cell-header"&gt;
&lt;span class="hb-notebook-pill"&gt;Markdown&lt;/span&gt;
&lt;/header&gt;
&lt;div class="hb-notebook-markdown prose dark:prose-invert"&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Tip: Pair this block with Call-to-Action cards or the Embed shortcode to link to GitHub repos, datasets, or ARXIV preprints.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/article&gt;
&lt;/div&gt;
&lt;div class="sr-only" data-hb-component="notebook" data-hb-version="1.0" data-hb-license="MIT"&gt;
Powered by Hugo Blox Kit - https://github.com/HugoBlox/kit
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="how-to-add-a-notebook"&gt;How to add a notebook&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Save your notebook.&lt;/strong&gt; Place your &lt;code&gt;.ipynb&lt;/code&gt; file in &lt;code&gt;assets/notebooks/&lt;/code&gt; (for global access) or inside a page bundle (like &lt;code&gt;content/blog/my-post/analysis.ipynb&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add the shortcode.&lt;/strong&gt; In any Markdown page, simply use:
&lt;code&gt;{{&amp;lt; notebook src=&amp;quot;analysis.ipynb&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customize.&lt;/strong&gt; You can hide code cells for non-technical audiences (&lt;code&gt;show_code=false&lt;/code&gt;) or just show the output (&lt;code&gt;show_outputs=true&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-purple-100 dark:bg-purple-900 border-purple-500"
data-callout="important"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-purple-600 dark:text-purple-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m9-.75a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9 3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Important&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;Hugo Blox respects your privacy. Notebook rendering happens statically at build time—no third-party services required.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="next-steps"&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Try it out:&lt;/strong&gt; Drop one of your existing notebooks into this site and see how it looks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Link your papers:&lt;/strong&gt; Use the Embed shortcode to link your notebook to your latest arXiv preprint or GitHub repository.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get help:&lt;/strong&gt; Join the community on
or check the
.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Happy researching! 🚀&lt;/p&gt;</description></item><item><title>Orbital Stability of Closely-Spaced Many-planet Systems</title><link>https://bennetoutland.github.io/publications/many-planet-stability/</link><pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/publications/many-planet-stability/</guid><description/></item><item><title>Orbital Stability of Nonuniformly-Spaced Many-planet Systems</title><link>https://bennetoutland.github.io/publications/nonuniform-planet-stability/</link><pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/publications/nonuniform-planet-stability/</guid><description/></item><item><title>Omnicopters for Spacecraft Simulation</title><link>https://bennetoutland.github.io/projects/omnicopter/</link><pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/omnicopter/</guid><description>&lt;p&gt;Senior design project and MS thesis component, funded by the LINCS Lab at the Air Force Research Laboratory ($5,000 CRADA award).&lt;/p&gt;
&lt;p&gt;Omnicopters — multirotor vehicles with full 6-DOF control authority — were used to simulate spacecraft attitude and translation dynamics in a hardware-in-the-loop configuration. Key contributions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Determined optimal motor placements and orientations for full controllability&lt;/li&gt;
&lt;li&gt;Developed a novel control scheme for rejecting air disturbances in indoor environments&lt;/li&gt;
&lt;li&gt;Validated the platform as a low-cost proxy for orbital spacecraft dynamics testing&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rocker Robotics — Intelligent Ground Vehicle Competition</title><link>https://bennetoutland.github.io/projects/rocker-robotics/</link><pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/rocker-robotics/</guid><description>&lt;p&gt;Autonomy and Controls Technical Lead (2022–23), then team member (2023–24) for South Dakota Mines&amp;rsquo; entry in the
.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt; Won Rookie of the Year award and placed in the design competition.&lt;/p&gt;
&lt;p&gt;Technical contributions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ROS-based sensor integration (LIDAR, GPS, camera)&lt;/li&gt;
&lt;li&gt;Lane detection via computer vision&lt;/li&gt;
&lt;li&gt;Path planning with A*&lt;/li&gt;
&lt;li&gt;Trajectory tracking with Model Predictive Path Integral (MPPI) Control&lt;/li&gt;
&lt;li&gt;Frontier-based autonomous exploration for course navigation&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Autonomous Spacecraft and Sensing</title><link>https://bennetoutland.github.io/projects/autonomous-spacecraft/</link><pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/autonomous-spacecraft/</guid><description>&lt;p&gt;A systems-level demonstration of autonomous spacecraft operations, presented to a general audience and built entirely in the
astrodynamics simulator.&lt;/p&gt;
&lt;p&gt;Capabilities demonstrated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Attitude correction and momentum management&lt;/li&gt;
&lt;li&gt;Onboard debris detection via simulated optical sensor using an optical flow background removal scheme&lt;/li&gt;
&lt;li&gt;Autonomous debris avoidance via thruster actuation&lt;/li&gt;
&lt;li&gt;Cyber-attack simulation targeting autonomous operations with minimal detectability&lt;/li&gt;
&lt;li&gt;Anomaly detection using LSTMs and isolation forests&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Hall Thruster Design Optimization</title><link>https://bennetoutland.github.io/projects/hall-thruster/</link><pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/hall-thruster/</guid><description>&lt;p&gt;Personal project combining plasma physics simulation with machine learning-guided design optimization.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Simulated 1D Hall thruster discharge and collected performance data across magnetic profile variations&lt;/li&gt;
&lt;li&gt;Trained an adaptive neural surrogate model of the discharge dynamics&lt;/li&gt;
&lt;li&gt;Jointly optimized thruster geometry and magnetic field profile to maximize efficiency&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Autonomous Vehicles with Safety Guarantees</title><link>https://bennetoutland.github.io/projects/autonomous-vehicles/</link><pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/autonomous-vehicles/</guid><description>&lt;p&gt;A demonstration suite for safe autonomous vehicle trajectory optimization.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lane, vehicle, pedestrian, traffic light, and sign detection pipelines&lt;/li&gt;
&lt;li&gt;Autonomous lane change via nonlinear model predictive control (nMPC)&lt;/li&gt;
&lt;li&gt;Safety-guaranteed lane change using Control Barrier Functions integrated into nMPC (CBF-nMPC), with formal guarantees of non-collision with simulated traffic&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Adaptive HVAC for Unknown Deployment</title><link>https://bennetoutland.github.io/projects/adaptive-hvac/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/adaptive-hvac/</guid><description>&lt;p&gt;A data-driven approach to HVAC control for environments with unknown thermal characteristics.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Created a heat transfer model of a standard office/warehouse environment equipped with an HVAC system&lt;/li&gt;
&lt;li&gt;Embedded physical information of a general environment into ARX for model identification&lt;/li&gt;
&lt;li&gt;Gradient descent was used to optimize a PID controller to regulate the internal temperature&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Automated Turret</title><link>https://bennetoutland.github.io/projects/automated-turret/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/automated-turret/</guid><description>&lt;p&gt;An automated turret with vision-based target tracking and feedback control.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Detected a desired target via a blob detection scheme&lt;/li&gt;
&lt;li&gt;Performed pixel-to-torque feedback control to aim the turret&lt;/li&gt;
&lt;li&gt;Fine-tuned the controller after determining optimal gains from data-driven transfer function discovery&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Curriculum Vitae</title><link>https://bennetoutland.github.io/cv/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/cv/</guid><description/></item><item><title>Research</title><link>https://bennetoutland.github.io/research/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/research/</guid><description/></item><item><title>🎉 Easily create your own simple yet highly customizable blog</title><link>https://bennetoutland.github.io/blog/get-started/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/blog/get-started/</guid><description>&lt;p&gt;Welcome 👋&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" open&gt;
&lt;summary&gt;Table of Contents&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#get-started"&gt;Get Started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#crowd-funded-open-source-software"&gt;Crowd-funded open-source software&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#-click-here-to-become-a-sponsor-and-help-support-hugo-blox"&gt;❤️ Click here to become a sponsor and help support Hugo Blox’s future ❤️&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#ecosystem"&gt;Ecosystem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#inspiration"&gt;Inspiration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#features"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#themes"&gt;Themes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#license"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;The Hugo Blox website builder for Hugo, along with its starter templates, is designed for professional creators, educators, and teams/organizations - although it can be used to create any kind of site&lt;/li&gt;
&lt;li&gt;The template can be modified and customised to suit your needs. It&amp;rsquo;s a good platform for anyone looking to take control of their data and online identity whilst having the convenience to start off with a &lt;strong&gt;no-code solution (write in Markdown and customize with YAML parameters)&lt;/strong&gt; and having &lt;strong&gt;flexibility to later add even deeper personalization with HTML and CSS&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;You can work with all your favourite tools and apps with hundreds of plugins and integrations to speed up your workflows, interact with your readers, and much more&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="get-started"&gt;Get Started&lt;/h3&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-emerald-100 dark:bg-emerald-900 border-emerald-500"
data-callout="tip"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-emerald-600 dark:text-emerald-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 18v-5.25m0 0a6 6 0 0 0 1.5-.189m-1.5.189a6 6 0 0 1-1.5-.189m3.75 7.478a12.1 12.1 0 0 1-4.5 0m3.75 2.383a14.4 14.4 0 0 1-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 1 0-7.517 0c.85.493 1.509 1.333 1.509 2.316V18"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Quick Start Guide&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;New to Hugo Blox? Follow these steps to get your site up and running in minutes!&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;👉
&lt;/li&gt;
&lt;li&gt;📚
&lt;/li&gt;
&lt;li&gt;💬
or
&lt;/li&gt;
&lt;li&gt;🐦 Twitter:
#MadeWithHugoBlox&lt;/li&gt;
&lt;li&gt;💡
&lt;/li&gt;
&lt;li&gt;⬆️ &lt;strong&gt;Updating Hugo Blox?&lt;/strong&gt; View the
and
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-purple-100 dark:bg-purple-900 border-purple-500"
data-callout="important"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-purple-600 dark:text-purple-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m9-.75a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9 3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Important&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;Remember to backup your site before making major updates!&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="crowd-funded-open-source-software"&gt;Crowd-funded open-source software&lt;/h2&gt;
&lt;p&gt;To help us develop this template and software sustainably under the MIT license, we ask all individuals and businesses that use it to help support its ongoing maintenance and development via sponsorship.&lt;/p&gt;
&lt;h3 id="-click-here-to-become-a-sponsor-and-help-support-hugo-blox"&gt;
&lt;/h3&gt;
&lt;p&gt;As a token of appreciation for sponsoring, you can &lt;strong&gt;unlock
awesome rewards and extra features 🦄✨&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="ecosystem"&gt;Ecosystem&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;
:&lt;/strong&gt; Automatically import publications from BibTeX&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="inspiration"&gt;Inspiration&lt;/h2&gt;
&lt;p&gt;
are building with this template.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Enhanced Markdown Support&lt;br&gt;&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;Hugo Blox now supports GitHub and Obsidian-style callouts! Use standard Markdown alert syntax like &lt;code&gt;&amp;gt; [!NOTE]&lt;/code&gt; for better portability.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Page builder&lt;/strong&gt; - Create &lt;em&gt;anything&lt;/em&gt; with no-code
and
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edit any type of content&lt;/strong&gt; - Blog posts, publications, talks, slides, projects, and more!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create content&lt;/strong&gt; in
,
, or
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plugin System&lt;/strong&gt; - Fully customizable
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Display Code and Math&lt;/strong&gt; - Code syntax highlighting and LaTeX math supported&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrations&lt;/strong&gt; -
,
, Maps, Contact Forms, and more!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beautiful Site&lt;/strong&gt; - Simple and refreshing one-page design&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Industry-Leading SEO&lt;/strong&gt; - Help get your website found on search engines and social media&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Media Galleries&lt;/strong&gt; - Display your images and videos with captions in a customizable gallery&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mobile Friendly&lt;/strong&gt; - Look amazing on every screen with a mobile friendly version of your site&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-language&lt;/strong&gt; - 35+ language packs including English, 中文, and Português&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-user&lt;/strong&gt; - Each author gets their own profile page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Privacy Pack&lt;/strong&gt; - Assists with GDPR&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stand Out&lt;/strong&gt; - Bring your site to life with animation, parallax backgrounds, and scroll effects&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One-Click Deployment&lt;/strong&gt; - No servers. No databases. Only files.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-orange-100 dark:bg-orange-900 border-orange-500"
data-callout="warning"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-orange-600 dark:text-orange-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0zM12 15.75h.007v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Version Requirements&lt;br&gt;&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;The new Markdown alert syntax requires Hugo v0.132.0 or later. Make sure you&amp;rsquo;re using a compatible version!&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="themes"&gt;Themes&lt;/h2&gt;
&lt;p&gt;Hugo Blox and its templates come with &lt;strong&gt;automatic day (light) and night (dark) mode&lt;/strong&gt; built-in. Visitors can choose their preferred mode by clicking the sun/moon icon in the header.&lt;/p&gt;
&lt;p&gt;
for your site. Themes are fully customizable.&lt;/p&gt;
&lt;h2 id="license"&gt;License&lt;/h2&gt;
&lt;p&gt;Copyright 2016-present
.&lt;/p&gt;
&lt;p&gt;Released under the
license.&lt;/p&gt;</description></item><item><title>🧠 Sharpen your thinking with a second brain</title><link>https://bennetoutland.github.io/blog/second-brain/</link><pubDate>Thu, 26 Oct 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/blog/second-brain/</guid><description>&lt;p&gt;Create a personal knowledge base and share your knowledge with your peers.&lt;/p&gt;
&lt;p&gt;Hugo Blox web framework empowers you with one of the most flexible note-taking capabilities out there.&lt;/p&gt;
&lt;p&gt;Create a powerful knowledge base that works on top of a local folder of plain text Markdown files.&lt;/p&gt;
&lt;p&gt;Use it as your second brain, either publicly sharing your knowledge with your peers via your website, or via a private GitHub repository and password-protected site just for yourself.&lt;/p&gt;
&lt;h2 id="mindmaps"&gt;Mindmaps&lt;/h2&gt;
&lt;p&gt;Hugo Blox supports a Markdown extension for mindmaps.&lt;/p&gt;
&lt;p&gt;With this open format, can even edit your mindmaps in other popular tools such as Obsidian.&lt;/p&gt;
&lt;p&gt;Simply insert a Markdown code block labelled as &lt;code&gt;markmap&lt;/code&gt; and optionally set the height of the mindmap as shown in the example below.&lt;/p&gt;
&lt;p&gt;Mindmaps can be created by simply writing the items as a Markdown list within the &lt;code&gt;markmap&lt;/code&gt; code block, indenting each item to create as many sub-levels as you need:&lt;/p&gt;
&lt;div class="highlight"&gt;
&lt;pre class="chroma"&gt;
&lt;code&gt;
```markmap {height="200px"}
- Hugo Modules
- Hugo Blox
- netlify
- netlify-cms
- slides
```
&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;renders as&lt;/p&gt;
&lt;div class="markmap" style="height: 200px;"&gt;
&lt;pre&gt;- Hugo Modules
- Hugo Blox
- netlify
- netlify-cms
- slides&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Anh here&amp;rsquo;s a more advanced mindmap with formatting, code blocks, and math:&lt;/p&gt;
&lt;div class="highlight"&gt;
&lt;pre class="chroma"&gt;
&lt;code&gt;
```markmap
- Mindmaps
- Links
- [Hugo Blox Docs](https://docs.hugoblox.com/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/HugoBlox/kit)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$
```
&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;renders as&lt;/p&gt;
&lt;div class="markmap" style="height: 500px;"&gt;
&lt;pre&gt;- Mindmaps
- Links
- [Hugo Blox Docs](https://docs.hugoblox.com/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/HugoBlox/kit)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 id="highlighting"&gt;Highlighting&lt;/h2&gt;
&lt;p&gt;&lt;mark&gt;Highlight&lt;/mark&gt; important text with &lt;code&gt;mark&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;mark&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Highlighted text&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;mark&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="callouts"&gt;Callouts&lt;/h2&gt;
&lt;p&gt;Use
(aka &lt;em&gt;asides&lt;/em&gt;, &lt;em&gt;hints&lt;/em&gt;, or &lt;em&gt;alerts&lt;/em&gt;) to draw attention to notes, tips, and warnings.&lt;/p&gt;
&lt;p&gt;Use the &lt;code&gt;&amp;gt; [!NOTE]&lt;/code&gt; syntax to create a callout.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!NOTE]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;A Markdown aside is useful for displaying notices, hints, or definitions to your readers.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;renders as&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;A Markdown aside is useful for displaying notices, hints, or definitions to your readers.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Or use the &lt;code&gt;warning&lt;/code&gt; callout type so your readers don&amp;rsquo;t miss critical details:&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-orange-100 dark:bg-orange-900 border-orange-500"
data-callout="warning"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-orange-600 dark:text-orange-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0zM12 15.75h.007v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Warning&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;A Markdown aside is useful for displaying notices, hints, or definitions to your readers.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="did-you-find-this-page-helpful-consider-sharing-it-"&gt;Did you find this page helpful? Consider sharing it 🙌&lt;/h2&gt;</description></item><item><title>👩🏼‍🏫 Teach academic courses</title><link>https://bennetoutland.github.io/blog/teach-courses/</link><pubDate>Tue, 24 Oct 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/blog/teach-courses/</guid><description>&lt;p&gt;
is designed to give technical content creators a seamless experience. You can focus on the content and the HugoBlox Kit which this template is built upon handles the rest.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Embed videos, podcasts, code, LaTeX math, and even test students!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On this page, you&amp;rsquo;ll find some examples of the types of technical content that can be rendered with Hugo Blox.&lt;/p&gt;
&lt;h2 id="citation"&gt;Citation&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s an example of citing a publication using the cite shortcode:&lt;/p&gt;
&lt;p&gt;You can also use the default view by omitting the view parameter:&lt;/p&gt;
&lt;h2 id="video"&gt;Video&lt;/h2&gt;
&lt;p&gt;Teach your course by sharing videos with your students. Choose from one of the following approaches:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Youtube&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{&amp;lt; youtube D2vj0WcvH5c &amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/D2vj0WcvH5c?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Bilibili&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{&amp;lt; bilibili BV1WV4y1r7DF &amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Video file&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Videos may be added to a page by either placing them in your &lt;code&gt;assets/media/&lt;/code&gt; media library or in your
, and then embedding them with the &lt;em&gt;video&lt;/em&gt; shortcode:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{&amp;lt; video src=&amp;quot;my_video.mp4&amp;quot; controls=&amp;quot;yes&amp;quot; &amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="podcast"&gt;Podcast&lt;/h2&gt;
&lt;p&gt;You can add a podcast or music to a page by placing the MP3 file in the page&amp;rsquo;s folder or the media library folder and then embedding the audio on your page with the &lt;em&gt;audio&lt;/em&gt; shortcode:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{&amp;lt; audio src=&amp;quot;ambient-piano.mp3&amp;quot; &amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Try it out:&lt;/p&gt;
&lt;audio controls &gt;
&lt;source src="https://bennetoutland.github.io/blog/teach-courses/ambient-piano.mp3" type="audio/mpeg"&gt;
&lt;/audio&gt;
&lt;h2 id="test-students"&gt;Test students&lt;/h2&gt;
&lt;p&gt;Provide a simple yet fun self-assessment by revealing the solutions to challenges with the &lt;code&gt;spoiler&lt;/code&gt; shortcode:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{{&amp;lt; spoiler text=&amp;#34;👉 Click to view the solution&amp;#34; &amp;gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;You found me!
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{{&amp;lt; /spoiler &amp;gt;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;renders as&lt;/p&gt;
&lt;details class="spoiler " id="spoiler-4"&gt;
&lt;summary class="cursor-pointer"&gt;👉 Click to view the solution&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
You found me 🎉
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="math"&gt;Math&lt;/h2&gt;
&lt;p&gt;HugoBlox Kit supports a Markdown extension for $\LaTeX$ math. Enable math by setting the &lt;code&gt;math: true&lt;/code&gt; option in your page&amp;rsquo;s front matter, or enable math for your entire site by toggling math in your &lt;code&gt;config/_default/params.yaml&lt;/code&gt; file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;features&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;math&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To render &lt;em&gt;inline&lt;/em&gt; or &lt;em&gt;block&lt;/em&gt; math, wrap your LaTeX math with &lt;code&gt;$...$&lt;/code&gt; or &lt;code&gt;$$...$$&lt;/code&gt;, respectively.&lt;/p&gt;
&lt;p&gt;Example &lt;strong&gt;math block&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;$$&lt;/span&gt;&lt;span class="nb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;\gamma&lt;/span&gt;&lt;span class="nb"&gt;_{n} &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\frac&lt;/span&gt;&lt;span class="nb"&gt;{ &lt;/span&gt;&lt;span class="nv"&gt;\left&lt;/span&gt;&lt;span class="nb"&gt; | &lt;/span&gt;&lt;span class="nv"&gt;\left&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;\mathbf&lt;/span&gt;&lt;span class="nb"&gt; x_{n} &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\mathbf&lt;/span&gt;&lt;span class="nb"&gt; x_{n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="nb"&gt;} &lt;/span&gt;&lt;span class="nv"&gt;\right&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;^T &lt;/span&gt;&lt;span class="nv"&gt;\left&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;\nabla&lt;/span&gt;&lt;span class="nb"&gt; F &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;\mathbf&lt;/span&gt;&lt;span class="nb"&gt; x_{n}&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\nabla&lt;/span&gt;&lt;span class="nb"&gt; F &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;\mathbf&lt;/span&gt;&lt;span class="nb"&gt; x_{n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\right&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\right&lt;/span&gt;&lt;span class="nb"&gt; |}{&lt;/span&gt;&lt;span class="nv"&gt;\left&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\|\nabla&lt;/span&gt;&lt;span class="nb"&gt; F&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;\mathbf&lt;/span&gt;&lt;span class="nb"&gt;{x}_{n}&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\nabla&lt;/span&gt;&lt;span class="nb"&gt; F&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;\mathbf&lt;/span&gt;&lt;span class="nb"&gt;{x}_{n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\right&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\|&lt;/span&gt;&lt;span class="nb"&gt;^&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="nb"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;$$&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;renders as&lt;/p&gt;
$$\gamma_{n} = \frac{ \left | \left (\mathbf x_{n} - \mathbf x_{n-1} \right )^T \left [\nabla F (\mathbf x_{n}) - \nabla F (\mathbf x_{n-1}) \right ] \right |}{\left \|\nabla F(\mathbf{x}_{n}) - \nabla F(\mathbf{x}_{n-1}) \right \|^2}$$&lt;p&gt;Example &lt;strong&gt;inline math&lt;/strong&gt; &lt;code&gt;$\nabla F(\mathbf{x}_{n})$&lt;/code&gt; renders as $\nabla F(\mathbf{x}_{n})$.&lt;/p&gt;
&lt;p&gt;Example &lt;strong&gt;multi-line math&lt;/strong&gt; using the math linebreak (&lt;code&gt;\\&lt;/code&gt;):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;$$&lt;/span&gt;&lt;span class="nb"&gt;f&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;k;p_{&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="nb"&gt;}^{&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt; &lt;/span&gt;&lt;span class="nv"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{cases}p_{&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="nb"&gt;}^{&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;} &amp;amp; &lt;/span&gt;&lt;span class="nv"&gt;\text&lt;/span&gt;&lt;span class="nb"&gt;{if }k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="nb"&gt;, &lt;/span&gt;&lt;span class="nv"&gt;\\&lt;/span&gt;&lt;span class="nb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;p_{&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="nb"&gt;}^{&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;} &amp;amp; &lt;/span&gt;&lt;span class="nv"&gt;\text&lt;/span&gt;&lt;span class="nb"&gt;{if }k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{cases}&lt;/span&gt;&lt;span class="s"&gt;$$&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;renders as&lt;/p&gt;
$$
f(k;p_{0}^{*}) = \begin{cases}p_{0}^{*} &amp; \text{if }k=1, \\
1-p_{0}^{*} &amp; \text{if }k=0.\end{cases}
$$&lt;h2 id="code"&gt;Code&lt;/h2&gt;
&lt;p&gt;HugoBlox Kit utilises Hugo&amp;rsquo;s Markdown extension for highlighting code syntax. The code theme can be selected in the &lt;code&gt;config/_default/params.yaml&lt;/code&gt; file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;```python
import pandas as pd
data = pd.read_csv(&amp;quot;data.csv&amp;quot;)
data.head()
```
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;renders as&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;data.csv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="inline-images"&gt;Inline Images&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{{&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;icon&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;python&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;gt;}}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Python&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;renders as&lt;/p&gt;
&lt;p&gt;
&lt;span class="inline-block pr-1"&gt;
&lt;svg style="height: 1em; transform: translateY(0.1em);" xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512" fill="currentColor"&gt;&lt;path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"/&gt;&lt;/svg&gt;
&lt;/span&gt; Python&lt;/p&gt;
&lt;h2 id="did-you-find-this-page-helpful-consider-sharing-it-"&gt;Did you find this page helpful? Consider sharing it 🙌&lt;/h2&gt;</description></item><item><title>Experience</title><link>https://bennetoutland.github.io/experience/</link><pubDate>Tue, 24 Oct 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/experience/</guid><description/></item><item><title>✅ Manage your projects</title><link>https://bennetoutland.github.io/blog/project-management/</link><pubDate>Mon, 23 Oct 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/blog/project-management/</guid><description>&lt;p&gt;Easily manage your projects - create ideation mind maps, Gantt charts, todo lists, and more!&lt;/p&gt;
&lt;h2 id="ideation"&gt;Ideation&lt;/h2&gt;
&lt;p&gt;Hugo Blox supports a Markdown extension for mindmaps.&lt;/p&gt;
&lt;p&gt;Simply insert a Markdown code block labelled as &lt;code&gt;markmap&lt;/code&gt; and optionally set the height of the mindmap as shown in the example below.&lt;/p&gt;
&lt;p&gt;Mindmaps can be created by simply writing the items as a Markdown list within the &lt;code&gt;markmap&lt;/code&gt; code block, indenting each item to create as many sub-levels as you need:&lt;/p&gt;
&lt;div class="highlight"&gt;
&lt;pre class="chroma"&gt;
&lt;code&gt;
```markmap {height="200px"}
- Hugo Modules
- Hugo Blox
- netlify
- netlify-cms
- slides
```
&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;renders as&lt;/p&gt;
&lt;div class="markmap" style="height: 200px;"&gt;
&lt;pre&gt;- Hugo Modules
- Hugo Blox
- netlify
- netlify-cms
- slides&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 id="diagrams"&gt;Diagrams&lt;/h2&gt;
&lt;p&gt;Hugo Blox supports the &lt;em&gt;Mermaid&lt;/em&gt; Markdown extension for diagrams.&lt;/p&gt;
&lt;p&gt;An example &lt;strong&gt;Gantt diagram&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;```mermaid
gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
```
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;renders as&lt;/p&gt;
&lt;div class="mermaid"&gt;gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
&lt;/div&gt;
&lt;h2 id="todo-lists"&gt;Todo lists&lt;/h2&gt;
&lt;p&gt;You can even write your todo lists in Markdown too:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;- [x]&lt;/span&gt; Write math example
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;- [x]&lt;/span&gt; Write diagram example
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;- [ ]&lt;/span&gt; Do something else
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;renders as&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Write math example
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Write diagram example&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Do something else&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="did-you-find-this-page-helpful-consider-sharing-it-"&gt;Did you find this page helpful? Consider sharing it 🙌&lt;/h2&gt;</description></item><item><title>Detection of Debris from a Dynamic Satellite Platform</title><link>https://bennetoutland.github.io/projects/debris-detection/</link><pubDate>Thu, 01 Jun 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/debris-detection/</guid><description>&lt;p&gt;&lt;em&gt;B. Outland, R. Loveland&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Developed a novel debris detection algorithm for space-based optical sensors. Classical background-subtraction methods systematically remove faint, slow-moving objects — exactly the objects of interest in space domain awareness.&lt;/p&gt;
&lt;p&gt;This approach uses an optical flow background removal scheme specifically designed to retain faint objects, followed by object detection classification. The method was validated on simulated imagery from a dynamic (tumbling/maneuvering) satellite observer.&lt;/p&gt;</description></item><item><title>Brayton Cycle Optimization</title><link>https://bennetoutland.github.io/projects/brayton-cycle/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/brayton-cycle/</guid><description>&lt;p&gt;Team analysis of Brayton cycle variants for optimal thermodynamic performance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Created analytical models of various Brayton cycles&lt;/li&gt;
&lt;li&gt;Analyzed cycle exergy, thermal efficiency, and net work production&lt;/li&gt;
&lt;li&gt;Gave recommendations of components most beneficial to improve cycle efficiency&lt;/li&gt;
&lt;li&gt;Proposed an optimized design&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Deep Computer Vision Demonstration</title><link>https://bennetoutland.github.io/projects/deep-computer-vision/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/deep-computer-vision/</guid><description>&lt;p&gt;An outreach demonstration introducing deep computer vision to general audiences.&lt;/p&gt;
&lt;p&gt;Developed as part of department outreach efforts at South Dakota Mines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gave an introductory presentation on applications of deep computer vision&lt;/li&gt;
&lt;li&gt;Implemented a live object detection demonstration via a CNN&lt;/li&gt;
&lt;li&gt;Modified and stabilized research code to perform live neural style transfer (NST) for various images&lt;/li&gt;
&lt;li&gt;Created a unified demonstration GUI for different computer vision algorithms&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Reinforcement Learning Control Demonstration</title><link>https://bennetoutland.github.io/projects/reinforcement-learning-demo/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/reinforcement-learning-demo/</guid><description>&lt;p&gt;An outreach demonstration introducing reinforcement learning control to general audiences.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gave an introductory presentation at an appropriate technical level for non-specialists&lt;/li&gt;
&lt;li&gt;Developed a set of demonstrations of reinforcement learning control&lt;/li&gt;
&lt;li&gt;Performed algorithm benchmarking across multiple RL approaches&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Supersonic Phase-change Ejector Cycle for Thermal Refrigeration Efficiency (SPECTRE)</title><link>https://bennetoutland.github.io/projects/spectre/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/spectre/</guid><description>&lt;p&gt;Team design project analyzing and optimizing a supersonic phase-change ejector refrigeration cycle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Created computational models of various refrigeration cycles&lt;/li&gt;
&lt;li&gt;Analyzed a variety of working fluids for each cycle design&lt;/li&gt;
&lt;li&gt;Gave recommendations of components that are most beneficial to improve cycle efficiency&lt;/li&gt;
&lt;li&gt;Proposed an optimized design via solving an optimization problem numerically&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Trebuchet Competition</title><link>https://bennetoutland.github.io/projects/trebuchet/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/trebuchet/</guid><description>&lt;p&gt;Trebuchet design and optimization as part of Rocker Robotics competition activities (2021–2023).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Assisted in trebuchet building and data collection for Rocker Robotics&lt;/li&gt;
&lt;li&gt;Performed model identification and regression to determine optimal counterweight masses and tang angles&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>UUV Self-Localization and Intelligent Mapping</title><link>https://bennetoutland.github.io/events/uuv-mapping-2023/</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/events/uuv-mapping-2023/</guid><description/></item><item><title>Rocker Robotics — National Robotics Challenge</title><link>https://bennetoutland.github.io/projects/rocker-national-robotics/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/rocker-national-robotics/</guid><description>&lt;p&gt;Rocker Robotics entry in the National Robotics Challenge Autonomous Vehicle Challenge (2021–2022).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Competed in the National Robotics Challenge&amp;rsquo;s Autonomous Vehicle Challenge&lt;/li&gt;
&lt;li&gt;Implemented computer vision techniques to locate key features on the field&lt;/li&gt;
&lt;li&gt;Created a high-fidelity simulation environment&lt;/li&gt;
&lt;li&gt;Explored reinforcement learning control strategies&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Terrain Investigational and Navigational Automaton (TINA)</title><link>https://bennetoutland.github.io/projects/tina-robot/</link><pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/projects/tina-robot/</guid><description>&lt;p&gt;A differential drive robot built for autonomous course navigation using computer vision feedback control.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Built a differential drive robot with camera module&lt;/li&gt;
&lt;li&gt;Utilized computer vision techniques to determine desired path through the course&lt;/li&gt;
&lt;li&gt;Performed pixel-to-torque control to successfully navigate the course&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Starting Longitudes and the Lifetimes of Closely Spaced Four-Planet Systems</title><link>https://bennetoutland.github.io/events/four-planet-agu-2021/</link><pubDate>Mon, 13 Dec 2021 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/events/four-planet-agu-2021/</guid><description/></item><item><title>Orbital Stability of Compact Four-Planet Systems</title><link>https://bennetoutland.github.io/events/four-planet-dps-2021/</link><pubDate>Sun, 03 Oct 2021 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/events/four-planet-dps-2021/</guid><description/></item><item><title>Dependence of Lifetimes of Closely-Spaced Planetary Systems on Number of Planets</title><link>https://bennetoutland.github.io/events/planet-lifetimes-dps-2021/</link><pubDate>Fri, 01 Oct 2021 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/events/planet-lifetimes-dps-2021/</guid><description/></item><item><title>Orbital Stability of Compact Four-Planet Systems</title><link>https://bennetoutland.github.io/events/four-planet-agu-2020/</link><pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate><guid>https://bennetoutland.github.io/events/four-planet-agu-2020/</guid><description/></item></channel></rss>