<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jupyterbook | 2i2c</title><link>https://deploy-preview-608--2i2c-org.netlify.app/tag/jupyterbook/</link><atom:link href="https://deploy-preview-608--2i2c-org.netlify.app/tag/jupyterbook/index.xml" rel="self" type="application/rss+xml"/><description>Jupyterbook</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 06 Apr 2026 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-608--2i2c-org.netlify.app/media/sharing.png</url><title>Jupyterbook</title><link>https://deploy-preview-608--2i2c-org.netlify.app/tag/jupyterbook/</link></image><item><title>Combining multiple repos into one site at jupyterbook.org</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/jupyterbook-multi-repo-site/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/jupyterbook-multi-repo-site/</guid><description>&lt;p>As part of
&lt;a href="https://github.com/2i2c-org/initiatives/issues/28" target="_blank" rel="noopener" >an initiative to improve jupyterbook.org&amp;rsquo;s documentation&lt;/a>, we refactored the site so that multiple repositories are served under one domain. We wrote up the details on the
&lt;a href="https://jupyterbook.org/blog" target="_blank" rel="noopener" >Jupyter Book blog&lt;/a>.&lt;/p>
&lt;p>Read the full post here:&lt;/p>
&lt;p>
&lt;a href="https://jupyterbook.org/blog/posts/2026/multi-repo" target="_blank" rel="noopener" >How we combine multiple repositories into one website at jupyterbook.org&lt;/a>.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./featured.png" alt="The landing page of jupyterbook.org" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Along the way we made several upstream improvements to the
&lt;a href="https://mystmd.org" target="_blank" rel="noopener" >MyST Engine&lt;/a> and the
&lt;a href="https://github.com/jupyter-book/myst-theme" target="_blank" rel="noopener" >MyST theme&lt;/a>:&lt;/p>
&lt;ul>
&lt;li>
&lt;a href="https://github.com/jupyter-book/mystmd/issues/2126" target="_blank" rel="noopener" >&lt;code>parts:&lt;/code> support for &lt;code>extends:&lt;/code>&lt;/a> and
&lt;a href="https://github.com/jupyter-book/mystmd/issues/2127" target="_blank" rel="noopener" >URL support as well&lt;/a> so we can share a footer / navbar configuration across repositories&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/myst-theme/pull/816" target="_blank" rel="noopener" >&lt;code>internal_domains&lt;/code> option&lt;/a> so that links to another repository&amp;rsquo;s content could still be treated as internal&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/mystmd/pull/2684" target="_blank" rel="noopener" >Less aggressive citation parsing&lt;/a> so that text like &lt;code>@githubhandle&lt;/code> weren&amp;rsquo;t parsed as a citation&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/myst-theme/pull/790" target="_blank" rel="noopener" >Several mobile and UX fixes&lt;/a> (that&amp;rsquo;s one, there were many others!)&lt;/li>
&lt;/ul>
&lt;p>These all felt particularly relevant for documentation that our
&lt;a href="https://2i2c.org/members" target="_blank" rel="noopener" >member communities&lt;/a> manage, where you have content split across multiple repositories but served at a single domain.&lt;/p>
&lt;h2 id="acknowledgements">
Acknowledgements
&lt;a class="header-anchor" href="#acknowledgements">#&lt;/a>
&lt;/h2>&lt;p>Thanks to
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >Project Pythia&lt;/a> and
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/earthscope/" >EarthScope&lt;/a> for collaboration and feedback that helped shape this work. And thanks to our
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/members/" >member communities&lt;/a> whose memberships fund upstream contributions like these.&lt;/p>
&lt;p>Multi-repo site support is also useful for training programs that span several content repositories, including
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/nasa-open-science/" >NASA Open Science / ScienceCore&lt;/a>.&lt;/p></description></item><item><title>Introducing Jupyter Book 2 at FOSDEM 2026</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/fosdem-jupyter-book-2/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/fosdem-jupyter-book-2/</guid><description>&lt;p>Our teammate
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/author/angus-hollands/" >Angus Hollands&lt;/a> gave a talk at FOSDEM 2026:
&lt;a href="https://fosdem.org/2026/schedule/event/ZY9WYD-introducing-jb-2/" target="_blank" rel="noopener" >Introducing Jupyter Book 2&lt;/a>.&lt;/p>
&lt;p>The talk shares why the Jupyter Book 2 and MyST stack was rebuilt, and how it supports open, reusable computational publishing workflows.&lt;/p>
&lt;ul>
&lt;li>
&lt;a href="https://video.fosdem.org/2026/aw1120/ZY9WYD-introducing-jb-2.mp4" target="_blank" rel="noopener" >Watch the recording&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://fosdem.org/2026/schedule/event/ZY9WYD-introducing-jb-2/" target="_blank" rel="noopener" >FOSDEM event page&lt;/a>&lt;/li>
&lt;/ul>
&lt;figure id="figure-slide-from-the-fosdem-2026-session-introducing-jupyter-book-2">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Slide from the FOSDEM 2026 session introducing Jupyter Book 2." srcset="
/blog/fosdem-jupyter-book-2/featured_huebc44838a5457ae22511d566a17f4261_473619_ce68173621cc9d0cafd80f67e5937361.webp 400w,
/blog/fosdem-jupyter-book-2/featured_huebc44838a5457ae22511d566a17f4261_473619_70e28470934a2403242eb19afd9cb036.webp 760w,
/blog/fosdem-jupyter-book-2/featured_huebc44838a5457ae22511d566a17f4261_473619_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-608--2i2c-org.netlify.app/blog/fosdem-jupyter-book-2/featured_huebc44838a5457ae22511d566a17f4261_473619_ce68173621cc9d0cafd80f67e5937361.webp"
width="760"
height="383"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Slide from the FOSDEM 2026 session introducing Jupyter Book 2.
&lt;/figcaption>&lt;/figure>
&lt;h2 id="learn-more">
Learn more
&lt;a class="header-anchor" href="#learn-more">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>
&lt;a href="https://proceedings.scipy.org/articles/hwcj9957" target="_blank" rel="noopener" >Jupyter Book 2 and the MyST Document Stack (SciPy 2025 paper)&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://jupyterbook.org/" target="_blank" rel="noopener" >Jupyter Book documentation&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/jupyter-book" target="_blank" rel="noopener" >Jupyter Book on GitHub&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="acknowledgements">
Acknowledgements
&lt;a class="header-anchor" href="#acknowledgements">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>Thanks to
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >Project Pythia&lt;/a> and to
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/bids/" >BIDS&lt;/a> for supporting deeper
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/blog/fosdem-jupyter-book-2/../../2025/foundational-contributions/" >foundational contributions&lt;/a> like this in Jupyter Book.&lt;/li>
&lt;li>Thanks to the
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book&lt;/a> team for helping out with slide creation and doing all the work Angus spoke about here!&lt;/li>
&lt;/ul></description></item><item><title>New Jupyter Book / MyST stack release (Jan 2026)</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/jupyter-book-release-jan-2026/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/jupyter-book-release-jan-2026/</guid><description>&lt;p>The MyST/Jupyter Book stack shipped new releases this week. Release pages:&lt;/p>
&lt;ul>
&lt;li>
&lt;a href="https://github.com/jupyter-book/mystmd/releases/tag/mystmd%401.8.0" target="_blank" rel="noopener" >mystmd 1.8.0&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/myst-theme/releases/tag/myst-to-react%401.1.0" target="_blank" rel="noopener" >myst-theme 1.1.0&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/jupyter-book/releases/tag/v2.1.1" target="_blank" rel="noopener" >Jupyter Book 2.1.1&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="where-we-contributed">
Where we contributed
&lt;a class="header-anchor" href="#where-we-contributed">#&lt;/a>
&lt;/h2>&lt;p>We&amp;rsquo;ve spent extra time lately trying to fix bugs and generally improve stability, reliability, and UX papercuts.
Here are some of the things we focused on:&lt;/p>
&lt;ul>
&lt;li>Extra review time to get in
&lt;a href="https://github.com/jupyter-book/mystmd/pull/2428" target="_blank" rel="noopener" >concurrent executions in mystmd&lt;/a>&lt;/li>
&lt;li>Fixing broken edit URL logic so our community
&lt;a href="https://github.com/jupyter-book/mystmd/pull/2642" target="_blank" rel="noopener" >&amp;ldquo;edit buttons&amp;rdquo; worked again&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/myst-theme/pull/757" target="_blank" rel="noopener" >Standardized link styles&lt;/a> so users know what to expect from links&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/myst-theme/pull/747" target="_blank" rel="noopener" >Added extra hover metadata for github issues and PRs&lt;/a> for communities that often link to their GitHub issues&lt;/li>
&lt;li>Made all of these releases and wrote up the release notes!&lt;/li>
&lt;/ul>
&lt;p>Most of our contributions were foundational in nature - we fixed a bunch of bugs, did review on the PRs of others, and managed the release process itself. Check out the changelogs for more details!&lt;/p>
&lt;h2 id="acknowledgements">
Acknowledgements
&lt;a class="header-anchor" href="#acknowledgements">#&lt;/a>
&lt;/h2>&lt;p>Thanks to our
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/members/" >member communities&lt;/a> - their memberships cover the cost of
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/blog/jupyter-book-release-jan-2026/../../2025/foundational-contributions/" >foundational upstream contributions&lt;/a> to projects like these.&lt;/p>
&lt;p>Particular thanks to
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >Project Pythia&lt;/a> which currently supports much of our upstream contributions in Jupyter Book.&lt;/p>
&lt;p>These releases also support training communities that author curricula in MyST, including
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/nasa-open-science/" >NASA ScienceCore&lt;/a>.&lt;/p></description></item><item><title>Creating a re-usable redirect generator for Jupyter Book 1 migrations</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/jb1-redirect-generator/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/jb1-redirect-generator/</guid><description>&lt;p>When migrating documentation from
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book&lt;/a> 1 to Jupyter Book 2, URL structures change dramatically and break external links. We spent some time createing a re-usable tool to solve this problem across multiple projects.&lt;/p>
&lt;p>You can check out the tool below:&lt;/p>
&lt;p>
&lt;a href="https://github.com/jupyter-book/jb1-redirect-generator" target="_blank" rel="noopener" >&lt;i class='fa-brands fa-github'>&lt;/i> jupyter-book/jb1-redirect-generator&lt;/a>&lt;/p>
&lt;p>It&amp;rsquo;s designed to be run in a self-contained way by putting the dependencies in &lt;code>script&lt;/code> metadata at the top.
This means you can run it like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">uv run https://raw.githubusercontent.com/jupyter-book/jb1-redirect-generator/main/generate_redirects.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This let&amp;rsquo;s you generate redirects from JB1 -&amp;gt; JB2 URL structures and dump them in a &lt;code>_build/html&lt;/code> folder with your JB2 built pages.&lt;/p>
&lt;p>We tested this out by converting the
&lt;a href="https://jupyter.org/governance" target="_blank" rel="noopener" >Jupyter Governance docs&lt;/a> to Jupyter Book 2 and running it there.
You can find a noxfile that runs these commands here:&lt;/p>
&lt;p>
&lt;a href="https://github.com/jupyter/governance/blob/bcdae30efdecbe75bc4751ef1fe1e602fe82ee10/noxfile.py#L25-L37" target="_blank" rel="noopener" >&lt;i class='fa-brands fa-github'>&lt;/i> jupyter/governance/blob/bcdae30efdecbe75bc4751ef1fe1e602fe82ee10/noxfile.py#L25-L37&lt;/a>&lt;/p>
&lt;p>And its use in a GitHub Workflow here:&lt;/p>
&lt;p>
&lt;a href="https://github.com/jupyter/governance/blob/bcdae30efdecbe75bc4751ef1fe1e602fe82ee10/.github/workflows/deploy.yml#L39-L44" target="_blank" rel="noopener" >&lt;i class='fa-brands fa-github'>&lt;/i> jupyter/governance/blob/bcdae30efdecbe75bc4751ef1fe1e602fe82ee10/.github/workflows/deploy.yml#L39-L44&lt;/a>&lt;/p>
&lt;h2 id="learn-more">
Learn more
&lt;a class="header-anchor" href="#learn-more">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>
&lt;a href="https://github.com/jupyter-book/jb1-redirect-generator" target="_blank" rel="noopener" >jb1-redirect-generator repository&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter/governance/pull/307" target="_blank" rel="noopener" >Jupyter governance PR using the new script&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Refactoring Jupyter Book 2 documentation ahead of a major release</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/jupyter-book-docs-refactor/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/jupyter-book-docs-refactor/</guid><description>&lt;p>Documentation is what turns open source code into products that people actually want to use. We recently spent a few days refactoring the
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book&lt;/a> documentation to prepare for the upcoming Jupyter Book 2 release, and we&amp;rsquo;re excited about how much clearer the docs have become!&lt;/p>
&lt;h2 id="what-we-did">
What we did
&lt;a class="header-anchor" href="#what-we-did">#&lt;/a>
&lt;/h2>&lt;p>We restructured the docs using the
&lt;a href="https://diataxis.fr/" target="_blank" rel="noopener" >Diataxis framework&lt;/a> to better organize content by user type and task:&lt;/p>
&lt;ul>
&lt;li>Reorganized into clear topic areas with landing pages for easier navigation&lt;/li>
&lt;li>Added missing content like the feature voting table and contributing guides&lt;/li>
&lt;li>Created upgrade guidance to help users understand the relationship between Jupyter Book 2 and MyST&lt;/li>
&lt;/ul>
&lt;p>This work helps users find what they need faster and gives the project a stronger foundation to build on going forward.&lt;/p>
&lt;h2 id="why-were-excited-about-it">
Why we&amp;rsquo;re excited about it
&lt;a class="header-anchor" href="#why-were-excited-about-it">#&lt;/a>
&lt;/h2>&lt;p>Better documentation reduces maintainer burden by helping users answer their own questions, and it makes the project more welcoming and useful to new contributors. We hope this makes Jupyter Book more accessible to everyone and lays a good foundation for the new release!&lt;/p>
&lt;p>We&amp;rsquo;re also excited because so many others helped provide edits and comments!&lt;/p>
&lt;h2 id="learn-more">
Learn more
&lt;a class="header-anchor" href="#learn-more">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>
&lt;a href="https://github.com/jupyter-book/jupyter-book/pull/2422" target="_blank" rel="noopener" >PR implementing the refactor&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://github.com/jupyter-book/jupyter-book/blob/next/docs/contribute/docs.md" target="_blank" rel="noopener" >Documentation principles we developed&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://next.jupyterbook.org" target="_blank" rel="noopener" >Jupyter Book 2 documentation&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="acknowledgements">
Acknowledgements
&lt;a class="header-anchor" href="#acknowledgements">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>Thanks to
&lt;a href="https://github.com/rlanzafame" target="_blank" rel="noopener" >@rlanzafame&lt;/a>,
&lt;a href="https://github.com/FreekPols" target="_blank" rel="noopener" >@FreekPols&lt;/a>, and
&lt;a href="https://github.com/bsipocz" target="_blank" rel="noopener" >@bsipocz&lt;/a> for their helpful reviews, edits, and feedback on the PR!&lt;/li>
&lt;li>
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >Project Pythia&lt;/a>,
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/cryocloud/" >CryoCloud&lt;/a>,
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/nasa-open-science/" >NASA Open Science / ScienceCore&lt;/a>, and the Berkeley educational projects are our primary member communities using MyST and
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book&lt;/a>. Their support covers the cost of these kinds of foundational contributions.&lt;/li>
&lt;/ul></description></item><item><title>Open slides: Jupyter Book 2 and MyST at the UC Berkeley Data Science Education Summit</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/jb2-berkeley-dsep/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/jb2-berkeley-dsep/</guid><description>&lt;p>Chris gave a talk about Jupyter Book 2 and MyST at the
&lt;a href="https://data.berkeley.edu/dsep" target="_blank" rel="noopener" >UC Berkeley Data Science Education Program&lt;/a>&amp;rsquo;s annual meeting. It covered the next direction for the Jupyter Book project, and its recent adoption of the
&lt;a href="https://mystmd.org" target="_blank" rel="noopener" >MyST Document Engine&lt;/a> for Jupyter Book 2.&lt;/p>
&lt;p>You can
&lt;a href="https://docs.google.com/presentation/d/1rHQudFtfk8ATu3Pmc1lFGDDAlCmAo8KGIk7ybTbTw6c/edit?slide=id.g2f14b3524cb_0_886#slide=id.g2f14b3524cb_0_886" target="_blank" rel="noopener" >view the full slide deck here&lt;/a>.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Slide from the presentation showing Jupyter Book 2 and MyST overview" srcset="
/blog/jb2-berkeley-dsep/featured_hu8430e0e9c10e10455f83c8ebe9d339d9_187852_44f0286415556d6afc711732dd104164.webp 400w,
/blog/jb2-berkeley-dsep/featured_hu8430e0e9c10e10455f83c8ebe9d339d9_187852_e08f8cdf1fd014b04e776593546c4dee.webp 760w,
/blog/jb2-berkeley-dsep/featured_hu8430e0e9c10e10455f83c8ebe9d339d9_187852_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-608--2i2c-org.netlify.app/blog/jb2-berkeley-dsep/featured_hu8430e0e9c10e10455f83c8ebe9d339d9_187852_44f0286415556d6afc711732dd104164.webp"
width="760"
height="424"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="learn-more">
Learn more
&lt;a class="header-anchor" href="#learn-more">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>
&lt;a href="https://docs.google.com/presentation/d/1rHQudFtfk8ATu3Pmc1lFGDDAlCmAo8KGIk7ybTbTw6c/edit?slide=id.g2f14b3524cb_0_886#slide=id.g2f14b3524cb_0_886" target="_blank" rel="noopener" >View the full slide deck&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://blog.jupyterbook.org/posts/2024-11-15-jupyter-book-2-alpha/" target="_blank" rel="noopener" >Learn about Jupyter Book 2&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/blog/jb-for-communities/" >See how we&amp;rsquo;re using Jupyter Book for communities&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://next.jupyterbook.org/" target="_blank" rel="noopener" >Jupyter Book 2 documentation&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="acknowledgements">
Acknowledgements
&lt;a class="header-anchor" href="#acknowledgements">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>Thanks to
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >Project Pythia&lt;/a> for funding some of our work on the Jupyter Book and MyST ecosystem&lt;/li>
&lt;li>Thanks to
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/cloudbank/" >CloudBank&lt;/a> for collaborating with us on adapting and deploying Jupyter Book for education and organizing this summit&lt;/li>
&lt;li>Thanks to the
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book project&lt;/a> for collaborating with us on these strategic efforts over the last years&lt;/li>
&lt;/ul></description></item><item><title>Jupyter Book at the Scientific Python 2025 Developer Summit</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/scientific-python-summit/</link><pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/scientific-python-summit/</guid><description>&lt;p>Chris and Angus recently attended the Scientific Python 2025 Developer Summit on behalf of
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book&lt;/a>, here&amp;rsquo;s
&lt;a href="https://blog.jupyterbook.org/posts/2025-05-23-scientific-python-dev-summit" target="_blank" rel="noopener" >a brief blog post about their experience&lt;/a> written with the Jupyter Book team.&lt;/p></description></item><item><title>Launching Jupyter Book for 2i2c Communities</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/jb-for-communities/</link><pubDate>Thu, 08 May 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/jb-for-communities/</guid><description>&lt;p>We&amp;rsquo;re excited to announce out-of-the-box support for
&lt;a href="https://next.jupyterbook.org" target="_blank" rel="noopener" >Jupyter Book 2&lt;/a> for our community members. This allows communities to create and share knowledge bases together for their community workflows. This post describes the motivation behind this new functionality, and how you can learn more about the project.&lt;/p>
&lt;blockquote>
&lt;p>⭐ &lt;strong>Members of 2i2c&amp;rsquo;s community network&lt;/strong> can use this feature in their hubs by following
&lt;a href="https://docs.2i2c.org/user/sharing/documentation" target="_blank" rel="noopener" >our documentation and sharing guide&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;p>A core component of our mission to make research and education more &lt;em>impactful&lt;/em>, &lt;em>accessible&lt;/em>, and &lt;em>delightful&lt;/em> is leveraging our unique
&lt;a href="https://2i2c.org/communities/" target="_blank" rel="noopener" >global network of communities&lt;/a> to make meaningful improvements to the open-source tools that power their work. Learning from one community can then provide value to our entire network, e.g.,
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/blog/pace-hackweek/" >our work with PACE on speeding up their CNN model training&lt;/a>.&lt;/p>
&lt;p>Central to our communities&amp;rsquo; work is the importance of sharing new findings, best practices, and community resources. Across our network, we have seen communities creating their own &amp;ldquo;books&amp;rdquo; that provide a home for this kind of content. Many of these books feature the concept of a &amp;ldquo;landing page&amp;rdquo; that welcomes new members, establishes an identity, and provides jumping-off points (or &amp;ldquo;calls to action&amp;rdquo;) to more detailed resources.&lt;/p>
&lt;p>Until now, each community has been required to undertake this work independently. 2i2c believes that by
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/blog/community-ownership/" >building upon existing open-source tools&lt;/a> like
&lt;a href="https://next.jupyterbook.org" target="_blank" rel="noopener" >Jupyter Book 2&lt;/a>, we can help communities focus on the &lt;em>content&lt;/em> of their home, rather than spending time worrying about its &lt;em>appearance&lt;/em>. To that end, we have been working on
&lt;a href="https://github.com/2i2c-org/infrastructure/issues/5045" target="_blank" rel="noopener" >an initiative&lt;/a> to allow communities to rapidly build interactive starter documentation and provide users with a rich, interactive, and informative onboarding experience. Through this initiative, we have:&lt;/p>
&lt;ul>
&lt;li>Improved the user experience of launching into interactive compute environments from a Jupyter Book.&lt;/li>
&lt;li>Built components into the Jupyter Book &amp;ldquo;book theme&amp;rdquo; for low-density landing page content like call-to-action blocks.&lt;/li>
&lt;li>Extended our service to co-locate community documentation alongside community hubs (i.e., &lt;code>docs.hub.2i2c.cloud&lt;/code>).&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./landing-page.png" alt="Screenshot of the 2i2c Showcase Hub landing page" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
(A screenshot of the 2i2c
&lt;a href="https://docs.showcase.2i2c.cloud/" target="_blank" rel="noopener" >Showcase Hub&lt;/a> landing page, featuring a simple banner image and call-to-action.)&lt;/p>
&lt;p>To take advantage of this feature, communities can use the
&lt;a href="https://github.com/2i2c-org/community-docs-template" target="_blank" rel="noopener" >&lt;code>2i2c-org/community-docs-template&lt;/code>&lt;/a> to deploy a Jupyter Book site to GitHub Pages. This template demonstrates simple usage of Jupyter Book 2 for computational content and landing page creation, and establishes the necessary CD workflows for web publication. Meanwhile, 2i2c can update our domain name management to point the &lt;code>docs.hub.2i2c.cloud&lt;/code> nested subdomain to the newly deployed documentation.&lt;/p>
&lt;p>For more information, see
&lt;a href="https://docs.2i2c.org/user/sharing/documentation" target="_blank" rel="noopener" >our community documentation for deploying Jupyter Books&lt;/a>.&lt;/p>
&lt;p>Developing these new capabilities taught us a lot about what makes building &amp;ldquo;good&amp;rdquo; community documentation so difficult. A wide range of bespoke website-building tools and integration quirks previously made it challenging for communities to both keep documentation current with internal changes and keep up with necessary software updates. We also learned that by trading bespoke complexity for simplicity and readability, we could build a solution that scales to multiple communities, with a consequently reduced maintenance burden.&lt;/p>
&lt;p>With these improvements, we have initiated a conversation about what a more unified &amp;ldquo;look and feel&amp;rdquo; for our network might entail, and how it might benefit our communities. Much more can be done to build on this first step, and we are eager to gather feedback on how to improve these features for users.&lt;/p>
&lt;p>To learn more about this work, consider exploring a minimal example on
&lt;a href="https://docs.showcase.2i2c.cloud/" target="_blank" rel="noopener" >our Showcase Hub&lt;/a>, and check out
&lt;a href="https://docs.2i2c.org/user/sharing/documentation" target="_blank" rel="noopener" >our service guide&lt;/a>.
&lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSff-u-sWFuwO1-VTgk2Ir7f1nfUUlLevQk_Vkk_jnmcI1nJnw/viewform" target="_blank" rel="noopener" >Let us know&lt;/a> what you think!&lt;/p></description></item><item><title>Hacking the Project Pythia Cook-off with MyST Markdown</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/project-pythia-cookoff/</link><pubDate>Tue, 18 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/project-pythia-cookoff/</guid><description>&lt;p>
&lt;figure id="figure-photo-courtesy-of-dr-debanjana-das">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./cover-featured.png" alt="Group selfie of Project Pythia Cook-off participants." loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
Photo courtesy of Dr Debanjana Das
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;h2 id="what-is-project-pythia">
What is Project Pythia?
&lt;a class="header-anchor" href="#what-is-project-pythia">#&lt;/a>
&lt;/h2>&lt;p>
&lt;a href="https://projectpythia.org/" target="_blank" rel="noopener" >Project Pythia&lt;/a> is the education working group for
&lt;a href="https://pangeo.io/index.html" target="_blank" rel="noopener" >Pangeo&lt;/a>, a community platform for Big Data geoscience in which 2i2c operates a cloud hub. The core aim of Project Pythia is to spearhead the creation and curation of community-driven, open-source documentation, in the form of &amp;ldquo;cookbooks&amp;rdquo;, to enable the adoption of &lt;em>open&lt;/em>, &lt;em>scalable&lt;/em> and &lt;em>reproducible&lt;/em> workflows for geoscientists.&lt;/p>
&lt;h2 id="what-did-2i2c-do">
What did 2i2c do?
&lt;a class="header-anchor" href="#what-did-2i2c-do">#&lt;/a>
&lt;/h2>&lt;p>Jenny, James and Angus from the 2i2c team participated in the annual
&lt;a href="https://projectpythia.org/pythia-cookoff-2024/" target="_blank" rel="noopener" >Project Pythia Cook-off 2024&lt;/a>, a hackathon where cookbook authors and collaborators can spend dedicated time on creating and maintaining their content using
&lt;a href="https://jupyterbook.org/en/stable/intro.html" target="_blank" rel="noopener" >Jupyter Book&lt;/a> and deploying their cookbooks with GitHub actions.&lt;/p>
&lt;p>2i2c teamed up with the infrastructure breakout group during the hackathon, led by Katelyn FitzGerald (
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >UCAR&lt;/a>) and Kevin Tyle (
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >University at Albany&lt;/a>), and members of the
&lt;a href="https://curvenote.com" target="_blank" rel="noopener" >Curvenote&lt;/a> team also joined the group.&lt;/p>
&lt;h2 id="day-1">
Day 1
&lt;a class="header-anchor" href="#day-1">#&lt;/a>
&lt;/h2>&lt;p>2i2c deployed and demonstrated a dedicated BinderHub service for Project Pythia that allowed hackathon participants to &amp;ldquo;self-serve&amp;rdquo; images of their software environment, which were specified by including a list of packages in an &lt;code>environment.yml&lt;/code> file placed in their GitHub cookbook repository. Participants could then pull the image from a container registry into their 2i2c hub (or indeed, any other JupyterHub server) to share and reproduce their computational environments with ease.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Screenshot of Project Pythia BinderHub service" srcset="
/blog/project-pythia-cookoff/binder_huace4be54dd679dccbefe8a204243ae9f_316548_910c0edf3df8ee944ca59a76f07cbceb.webp 400w,
/blog/project-pythia-cookoff/binder_huace4be54dd679dccbefe8a204243ae9f_316548_4c49b1ac76e6399844adddf8a1c200f3.webp 760w,
/blog/project-pythia-cookoff/binder_huace4be54dd679dccbefe8a204243ae9f_316548_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-608--2i2c-org.netlify.app/blog/project-pythia-cookoff/binder_huace4be54dd679dccbefe8a204243ae9f_316548_910c0edf3df8ee944ca59a76f07cbceb.webp"
width="760"
height="498"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="day-2">
Day 2
&lt;a class="header-anchor" href="#day-2">#&lt;/a>
&lt;/h2>&lt;p>During the first half of the day, we quickly identified a number of issues that were proving to be a maintenance headache for the Project Pythia infrastructure group:&lt;/p>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> Configuration files for each cookbook were difficult to update at scale. Project Pythia currently have a gallery of over 30 cookbooks!&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Changes to Sphinx-based themes inherited from upstream were prone to breaking custom Project Pythia branding downstream.&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Executable content was not able to run on the Project Pythia&amp;rsquo;s dedicated BinderHub hosted on
&lt;a href="https://jetstream-cloud.org/index.html" target="_blank" rel="noopener" >JetStream2&lt;/a> (operated by NSF).&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Cookbooks frequently cross-referenced materials from other cookbooks to build upon pre-existing knowledge, but this was not easy to author and the reader experience was not as smooth as it could be.&lt;/li>
&lt;/ul>
&lt;p>Following the announcement that
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/blog/project-pythia-cookoff/../myst-jupyter-book/index" >Jupyter Book 2.0 will use MyST&lt;/a> last month, Rowan (Curvenote) and Angus (2i2c) delivered a compelling demonstration of the
&lt;a href="https://mystmd.org/" target="_blank" rel="noopener" >MyST&lt;/a> ecosystem centered around modern web-first technologies (JavaScript/TypeScript) that offers improved interactivity and accessibility.&lt;/p>
&lt;p>In the second half of the day, we decided to use the hackathon to explore migrating the Pythia cookbooks from using a Sphinx-based to a MyST-based document structure and engine. Within one afternoon, the group migrated four cookbooks to use MyST MD&lt;/p>
&lt;ol>
&lt;li>
&lt;a href="https://projectpythia-mystmd.github.io/pythia-foundations/" target="_blank" rel="noopener" >Pythia Foundations&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://projectpythia-mystmd.github.io/HRRR-AWS-cookbook/" target="_blank" rel="noopener" >High Resolution Rapid Refresh on AWS&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://projectpythia-mystmd.github.io/radar-cookbook/" target="_blank" rel="noopener" >Radar Cookbook&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://projectpythia-mystmd.github.io/advanced-viz-cookbook/" target="_blank" rel="noopener" >Advanced Visualization&lt;/a>.&lt;/li>
&lt;/ol>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Screenshot of a side by side comparison of the Sphinx (left) and MyST (right) based cookbook." srcset="
/blog/project-pythia-cookoff/side-by-side_hu9cd3b350a3f864d97093bd955d197fa3_1447042_e593e37e5e427b324ce4522a66502926.webp 400w,
/blog/project-pythia-cookoff/side-by-side_hu9cd3b350a3f864d97093bd955d197fa3_1447042_d492501d5a4784b6e56aea2179e4e4d5.webp 760w,
/blog/project-pythia-cookoff/side-by-side_hu9cd3b350a3f864d97093bd955d197fa3_1447042_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-608--2i2c-org.netlify.app/blog/project-pythia-cookoff/side-by-side_hu9cd3b350a3f864d97093bd955d197fa3_1447042_e593e37e5e427b324ce4522a66502926.webp"
width="760"
height="438"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>This moment was palpably exciting! It was evident that MyST MD supported backwards compatible content out of the box, which alleviated fears of sunk cost into existing Sphinx-based cookbooks. The migration workflow was as simple as executing the following commands&lt;/p>
&lt;p>&lt;code>conda install mystmd&lt;/code>&lt;/p>
&lt;p>&lt;code>myst&lt;/code>.&lt;/p>
&lt;h2 id="day-3">
Day 3
&lt;a class="header-anchor" href="#day-3">#&lt;/a>
&lt;/h2>&lt;p>We spent this day tackling support for managing a gallery of Project Pythia cookbooks at scale. See the
&lt;a href="https://executablebooks.org/en/latest/blog/2024-06-14-project-pythia-mystmd/" target="_blank" rel="noopener" >Executable Books blog post&lt;/a> for technical details on how we&lt;/p>
&lt;ul>
&lt;li>
&lt;a href="https://github.com/projectpythia-mystmd/pythia-config" target="_blank" rel="noopener" >Centralized configuration&lt;/a>&lt;/li>
&lt;li>Prototyped a
&lt;a href="https://projectpythia-mystmd.github.io/" target="_blank" rel="noopener" >gallery&lt;/a> plugin in Python&lt;/li>
&lt;li>Fixed a number of bugs related to integrated computation with
&lt;a href="https://mystmd.org/guide/integrating-jupyter#connecting-to-a-binder" target="_blank" rel="noopener" >Binder&lt;/a> and
&lt;a href="https://mystmd.org/guide/integrating-jupyter#jupyterlite" target="_blank" rel="noopener" >JupyterLite&lt;/a>&lt;/li>
&lt;li>Embraced the referencing and reuse of content with
&lt;a href="https://mystmd.org/guide/external-references#tbl-syntax-xref" target="_blank" rel="noopener" >simple markdown syntax for hover-references&lt;/a>.&lt;/li>
&lt;/ul>
&lt;video mute autoplay loop >
&lt;source src="https://deploy-preview-608--2i2c-org.netlify.app/blog/project-pythia-cookoff/hover-ref.mp4" type="video/mp4">
&lt;/video>
&lt;h2 id="day-4">
Day 4
&lt;a class="header-anchor" href="#day-4">#&lt;/a>
&lt;/h2>&lt;p>Looking to the future, we spent time reflecting on our experiences and discussing the potential, transformative impact MyST MD tooling could have in the hands of the scientific community at large, including the communities served by 2i2c. Knowledge-sharing based on static figures and PDFs would fall obsolete and give way to a dynamic, web-first approach to sharing interactive narratives backed by compute from a Jupyter server.&lt;/p>
&lt;p>Throughout the course of the hackathon, the rate of iterated development for both end users of the community cookbook and the developers of the open-source tooling was astounding. For example, we were able to quickly expose small bugs (
&lt;a href="https://github.com/executablebooks/mystmd/issues/1297" target="_blank" rel="noopener" >e.g. support for HTML video tags&lt;/a>) in the MyST MD tooling, which were immediately fixed upstream and released within minutes. The feedback loop that connected the user experience with the software tooling was incredibly synergistic, with immediate impact both upstream and downstream that 2i2c hopes to continue replicating across many facets of their operations.&lt;/p>
&lt;p>Beyond the Project Pythia Cook-off, the breakout group will continue conversations around strengthening their community of practice and hopefully advocating for wider adoption of MyST MD amongst the scientific community (say hello to some of our group members at
&lt;a href="https://www.scipy2024.scipy.org/" target="_blank" rel="noopener" >SciPy 2024&lt;/a> in July!).&lt;/p>
&lt;h2 id="acknowledgements">
Acknowledgements
&lt;a class="header-anchor" href="#acknowledgements">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >University at Albany&lt;/a> (NSF award 2324302): Led the funding acquisition, helped organize and facilitate the event&lt;/li>
&lt;li>
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >UCAR&lt;/a> (NSF award 2324303): Led the planning and logistics for the event&lt;/li>
&lt;li>
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >Project Pythia&lt;/a> for organizing this workshop.&lt;/li>
&lt;li>
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book&lt;/a> for providing development and collaboration at this workshop.&lt;/li>
&lt;li>2i2c / Code for Science and Society (NSF award 2324304): Provided tailored compute services and on-site support&lt;/li>
&lt;li>
&lt;a href="https://curvenote.com" target="_blank" rel="noopener" >Curvenote&lt;/a>: Contributed engineering cycles to MyST MD development.&lt;/li>
&lt;/ul></description></item><item><title>Jupyter Book 2.0 will use MyST</title><link>https://deploy-preview-608--2i2c-org.netlify.app/blog/myst-jupyter-book/</link><pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-608--2i2c-org.netlify.app/blog/myst-jupyter-book/</guid><description>&lt;p>See
&lt;a href="https://executablebooks.org/en/latest/blog/2024-05-20-jupyter-book-myst/" target="_blank" rel="noopener" >the Executable Books blog&lt;/a> for a post on the future directions of the Jupyter Book project, which will be built on top of the
&lt;a href="https://mystmd.org" target="_blank" rel="noopener" >MyST Markdown engine&lt;/a>.&lt;/p>
&lt;h2 id="acknowledgements">
Acknowledgements
&lt;a class="header-anchor" href="#acknowledgements">#&lt;/a>
&lt;/h2>&lt;ul>
&lt;li>This post relates to our ongoing collaboration with the
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/jupyter-book/" >Jupyter Book&lt;/a> project.&lt;/li>
&lt;li>Thanks to
&lt;a href="https://deploy-preview-608--2i2c-org.netlify.app/collaborators/pythia/" >Project Pythia&lt;/a> for funding part of our work on Jupyter Book.&lt;/li>
&lt;/ul></description></item></channel></rss>