<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Read the Docs Blog</title>
  <id>https://blog.readthedocs.com/archive/atom.xml</id>
  <updated>2022-03-10T00:00:00Z</updated>
  <link href="https://blog.readthedocs.com" />
  <link href="https://blog.readthedocs.com/archive/atom.xml" rel="self" />
  <generator uri="http://ablog.readthedocs.org" version="0.9.5">ABlog</generator>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Read the Docs newsletter - March 2022</title>
    <id>https://blog.readthedocs.com/newsletter-march-2022/</id>
    <updated>2022-03-10T00:00:00Z</updated>
    <published>2022-03-10T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/newsletter-march-2022/" />
    <author>
      <name>Eric Holscher</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;read-the-docs-newsletter-march-2022&quot;&gt;

&lt;p&gt;It’s been pretty quiet on the company front in February,
with nothing much to report.
&lt;strong&gt;We’re actively working on our latest job description,
which will be a product-focused Python development position.&lt;/strong&gt;
If you’re interested, please &lt;a class=&quot;reference external&quot; href=&quot;mailto:hello&amp;#37;&amp;#52;&amp;#48;readthedocs&amp;#46;org?subject=Job%20Posting&quot;&gt;let us know&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;new-features&quot;&gt;
&lt;h2&gt;New features&lt;/h2&gt;
&lt;p&gt;In February we continued to work on refactors and internal changes.
Among the major user-facing changes:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;strong&gt;We now have the CDN on Read the Docs for Business in beta&lt;/strong&gt;, with a couple accounts testing it. If you’re interested, please &lt;a class=&quot;reference external&quot; href=&quot;mailto:hello&amp;#37;&amp;#52;&amp;#48;readthedocs&amp;#46;org&quot;&gt;contact us&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;You can now &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/readthedocs.org/pull/8850&quot;&gt;cancel builds&lt;/a&gt; via a button in the dashboard. This will save resources, and allow you to ensure that you don’t hit concurrency limits if you trigger a few builds at once.&lt;/li&gt;
&lt;li&gt;Projects that are imported via the API are now required to have a VCS repository linked to them, if your organization has &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/latest/commercial/single-sign-on.html#sso-with-vcs-provider-github-bitbucket-or-gitlab&quot;&gt;VCS SSO&lt;/a&gt; turned on, so that users will be able to access it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see the latest changes to our platforms in our &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/changelog.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;Read the Docs
Changelog&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;upcoming-features&quot;&gt;
&lt;h2&gt;Upcoming features&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;strong&gt;We’re working on pre and post-build steps&lt;/strong&gt;, and hope to have those released in the next week or two. This is a long-requested feature that we’re really excited to be able to share with folks.&lt;/li&gt;
&lt;li&gt;We’re getting much closer on our landing page update. They are being served from a super secret URL, and will be made our official front page before long…&lt;/li&gt;
&lt;li&gt;We continue to work on tracking 404 pages in our project analytics,
so that projects can easily fix up missing or outdated page links.&lt;/li&gt;
&lt;li&gt;We have &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/readthedocs.org/issues/8811&quot;&gt;made process on support&lt;/a&gt; for multiple projects in a single git repo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;possible-issues&quot;&gt;
&lt;h2&gt;Possible issues&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We are still watching Sphinx upgrades for possible issues they might cause around the ecosystem.&lt;/li&gt;
&lt;li&gt;We are also tracking the upcoming &lt;a class=&quot;reference internal&quot; href=&quot;../github-git-protocol-deprecation/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;Deprecation of the git:// protocol on GitHub&lt;/span&gt;&lt;/a&gt; to ensure that it will have minimal impact for our users.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;docutils&quot; /&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx or MkDocs project?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">War in Ukraine and what it means for Read the Docs</title>
    <id>https://blog.readthedocs.com/2022-war-in-ukraine/</id>
    <updated>2022-03-07T00:00:00Z</updated>
    <published>2022-03-07T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/2022-war-in-ukraine/" />
    <author>
      <name>David Fischer</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;war-in-ukraine-and-what-it-means-for-read-the-docs&quot;&gt;

&lt;p&gt;With news surrounding the invasion of Ukraine evolving rapidly,
we felt it was necessary to provide an update to our users and customers.&lt;/p&gt;
&lt;p&gt;At Read the Docs, we are outraged and saddened by the invasion of Ukraine
and we condemn this act of violence as wrong and unlawful.
We are monitoring the situation in Europe
and how it relates to our employees, customers, and our services to the open source world.&lt;/p&gt;
&lt;p&gt;Read the Docs is a very small company, with only seven employees,
and fortunately none of them are currently in harm’s way.
Our impact on the open source ecosystem, however, is bigger than our size,
and we have users all over the world, including in Ukraine and Russia.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;impact-on-our-services&quot;&gt;
&lt;h2&gt;Impact on our services&lt;/h2&gt;
&lt;p&gt;We are continuing to monitor news that could potentially affect our users,
including sanctions applied to the region.&lt;/p&gt;
&lt;p&gt;Read the Docs is currently partially blocked in Russia by the Russian government.
While we are working to resolve this,
it does not appear that this block is related to war in Ukraine.&lt;/p&gt;
&lt;p&gt;Other than this government block and potential effects from financial sanctions, our services are not impacted.
Read the Docs is hosted and incorporated in the United States,
and so any further changes to US sanctions would apply to our services.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;what-we-are-doing-and-what-you-can-do&quot;&gt;
&lt;h2&gt;What we are doing and what you can do&lt;/h2&gt;
&lt;p&gt;As the situation develops, we will be transparent about any actions we take.
We take our role of helping the open source community with documentation seriously
and we aim to be a platform for all developers.&lt;/p&gt;
&lt;p&gt;Over the coming days, our advertising arm &lt;a class=&quot;reference external&quot; href=&quot;https://ethicalads.io&quot;&gt;EthicalAds&lt;/a&gt;
will be running a series of community ads aimed at raising money
for the &lt;a class=&quot;reference external&quot; href=&quot;https://crisisrelief.un.org/&quot;&gt;United Nations Crisis Relief Fund&lt;/a&gt;
and other missions aimed at humanitarian aid for Ukraine.
If you can donate to help provide humanitarian aid, please do.&lt;/p&gt;
&lt;p&gt;We are hoping that peace is restored as quickly as possible.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Deprecation of the git:// protocol on GitHub</title>
    <id>https://blog.readthedocs.com/github-git-protocol-deprecation/</id>
    <updated>2022-03-01T00:00:00Z</updated>
    <published>2022-03-01T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/github-git-protocol-deprecation/" />
    <author>
      <name>Santos Gallegos</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;deprecation-of-the-git-protocol-on-github&quot;&gt;

&lt;p&gt;Last year, GitHub &lt;a class=&quot;reference external&quot; href=&quot;https://github.blog/2021-09-01-improving-git-protocol-security-github/&quot;&gt;announced&lt;/a&gt; the deprecation of the unsecured Git protocol due to security reasons.
This change will be made permanent on March 15, 2022.&lt;/p&gt;
&lt;p&gt;At Read the Docs we found around 900 projects using a Git protocol URL
(&lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;git://github.com/user/project&lt;/span&gt;&lt;/code&gt;) to clone their projects.
To save time for our users, we have migrated those to use the HTTPS cloning URL instead
(&lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;https://github.com/user/project&lt;/span&gt;&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;But there are other places where projects may be using a Git protocol URL,
like in submodules or dependencies. You’ll need to migrate those to use a supported
protocol in order for your builds to keep working after March 15, 2022.
In most cases, this means changing URLs that start with &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;git://&lt;/span&gt;&lt;/code&gt; to start with &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;https://&lt;/span&gt;&lt;/code&gt; instead.
If you have doubts, please check the documentation of the tools you are using,
for example:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://git-scm.com/docs/git-submodule/#Documentation/git-submodule.txt-set-url--ltpathgtltnewurlgt&quot;&gt;Git submodule URLs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://pip.pypa.io/en/stable/topics/vcs-support/#git&quot;&gt;Pip VCS support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note that this applies only to repositories hosted on GitHub&lt;/strong&gt;,
repositories using providers that support the Git protocol won’t be affected.&lt;/p&gt;
&lt;p&gt;Read the Docs tries to keep users informed about deprecations
and breaking changes that may impact projects.
To receive future updates like this, &lt;a class=&quot;reference external&quot; href=&quot;https://landing.mailerlite.com/webforms/landing/p8b7z2&quot;&gt;subscribe to our newsletter&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Read the Docs newsletter - February 2022</title>
    <id>https://blog.readthedocs.com/newsletter-february-2022/</id>
    <updated>2022-02-08T00:00:00Z</updated>
    <published>2022-02-08T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/newsletter-february-2022/" />
    <author>
      <name>Eric Holscher</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;read-the-docs-newsletter-february-2022&quot;&gt;

&lt;p&gt;Welcome to the latest edition of our monthly newsletter, where we
share the most relevant updates around Read the Docs,
offer a summary of new features we shipped
during the previous month,
and share what we’ll be focusing on in the near future.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;company-updates&quot;&gt;
&lt;h2&gt;Company updates&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We have mostly finished migrating Read the Docs for Business users to Cloudflare for SSL.
There are lots of interesting features this will enable,
so stay tuned for updates there.&lt;/li&gt;
&lt;li&gt;We’re sad to announce that &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/astrojuanlu&quot;&gt;Juan Luis&lt;/a&gt; has moved on from Read the Docs as our developer advocate.
The work he did was vital towards getting our &lt;a class=&quot;reference internal&quot; href=&quot;../czi-grant-announcement/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;CZI grant&lt;/span&gt;&lt;/a&gt; mostly finished, and we thank him for his time spent bettering the RTD, Sphinx, and docs community.&lt;/li&gt;
&lt;li&gt;On a related note, we’re going to be hiring again soon to fill another position.
It will be a bit different and likely a product-focused Python development position.
If you’re interested, please &lt;a class=&quot;reference external&quot; href=&quot;mailto:hello&amp;#37;&amp;#52;&amp;#48;readthedocs&amp;#46;org?subject=Job%20Posting&quot;&gt;let us know&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;new-features&quot;&gt;
&lt;h2&gt;New features&lt;/h2&gt;
&lt;p&gt;In January we continued to work on refactors and internal changes.
Among the major user-facing changes:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We fixed a bug in Bitbucket that didn’t allow us to properly sync user permissions.
This resulted in a few support requests, but has now been resolved.&lt;/li&gt;
&lt;li&gt;We improved our ability to mark projects as non-spam,
so that we can validate a project isn’t spam and then make sure it doesn’t get flagged by our automated system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see the latest changes to our platforms in our &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/changelog.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;Read the Docs
Changelog&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;upcoming-features&quot;&gt;
&lt;h2&gt;Upcoming features&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Cancelling a build is a long requested feature, and we’re getting close to implementing it.&lt;/li&gt;
&lt;li&gt;We’re looking at tracking 404 pages in our project analytics,
so that projects can easily fix up missing or outdated page links.&lt;/li&gt;
&lt;li&gt;We are hoping to launch our revamped landing pages this month,
which will give our front page a much needed refresh.&lt;/li&gt;
&lt;li&gt;We are working to define a policy for canonical docs and cloned versions,
so that we can more easily remove outdated docs for projects.&lt;/li&gt;
&lt;li&gt;We’re working to investigate supporting a CDN on Read the Docs for Business,
which will be an exciting new feature for our users there.&lt;/li&gt;
&lt;li&gt;We’re &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/readthedocs.org/issues/8811&quot;&gt;looking at how to support&lt;/a&gt; multiple &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;readthedocs.yml&lt;/span&gt;&lt;/code&gt; files in a single git repo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;possible-issues&quot;&gt;
&lt;h2&gt;Possible issues&lt;/h2&gt;
&lt;p&gt;We continue to see a good pace of development on the Sphinx project,
with them adding support for docutils 0.18,
and removing jQuery in a major refactor of their Javascript.
We’re working to ensure that our theme and other parts of the ecosystem don’t break with these changes,
and trying to be procative to address any possible issues.
That said,
there will likely still be some issues that sneak through with the release of Sphinx 4.5 (docutils upgrade) and Sphinx 5.0 (JS refactor).&lt;/p&gt;
&lt;hr class=&quot;docutils&quot; /&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx or MkDocs project?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Sphinx 4.4 release and other ecosystem news</title>
    <id>https://blog.readthedocs.com/sphinx-4-4-release-other-ecosystem-news/</id>
    <updated>2022-01-26T00:00:00Z</updated>
    <published>2022-01-26T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/sphinx-4-4-release-other-ecosystem-news/" />
    <author>
      <name>Juan Luis Cano Rodríguez</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;sphinx-4-4-release-and-other-ecosystem-news&quot;&gt;

&lt;p&gt;In this post we spread the word about
the most relevant news of the Sphinx ecosystem of the past weeks,
including Sphinx itself as well as extensions and themes developed by the community.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;sphinx-4-4-release&quot;&gt;
&lt;h2&gt;Sphinx 4.4 release&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Sphinx 4.4&lt;/strong&gt; was released on January 17th with numerous changes, including:&lt;/p&gt;
&lt;dl class=&quot;docutils&quot;&gt;
&lt;dt&gt;Better control of intersphinx references with the &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;:external:&lt;/span&gt;&lt;/code&gt; role&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;One of the power features of Sphinx is the ability to include
cross references across projects, using &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html&quot; title=&quot;(in Sphinx v5.0.0+)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;intersphinx&lt;/span&gt;&lt;/a&gt;.
By default, Sphinx transparently attempts to locate objects in external projects
if they are not found in the current one,
which is useful but also can become confusing in some cases.
The new &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#role-external&quot; title=&quot;(in Sphinx v5.0.0+)&quot;&gt;&lt;code class=&quot;xref rst rst-role docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;external&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; role, coupled with the
&lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#confval-intersphinx_disabled_reftypes&quot;&gt;intersphinx_disabled_reftypes&lt;/a&gt;
configuration introduced in Sphinx 4.3,
enables documentation writers to control
when intersphinx references should be used.&lt;/p&gt;
&lt;p&gt;You can use the new &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;:external:&lt;/span&gt;&lt;/code&gt; role as follows:&lt;/p&gt;
&lt;div class=&quot;highlight-rst notranslate&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;External reference: &lt;span class=&quot;na&quot;&gt;:external:py:class:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;`zipfile.ZipFile`&lt;/span&gt;.
External reference with constrained domain lookup: :external+python&lt;span class=&quot;na&quot;&gt;:py:class:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;`zipfile.ZipFile`&lt;/span&gt;.
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;See more information in &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#role-external&quot; title=&quot;(in Sphinx v5.0.0+)&quot;&gt;&lt;code class=&quot;xref rst rst-role docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;official&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;documentation&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;New asynchronous methods to load JavaScript files&lt;/dt&gt;&lt;dd&gt;The method &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_js_file&quot; title=&quot;(in Sphinx v5.0.0+)&quot;&gt;&lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;sphinx.application.Sphinx.add_js_file()&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;
now accepts a new &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;loading_method&lt;/span&gt;&lt;/code&gt; parameter that can either be &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;&amp;quot;async&amp;quot;&lt;/span&gt;&lt;/code&gt; or &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;&amp;quot;defer&amp;quot;&lt;/span&gt;&lt;/code&gt;,
which results in the script being loaded with the
&lt;a class=&quot;reference external&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async&quot;&gt;async&lt;/a&gt; or
&lt;a class=&quot;reference external&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-defer&quot;&gt;defer&lt;/a&gt;
HTML attributes respectively.&lt;/dd&gt;
&lt;dt&gt;Proper error messages when autosummary does not find a package&lt;/dt&gt;&lt;dd&gt;Sphinx ships the &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/usage/extensions/autosummary.html&quot; title=&quot;(in Sphinx v5.0.0+)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;autosummary&lt;/span&gt;&lt;/a&gt; extension
to automatically generate API pages of a Python library.
However, autosummary used to raise misleading error messages if the target library failed to import,
which resulted in user frustration.
This problem has now been fixed and autosummary properly points out the reason of the &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;ImportError&lt;/span&gt;&lt;/code&gt;.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;You can read the &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/changes.html#release-4-4-0-released-jan-17-2022&quot;&gt;complete Sphinx 4.4.0 release
notes&lt;/a&gt; online.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;using-sphinx-4-4-on-read-the-docs&quot;&gt;
&lt;h3&gt;Using Sphinx 4.4 on Read the Docs&lt;/h3&gt;
&lt;p&gt;Sphinx 4.4 is supported on Read the Docs. By default, RTD will install the latest version for you,
as described in &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/builds.html#external-dependencies&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;our documentation&lt;/span&gt;&lt;/a&gt;.
If you are &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html#pinning-dependencies&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;pinning your dependencies&lt;/span&gt;&lt;/a&gt;
to improve the reproducibility of your builds,
you can change the pinned version to &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;sphinx==4.4.0&lt;/span&gt;&lt;/code&gt;
in either your &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;requirements.txt&lt;/span&gt;&lt;/code&gt; or &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;environment.yml&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;sphinx-themes-and-extensions&quot;&gt;
&lt;h2&gt;Sphinx themes and extensions&lt;/h2&gt;
&lt;p&gt;Several other extensions and themes saw new releases recently, including:&lt;/p&gt;
&lt;dl class=&quot;docutils&quot;&gt;
&lt;dt&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/pydata/pydata-sphinx-theme/releases/tag/v0.8.0&quot;&gt;pydata-sphinx-theme 0.8&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;pydata-sphinx-theme is a Sphinx theme based on Bootstrap CSS developed by the PyData community,
The Read the Docs team collaborated with the developers
to make some of the new features of 0.8 behave correctly in our platform, in particular
&lt;a class=&quot;reference external&quot; href=&quot;https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/configuring.html#add-a-dropdown-to-switch-between-docs-versions&quot;&gt;the custom version
switcher&lt;/a&gt;.
As &lt;a class=&quot;reference external&quot; href=&quot;https://twitter.com/choldgraf/status/1482435411301449729&quot;&gt;Chris Holdgraf summarizes in this Twitter
thread&lt;/a&gt;,
the new version brings other interesting additions,
like &lt;a class=&quot;reference external&quot; href=&quot;https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/configuring.html#navigation-depth-and-collapsing-of-the-sidebar&quot;&gt;better depth control of the left
sidebar&lt;/a&gt;
and &lt;a class=&quot;reference external&quot; href=&quot;https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/configuring.html#local-image-icons&quot;&gt;custom SVG
icons&lt;/a&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-codeautolink.readthedocs.io/en/stable/release_notes.html#id2&quot;&gt;sphinx-codeautolink 0.9&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;sphinx-codeautolink is a Sphinx extension to automatically include links inside code blocks.
The 0.9 version now links Python builtin objects if intersphinx is properly configured
and has several logging improvements.&lt;/p&gt;
&lt;div class=&quot;figure align-center&quot; id=&quot;id1&quot;&gt;
&lt;img alt=&quot;Demo of sphinx-codeautolink&quot; src=&quot;../_images/sphinx-codeautolink.gif&quot; /&gt;
&lt;p class=&quot;caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;Demo of sphinx-codeautolink&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://documatt.gitlab.io/sphinxcontrib-constdata/&quot;&gt;sphinxcontrib-constdata 1.0&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;sphinxcontrib-constadata is a new Sphinx extension that allows documentation writers to
easily load data stored in CSV, JSON, and YAML files.
For example, it can be used to load UI labels (button labels, menu selection labels)
from external files instead of hardcoding them in the documentation for better maintenance,
for example:&lt;/p&gt;
&lt;div class=&quot;highlight-rst notranslate&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;Choose menu item &lt;span class=&quot;na&quot;&gt;:constdata:label:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;`menu.yaml?FileSaveAs`&lt;/span&gt;.
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;upcoming&quot;&gt;
&lt;h2&gt;Upcoming&lt;/h2&gt;
&lt;p&gt;The Executable Books Project team is working on several exciting things around MyST,
including &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/executablebooks/MyST-Parser/pull/507&quot;&gt;the upcoming MyST-Parser 0.17 release&lt;/a&gt;
and &lt;a class=&quot;reference external&quot; href=&quot;https://twitter.com/choldgraf/status/1485666900784730112&quot;&gt;direct integration with Jupyter notebooks&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;figure align-center&quot; id=&quot;id2&quot;&gt;
&lt;img alt=&quot;Preview of MyST integrated in Jupyter notebooks.&quot; src=&quot;../_images/jupyter-myst.gif&quot; /&gt;
&lt;p class=&quot;caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;Preview of MyST integrated in Jupyter notebooks.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;We are excited about seeing new and old Sphinx extensions being developed by the community,
and we thank the Sphinx maintainers for their excellent work.&lt;/p&gt;
&lt;hr class=&quot;docutils&quot; /&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Read the Docs newsletter - January 2022</title>
    <id>https://blog.readthedocs.com/newsletter-january-2022/</id>
    <updated>2022-01-12T00:00:00Z</updated>
    <published>2022-01-12T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/newsletter-january-2022/" />
    <author>
      <name>Juan Luis Cano Rodríguez</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;read-the-docs-newsletter-january-2022&quot;&gt;

&lt;p&gt;Welcome to the latest edition of our monthly newsletter, where we
share the most relevant updates around Read the Docs,
offer a summary of new features we shipped
during the previous month,
and share what we’ll be focusing on in the near future.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;company-highlights&quot;&gt;
&lt;h2&gt;Company highlights&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We are now managing custom domains for our corporate users using Cloudflare SSL for SaaS,
which will remove the manual work that was needed on our side
and make the process of setting up a custom domain almost instantaneous.
It also will allow us to offer a CDN much easier in the future.&lt;/li&gt;
&lt;li&gt;We improved our spam classification system, and started blocking the dashboard
on spammy projects. We are happy to report that the traffic to spammy projects
has already reduced significantly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;new-features&quot;&gt;
&lt;h2&gt;New features&lt;/h2&gt;
&lt;p&gt;December and January have been slow months,
and we mainly worked on internal changes and documentation improvements.
Among the major user-facing changes:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We changed the Google Analytics from a persistent 30 day cookie
to &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/readthedocs.org/pull/8694&quot;&gt;a session cookie that is deleted when the browser is
closed&lt;/a&gt;.
This will result in less data collected from users.&lt;/li&gt;
&lt;li&gt;We split the developer documentation from the user documentation to avoid confusion
and made our &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/commercial/index.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;Read the Docs for Business docs&lt;/span&gt;&lt;/a&gt; more visible.&lt;/li&gt;
&lt;li&gt;We expanded our user documentation with more examples on how to use MyST Markdown
and a &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/migrate-rest-myst.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;guide to migrate from reST to MyST&lt;/span&gt;&lt;/a&gt;
(&lt;a class=&quot;reference internal&quot; href=&quot;../sphinx-markdown-2021/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;more about our committment to support MyST in our blog&lt;/span&gt;&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to our external contributor &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/cagatay-y&quot;&gt;Çağatay Yiğit Şahin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can always see the latest changes to our platforms in our &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/changelog.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;Read the Docs
Changelog&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;upcoming-features&quot;&gt;
&lt;h2&gt;Upcoming features&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/nienn&quot;&gt;Ana&lt;/a&gt; will continue working on the new landing pages,
polishing the copywriting along with &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/astrojuanlu&quot;&gt;Juan Luis&lt;/a&gt;
and translating the mockups to Pelican templates.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/agjohnson&quot;&gt;Anthony&lt;/a&gt; will continue working on frontend scaffolding
and finance bits.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/ericholscher&quot;&gt;Eric&lt;/a&gt; will continue to focus on business and sales efforts,
and performing code review.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/astrojuanlu&quot;&gt;Juan Luis&lt;/a&gt; will work with &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/nienn&quot;&gt;Ana&lt;/a&gt; in the new landing pages,
and with &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/humitos&quot;&gt;Manuel&lt;/a&gt; in a new process to migrate users from legacy
or deprecated configurations.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/humitos&quot;&gt;Manuel&lt;/a&gt; will wrap up the migration to Django 3,
improve the queryability of the project configuration in our database,
and refactor our task queue to improve its robustness.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/stsewd&quot;&gt;Santos&lt;/a&gt; will add support for multiple &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;.readthedocs.yaml&lt;/span&gt;&lt;/code&gt; files per repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;possible-issues&quot;&gt;
&lt;h2&gt;Possible issues&lt;/h2&gt;
&lt;p&gt;The Python packaging ecosystem is evolving rapidly
to accomodate for modern standards that will make our life easier,
and in particular setuptools has been introducing some breaking changes in recent times.
We anticipated this sort of breakage for our users
so &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/readthedocs.org/pull/8711&quot;&gt;we pinned the setuptools version in late
November&lt;/a&gt;.
However, a small number of projects did not have this version cap active
because of a bug on our side
and experienced failing builds after a new setuptools release.
We quickly fixed the problem
and offered a range of possible solutions to affected projects.&lt;/p&gt;
&lt;hr class=&quot;docutils&quot; /&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx or MkDocs project?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Sphinx and Markdown around the world in 2021</title>
    <id>https://blog.readthedocs.com/sphinx-markdown-2021/</id>
    <updated>2021-12-20T00:00:00Z</updated>
    <published>2021-12-20T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/sphinx-markdown-2021/" />
    <author>
      <name>Juan Luis Cano Rodríguez</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;sphinx-and-markdown-around-the-world-in-2021&quot;&gt;

&lt;p&gt;Read the Docs has been committed to improving the accessibility
and user experience of Sphinx since the start,
and that includes the markup language in which the documentation is written.
Years ago, after carefully listening to users,
&lt;a class=&quot;reference internal&quot; href=&quot;../adding-markdown-support/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;we announced recommonmark&lt;/span&gt;&lt;/a&gt;
to help bridging the immense popularity of Markdown
with the powerful capabilities of Sphinx.
(It is now deprecated in favor of MyST - keep reading to know more.)&lt;/p&gt;
&lt;p&gt;It is no surprise that Markdown is in such demand:
thanks in large part to the huge popularity of GitHub,
&lt;a class=&quot;reference external&quot; href=&quot;https://passo.uno/docs-as-code-tools-open-standards/&quot;&gt;Markdown is nowadays the most widely used markup language in open-source
projects&lt;/a&gt;,
ahead of reStructuredText, the second in the list, by an order of magnitude.&lt;/p&gt;
&lt;p&gt;This year, thanks to the CZI Grant we received last year
and the effort of other communities,
especially &lt;a class=&quot;reference external&quot; href=&quot;https://executablebooks.org&quot;&gt;the Executable Book Project&lt;/a&gt;,
we have devoted lots of resources to help consolidate Markdown
as a compelling markup language for Sphinx.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;writing-markdown-in-sphinx&quot;&gt;
&lt;h2&gt;Writing Markdown in Sphinx&lt;/h2&gt;
&lt;p&gt;To that end, we recognized the potential of MyST as a successor of recommonmark,
and &lt;a class=&quot;reference internal&quot; href=&quot;../newsletter-april-2021/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;deprecated the latter in favor of MyST-Parser&lt;/span&gt;&lt;/a&gt;.
To &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/usage/markdown.html&quot; title=&quot;(in Sphinx v5.0.0+)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;start writing Markdown in Sphinx&lt;/span&gt;&lt;/a&gt;,
you need to follow three steps:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Install &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;MyST-Parser&lt;/span&gt;&lt;/code&gt;: &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;pip&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;myst-parser&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;myst_parser&lt;/span&gt;&lt;/code&gt; to the list of Sphinx extensions:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;highlight-python notranslate&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;extensions&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;# ...other extensions&lt;/span&gt;
&lt;span class=&quot;hll&quot;&gt;    &lt;span class=&quot;s2&quot;&gt;&amp;quot;myst_parser&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Start writing content in &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;*.md&lt;/span&gt;&lt;/code&gt; files!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find more information in the &lt;a class=&quot;reference external&quot; href=&quot;https://myst-parser.readthedocs.io/en/v0.16.0/index.html&quot; title=&quot;(in MyST Parser v0.16.0)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;MyST-Parser documentation&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;talks-and-workshops-at-conferences&quot;&gt;
&lt;h2&gt;Talks and workshops at conferences&lt;/h2&gt;
&lt;p&gt;Luckily the migration to MyST-Parser was trivial for most projects,
but we still wanted to spread the word about
the best practices for creating Sphinx projects on Read the Docs using MyST Markdown.
We set the goal of presenting at every large scientific Python event out there,
and all our proposals were accepted &lt;a class=&quot;footnote-reference&quot; href=&quot;#id2&quot; id=&quot;id1&quot;&gt;[1]&lt;/a&gt;! Throughout 2021, we were present in several events:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We conducted a networking session and a sprint about documentation
at &lt;a class=&quot;reference external&quot; href=&quot;https://www.scipy2021.scipy.org&quot;&gt;SciPy US&lt;/a&gt;,
and in that event we were kindly invited to
the &lt;a class=&quot;reference external&quot; href=&quot;https://www.eventbrite.com/e/sktime-doc-sprint-tickets-164990684579&quot;&gt;sktime documentation sprint&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We delivered a 90 minutes tutorial called
&lt;a class=&quot;reference external&quot; href=&quot;https://pydata.org/global2021/schedule/presentation/17/document-your-scientific-project-with-markdown-sphinx-and-read-the-docs/&quot;&gt;“Document your scientific project with Markdown, Sphinx, and Read the
Docs”&lt;/a&gt;
at PyData Global,
and we repeated a 120 minute version in Spanish language
at the &lt;a class=&quot;reference external&quot; href=&quot;https://conf.scipy.lat/en/&quot;&gt;SciPy Latin America&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;And we also gave shorter talks at more broadly focused events:
&lt;a class=&quot;reference external&quot; href=&quot;https://www.pylatam.org/&quot;&gt;PyCon Latam&lt;/a&gt; and &lt;a class=&quot;reference external&quot; href=&quot;https://2021.es.pycon.org/&quot;&gt;PyCon Spain&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We have generated workshop material that everybody is welcome to use:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;A &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/tutorial-sphinx-markdown&quot;&gt;main repository&lt;/a&gt;
containing some introductory slides about Sphinx,
and detailed notes of every step of the tutorial.&lt;/li&gt;
&lt;li&gt;A &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/tutorial-sphinx-markdown-library/&quot;&gt;supporting repository&lt;/a&gt;
with a tiny Python library that gets used during the tutorial,
inspired by the one used in the &lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/en/master/tutorial/index.html&quot; title=&quot;(in Sphinx v5.0.0+)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;official Sphinx tutorial&lt;/span&gt;&lt;/a&gt;
we authored with the help of the Sphinx community.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And finally, we have also developed an interactive web application to
&lt;a class=&quot;reference external&quot; href=&quot;https://mystyc.herokuapp.com/&quot;&gt;translate small bits of reStructuredText to MyST Markdown&lt;/a&gt;.&lt;/p&gt;
&lt;table class=&quot;docutils footnote&quot; frame=&quot;void&quot; id=&quot;id2&quot; rules=&quot;none&quot;&gt;
&lt;colgroup&gt;&lt;col class=&quot;label&quot; /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td class=&quot;label&quot;&gt;&lt;a class=&quot;fn-backref&quot; href=&quot;#id1&quot;&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;We also have submitted a proposal for SciPy India,
which was postponed to January 2022.
EuroSciPy and SciPy Japan didn’t happen in 2021.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;future-plans&quot;&gt;
&lt;h2&gt;Future plans&lt;/h2&gt;
&lt;p&gt;We are excited to see that the Executable Books team
has released &lt;a class=&quot;reference external&quot; href=&quot;https://pypi.org/project/myst-docutils/&quot;&gt;myst-docutils&lt;/a&gt;,
which should help docutils parse CommonMark directly
and possibly pave the way for Sphinx to parse Markdown
without the need of third party extensions.
Hopefully that will also make it easier for Sphinx
to showcase Markdown content in its documentation more prominently,
and users will be able to naturally pick the markup language
that best suits their needs, be it reST or MyST.&lt;/p&gt;
&lt;p&gt;—&lt;/p&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx, Jupyter Book, or MkDocs project?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Read the Docs newsletter - December 2021</title>
    <id>https://blog.readthedocs.com/newsletter-december-2021/</id>
    <updated>2021-12-14T00:00:00Z</updated>
    <published>2021-12-14T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/newsletter-december-2021/" />
    <author>
      <name>Juan Luis Cano Rodríguez</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;read-the-docs-newsletter-december-2021&quot;&gt;

&lt;p&gt;Welcome to the latest edition of our monthly newsletter, where we
share the most relevant updates around Read the Docs,
offer a summary of new features we shipped
during the previous month,
and share what we’ll be focusing on in the near future.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;company-highlights&quot;&gt;
&lt;h2&gt;Company highlights&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We successfully deployed mitigation measures against spam,
and we are happy to report that the amount of abusive projects
has dramatically decreased.&lt;/li&gt;
&lt;li&gt;We started tracking usage of different parts of our application
in a more systematic fashion which will enable us to make
better product design decisions going forward.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;new-features&quot;&gt;
&lt;h2&gt;New features&lt;/h2&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We revamped our support for &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/build-notifications.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;webhooks&lt;/span&gt;&lt;/a&gt;:
now they have a dedicated section in the project settings,
you can customize the payload,
and you can inspect the status of each webhook delivery.
Interested in receiving build notifications on &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/build-notifications.html#slack&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;Slack&lt;/span&gt;&lt;/a&gt;
or &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/build-notifications.html#discord&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;Discord&lt;/span&gt;&lt;/a&gt;? Now you can!&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;figure align-center&quot; id=&quot;id1&quot;&gt;
&lt;img alt=&quot;Revamped webhooks&quot; src=&quot;../_images/webhooks-events.png&quot; style=&quot;width: 80%;&quot; /&gt;
&lt;p class=&quot;caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;Revamped webhooks&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;On Read the Docs for Business, we improved our security audit logs to show information from all the organization
according to its plan.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;figure align-center&quot; id=&quot;id2&quot;&gt;
&lt;img alt=&quot;Organization audit logs&quot; src=&quot;../_images/organization-audit-logs.png&quot; style=&quot;width: 80%;&quot; /&gt;
&lt;p class=&quot;caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;Organization audit logs&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;We expanded our documentation to describe &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/faq.html#how-can-i-deploy-jupyter-book-projects-on-read-the-docs&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;how document projects with Jupyter
Book&lt;/span&gt;&lt;/a&gt;
and &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/poetry.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;how to use Poetry for dependency management&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to our external contributor &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/rokroskar&quot;&gt;Rok Roškar&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can always see the latest changes to our platforms in our &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/changelog.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;Read the Docs
Changelog&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;upcoming-features&quot;&gt;
&lt;h2&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;With the Christmas holidays coming up, we will have a few slow weeks ahead.&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/nienn&quot;&gt;Ana&lt;/a&gt; will keep working on the complete redesign of our community site,
which is already making good progress.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/agjohnson&quot;&gt;Anthony&lt;/a&gt; will work with &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/nienn&quot;&gt;Ana&lt;/a&gt; on the structure of our new community site
and document our upcoming new user interface.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/ericholscher&quot;&gt;Eric&lt;/a&gt; will continue working on our commercial SSL provisioning and CDN with &lt;a class=&quot;reference external&quot; href=&quot;https://github.com/stsewd&quot;&gt;Santos&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/astrojuanlu&quot;&gt;Juan Luis&lt;/a&gt; will continue promoting our Embed API as well as wrap up
his work on the Sphinx tutorial.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/humitos&quot;&gt;Manuel&lt;/a&gt; will adjust the new logging and spam fighting systems,
and continue making progress on the new metrics infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/stsewd&quot;&gt;Santos&lt;/a&gt; will do the final bits of CDN work on our commercial site,
finish moving our development documentation to a separate project,
and continue unifying our commercial and community codebases.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;possible-issues&quot;&gt;
&lt;h2&gt;Possible issues&lt;/h2&gt;
&lt;p&gt;Last week we accidentally banned a small number of legitimate users
and they saw their projects temporarily blocked.
As soon as we noticed this we apologized to the affected users
and rolled back the ban, and the documentation is now serving normally.&lt;/p&gt;
&lt;hr class=&quot;docutils&quot; /&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx or MkDocs project?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Announcing Embed API v3 and sphinx-hoverxref 1.0</title>
    <id>https://blog.readthedocs.com/embed-api-v3/</id>
    <updated>2021-12-07T00:00:00Z</updated>
    <published>2021-12-07T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/embed-api-v3/" />
    <author>
      <name>Juan Luis Cano Rodríguez</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;announcing-embed-api-v3-and-sphinx-hoverxref-1-0&quot;&gt;

&lt;p&gt;We are thrilled to announce the availability of Read the Docs Embed API v3,
along with its official client, sphinx-hoverxref 1.0.
This work has been possible in part thanks to the
&lt;a class=&quot;reference internal&quot; href=&quot;../czi-grant-announcement/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;the CZI grant we received&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;the-value-of-content-embedding&quot;&gt;
&lt;h2&gt;The value of content embedding&lt;/h2&gt;
&lt;p&gt;As we wrote in
&lt;a class=&quot;reference internal&quot; href=&quot;../hoverxref-intersphinx/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;our first blog post about sphinx-hoverxref&lt;/span&gt;&lt;/a&gt;,
one of the most powerful features of Sphinx
is the possibility of creating cross references
to other documentation projects.
However, a reader finding several links in a technical documentation
might need to open several browser tabs to fully understand the context,
resulting in a lot of friction in the form of context switching.&lt;/p&gt;
&lt;p&gt;One way of mitigating the problem is to show a small preview
in the form of tooltip or modal with the contents of the link.
This is where the Embed API and sphinx-hoverxref come in.&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/&quot;&gt;sphinx-hoverxref&lt;/a&gt; is a Sphinx extension that addresses this problem
by adding tooltips on the cross references of the HTML documentation
with the content of the linked section.
To do so, it inserts a small JavaScript file that
calls the Read the Docs Embed API when the user hovers any link.
&lt;a class=&quot;reference internal&quot; href=&quot;../hoverxref-intersphinx/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;Back in June&lt;/span&gt;&lt;/a&gt; we announced
intersphinx support in &lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/&quot;&gt;sphinx-hoverxref&lt;/a&gt; 0.6b1,
which allowed users to include modals and tooltips
also for cross references to other projects.&lt;/p&gt;
&lt;div class=&quot;figure align-center&quot; id=&quot;id2&quot;&gt;
&lt;a class=&quot;reference external image-reference&quot; href=&quot;/_images/sphinx-hoverxref-showcase.gif&quot;&gt;&lt;img alt=&quot;sphinx-hoverxref displaying tooltips for cross references&quot; src=&quot;../_images/sphinx-hoverxref-showcase.gif&quot; style=&quot;width: 60%;&quot; /&gt;&lt;/a&gt;
&lt;p class=&quot;caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;sphinx-hoverxref displaying a tooltip including an equation&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Some big projects already using it include &lt;a class=&quot;reference external&quot; href=&quot;https://docs.tweepy.org/&quot;&gt;Tweepy&lt;/a&gt;,
a Python client for Twitter, and &lt;a class=&quot;reference external&quot; href=&quot;https://docs.scrapy.org/&quot;&gt;Scrapy&lt;/a&gt;,
a framework for crawling websites.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;embed-api-v3-and-sphinx-hoverxref-1-0&quot;&gt;
&lt;h2&gt;Embed API v3 and sphinx-hoverxref 1.0&lt;/h2&gt;
&lt;p&gt;After some months of work, &lt;strong&gt;we are excited to publish v3 of our Embed API,
and with it, version 1.0 of sphinx-hoverxref&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Among other things,
the new versions allow you to
&lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/embedding-content.html#embedding-content-from-your-documentation&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;embed content from pages hosted outside Read the Docs&lt;/span&gt;&lt;/a&gt;.
For security reasons, we have an allowlist of such external domains
that currently includes Python, NumPy, SciPy, SymPy,
and we would like to
&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/readthedocs.org/issues&quot;&gt;invite the community to suggest more domains to add&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Other additions and fixes include:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Support for JS and CSS assets in Sphinx 4.1+.&lt;/li&gt;
&lt;li&gt;Support for &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;glossary&lt;/span&gt;&lt;/code&gt; / &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;term&lt;/span&gt;&lt;/code&gt; and sphinxcontrib-bibtex.&lt;/li&gt;
&lt;li&gt;Avoid showing the browser built-in tooltip for links that have the extension enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, version 3 of the Embed API
paves the way for supporting non-Sphinx projects in the future.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;embedding-content-with-sphinx-hoverxref&quot;&gt;
&lt;h2&gt;Embedding content with sphinx-hoverxref&lt;/h2&gt;
&lt;p&gt;To use sphinx-hoverxref in your Read the Docs project,
&lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;declare it as part of your dependencies&lt;/span&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&quot;literal-block-wrapper docutils container&quot; id=&quot;id3&quot;&gt;
&lt;div class=&quot;code-block-caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;requirements.txt&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;highlight-default notranslate&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sphinx&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;4.3.1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sphinx_rtd_theme&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1.0.0&lt;/span&gt;
&lt;span class=&quot;hll&quot;&gt;&lt;span class=&quot;n&quot;&gt;sphinx&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;hoverxref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1.0.0&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And add it to your list of Sphinx extensions:&lt;/p&gt;
&lt;div class=&quot;literal-block-wrapper docutils container&quot; id=&quot;id4&quot;&gt;
&lt;div class=&quot;code-block-caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;conf.py&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;highlight-default notranslate&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;extensions&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;# ...other extensions&lt;/span&gt;
&lt;span class=&quot;hll&quot;&gt;    &lt;span class=&quot;s2&quot;&gt;&amp;quot;hoverxref.extension&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To enable the extension on all &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;:ref:&lt;/span&gt;&lt;/code&gt; of your documentation,
set the &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;hoverxref_auto_ref&lt;/span&gt;&lt;/code&gt; to &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;True&lt;/span&gt;&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;literal-block-wrapper docutils container&quot; id=&quot;id5&quot;&gt;
&lt;div class=&quot;code-block-caption&quot;&gt;&lt;span class=&quot;caption-text&quot;&gt;conf.py&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;highlight-default notranslate&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;hoverxref_auto_ref&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;True&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And you will start seeing tooltips on your internal references.
Apart from &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;:ref:&lt;/span&gt;&lt;/code&gt; roles, you can also enable tooltips on:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/en/stable/usage.html#tooltip-on-sphinx-domains&quot; title=&quot;(in sphinx-hoverxref)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;Code objects from any Sphinx domain&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/en/stable/usage.html#tooltip-on-glossary-terms&quot; title=&quot;(in sphinx-hoverxref)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;Glossary terms&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/en/stable/usage.html#tooltip-on-sphinxcontrib-bibtex-cites&quot; title=&quot;(in sphinx-hoverxref)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;BibTeX citations&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/en/stable/usage.html#tooltip-with-content-that-needs-extra-rendering-steps&quot; title=&quot;(in sphinx-hoverxref)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;Pages containing extra JavaScript like sphinx-tabs and
MathJax&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/en/stable/usage.html#tooltip-on-intersphinx-content&quot; title=&quot;(in sphinx-hoverxref)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;Intersphinx references&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;reference external&quot; href=&quot;https://sphinx-hoverxref.readthedocs.io/en/stable/usage.html#tooltip-on-custom-object&quot; title=&quot;(in sphinx-hoverxref)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;And custom objects!&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;admonition note&quot;&gt;
&lt;p class=&quot;first admonition-title&quot;&gt;Note&lt;/p&gt;
&lt;p class=&quot;last&quot;&gt;sphinx-hoverxref includes the JavaScript embed client in the HTML assets,
but it is not yet available as a standalone library that can be reused
with standard frontend packaging tools.
If you would like to see this happening,
&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/readthedocs/sphinx-hoverxref/issues/&quot;&gt;let us know&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;calling-the-embed-api-directly&quot;&gt;
&lt;h2&gt;Calling the Embed API directly&lt;/h2&gt;
&lt;p&gt;As explained in &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/embedding-content.html#calling-the-embed-api-directly&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;our embedding
guide&lt;/span&gt;&lt;/a&gt;,
you can call the API directly from any HTTP client:&lt;/p&gt;
&lt;div class=&quot;highlight-console notranslate&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;curl -s &lt;span class=&quot;s2&quot;&gt;&amp;quot;https://readthedocs.org/api/v3/embed/\&lt;/span&gt;
&lt;span class=&quot;gp&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;?url=https://docs.readthedocs.io/en/latest/features.html\&lt;/span&gt;
&lt;span class=&quot;gp&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%23read-the-docs-features&amp;quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;|&lt;/span&gt; python -m json.tool
&lt;span class=&quot;go&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;go&quot;&gt;  &amp;quot;url&amp;quot;: &amp;quot;https://docs.readthedocs.io/en/latest/features.html#read-the-docs-features&amp;quot;,&lt;/span&gt;
&lt;span class=&quot;go&quot;&gt;  &amp;quot;fragment&amp;quot;: &amp;quot;read-the-docs-features&amp;quot;,&lt;/span&gt;
&lt;span class=&quot;go&quot;&gt;  &amp;quot;content&amp;quot;: &amp;quot;&amp;lt;div class=\&amp;quot;section\&amp;quot; id=\&amp;quot;read-the-docs-features\&amp;quot;&amp;gt;\n&amp;lt;h1&amp;gt;Read the Docs ...&amp;quot;,&lt;/span&gt;
&lt;span class=&quot;go&quot;&gt;  &amp;quot;external&amp;quot;: false&lt;/span&gt;
&lt;span class=&quot;go&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Or visually explore the query in the &lt;a class=&quot;reference external&quot; href=&quot;https://readthedocs.org/api/v3/embed/?url=https://docs.readthedocs.io/en/latest/features.html%23read-the-docs-features&quot;&gt;web interface&lt;/a&gt; instead.&lt;/p&gt;
&lt;p&gt;The &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/api/v3.html#embed&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;reference documentation&lt;/span&gt;&lt;/a&gt;
includes more detail about the parameters and return values of the API.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;try-it-out&quot;&gt;
&lt;h2&gt;Try it out!&lt;/h2&gt;
&lt;p&gt;We would like to invite the community to try out these features and
send us feedback. With the help of our users, we will keep moving towards
a more cohesive documentation ecosystem of interlinked Python projects.&lt;/p&gt;
&lt;hr class=&quot;docutils&quot; /&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx or MkDocs project?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="https://blog.readthedocs.com/archive/atom.xml">
    <title type="text">Read the Docs ❤️ Jupyter Book</title>
    <id>https://blog.readthedocs.com/jupyter-book-read-the-docs/</id>
    <updated>2021-11-11T00:00:00Z</updated>
    <published>2021-11-11T00:00:00Z</published>
    <link href="https://blog.readthedocs.com/jupyter-book-read-the-docs/" />
    <author>
      <name>Juan Luis Cano Rodríguez</name>
    </author>
    <content type="html">&lt;div class=&quot;section&quot; id=&quot;read-the-docs-jupyter-book&quot;&gt;

&lt;p&gt;We are proud to announce that now Jupyter Book projects are supported on Read the Docs!&lt;/p&gt;
&lt;p&gt;Both Read the Docs and The Executable Book Project, the folks behind Jupyter Book,
share a common passion for documentation,
and we have been collaborating on various topics for some time already.
For example, we started promoting MyST in favor of our recommonmark
&lt;a class=&quot;reference internal&quot; href=&quot;../newsletter-april-2021/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;back in April this year&lt;/span&gt;&lt;/a&gt;,
and we wrote a guide on &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/jupyter.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;using Jupyter notebook with Sphinx&lt;/span&gt;&lt;/a&gt;
that benefitted a lot from their feedback.&lt;/p&gt;
&lt;p&gt;Now we are happy to announce that Jupyter Book itself is supported on Read the Docs,
after some thorough discussion about the possible implementations
and thanks in large part to the Jupyter Book developers,
who addressed all the minor incompatibilities that prevented this from happening.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;what-is-jupyter-book&quot;&gt;
&lt;h2&gt;What is Jupyter Book?&lt;/h2&gt;
&lt;p&gt;According to &lt;a class=&quot;reference external&quot; href=&quot;https://jupyterbook.org/&quot;&gt;its own documentation&lt;/a&gt;,&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;Jupyter Book is an open source project for building beautiful,
publication-quality books and documents from computational material.&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Jupyter Book is the flagship product of &lt;a class=&quot;reference external&quot; href=&quot;https://executablebooks.org/&quot;&gt;the Executable Book Project&lt;/a&gt;,
an international collaboration between several universities and software projects
seeking to build open source tools
that facilitate publishing computational narratives
using the Jupyter ecosystem.&lt;/p&gt;
&lt;p&gt;Even though Jupyter Book is much younger than Read the Docs as a project,
it has become very popular in recent times
among scientific software developers and educators.
It enables users to
write publication-quality content in Markdown thanks to &lt;a class=&quot;reference external&quot; href=&quot;https://myst-parser.readthedocs.io/&quot;&gt;MyST&lt;/a&gt;
(a Markdown dialect compatible with Sphinx
&lt;a class=&quot;reference internal&quot; href=&quot;../newsletter-april-2021/&quot;&gt;&lt;span class=&quot;doc&quot;&gt;we started promoting back in April this year&lt;/span&gt;&lt;/a&gt;),
use Jupyter notebooks to author content thanks to &lt;a class=&quot;reference external&quot; href=&quot;https://myst-nb.readthedocs.io/&quot;&gt;MyST-NB&lt;/a&gt;
(featured in our &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/en/stable/guides/jupyter.html&quot; title=&quot;(in Read the Docs user documentation v7.4.1)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;Jupyter on Sphinx guide&lt;/span&gt;&lt;/a&gt;),
easily add interactivity thanks to &lt;a class=&quot;reference external&quot; href=&quot;https://thebe.readthedocs.io&quot;&gt;Thebe&lt;/a&gt;,
and much more.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;why-a-change-was-needed&quot;&gt;
&lt;h2&gt;Why a change was needed&lt;/h2&gt;
&lt;p&gt;Read the Docs supports two documentation generation systems
&lt;a class=&quot;reference external&quot; href=&quot;https://www.sphinx-doc.org/&quot;&gt;Sphinx&lt;/a&gt; and &lt;a class=&quot;reference external&quot; href=&quot;https://www.mkdocs.org/&quot;&gt;MkDocs&lt;/a&gt;.
Adding extra systems is difficult with the current codebase,
because it requires lots of effort to match all the features
currently supported by the existing ones.&lt;/p&gt;
&lt;p&gt;On the other hand, even though &lt;a class=&quot;reference external&quot; href=&quot;https://jupyterbook.org/explain/sphinx.html#jupyter-book-is-a-distribution-of-sphinx&quot;&gt;Jupyter Book leverages Sphinx “for almost everything that it
does”&lt;/a&gt;,
it purposefully hides some of the Sphinx implementation details from the user
to create a more user friendly experience.
One of the consequences of this is that
the assumptions that Read the Docs makes to build the documentation of Sphinx projects don’t hold:
in particular, Jupyter Book uses a declarative configuration file &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;_config.yml&lt;/span&gt;&lt;/code&gt;
that gets translated on the fly to the Sphinx dynamic configuration usually stored in &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;conf.py&lt;/span&gt;&lt;/code&gt;.
As a result, Jupyter Book projects could not be hosted on Read the Docs - until now!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;how-to-deploy-a-jupyter-book-project-to-read-the-docs&quot;&gt;
&lt;h2&gt;How to deploy a Jupyter Book project to Read the Docs&lt;/h2&gt;
&lt;p&gt;With the current development version of Jupyter Book,
you can now export a Sphinx &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;conf.py&lt;/span&gt;&lt;/code&gt; configuration
from the Jupyter Book declarative &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;_config.yml&lt;/span&gt;&lt;/code&gt;
and save it to disk,
which allows Read the Docs to build the documentation from it
like any other Sphinx project.&lt;/p&gt;
&lt;p&gt;The challenge then becomes keeping both configuration files synchronized,
since every update to &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;_config.yml&lt;/span&gt;&lt;/code&gt; or new Jupyter Book release
can potentially produce changes in the &lt;code class=&quot;docutils literal notranslate&quot;&gt;&lt;span class=&quot;pre&quot;&gt;conf.py&lt;/span&gt;&lt;/code&gt;.
As described in &lt;a class=&quot;reference external&quot; href=&quot;https://jupyterbook.org/publish/readthedocs.html&quot; title=&quot;(in Python)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;the official documentation&lt;/span&gt;&lt;/a&gt;,
users can either &lt;a class=&quot;reference external&quot; href=&quot;https://jupyterbook.org/sphinx/index.html#sphinx-convert&quot; title=&quot;(in Python)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;manually export the configuration&lt;/span&gt;&lt;/a&gt;
running a command at will,
or &lt;a class=&quot;reference external&quot; href=&quot;https://jupyterbook.org/sphinx/index.html#sphinx-convert-pre-commit&quot; title=&quot;(in Python)&quot;&gt;&lt;span class=&quot;xref std std-ref&quot;&gt;set up an automation to do it on every change&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To see this in action, have a look at
&lt;a class=&quot;reference external&quot; href=&quot;https://github.com/astrojuanlu/jupyterbook-on-read-the-docs&quot;&gt;this example project&lt;/a&gt;
that contains the bare minimum to make &lt;a class=&quot;reference external&quot; href=&quot;https://jupyterbook.org/start/create.html&quot; title=&quot;(in Python)&quot;&gt;&lt;span class=&quot;xref std std-doc&quot;&gt;the demo book&lt;/span&gt;&lt;/a&gt;
work on Read the Docs.&lt;/p&gt;
&lt;p&gt;We are excited that this is now possible
and look forward to seeing more projects built with Jupyter Book!&lt;/p&gt;
&lt;p&gt;—&lt;/p&gt;
&lt;p&gt;Considering using Read the Docs for your next Sphinx or MkDocs project?
Check out &lt;a class=&quot;reference external&quot; href=&quot;https://docs.readthedocs.io/&quot;&gt;our documentation&lt;/a&gt; to get started!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
  </entry>
</feed>
