<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Docusaurus Blog</title>
        <link>https://docusaurus.io/fr/blog</link>
        <description>Keep up to date with upcoming Docusaurus releases and articles by following our feed!</description>
        <lastBuildDate>Tue, 07 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>fr</language>
        <copyright>Copyright © 2026 Facebook, Inc.</copyright>
        <item>
            <title><![CDATA[Docusaurus 3.10]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.10</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.10</guid>
            <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.10.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.10</strong>.</p>
<p>This will be the <strong>last release in the v3.x line</strong>, and it helps you <strong>prepare for Docusaurus v4</strong>.</p>
<p>Upgrading is easy. We follow <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>, and minor version updates have <strong>no breaking changes</strong>, according to our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a>.</p>
<p>However, if you opt in for upcoming Docusaurus v4 breaking changes globally with <code>future.v4: true</code>, make sure to review the dedicated section below.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-77e4a0d9b978e519751c324db47003e5.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="v4-future-flags">v4 Future Flags<a href="https://docusaurus.io/fr/blog/releases/3.10#v4-future-flags" class="hash-link" aria-label="Lien direct vers v4 Future Flags" title="Lien direct vers v4 Future Flags" translate="no">​</a></h2>
<p>The <a class="" href="https://docusaurus.io/fr/docs/api/docusaurus-config#future">Docusaurus v4 Future Flags</a> let you <strong>opt in for upcoming Docusaurus v4 breaking changes</strong> incrementally and prepare for Docusaurus v4 ahead of time. You can enable them all at once with <code>future.v4: true</code>.</p>
<p>This release introduces new flags and breaking changes that might break your site if you use <code>future.v4: true</code> and upgrade:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/11797" target="_blank" rel="noopener noreferrer" class=""><code>future.v4.siteStorageNamespacing</code></a>: In Docusaurus v4, <code>localStorage</code> keys will be automatically namespaced by default (<code>theme</code> =&gt; <code>theme-&lt;hash&gt;</code>) to prevent key conflicts. This is likely to reset your site's visitor storage unless you migrate it to new key names. See the dedicated <a href="https://docusaurus.io/fr/blog/releases/3.10#site-storage" class="">Site Storage section</a> below.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/11802" target="_blank" rel="noopener noreferrer" class=""><code>future.v4.fasterByDefault</code></a>: Docusaurus Faster is now stable and will be enabled by default in Docusaurus v4. See the dedicated <a href="https://docusaurus.io/fr/blog/releases/3.10#docusaurus-faster" class="">Docusaurus Faster section</a> below.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/11896" target="_blank" rel="noopener noreferrer" class=""><code>future.v4.mdx1CompatDisabledByDefault</code></a>: In Docusaurus v4, MDX v1 compatibility options will be disabled by default, and you might have to adjust your docs accordingly. See the dedicated <a href="https://docusaurus.io/fr/blog/releases/3.10#strict-mdx" class="">Strict MDX section</a> below.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="security">Security<a href="https://docusaurus.io/fr/blog/releases/3.10#security" class="hash-link" aria-label="Lien direct vers Security" title="Lien direct vers Security" translate="no">​</a></h2>
<p><strong><a href="https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/" target="_blank" rel="noopener noreferrer" class="">npm supply chain attacks</a></strong> have surged recently. A single compromised maintainer or package can ripple through the ecosystem and affect thousands of downstream users, as seen with the <a href="https://socket.dev/blog/hidden-blast-radius-of-the-axios-compromise" target="_blank" rel="noopener noreferrer" class="">axios compromise</a>.</p>
<p>We’ve taken steps to strengthen our supply chain, and recommend securing your own site with additional measures as well.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="trusted-publishing">Trusted Publishing<a href="https://docusaurus.io/fr/blog/releases/3.10#trusted-publishing" class="hash-link" aria-label="Lien direct vers Trusted Publishing" title="Lien direct vers Trusted Publishing" translate="no">​</a></h3>
<p>We adopted <strong><a href="https://docs.npmjs.com/trusted-publishers" target="_blank" rel="noopener noreferrer" class="">npm Trusted Publishing</a></strong> for <a href="https://github.com/facebook/docusaurus/pull/11819" target="_blank" rel="noopener noreferrer" class="">stable</a> and <a href="https://github.com/facebook/docusaurus/pull/11712" target="_blank" rel="noopener noreferrer" class="">canary</a> releases.</p>
<p>Releases are now published through a single <code>publish.yml</code> GitHub Actions workflow using short-lived OIDC tokens. Each release has verifiable provenance, with a transparency log showing how and when it was published.</p>
<p><img decoding="async" loading="lazy" alt="npm trusted publishing checkmark displayed under the version" src="https://docusaurus.io/fr/assets/images/security-0bb27807eec2c1ad1edd0df24298a516.jpg" width="1459" height="744" class="img_vXGZ"></p>
<p><img decoding="async" loading="lazy" alt="npm trusted publishing provenance details" src="https://docusaurus.io/fr/assets/images/provenance-4b7dc023c1c4709717b5100e9db1d566.jpg" width="2860" height="696" class="img_vXGZ"></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="security-workflow">Security Workflow<a href="https://docusaurus.io/fr/blog/releases/3.10#security-workflow" class="hash-link" aria-label="Lien direct vers Security Workflow" title="Lien direct vers Security Workflow" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11874" target="_blank" rel="noopener noreferrer" class="">#11874</a>, we introduced a new security workflow that runs daily and on every pull request. It scans for suspicious dependency updates affecting our official packages and their transitive dependencies:</p>
<ul>
<li class="">Install the Docusaurus site template through the <a href="https://socket.dev/blog/introducing-socket-firewall" target="_blank" rel="noopener noreferrer" class="">Socket Firewall</a> to detect known malware in our dependency graph</li>
<li class="">Check for unexpected <code>preinstall</code> and <code>postinstall</code> lifecycle scripts, using <a href="https://pnpm.io/settings#strictdepbuilds" target="_blank" rel="noopener noreferrer" class="">pnpm <code>strictDepBuilds</code></a></li>
<li class="">Check for GitHub repository and tarball URL dependencies, using <a href="https://pnpm.io/settings#blockexoticsubdeps" target="_blank" rel="noopener noreferrer" class="">pnpm <code>blockExoticSubdeps</code></a></li>
<li class="">Check for packages that downgrade their trust level, using <a href="https://pnpm.io/settings#trustpolicy" target="_blank" rel="noopener noreferrer" class="">pnpm <code>trustPolicy: no-downgrade</code></a></li>
<li class="">Run similar checks on our own monorepo, to protect Docusaurus maintainers and contributors</li>
</ul>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Security Limitations</div><div class="admonitionContent_Knsx"><p>This security workflow <strong>does not protect your site</strong>. It is designed to detect serious vulnerabilities affecting the Docusaurus ecosystem as early as possible, so we can react quickly and notify you.</p><p>With semver dependency ranges, it's impossible to guarantee a 100% secure supply chain, since any new npm release in our dependency graph can introduce a vulnerability. Ultimately, securing your site is your responsibility. At a minimum, rely on a lockfile and upgrade dependencies deliberately and cautiously.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="secure-your-site">Secure Your Site<a href="https://docusaurus.io/fr/blog/releases/3.10#secure-your-site" class="hash-link" aria-label="Lien direct vers Secure Your Site" title="Lien direct vers Secure Your Site" translate="no">​</a></h3>
<p>Read the <a href="https://github.com/lirantal/npm-security-best-practices" target="_blank" rel="noopener noreferrer" class="">npm security best practices</a> guide to learn how to secure your site — and npm applications in general — from compromised dependencies.</p>
<p>Each package manager offers different security options. In our experience, <a href="https://pnpm.io/blog/2025/12/05/newsroom-npm-supply-chain-security" target="_blank" rel="noopener noreferrer" class="">pnpm</a> offers the best ones. We won't document all the possibilities, but here's a pnpm config example that should work well with Docusaurus:</p>
<div class="language-yaml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">pnpm-workspace.yaml</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yaml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#22863A">minimumReleaseAge</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">10080</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">blockExoticSubdeps</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#005CC5">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">strictDepBuilds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#005CC5">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">allowBuilds</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">'@swc/core'</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#005CC5">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">core-js-pure</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#005CC5">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">core-js</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#005CC5">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">trustPolicy</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> no</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">downgrade</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">trustPolicyExclude</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'detect-port@1.6.1'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'semver@6.3.1'</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Use release cooldowns</div><div class="admonitionContent_Knsx"><p>When a popular npm package gets compromised, the community usually notices quickly and takes it down. <a href="https://daniakash.com/posts/simplest-supply-chain-defense/" target="_blank" rel="noopener noreferrer" class="">Using a release cooldown</a> is an effective way to reduce risk during the exposure window.</p><p>Modern package managers now offer a way to delay npm updates, giving time for security scanners to report vulnerabilities.</p><div class="language-yaml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yaml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#6B6B6B;font-style:italic"># npm v11.10+ - .npmrc</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">min</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">release</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">age=7</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic"># pnpm v10.16+ - pnpm-workspace.yaml</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">minimumReleaseAge</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">10080</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic"># Yarn v4.10+ - .yarnrc.yml</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">npmMinimalAgeGate</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">"7d"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic"># Bun v1.3+ - bunfig.toml</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">install</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">minimumReleaseAge = 604800</span><br></div></code></pre></div></div></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="docusaurus-faster">Docusaurus Faster - Stable<a href="https://docusaurus.io/fr/blog/releases/3.10#docusaurus-faster" class="hash-link" aria-label="Lien direct vers Docusaurus Faster - Stable" title="Lien direct vers Docusaurus Faster - Stable" translate="no">​</a></h2>
<p><strong><a href="https://github.com/facebook/docusaurus/issues/10556" target="_blank" rel="noopener noreferrer" class="">Docusaurus Faster</a></strong> lets you opt in for our modernized build infrastructure. This includes Rspack, SWC, LightningCSS, and other optimizations.</p>
<p>This release improves Docusaurus Faster with a new <a href="https://docusaurus.io/fr/blog/releases/3.10#vcs" class=""><code>gitEagerVcs</code></a> flag and <a href="https://github.com/facebook/docusaurus/pull/11817" target="_blank" rel="noopener noreferrer" class="">full support for Yarn PnP</a>.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11802" target="_blank" rel="noopener noreferrer" class="">#11802</a>, we marked <strong>Docusaurus Faster as stable</strong>. You now need to update your config accordingly:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">const config = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> future: {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">   experimental_faster: true,</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">   faster: true,</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> },</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token plain">};</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Faster By Default in v4</div><div class="admonitionContent_Knsx"><p>Docusaurus Faster will be <strong>enabled by default in Docusaurus v4</strong>, and is already used for all newly initialized v3 sites. It is now part of our v4 future flags (<code>future.v4.fasterByDefault: true</code>) to help our community prepare for Docusaurus v4. If you haven't already, now is a good time to turn it on!</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="site-storage">Site Storage - Stable<a href="https://docusaurus.io/fr/blog/releases/3.10#site-storage" class="hash-link" aria-label="Lien direct vers Site Storage - Stable" title="Lien direct vers Site Storage - Stable" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11797" target="_blank" rel="noopener noreferrer" class="">#11797</a>, we marked the <code>config.storage</code> API as stable. You now need to update your config accordingly:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">const config = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">  storage: {</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    type: 'localStorage',</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    namespace: true,</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">  },</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">  future: {</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    experimental_storage: {</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">      type: 'localStorage',</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">      namespace: true,</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    },</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">  },</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">};</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Automatic namespacing in v4</div><div class="admonitionContent_Knsx"><p>Docusaurus v4 will automatically namespace your storage keys to avoid <code>localStorage</code> key conflicts by default, and is now part of our v4 future flags (<code>future.v4.siteStorageNamespacing: true</code>). Instead of using a <code>theme</code> key, it will use <code>theme-&lt;hash&gt;</code>.</p><p>These storage key conflicts usually happen when running multiple <code>http://localhost:3000</code> apps, or when running multiple apps under the same domain (<code>https://example.com/app</code> and <code>https://example.com/docs</code>).</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="strict-mdx">Strict MDX<a href="https://docusaurus.io/fr/blog/releases/3.10#strict-mdx" class="hash-link" aria-label="Lien direct vers Strict MDX" title="Lien direct vers Strict MDX" translate="no">​</a></h2>
<p>This release introduces new MDX options to encourage stricter usage of native MDX syntax, instead of relying on proprietary Docusaurus syntax on top of MDX.</p>
<p>Historically, Docusaurus compiled your files with MDX v1, which was quite forgiving. Since then, the ecosystem has widely moved to MDX v3, which is stricter. Docusaurus v3.0 introduced <code>markdown.mdx1Compat</code> to help you upgrade incrementally.</p>
<p>In Docusaurus v4, we plan to turn the <code>markdown.mdx1Compat</code> options off by default. This upcoming change is now part of our <a href="https://docusaurus.io/fr/blog/releases/3.10#v4-future-flags" class="">v4 future flags</a> (<code>future.v4.mdx1CompatDisabledByDefault: true</code>).</p>
<p>We'd like the community to adopt a stricter, native MDX syntax for a few reasons:</p>
<ul>
<li class="">This makes your docs more portable: external tools like Prettier, ESLint, TypeScript, VS Code, and GitHub can understand them.</li>
<li class="">Docusaurus doesn't need to pre-process your documents with regular expressions before MDX compilation.</li>
<li class="">This improves compatibility with the <a href="https://unifiedjs.com/" target="_blank" rel="noopener noreferrer" class="">Unified</a> ecosystem (Remark, MDX) and the <a href="https://mdxjs.com/playground/" target="_blank" rel="noopener noreferrer" class="">MDX Playground</a>.</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="strict-extensions">Strict Extensions<a href="https://docusaurus.io/fr/blog/releases/3.10#strict-extensions" class="hash-link" aria-label="Lien direct vers Strict Extensions" title="Lien direct vers Strict Extensions" translate="no">​</a></h3>
<p>We believe that:</p>
<ul>
<li class=""><code>.md</code> should be parsed as CommonMark</li>
<li class=""><code>.mdx</code> should be parsed as MDX</li>
</ul>
<p>In reality, Docusaurus has only ever supported MDX, and we should have used the <code>.mdx</code> extension from the start. Newly initialized sites now use <code>.mdx</code> by default (<a href="https://github.com/facebook/docusaurus/pull/11897" target="_blank" rel="noopener noreferrer" class="">#11897</a>). We encourage you to rename your existing files to <code>.mdx</code> as well, so that external tools can understand your content is MDX.</p>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>About CommonMark support</div><div class="admonitionContent_Knsx"><p>Although we also have experimental support for CommonMark, it still doesn't have full feature parity with MDX (<a href="https://github.com/facebook/docusaurus/issues/9092" target="_blank" rel="noopener noreferrer" class="">issue</a>). Once we reach full feature parity, we'll default to <code>markdown.format: 'detect'</code> to ensure that <code>.md</code> files are parsed as CommonMark instead of MDX.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="strict-admonitions">Strict Admonitions<a href="https://docusaurus.io/fr/blog/releases/3.10#strict-admonitions" class="hash-link" aria-label="Lien direct vers Strict Admonitions" title="Lien direct vers Strict Admonitions" translate="no">​</a></h3>
<p>We have historically supported admonitions with titles using the <code>:::type My Title</code> syntax. Although convenient, this is a proprietary Docusaurus syntax.</p>
<p>The <a href="https://talk.commonmark.org/t/generic-directives-plugins-syntax/444" target="_blank" rel="noopener noreferrer" class="">Markdown Directive</a> syntax is more generic and reusable. It is not yet standardized, but widely adopted across ecosystems, including through the <a href="https://github.com/remarkjs/remark-directive" target="_blank" rel="noopener noreferrer" class="">remark-directive</a> package. We encourage you to migrate your admonitions to the <code>:::type[My Title]</code> syntax:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">:::warning Pay Attention</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">:::warning[Pay Attention]</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">Content</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">:::</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="strict-comments">Strict Comments<a href="https://docusaurus.io/fr/blog/releases/3.10#strict-comments" class="hash-link" aria-label="Lien direct vers Strict Comments" title="Lien direct vers Strict Comments" translate="no">​</a></h3>
<p>MDX v3 does not support HTML comments <code>&lt;!-- comment --&gt;</code>, but supports JSX comment expressions <code>{/* comment */}</code>.</p>
<p>If you use HTML comments, we encourage you to migrate to JSX comments. For example, you can truncate blog posts with a JSX comment:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">blog/my-post.mdx</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"># My Blog Post</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">&lt;!-- truncate --&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">{/* truncate */}</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">blog post content</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="strict-heading-ids">Strict Heading IDs<a href="https://docusaurus.io/fr/blog/releases/3.10#strict-heading-ids" class="hash-link" aria-label="Lien direct vers Strict Heading IDs" title="Lien direct vers Strict Heading IDs" translate="no">​</a></h3>
<p>Our historical heading IDs syntax <code>{#my-id}</code> is also a proprietary Docusaurus syntax, leading to ecosystem incompatibilities.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11755" target="_blank" rel="noopener noreferrer" class="">#11755</a>, we introduced a new heading ID syntax based on native MDX comments that we encourage you to adopt:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">## My Heading {#my-id}</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">## My Heading {/* #my-id */}</span><br></div></code></pre></div></div>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11777" target="_blank" rel="noopener noreferrer" class="">#11777</a>, we also added an option to our <code>write-heading-ids</code> CLI to emit and migrate to the new syntax:</p>
<div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">docusaurus write-heading-ids </span><span class="token parameter variable" style="color:#E36209">--syntax</span><span class="token plain"> mdx-comment </span><span class="token parameter variable" style="color:#E36209">--migrate</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="vcs">VCS API - Experimental<a href="https://docusaurus.io/fr/blog/releases/3.10#vcs" class="hash-link" aria-label="Lien direct vers VCS API - Experimental" title="Lien direct vers VCS API - Experimental" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11512" target="_blank" rel="noopener noreferrer" class="">#11512</a>, we added a new experimental VCS (Version Control System) API, and implemented built-in performance improvements when reading from the Git history.</p>
<p>Historically, Docusaurus only integrated with Git, reading the commit history to implement features such as:</p>
<ul>
<li class="">Displaying the last update date/time in the docs, blog and pages plugin when using the <code>showLastUpdateAuthor</code> or <code>showLastUpdateTime</code> options</li>
<li class="">Displaying the blog creation date in the blog plugin</li>
<li class="">Computing the <code>&lt;lastmod&gt;</code> value in the sitemap plugin</li>
</ul>
<p>This new API makes it possible to integrate Docusaurus with other VCS, such as SVN, Mercurial, a CMS or any other external system.</p>
<p>Here's an example implementation using hardcoded data:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    experimental_vcs</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function-variable function" style="color:#8250DF">initialize</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">siteDir</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// You can initialize and cache VCS data here, if needed</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function-variable function" style="color:#8250DF">getFileCreationInfo</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">filePath</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">timestamp</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">1490997600000</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> author</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Slash'</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function-variable function" style="color:#8250DF">getFileLastUpdateInfo</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">filePath</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">timestamp</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">1490997600000</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> author</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Slash'</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>We have also noticed that our historical strategy to read from the Git history can be a <strong>significant build performance bottleneck</strong> for large Docusaurus sites. Issuing one <code>git log &lt;filepath&gt;</code> call per MDX file doesn't scale well.</p>
<p>To solve this bottleneck, we implemented a strategy that reads the whole Git repository eagerly in a single <code>git log</code> call, leading to significant performance improvements. This strategy is now part of <a href="https://docusaurus.io/fr/blog/releases/3.10#docusaurus-faster" class="">Docusaurus Faster</a> (<code>future.faster.gitEagerVcs: true</code>) and will become the default in Docusaurus v4.</p>
<p>We also provide built-in VCS preset strategies. The available presets are:</p>
<ul>
<li class=""><code>git-ad-hoc</code>: the historical strategy based on <code>git log &lt;filename&gt;</code> calls</li>
<li class=""><code>git-eager</code>: the new Git strategy that reads your whole repository upfront</li>
<li class=""><code>hardcoded</code>: returns a hardcoded value, useful in dev/tests to speed up DX</li>
<li class=""><code>disabled</code>: returns null for all files, considering them untracked</li>
<li class=""><code>default-v1</code>: the historical default (dynamic, <code>git-ad-hoc</code> in prod, <code>hardcoded</code> in dev)</li>
<li class=""><code>default-v2</code>: the upcoming Docusaurus v4 default (dynamic, <code>git-eager</code> in prod, <code>hardcoded</code> in dev)</li>
</ul>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    experimental_vcs</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'default-v2'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Experimental</div><div class="admonitionContent_Knsx"><p>The VCS API is experimental and its design may change. If you give it a try, please share feedback on this <a href="https://github.com/facebook/docusaurus/discussions/11909" target="_blank" rel="noopener noreferrer" class="">community discussion</a>.</p><p>Although the API may change, we consider the built-in Git Eager strategy stable for simple Git repositories. There may be edge cases with multiple nested Git repositories or submodules.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/3.10#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h2>
<ul>
<li class="">🇵🇰 <a href="https://github.com/facebook/docusaurus/pull/11632" target="_blank" rel="noopener noreferrer" class="">#11632</a>: Add new Urdu <code>ur</code> theme translations.</li>
<li class="">🇧🇷 <a href="https://github.com/facebook/docusaurus/pull/11533" target="_blank" rel="noopener noreferrer" class="">#11533</a>: Complete missing Brazilian Portuguese <code>pt-BR</code> theme translations.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.10#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11843" target="_blank" rel="noopener noreferrer" class="">#11843</a>, we now use TypeScript 6.0 for newly initialized sites. However, it requires <code>"ignoreDeprecations": "6.0"</code> for now.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11571" target="_blank" rel="noopener noreferrer" class="">#11571</a>, the <code>siteConfig.headTags</code> API now accepts custom HTML elements.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11675" target="_blank" rel="noopener noreferrer" class="">#11675</a>, the live code block theme now has a button to reset the playground.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11734" target="_blank" rel="noopener noreferrer" class="">#11734</a>, we split the <code>&lt;DocCard&gt;</code> component to make it easier to extend/swizzle. It's now easier to assign custom emojis for the docs generated index page.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11733" target="_blank" rel="noopener noreferrer" class="">#11733</a>, the <code>&lt;Tabs&gt;</code> component now uses React context instead of props, making it possible to create custom <code>&lt;TabItem&gt;</code> components.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11696" target="_blank" rel="noopener noreferrer" class="">#11696</a>, all newly initialized TypeScript sites will have <code>"strict: true"</code> by default.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11611" target="_blank" rel="noopener noreferrer" class="">#11611</a>, we made it possible to create a new Docusaurus site in <code>.</code>, the current directory.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11666" target="_blank" rel="noopener noreferrer" class="">#11666</a>, the pages plugin can now use Markdown file path links (<code>[text](./other-page.md)</code>), as the docs and blog plugins already support it.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11642" target="_blank" rel="noopener noreferrer" class="">#11642</a>, admonitions now support class/id shortcuts, such as <code>:::note{.my-class #my-id}</code>.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11541" target="_blank" rel="noopener noreferrer" class="">#11541</a> and <a href="https://github.com/facebook/docusaurus/pull/11683" target="_blank" rel="noopener noreferrer" class="">#11683</a>, we made sure Docusaurus is compatible with the latest version of Algolia DocSearch 4.x, unlocking new features such as AskAI Suggested Questions.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11684" target="_blank" rel="noopener noreferrer" class="">#11684</a> and <a href="https://github.com/facebook/docusaurus/pull/11653" target="_blank" rel="noopener noreferrer" class="">#11653</a>, we removed many third-party dependencies from our <code>create-docusaurus</code> CLI, making it faster to create a new site.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11794" target="_blank" rel="noopener noreferrer" class="">#11794</a>, we fixed a long-standing bug that prevented the translation of category index page titles in pagination links.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11784" target="_blank" rel="noopener noreferrer" class="">#11784</a>, we changed the syntax we recommend for math equations, preferring regular Markdown code blocks over <code>$$</code> to improve docs portability.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11753" target="_blank" rel="noopener noreferrer" class="">#11753</a>, we added a basic <code>AGENTS.md</code> file. As a reminder, any AI usage in Docusaurus contributions must be disclosed.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11698" target="_blank" rel="noopener noreferrer" class="">#11698</a>, we upgraded our monorepo to React 19. We'll drop support for React 18 in Docusaurus v4.</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.10.0">3.10.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.9]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.9</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.9</guid>
            <pubDate>Thu, 25 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.9.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.9</strong>.</p>
<p>This release drops support for Node.js 18, adds support for Algolia DocSearch v4 with AskAI, improves i18n support, adds Mermaid ELK layout support, and comes with various other improvements and bug fixes.</p>
<p>Upgrading is easy. We follow <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>, and minor version updates have <strong>no breaking changes</strong>, accordingly to our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a>. Note that <strong>we consider dropping End-of-Life Node.js versions as non-breaking changes</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-e8a5c83b31b6ac5bb461df1568d7577f.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="dropping-nodejs-18">Dropping Node.js 18<a href="https://docusaurus.io/fr/blog/releases/3.9#dropping-nodejs-18" class="hash-link" aria-label="Lien direct vers Dropping Node.js 18" title="Lien direct vers Dropping Node.js 18" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11408" target="_blank" rel="noopener noreferrer" class="">#11408</a>, we have dropped support for Node.js 18, and the new minimum required Node.js version is now v20.0.</p>
<p>Although it may look like a runtime requirement breaking change, Node.js 18 reached <a href="https://nodejs.org/en/about/releases/" target="_blank" rel="noopener noreferrer" class="">End-of-Life</a>. It <a href="https://nodejs.org/en/blog/announcements/node-18-eol-support" target="_blank" rel="noopener noreferrer" class="">won't receive security updates</a>, and you shouldn't use it anymore. Dropping End-of-Life versions of Node.js on minor version releases is a common practice in the Node.js ecosystem, that we now officially endorse and document on our <a class="" href="https://docusaurus.io/fr/community/release-process#nodejs-support">release process</a>.</p>
<p>This upgrade is further motivated by our dependencies:</p>
<ul>
<li class="">Some of our dependencies now only receive security patches on newer versions that do not support Node.js 18 anymore. See, for example, this <a href="https://github.com/facebook/docusaurus/pull/11410" target="_blank" rel="noopener noreferrer" class=""><code>webpack-dev-server@4</code> security warning</a>. To keep the Docusaurus v3 release line secure for our users, for both the runtime and third-party dependencies, the upgrade is necessary.</li>
<li class="">Some of our dependencies are also dropping support for Node.js 18 in minor releases, transitively impacting Docusaurus runtime requirements. For example, <a href="https://rspack.rs/blog/announcing-1-5" target="_blank" rel="noopener noreferrer" class="">Rspack 1.5 now requires Node.js 18.12</a>, while Docusaurus v3 initially supported Node.js 18.0.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="docsearch-v4">DocSearch v4<a href="https://docusaurus.io/fr/blog/releases/3.9#docsearch-v4" class="hash-link" aria-label="Lien direct vers DocSearch v4" title="Lien direct vers DocSearch v4" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11327" target="_blank" rel="noopener noreferrer" class="">#11327</a> and <a href="https://github.com/facebook/docusaurus/pull/11421" target="_blank" rel="noopener noreferrer" class="">#11421</a>, we added support for Algolia DocSearch v4. This new version comes with <a href="https://docsearch.algolia.com/docs/v4/askai" target="_blank" rel="noopener noreferrer" class="">AskAI</a> support, letting you add an AI-powered search assistant to your Docusaurus site that can answer questions based on what's in your documentation with a conversational experience.</p>
<div class="browserWindow_my1Q"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">http://localhost:3000/</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs" style="padding:0;font-size:0"><img decoding="async" loading="lazy" alt="Algolia DocSearch v4 - Ask AI screenshot" src="https://docusaurus.io/fr/assets/images/askai-0443fb4e7ddd4420f61d87c5a10d9be6.png" width="1230" height="716" class="img_vXGZ"></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>DocSearch v4 is opt-in</div><div class="admonitionContent_Knsx"><p>Docusaurus v3 adds support for DocSearch v4 while keeping support for DocSearch v3.</p><p>Existing sites using DocSearch v3 can either stay on v3 or upgrade to v4 using their package manager (npm command: <code>npm update @docsearch/react</code>).</p><p>When using DocSearch v4, the new AskAI feature is not enabled by default: you also need to <a href="https://docsearch.algolia.com/docs/v4/askai/" target="_blank" rel="noopener noreferrer" class="">create an AskAI assistant</a> and add it to the <a class="" href="https://docusaurus.io/fr/docs/search#ask-ai"><code>themeConfig.algolia.askAi</code> config attribute</a>.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="i18n-improvements">i18n improvements<a href="https://docusaurus.io/fr/blog/releases/3.9#i18n-improvements" class="hash-link" aria-label="Lien direct vers i18n improvements" title="Lien direct vers i18n improvements" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11316" target="_blank" rel="noopener noreferrer" class="">#11316</a>, we added new <code>i18n.localeConfigs[locale].{url,baseUrl}</code> config options to better support complex and multi-domain i18n deployments. Previously, Docusaurus relied on hard-coded heuristics that made sense for most i18n projects, but weren't flexible enough to accommodate all use cases, leading UX and SEO issues. It is now possible to configure each locale's deployment URL and base URL independently, overriding the default values inferred by Docusaurus:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  i18n</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    defaultLocale</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'en'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    locales</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#C6105F">'en'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'fr'</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    localeConfigs</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      en</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        url</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'https://en.docusaurus.io'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        baseUrl</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'/'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      fr</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        url</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'https://fr.docusaurus.io'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        baseUrl</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'/'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11304" target="_blank" rel="noopener noreferrer" class="">#11304</a>, we optimized our i18n infrastructure with a new <code>i18n.localeConfigs[locale].translate</code> flag that is now <code>false</code> by default for sites that do not use any translations. This leads to an improved dev experience and faster builds for non-i18n sites by avoiding unnecessary file system read attempts of the <code>i18n</code> directory.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11228" target="_blank" rel="noopener noreferrer" class="">#11228</a>, we added a new <code>key</code> attribute to the docs sidebar items, allowing to assign explicit translation keys to each sidebar item that use the same label and would otherwise lead to translation key conflicts:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">sidebars.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  sidebar</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      type</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'category'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      label</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'API'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      key</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'api-for-feature-1'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      items</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      type</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'category'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      label</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'API'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      key</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'api-for-feature-2'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      items</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="mermaid-elk-layouts">Mermaid ELK layouts<a href="https://docusaurus.io/fr/blog/releases/3.9#mermaid-elk-layouts" class="hash-link" aria-label="Lien direct vers Mermaid ELK layouts" title="Lien direct vers Mermaid ELK layouts" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11357" target="_blank" rel="noopener noreferrer" class="">#11357</a>, we added support for <a href="https://mermaid.js.org/intro/syntax-reference.html#supported-layout-algorithms" target="_blank" rel="noopener noreferrer" class="">Mermaid ELK layout algorithm</a>, based on the <a href="https://www.eclipse.org/elk/" target="_blank" rel="noopener noreferrer" class="">Eclipse Layout Kernel (ELK)</a>. Compared to the default Dagre layout, it provides more sophisticated layout capabilities and configuration options, especially useful when working with large or intricate diagrams.</p>
<p>You can enable it by adding the extra <code>@mermaid-js/layout-elk</code> npm dependency, making it possible to use the <code>layout: elk</code> Mermaid diagram metadata:</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token code punctuation" style="color:#393A34">```</span><span class="token code code-language">mermaid</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code code-block language-mermaid">---</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">config:</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token code code-block language-mermaid">  layout: elk</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">---</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">erDiagram</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    CUSTOMER ||--o{ ORDER : places</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    ORDER ||--|{ LINE-ITEM : contains</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    CUSTOMER }|..|{ DELIVERY-ADDRESS : uses</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code punctuation" style="color:#393A34">```</span><br></div></code></pre></div></div>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/3.9#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h2>
<ul>
<li class="">🇧🇷 <a href="https://github.com/facebook/docusaurus/pull/11315" target="_blank" rel="noopener noreferrer" class="">#11315</a>: Add missing Brazilian Portuguese theme translations.</li>
<li class="">🇺🇦 <a href="https://github.com/facebook/docusaurus/pull/11305" target="_blank" rel="noopener noreferrer" class="">#11305</a>: Add missing Ukrainian theme translations.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.9#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11283" target="_blank" rel="noopener noreferrer" class="">#11283</a>, we added <code>siteConfig.markdown.hooks.{onBrokenMarkdownLinks,onBrokenMarkdownImages}</code> and deprecated <code>siteConfig.onBrokenMarkdownLinks</code>. The new callback hooks also let you recover from broken links/images by returning a fallback URL.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11282" target="_blank" rel="noopener noreferrer" class="">#11282</a>, we added the <code>siteConfig.markdown.emoji</code> config option to disable the previously hard-coded <code>remark-emoji</code> behavior.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11397" target="_blank" rel="noopener noreferrer" class="">#11397</a>, we can now resolve site-aliased Markdown links starting with <code>@site/*</code>, that we already supported for ES imports.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11294" target="_blank" rel="noopener noreferrer" class="">#11294</a> and <a href="https://github.com/facebook/docusaurus/pull/11415" target="_blank" rel="noopener noreferrer" class="">#11415</a>, we upgraded to Rspack 1.5 and leveraging new Rspack config options to make Docusaurus build faster.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11356" target="_blank" rel="noopener noreferrer" class="">#11356</a>, we improved the display of docs sidebar items with long labels.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11405" target="_blank" rel="noopener noreferrer" class="">#11405</a>, we improved visual glitches caused by the <code>useColorMode()</code> hook when switching color modes, glitches that also affected your site's logo in the navbar.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11383" target="_blank" rel="noopener noreferrer" class="">#11383</a>, we disabled a Docusaurus Faster HTML minifier optimization that prevents your site's social card from displaying properly on some social platforms (e.g., LinkedIn).</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11425" target="_blank" rel="noopener noreferrer" class="">#11425</a>, we added the ability for blog authors to display an email icon with a <code>mailto:</code> link (<code>author.socials.email</code>).</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11422" target="_blank" rel="noopener noreferrer" class="">#11422</a>, we removed the <code>copy-text-to-clipboard</code> in favor of the native <code>navigator.clipboard</code> API.</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.9.0">3.9.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.8]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.8</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.8</guid>
            <pubDate>Mon, 26 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.8.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.8</strong>.</p>
<p>This release improves build performance, includes new features and introduces "Future Flags" to prepare your site for Docusaurus 4.</p>
<p>Upgrading is easy. We follow <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>, and minor version updates have <strong>no breaking changes</strong>, accordingly to our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a>.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-b49b847d6c81d30ed3b8fff82aed14b5.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="performance">Performance<a href="https://docusaurus.io/fr/blog/releases/3.8#performance" class="hash-link" aria-label="Lien direct vers Performance" title="Lien direct vers Performance" translate="no">​</a></h2>
<p>This release keeps improving our build infrastructure performance with various optimizations, and 2 new Docusaurus Faster options.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="docusaurus-faster">Docusaurus Faster<a href="https://docusaurus.io/fr/blog/releases/3.8#docusaurus-faster" class="hash-link" aria-label="Lien direct vers Docusaurus Faster" title="Lien direct vers Docusaurus Faster" translate="no">​</a></h3>
<p><a href="https://github.com/facebook/docusaurus/issues/10556" target="_blank" rel="noopener noreferrer" class="">Docusaurus Faster</a> has been introduced in <a class="" href="https://docusaurus.io/fr/blog/releases/3.6#docusaurus-faster">Docusaurus v3.6</a>, and permits you to opt-in for our upgraded build infrastructure and helps you build your site much faster. The experimental flags can be turned on individually, but we recommend to turn them all at once with this convenient shortcut:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">experimental_faster</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Don't forget to install the <code>@docusaurus/faster</code> dependency first!</p></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="persistent-cache">Persistent Cache<a href="https://docusaurus.io/fr/blog/releases/3.8#persistent-cache" class="hash-link" aria-label="Lien direct vers Persistent Cache" title="Lien direct vers Persistent Cache" translate="no">​</a></h4>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10931" target="_blank" rel="noopener noreferrer" class="">#10931</a>, we have enabled the <strong><a href="https://rspack.dev/blog/announcing-1-2#persistent-cache" target="_blank" rel="noopener noreferrer" class="">Rspack persistent cache</a></strong>. Similarly to the <a href="https://webpack.js.org/blog/2020-10-10-webpack-5-release/#persistent-caching" target="_blank" rel="noopener noreferrer" class="">Webpack persistent cache</a> (already supported), it permits to greatly speed up the bundling of the Docusaurus app on subsequent builds.</p>
<p>In practice, your site should build much faster if you run <code>docusaurus build</code> a second time.</p>
<p>This feature depends on using the <a href="https://rspack.dev/" target="_blank" rel="noopener noreferrer" class="">Rspack bundler</a>, and can be turned on with the <code>rspackPersistentCache</code> flag:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">experimental_faster</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">rspackBundler</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// required flag</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">rspackPersistentCache</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// new flag</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-caution admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Preserving the cache</div><div class="admonitionContent_Knsx"><p>The persistent cache requires preserving the <code>./node_modules/.cache</code> folder across builds.</p><p>Popular CDNs such as Netlify and Vercel do that for you automatically. Depending on your CI and deployment pipeline, additional configuration can be needed to preserve the cache.</p></div></div>
<p><strong>Result</strong>: On average, you can expect your site's bundling time to be ~2-5× faster on rebuilds 🔥. The impact can be even more significant if you <a href="https://github.com/facebook/docusaurus/discussions/11199" target="_blank" rel="noopener noreferrer" class="">disable the optional <code>concatenateModule</code> optimization</a>.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="worker-threads">Worker Threads<a href="https://docusaurus.io/fr/blog/releases/3.8#worker-threads" class="hash-link" aria-label="Lien direct vers Worker Threads" title="Lien direct vers Worker Threads" translate="no">​</a></h4>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10826" target="_blank" rel="noopener noreferrer" class="">#10826</a>, we introduced a <a href="https://github.com/tinylibs/tinypool" target="_blank" rel="noopener noreferrer" class="">Node.js Worker Thread pool</a> to run the static side generation code. With this new strategy, we can better leverage all the available CPUs, reduce static site generation time, and contain potential memory leaks.</p>
<p>This feature can be turned on with the <code>ssgWorkerThreads</code> flag, and requires the <a href="https://docusaurus.io/fr/blog/releases/3.8#postbuild-change" class=""><code>v4.removeLegacyPostBuildHeadAttribute</code></a> Future Flag to be turned on:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">v4</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">removeLegacyPostBuildHeadAttribute</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// required</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">experimental_faster</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">ssgWorkerThreads</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p><strong>Result</strong>: On average, you can expect your site's static site generation time to be ~2× times faster 🔥. This was measured on a MacBook Pro M3 and result may vary depending on your CI.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-optimizations">Other Optimizations<a href="https://docusaurus.io/fr/blog/releases/3.8#other-optimizations" class="hash-link" aria-label="Lien direct vers Other Optimizations" title="Lien direct vers Other Optimizations" translate="no">​</a></h3>
<p>We identified and resolved several major bottlenecks, including:</p>
<ul>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11007" target="_blank" rel="noopener noreferrer" class="">#11007</a>, we optimized the dev server startup time for macOS users. We figured out that the code to open your browser used expensive synchronous/blocking calls that prevented the bundler from doing its work. From now on, the bundler and the macOS browser opening will run in parallel, leading to a faster <code>docusaurus start</code> experience for all macOS users.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11163" target="_blank" rel="noopener noreferrer" class="">#11163</a>, we noticed that the docs <code>showLastUpdateAuthor</code> and <code>showLastUpdateTime</code> are quite expensive, and require to run a <code>git log</code> command for each document. On large sites, running these commands in parallel can exhaust the system and lead to Node.js <code>EBADF</code> errors. We implemented a Git command queue to avoid exhausting the system, which also slightly increased performance of our plugin's <code>loadContent()</code> lifecycle.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10885" target="_blank" rel="noopener noreferrer" class="">#10885</a>, we implemented an SVG sprite for the external link icon. Due to its repeated appearance in various places of your site (navbar, footer, sidebars...), using a React SVG component lead to duplicated SVG markup in the final HTML. Using a sprite permits to only embed the icon SVG once, reducing the generated HTML size and the static generation time. We <a href="https://github.com/facebook/docusaurus/issues/5865" target="_blank" rel="noopener noreferrer" class="">plan to use more SVG sprites</a> in the future.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11176" target="_blank" rel="noopener noreferrer" class="">#11176</a>, we fine-tuned the webpack/Rspack configuration to remove useless optimizations.</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>If bundling time is a concern, consider disabling the optional <code>concatenateModule</code> bundler optimization. We explain the tradeoffs and how to do it <a href="https://github.com/facebook/docusaurus/discussions/11199" target="_blank" rel="noopener noreferrer" class="">here</a>. It only saves 3% JS, and for a very large site, this change was incredibly impactful: 4x faster on cold builds, x16 faster rebuilds 🔥.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="impact">Impact<a href="https://docusaurus.io/fr/blog/releases/3.8#impact" class="hash-link" aria-label="Lien direct vers Impact" title="Lien direct vers Impact" translate="no">​</a></h3>
<p>We have upgraded the <a href="https://github.com/facebook/react-native-website/pull/4607" target="_blank" rel="noopener noreferrer" class="">React Native website to Docusaurus v3.8</a> already. Here's an updated benchmark showing the global Docusaurus Faster impact on total build time for a site with ~2000 pages:</p>
<table><thead><tr><th>ReactNative.dev</th><th>Cold Build</th><th>Warm Rebuild</th></tr></thead><tbody><tr><td>🐢 Docusaurus Slower</td><td>120s (baseline)</td><td>33s (3.6 × faster)</td></tr><tr><td>⚡️ Docusaurus Faster</td><td>31s (3.8 × faster)</td><td>17s (7 × faster)</td></tr></tbody></table>
<p>We measured similar results on our website:</p>
<table><thead><tr><th>Docusaurus.io</th><th>Cold Build</th><th>Warm Rebuild</th></tr></thead><tbody><tr><td>🐢️ Docusaurus Slower</td><td>146s (baseline)</td><td>45s (3.2 × faster)</td></tr><tr><td>⚡️ Docusaurus Faster</td><td>42s (3.5 × faster)</td><td>24s (6.1 × faster)</td></tr></tbody></table>
<p>You can also expect memory usage improvements, and a faster <code>docusaurus start</code> experience.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="future-flags">Future Flags<a href="https://docusaurus.io/fr/blog/releases/3.8#future-flags" class="hash-link" aria-label="Lien direct vers Future Flags" title="Lien direct vers Future Flags" translate="no">​</a></h2>
<p>The Docusaurus v4 Future Flags let you <strong>opt-in for upcoming Docusaurus v4 breaking changes</strong>, and help you manage them incrementally, one at a time. Enabling all the future flags will make your site easier to upgrade to Docusaurus v4 when it's released.</p>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>not invented here</div><div class="admonitionContent_Knsx"><p>The concept of Future Flags is not our invention. It has been popularized in the Remix community. You can read more about this gradual feature adoption strategy here:</p><ul>
<li class=""><a href="https://remix.run/docs/en/main/guides/api-development-strategy" target="_blank" rel="noopener noreferrer" class="">Gradual Feature Adoption with Future Flags</a></li>
<li class=""><a href="https://remix.run/blog/future-flags" target="_blank" rel="noopener noreferrer" class="">Future Proofing Your Remix App</a></li>
</ul></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Turn all the v4 future flags on</div><div class="admonitionContent_Knsx"><p>You can turn all the v4 Future Flags on at once with the following shortcut:</p><div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">v4</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div><p>This way, you are sure to always keep your site prepared for Docusaurus v4. Be aware that we'll introduce more Future Flags in the next minor versions. When upgrading, always read our release blog posts to understand the new breaking changes you opt into.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="css-cascade-layers">CSS Cascade Layers<a href="https://docusaurus.io/fr/blog/releases/3.8#css-cascade-layers" class="hash-link" aria-label="Lien direct vers CSS Cascade Layers" title="Lien direct vers CSS Cascade Layers" translate="no">​</a></h3>
<p>In Docusaurus v4, we plan to leverage <a href="https://css-tricks.com/css-cascade-layers/" target="_blank" rel="noopener noreferrer" class="">CSS Cascade Layers</a>. This modern CSS feature is widely supported and permits to group CSS rules in layers of specificity. It is particularly useful to give you more control over the CSS cascade. It makes the CSS rules less dependent on their insertion order. Your un-layered rules will now always override the layered CSS we provide.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11142" target="_blank" rel="noopener noreferrer" class="">#11142</a>, we implemented a new experimental <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-css-cascade-layers"><code>@docusaurus/plugin-css-cascade-layers</code></a> that you can turn on through the <code>v4.useCssCascadeLayers</code> flag if you use the classic preset:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">v4</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">useCssCascadeLayers</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>We consider this feature as a <strong>breaking change</strong> because it can slightly alter the CSS rules application order in customized sites. These issues are usually limited, and relatively easy to fix (see for example the <a href="https://github.com/facebook/react-native-website/pull/4607" target="_blank" rel="noopener noreferrer" class="">React Native CSS changes</a>). Sites that do not provide custom CSS and do not swizzle any component should not be affected.</p>
<p>In practice, it permits to automatically apply built-in CSS Cascade Layers to all the CSS we provide, including our opinionated CSS framework <a href="https://infima.dev/" target="_blank" rel="noopener noreferrer" class="">Infima</a>:</p>
<div class="language-css codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-css codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token atrule rule" style="color:#D73A49">@layer</span><span class="token atrule" style="color:#22863A"> docusaurus.infima</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token selector" style="color:#6F42C1">h1</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Infima css rules */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token selector" style="color:#6F42C1">pre</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Infima css rules */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>Layers can help solves our long-standing <a href="https://github.com/facebook/docusaurus/issues/6032" target="_blank" rel="noopener noreferrer" class="">Global CSS pollution issue</a>. Our built-in global CSS rules may conflict with yours, making it harder to use Docusaurus to create playgrounds, demos and embedded widgets that are isolated from our CSS. Thankfully, <a href="https://mayank.co/blog/revert-layer/" target="_blank" rel="noopener noreferrer" class="">CSS Cascade Layers can be reverted</a> to create HTML subtrees that are not affected by the CSS Docusaurus provides.</p>
<details class="details_Nokh alert alert--info details_Cn_P" data-collapsed="true"><summary>Reverting layers</summary><div><div class="collapsibleContent_EoA1"><p>As <a href="https://github.com/facebook/docusaurus/pull/11142" target="_blank" rel="noopener noreferrer" class="">this issue</a> and <a href="https://mayank.co/blog/revert-layer/" target="_blank" rel="noopener noreferrer" class="">this blog post</a> explain, it is possible to revert layers to isolate an HTML subtree from the CSS that comes from that layer.</p><p>In practice, you can create a <code>.my-playground</code> class to revert the global CSS coming from Infima:</p><div class="language-css codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-css codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#6B6B6B;font-style:italic">/* The "impossible" :not() selector helps increase the specificity */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token selector class" style="color:#6F42C1">.my-playground</span><span class="token selector pseudo-class" style="color:#6F42C1">:not</span><span class="token selector punctuation" style="color:#393A34">(</span><span class="token selector id" style="color:#6F42C1">#a</span><span class="token selector id" style="color:#6F42C1">#b</span><span class="token selector punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token selector" style="color:#6F42C1">&amp;</span><span class="token selector punctuation" style="color:#393A34">,</span><span class="token selector" style="color:#6F42C1"></span><br></div><div class="token-line" style="color:#393A34"><span class="token selector" style="color:#6F42C1">  *</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token atrule rule" style="color:#D73A49">@layer</span><span class="token atrule" style="color:#22863A"> docusaurus.infima</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token property" style="color:#005CC5">all</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> revert-layer</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div><p>Then you can apply this class to any HTML element, so that Infima doesn't apply to any of its children. The HTML subtree becomes isolated from our built-in CSS.</p><div style="padding:10px"><div class="browserWindow_my1Q" style="min-width:min(100%,45vw);width:800px;max-width:100%;overflow:hidden"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">/tests/pages/style-isolation?docusaurus-data-navbar=false</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs" style="padding:0"><iframe src="/tests/pages/style-isolation?docusaurus-data-navbar=false" title="/tests/pages/style-isolation?docusaurus-data-navbar=false" style="display:block;width:100%;height:300px"></iframe></div></div></div></div></div></details>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="postbuild-change"><code>postBuild()</code> Change<a href="https://docusaurus.io/fr/blog/releases/3.8#postbuild-change" class="hash-link" aria-label="Lien direct vers postbuild-change" title="Lien direct vers postbuild-change" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10850" target="_blank" rel="noopener noreferrer" class="">#10850</a>, we added a new <code>removeLegacyPostBuildHeadAttribute</code> Future Flag that slightly changes the signature of the <code>postBuild()</code> plugin lifecycle method, removing the <code>head</code> attribute.</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">v4</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">removeLegacyPostBuildHeadAttribute</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>This legacy data structure is coming from our <a href="https://github.com/staylor/react-helmet-async" target="_blank" rel="noopener noreferrer" class="">react-helmet-async</a> dependency and should have never been exposed as public API in the first place. It is not serializable, which prevents us from implementing <a href="https://docusaurus.io/fr/blog/releases/3.8#worker-threads" class="">Worker Threads for the static site generation</a>.</p>
<p>While technically a <strong>breaking change</strong>, we believe this change will not affect anyone. We couldn't find any open source plugin that uses the <code>head</code> parameter that this method receives. If turning this flag on breaks your site, please let us know <a href="https://github.com/facebook/docusaurus/pull/10850" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="system-color-mode">System Color Mode<a href="https://docusaurus.io/fr/blog/releases/3.8#system-color-mode" class="hash-link" aria-label="Lien direct vers System Color Mode" title="Lien direct vers System Color Mode" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10987" target="_blank" rel="noopener noreferrer" class="">#10987</a>, the classic theme now lets you revert the color mode to the system/OS value.</p>
<div class="browserWindow_my1Q"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">http://localhost:3000</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs"><div class="margin-vert--md" style="display:flex;justify-content:center"><div class="toggle_bT41"><button class="clean-btn toggleButton_x9TT toggleButtonDisabled_Dj8q" type="button" disabled="" title="system mode" aria-label="Basculer entre le mode sombre et le mode clair (actuellement system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_nCQi lightToggleIcon_dnYY"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_nCQi darkToggleIcon_OBbf"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_nCQi systemToggleIcon_IWwm"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div></div></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="code-block-refactor">Code Block Refactor<a href="https://docusaurus.io/fr/blog/releases/3.8#code-block-refactor" class="hash-link" aria-label="Lien direct vers Code Block Refactor" title="Lien direct vers Code Block Refactor" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/11058" target="_blank" rel="noopener noreferrer" class="">#11058</a>, <a href="https://github.com/facebook/docusaurus/pull/11059" target="_blank" rel="noopener noreferrer" class="">#11059</a>, <a href="https://github.com/facebook/docusaurus/pull/11062" target="_blank" rel="noopener noreferrer" class="">#11062</a> and <a href="https://github.com/facebook/docusaurus/pull/11077" target="_blank" rel="noopener noreferrer" class="">#11077</a>, the theme code block components have been significantly refactored in a way that should be much easier to swizzle and extend.</p>
<p>According to our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a>, this is not a breaking change, but sites that have swizzled these components may need to upgrade them.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/3.8#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h2>
<ul>
<li class="">🇹🇷 <a href="https://github.com/facebook/docusaurus/pull/10893" target="_blank" rel="noopener noreferrer" class="">#10893</a>: Add missing Turkish theme translations.</li>
<li class="">🇵🇱 <a href="https://github.com/facebook/docusaurus/pull/10884" target="_blank" rel="noopener noreferrer" class="">#10884</a>: Add missing Polish theme translations.</li>
<li class="">🇨🇳 <a href="https://github.com/facebook/docusaurus/pull/10816" target="_blank" rel="noopener noreferrer" class="">#10816</a>: Add missing Chinese theme translations.</li>
<li class="">🇯🇵 <a href="https://github.com/facebook/docusaurus/pull/11030" target="_blank" rel="noopener noreferrer" class="">#11030</a>: Add missing Japanese theme translations.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="maintenance">Maintenance<a href="https://docusaurus.io/fr/blog/releases/3.8#maintenance" class="hash-link" aria-label="Lien direct vers Maintenance" title="Lien direct vers Maintenance" translate="no">​</a></h2>
<p>Docusaurus 3.8 is ready for <a href="https://github.com/facebook/docusaurus/pull/11168" target="_blank" rel="noopener noreferrer" class="">Node.js 24</a> and <a href="https://github.com/facebook/docusaurus/pull/10966" target="_blank" rel="noopener noreferrer" class="">TypeScript 5.8</a>.</p>
<p>We also removed useless npm packages and internalizing unmaintained ones:</p>
<ul>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11010" target="_blank" rel="noopener noreferrer" class="">#11010</a> and <a href="https://github.com/facebook/docusaurus/pull/11014" target="_blank" rel="noopener noreferrer" class="">#11014</a>, we internalized the unmaintained <code>react-ideal-image</code> and <code>react-waypoint</code> package used in <code>@docusaurus/plugin-ideal-image</code>, and made them compatible with React 19.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10956" target="_blank" rel="noopener noreferrer" class="">#10956</a>, we removed our dependency to the unmaintained <code>react-dev-utils</code> package (from Create-React-App).</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10358" target="_blank" rel="noopener noreferrer" class="">#10358</a>, we replaced the unmaintained <code>shelljs</code> package by <code>execa</code></li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11138" target="_blank" rel="noopener noreferrer" class="">#11138</a>, we removed the <code>reading-time</code> package in favor of the built-in <code>Intl.Segmenter</code> standard API to compute blog post reading times.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11037" target="_blank" rel="noopener noreferrer" class="">#11037</a>, we removed the useless <code>clean-webpack-plugin</code>.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.8#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10852" target="_blank" rel="noopener noreferrer" class="">#10852</a>, the theme <code>docsVersionDropdown</code> navbar item now accepts a <code>versions</code> attribute.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10953" target="_blank" rel="noopener noreferrer" class="">#10953</a>, the <code>@docusaurus/remark-plugin-npm2yarn</code> plugin now supports Bun tabs conversions by default.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10945" target="_blank" rel="noopener noreferrer" class="">#10945</a>, more stable CSS classes are now applied to the main theme layout elements, to let you create more reliable CSS selectors.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10846" target="_blank" rel="noopener noreferrer" class="">#10846</a>, the Markdown code block <code>showLineNumbers</code> metastring can now accept a number to initialize the line counter initial value.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11090" target="_blank" rel="noopener noreferrer" class="">#11090</a>, we made it easier to provide a custom page title formatter.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/11088" target="_blank" rel="noopener noreferrer" class="">#11088</a>, the page plugin now supports <code>frontMatter.slug</code> like docs and blog plugins already do.</li>
<li class="">In <a href="https://github.com/facebook/docusaurus/pull/10875" target="_blank" rel="noopener noreferrer" class="">#10875</a>, the docs versioning CLI now also copies localized docs JSON translation files.</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.8.0">3.8.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.7]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.7</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.7</guid>
            <pubDate>Fri, 03 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.7.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.7</strong>.</p>
<p>Docusaurus is now compatible with <a href="https://react.dev/blog/2024/12/05/react-19" target="_blank" rel="noopener noreferrer" class="">React 19</a>.</p>
<p>Upgrading should be easy. Our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a> respects <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>. Minor versions do not include any breaking changes.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-73a479db9ad439c10153f05dc03fdc91.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlight">Highlight<a href="https://docusaurus.io/fr/blog/releases/3.7#highlight" class="hash-link" aria-label="Lien direct vers Highlight" title="Lien direct vers Highlight" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="react-19">React 19<a href="https://docusaurus.io/fr/blog/releases/3.7#react-19" class="hash-link" aria-label="Lien direct vers React 19" title="Lien direct vers React 19" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10763" target="_blank" rel="noopener noreferrer" class="">#10763</a>, we added support for <a href="https://react.dev/blog/2024/12/05/react-19" target="_blank" rel="noopener noreferrer" class="">React 19</a>, and the Docusaurus website is running on React 19 already.</p>
<p>From now on, all newly initialized sites will run on React 19 by default, and React 19 will be the minimum required version Docusaurus v4.</p>
<p>However, React 18 remains supported, and existing Docusaurus sites can either choose to stay on React 18, or upgrade their dependencies to React 19:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> "name": "my-docusaurus-site",</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> "dependencies": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">   "react": "^18.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">   "react-dom": "^18.0.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">   "react": "^19.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">   "react-dom": "^19.0.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> }</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token plain">}</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>attention</div><div class="admonitionContent_Knsx"><p>There's no urge to upgrade your site immediately.</p><p>React 19 is a bit heavier than React 18. Since we support both versions, we don't leverage yet the new features that are exclusive to React 19.</p><p>However, upgrading to React 19 prepares your site for Docusaurus v4, that will drop support for React 18.</p><p>Here are good reasons to upgrade your site before Docusaurus v4:</p><ul>
<li class="">You have custom React code and want to ensure it is ready for React19</li>
<li class="">You plan to leverage the brand-new React 19 features in your own code</li>
<li class="">You use custom or third-party plugins and want to ensure their compatibility</li>
<li class="">You have a monorepo and want to align the React dependency to v19 for all packages</li>
</ul></div></div>
<p>Along the way, we <a href="https://github.com/facebook/docusaurus/pull/10786" target="_blank" rel="noopener noreferrer" class="">fixed</a> all the remaining hydration errors reported by React 19, some of them produced by our aggressive HTML minifier settings.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="svgr-plugin">SVGR plugin<a href="https://docusaurus.io/fr/blog/releases/3.7#svgr-plugin" class="hash-link" aria-label="Lien direct vers SVGR plugin" title="Lien direct vers SVGR plugin" translate="no">​</a></h3>
<p>Docusaurus has built-in support for <a href="https://github.com/gregberge/svgr" target="_blank" rel="noopener noreferrer" class="">SVGR</a>, allowing you to seamlessly import and use SVG files as React components:</p>
<div class="language-tsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-tsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">DocusaurusSvg</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'./docusaurus.svg'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#116329">DocusaurusSvg</span><span class="token tag" style="color:#22863A"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>This built-in support has been the source of various bug reports due to the inability to customize the <a href="https://react-svgr.com/docs/options/" target="_blank" rel="noopener noreferrer" class="">SVGR Options</a>, in particular the <a href="https://svgo.dev/" target="_blank" rel="noopener noreferrer" class="">SVG Optimizer</a> options.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10677" target="_blank" rel="noopener noreferrer" class="">#10677</a>, we extracted a new <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-svgr"><code>@docusaurus/plugin-svgr</code></a> that you can now configure according to your needs. It is included by default in our classic preset:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">presets</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#C6105F">'classic'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token literal-property property" style="color:#005CC5">svgr</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token literal-property property" style="color:#005CC5">svgrConfig</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Your SVGR options ...</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token literal-property property" style="color:#005CC5">svgoConfig</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Your SVGO options ...</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Use "svgoConfig: undefined" to use a svgo.config.js file</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.7#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10768" target="_blank" rel="noopener noreferrer" class="">#10768</a>: Blog authors have built-in icons for social platforms bluesky, mastodon, threads, twitch, youtube, instagram.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10729" target="_blank" rel="noopener noreferrer" class="">#10729</a>: Blog now supports <code>frontMatter.sidebar_label</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10803" target="_blank" rel="noopener noreferrer" class="">#10803</a>: <code>@docusaurus/remark-plugin-npm2yarn</code> now supports Bun conversions.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10672" target="_blank" rel="noopener noreferrer" class="">#10672</a>: Upgrade Algolia DocSearch to <code>algoliasearch</code> v5.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10800" target="_blank" rel="noopener noreferrer" class="">#10800</a>: Docusaurus Faster turns Rspack incremental mode on by default.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10783" target="_blank" rel="noopener noreferrer" class="">#10783</a>: Improve Dutch theme translations.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10760" target="_blank" rel="noopener noreferrer" class="">#10760</a>: Improve Korean theme translations.</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.7.0">3.7.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.6]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.6</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.6</guid>
            <pubDate>Mon, 04 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.6.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.6</strong>.</p>
<p>Docusaurus is now ⚡️⚡️⚡️ <strong>much faster</strong> to build your site.</p>
<p>Upgrading should be easy. Our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a> respects <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>. Minor versions do not include any breaking changes.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-5214adcb56c496fa6afc571fb4d378f6.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/3.6#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<p>This release has been mostly focused on build performance through the <a href="https://github.com/facebook/docusaurus/issues/10556" target="_blank" rel="noopener noreferrer" class="">Docusaurus Faster</a> project.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="docusaurus-faster">Docusaurus Faster<a href="https://docusaurus.io/fr/blog/releases/3.6#docusaurus-faster" class="hash-link" aria-label="Lien direct vers Docusaurus Faster" title="Lien direct vers Docusaurus Faster" translate="no">​</a></h2>
<p>The <a href="https://github.com/facebook/docusaurus/issues/10556" target="_blank" rel="noopener noreferrer" class="">Docusaurus Faster</a> project's goal is to reduce the build times and memory consumption.</p>
<p>We have worked on multiple optimizations and modernized our infrastructure to use faster Rust-based tools, notably:</p>
<ul>
<li class="">🦀 <a href="https://rspack.dev/" target="_blank" rel="noopener noreferrer" class="">Rspack</a>: Fast Rust-based web bundler, almost drop-in replacement for <a href="https://webpack.js.org/" target="_blank" rel="noopener noreferrer" class="">webpack</a></li>
<li class="">🦀 <a href="https://swc.rs/" target="_blank" rel="noopener noreferrer" class="">SWC</a>: Speedy Web Compiler, Rust-based platform for the Web (HTML, CSS, JS)</li>
<li class="">🦀 <a href="https://lightningcss.dev/" target="_blank" rel="noopener noreferrer" class="">Lightning CSS</a>: An extremely fast CSS parser, transformer, bundler, and minifier</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="impacts">Impacts<a href="https://docusaurus.io/fr/blog/releases/3.6#impacts" class="hash-link" aria-label="Lien direct vers Impacts" title="Lien direct vers Impacts" translate="no">​</a></h3>
<p>Adopting a new infrastructure can have various impacts. It's impossible to list them all exhaustively, so let's focus on the major ones.</p>
<p>To help you adopt it easily, we have been fairly conservative in terms of expected static site output and <a class="" href="https://docusaurus.io/fr/docs/browser-support">browser support</a>.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="build-time">Build Time<a href="https://docusaurus.io/fr/blog/releases/3.6#build-time" class="hash-link" aria-label="Lien direct vers Build Time" title="Lien direct vers Build Time" translate="no">​</a></h4>
<p>Benchmarks on community site show that you can expect your production site to build ⚡️<strong>2 to 4 times faster</strong>! 🔥:</p>
<ul>
<li class=""><a href="https://github.com/facebook/react-native-website/pull/4268" target="_blank" rel="noopener noreferrer" class="">React Native website</a>: 3.04x faster 🔥</li>
<li class=""><a href="https://github.com/babel/website/pull/2997" target="_blank" rel="noopener noreferrer" class="">Babel website</a>: 3.27x faster 🔥</li>
<li class=""><a href="https://github.com/facebook/lexical/pull/6761" target="_blank" rel="noopener noreferrer" class="">Lexical website</a>: 2x faster 🔥</li>
</ul>
<p><a href="https://github.com/facebook/docusaurus/issues/10556#issuecomment-2407671873" target="_blank" rel="noopener noreferrer" class="">How to benchmark</a></p>
<div class="theme-admonition theme-admonition-note admonition_o5H7 alert alert--secondary"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>About rebuilds</div><div class="admonitionContent_Knsx"><p><a href="https://rspack.dev/misc/planning/roadmap#persistent-cache" target="_blank" rel="noopener noreferrer" class="">Rspack doesn't support persistent caching yet</a>, but it's on the roadmap and should be implemented soon. We think it's not a problem for the adoption of Rspack considering a cold Rspack build is usually as fast as a warm Webpack build using persistent caching.</p></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="memory-consumption">Memory Consumption<a href="https://docusaurus.io/fr/blog/releases/3.6#memory-consumption" class="hash-link" aria-label="Lien direct vers Memory Consumption" title="Lien direct vers Memory Consumption" translate="no">​</a></h4>
<p>You should also notice an improvement in memory consumption:</p>
<ul>
<li class="">The new infrastructure consumes less memory overall</li>
<li class="">We fixed an important <a href="https://github.com/facebook/docusaurus/pull/10599" target="_blank" rel="noopener noreferrer" class="">memory leak</a> that affects in particular i18n sites</li>
<li class="">We added <a href="https://github.com/facebook/docusaurus/pull/10601" target="_blank" rel="noopener noreferrer" class="">CI checks</a> to ensure that we don't regress, and that our site and init template can both build in a memory-constrained environments</li>
<li class="">We added <a href="https://github.com/facebook/docusaurus/pull/10590" target="_blank" rel="noopener noreferrer" class="">internal tooling</a> to better understand which step of a build consumes memory</li>
<li class="">We <a href="https://github.com/facebook/docusaurus/pull/10410" target="_blank" rel="noopener noreferrer" class="">removed a <code>process.exit(0)</code></a> that can hide memory leaks in your own code and third-party plugins</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-impacts">Other Impacts<a href="https://docusaurus.io/fr/blog/releases/3.6#other-impacts" class="hash-link" aria-label="Lien direct vers Other Impacts" title="Lien direct vers Other Impacts" translate="no">​</a></h4>
<ul>
<li class="">The HTML minifier now <a href="https://github.com/facebook/docusaurus/discussions/10580" target="_blank" rel="noopener noreferrer" class="">emits warnings in case of invalid HTML markup</a></li>
<li class="">The static HTML output is <a href="https://github.com/facebook/docusaurus/pull/10554" target="_blank" rel="noopener noreferrer" class="">~5% smaller</a></li>
<li class="">Some bugs are automatically fixed by the new infrastructure</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="adoption-strategy">Adoption Strategy<a href="https://docusaurus.io/fr/blog/releases/3.6#adoption-strategy" class="hash-link" aria-label="Lien direct vers Adoption Strategy" title="Lien direct vers Adoption Strategy" translate="no">​</a></h3>
<p>This new infrastructure is a breaking change, but it is opt-in and does not require a new major version of Docusaurus.</p>
<p>Before using Docusaurus Faster, add this new package:</p>
<div class="theme-tabs-container tabs-container tabList_Qoir"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_AQgk tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_AQgk">Yarn</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_AQgk">pnpm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_AQgk">Bun</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_pnkT"><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">npm</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">install</span><span class="token plain"> @docusaurus/faster</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_pnkT" hidden=""><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">yarn</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">add</span><span class="token plain"> @docusaurus/faster</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_pnkT" hidden=""><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">pnpm</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">add</span><span class="token plain"> @docusaurus/faster</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_pnkT" hidden=""><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">bun </span><span class="token function" style="color:#8250DF">add</span><span class="token plain"> @docusaurus/faster</span><br></div></code></pre></div></div></div></div></div>
<p>To help you <strong>adopt it incrementally under Docusaurus v3</strong>, we're introducing a set of feature flags that you can activate progressively.</p>
<p>We recommend turning them on all at once with this simple boolean shortcut:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">experimental_faster</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>In case one of the flags does not work for your site, it's possible to turn feature flags on independently:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    experimental_faster</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      swcJsLoader</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      swcJsMinimizer</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      swcHtmlMinimizer</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      lightningCssMinimizer</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      rspackBundler</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      mdxCrossCompilerCache</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10435" target="_blank" rel="noopener noreferrer" class=""><code>swcJsLoader</code></a>: Use <a href="https://swc.rs/" target="_blank" rel="noopener noreferrer" class="">SWC</a> to transpile JS (instead of <a href="https://babeljs.io/" target="_blank" rel="noopener noreferrer" class="">Babel</a>)</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10441" target="_blank" rel="noopener noreferrer" class=""><code>swcJsMinimizer</code></a>: Use <a href="https://swc.rs/" target="_blank" rel="noopener noreferrer" class="">SWC</a> to minify JS (instead of <a href="https://github.com/terser/terser" target="_blank" rel="noopener noreferrer" class="">Terser</a>)</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10554" target="_blank" rel="noopener noreferrer" class=""><code>swcHtmlMinimizer </code></a>: Use <a href="https://swc.rs/" target="_blank" rel="noopener noreferrer" class="">SWC</a> to minify HTML and inlined JS/CSS (instead of <a href="https://github.com/terser/html-minifier-terser" target="_blank" rel="noopener noreferrer" class="">html-minifier-terser</a>)</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10522" target="_blank" rel="noopener noreferrer" class=""><code>lightningCssMinimizer</code></a>: Use <a href="https://lightningcss.dev/" target="_blank" rel="noopener noreferrer" class="">Lightning CSS</a> to minify CSS (instead of <a href="https://github.com/cssnano/cssnano" target="_blank" rel="noopener noreferrer" class="">cssnano</a> and <a href="https://github.com/clean-css/clean-css" target="_blank" rel="noopener noreferrer" class="">clean-css</a>)</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10402" target="_blank" rel="noopener noreferrer" class=""><code>rspackBundler</code></a>: Use <a href="https://rspack.dev/" target="_blank" rel="noopener noreferrer" class="">Rspack</a> to bundle your app (instead of <a href="https://webpack.js.org/" target="_blank" rel="noopener noreferrer" class="">webpack</a>)</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10479" target="_blank" rel="noopener noreferrer" class=""><code>mdxCrossCompilerCache</code></a>: Compile MDX files once for both browser/Node.js environments instead of twice</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Experimental but safe</div><div class="admonitionContent_Knsx"><p>Don't be afraid to turn this feature on. What's experimental is the config options.</p><p>The new infrastructure is robust and well-tested by our CI pipeline. The <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">Docusaurus site</a> already uses it in production, and we plan to use it on other Meta docs sites as well.</p></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="plugins">Plugins<a href="https://docusaurus.io/fr/blog/releases/3.6#plugins" class="hash-link" aria-label="Lien direct vers Plugins" title="Lien direct vers Plugins" translate="no">​</a></h4>
<p>The new infrastructure uses <a href="https://rspack.dev/" target="_blank" rel="noopener noreferrer" class="">Rspack</a>. By chance, Rspack is almost 100% compatible with <a href="https://webpack.js.org/" target="_blank" rel="noopener noreferrer" class="">webpack</a>, and Rspack shouldn't break our plugin ecosystem.</p>
<p>Most Docusaurus plugins should work out of the box with Rspack, even those implementing <a class="" href="https://docusaurus.io/fr/docs/api/plugin-methods/lifecycle-apis#configureWebpack"><code>configureWebpack</code></a>.</p>
<p>However, some of them will require small modifications to make them compatible with Rspack. The general idea is to avoid importing <code>webpack</code> directly, and use the "dynamically provided" webpack instance instead:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">import webpack from 'webpack';</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">export default function (context, options) {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> return {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">   name: 'custom-docusaurus-plugin',</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">   configureWebpack(config, isServer) {</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">   configureWebpack(config, isServer, {currentBundler}) {</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">     return {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">       plugins: [</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">         new webpack.DefinePlugin({}),</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">         new currentBundler.instance.DefinePlugin({}),</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">       ]</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">     };</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">   },</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> };</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token plain">}</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>For plugins authors</div><div class="admonitionContent_Knsx"><p>Check the <a href="https://github.com/facebook/docusaurus/issues/10572" target="_blank" rel="noopener noreferrer" class="">dedicated issue</a> for guidelines and support.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="next-steps">Next Steps<a href="https://docusaurus.io/fr/blog/releases/3.6#next-steps" class="hash-link" aria-label="Lien direct vers Next Steps" title="Lien direct vers Next Steps" translate="no">​</a></h3>
<p>It's only the beginning: we will continue working on the <a href="https://github.com/facebook/docusaurus/issues/10556" target="_blank" rel="noopener noreferrer" class="">Docusaurus Faster</a> project and already have a few more performance improvements planned.</p>
<p>Depending on <a href="https://github.com/facebook/docusaurus/issues/10556" target="_blank" rel="noopener noreferrer" class="">your feedback</a>, we plan to make this new infrastructure the default in an upcoming major version of Docusaurus.</p>
<p>🙏 We'd like to thank the authors of all these great tools that already helped us make Docusaurus much faster than before. In particular the <a href="https://rspack.dev/misc/team/core-team" target="_blank" rel="noopener noreferrer" class="">Rspack team</a> that supported us along the way, handled our feedback very quickly and implemented all the missing features we needed to make it happen. 👏</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="rsdoctor-plugin">Rsdoctor plugin<a href="https://docusaurus.io/fr/blog/releases/3.6#rsdoctor-plugin" class="hash-link" aria-label="Lien direct vers Rsdoctor plugin" title="Lien direct vers Rsdoctor plugin" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10588" target="_blank" rel="noopener noreferrer" class="">#10588</a>, we created a Docusaurus plugin for <a href="https://rsdoctor.dev/" target="_blank" rel="noopener noreferrer" class="">Rsdoctor</a>. It analyzes the bundling phase of Docusaurus and helps you figure out what slows down the bundler in terms of loaders, plugins and minimizers. It works for both webpack and Rspack.</p>
<p><img decoding="async" loading="lazy" alt="Loader timeline example" src="https://docusaurus.io/fr/assets/images/rsdoctor-36963a4eaca95f83538208463e62eae2.jpg" width="1436" height="690" class="img_vXGZ"></p>
<p>To use it, install the new <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-rsdoctor"><code>@docusaurus/plugin-rsdoctor</code></a> package, and then use the plugin in your config:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  plugins</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#C6105F">'rsdoctor'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* options */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Turn it on conditionally, based on an environment variable:</p><div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  plugins</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    process</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">env</span><span class="token punctuation" style="color:#393A34">.</span><span class="token constant" style="color:#005CC5">RSDOCTOR</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">===</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'true'</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">&amp;&amp;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#C6105F">'rsdoctor'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* options */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#6B6B6B;font-style:italic"># Build without Rsdoctor</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#8250DF">npm</span><span class="token plain"> run build</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic"># Build with Rsdoctor</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#E36209">RSDOCTOR</span><span class="token operator" style="color:#D73A49">=</span><span class="token plain">true </span><span class="token function" style="color:#8250DF">npm</span><span class="token plain"> run build</span><br></div></code></pre></div></div></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="mermaid">Mermaid<a href="https://docusaurus.io/fr/blog/releases/3.6#mermaid" class="hash-link" aria-label="Lien direct vers Mermaid" title="Lien direct vers Mermaid" translate="no">​</a></h2>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10510" target="_blank" rel="noopener noreferrer" class="">#10510</a>, we relaxed our <a href="https://mermaid.js.org/" target="_blank" rel="noopener noreferrer" class="">Mermaid diagrams</a> dependency range to allow newer major versions of Mermaid. We now support both Mermaid 10/11, and expect upcoming versions to be compatible, letting you upgrade on your own terms.</p>
<p>This unlocks new types of diagrams, such as <a href="https://mermaid.js.org/syntax/architecture" target="_blank" rel="noopener noreferrer" class="">Architecture Diagrams</a>:</p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/3.6#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h2>
<ul>
<li class="">🇸🇮 <a href="https://github.com/facebook/docusaurus/pull/10551" target="_blank" rel="noopener noreferrer" class="">#10551</a>: Improve Slovenian theme translations.</li>
<li class="">🇻🇳 <a href="https://github.com/facebook/docusaurus/pull/10507" target="_blank" rel="noopener noreferrer" class="">#10507</a>: Improve Vietnamese theme translations.</li>
<li class="">🇪🇸 <a href="https://github.com/facebook/docusaurus/pull/10413" target="_blank" rel="noopener noreferrer" class="">#10413</a>: Improve Spanish theme translations.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.6#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10586" target="_blank" rel="noopener noreferrer" class="">#10586</a>: Blog support for <code>frontMatter.title_meta</code> to override <code>frontMatter.title</code> for SEO reason.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10600" target="_blank" rel="noopener noreferrer" class="">#10600</a>: <code>docusaurus build</code> and <code>docusaurus deploy</code> now support multiple <code>--locale</code> CLI args.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10454" target="_blank" rel="noopener noreferrer" class="">#10454</a>: <code>docusaurus-remark-plugin-npm2yarn</code> upgrades to <a href="https://github.com/nebrelbug/npm-to-yarn/releases/tag/v3.0.0" target="_blank" rel="noopener noreferrer" class=""><code>npm-to-yarn</code> v3</a> and can convert <code>npx</code> commands.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10612" target="_blank" rel="noopener noreferrer" class="">#10612</a>: Canary releases will use <code>3.5.2-canary-&lt;number&gt;</code> instead of <code>0.0.0-canary-&lt;number&gt;</code> to respect plugins <code>peerDependency</code> constraints.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10547" target="_blank" rel="noopener noreferrer" class="">#10547</a>: <code>@docusaurus/tsconfig</code> upgrades to <code>target: 'es2022'</code>.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10514" target="_blank" rel="noopener noreferrer" class="">#10514</a>: Remove <code>babel.config.js</code> from Docusaurus init templates to discourage customizing Babel.</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.6.0">3.6.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.5]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.5</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.5</guid>
            <pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.5.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.5</strong>.</p>
<p>This release contains many <strong>new exciting blog features</strong>.</p>
<p>Upgrading should be easy. Our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a> respects <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>. Minor versions do not include any breaking changes.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-7b2ed059f27fc8b64f3f20025ebb382f.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/3.5#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="blog-social-icons">Blog Social Icons<a href="https://docusaurus.io/fr/blog/releases/3.5#blog-social-icons" class="hash-link" aria-label="Lien direct vers Blog Social Icons" title="Lien direct vers Blog Social Icons" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10222" target="_blank" rel="noopener noreferrer" class="">#10222</a>, we added the possibility to associate social links to blog authors, for inline authors declared in front matter or global through the <code>authors.yml</code> file.</p>
<div class="language-yml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">blog/authors.yml</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#22863A">slorber</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Sébastien Lorber</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#6B6B6B;font-style:italic"># other author properties...</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">socials</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">x</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> sebastienlorber</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">linkedin</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> sebastienlorber</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">github</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> slorber</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">newsletter</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> https</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">//thisweekinreact.com</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="Author socials screenshot displaying slorber author with 4 social platform icons" src="https://docusaurus.io/fr/assets/images/author-socials-93483e664b2d095b137cf10c4769c100.png" width="780" height="180" class="img_vXGZ"></p>
<p>Icons and handle shortcuts are provided for pre-defined platforms <code>x</code>, <code>linkedin</code>, <code>github</code> and <code>stackoverflow</code>. It's possible to provide any additional platform entry (like <code>newsletter</code> in the example above) with a full URL.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="blog-authors-pages">Blog Authors Pages<a href="https://docusaurus.io/fr/blog/releases/3.5#blog-authors-pages" class="hash-link" aria-label="Lien direct vers Blog Authors Pages" title="Lien direct vers Blog Authors Pages" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10216" target="_blank" rel="noopener noreferrer" class="">#10216</a>, we added the possibility for <a class="" href="https://docusaurus.io/fr/docs/blog#global-authors">global blog authors</a> (declared in <code>authors.yml</code>) to have their own dedicated page listing all the blog posts they contributed to.</p>
<p>This feature is opt-in and mostly relevant for <strong>multi-author blogs</strong>. You can turn it on for a specific author by setting the <code>page: true</code> property:</p>
<div class="language-yml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">blog/authors.yml</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#22863A">slorber</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Sébastien Lorber</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#6B6B6B;font-style:italic"># the description will be displayed on the author's page</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">description</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'A freelance React and React-Native developer...'</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">page</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#005CC5">true</span><span class="token plain"> </span><span class="token comment" style="color:#6B6B6B;font-style:italic"># Turns the feature on</span><br></div></code></pre></div></div>
<p>This creates a <a class="" href="https://docusaurus.io/fr/blog/authors/slorber">dedicated author page</a> at <code>/blog/authors/slorber</code>.</p>
<p><img decoding="async" loading="lazy" alt="Author page screenshot for slorber global author" src="https://docusaurus.io/fr/assets/images/author-page-4a9753641b116ddfeecc46ed1dcee907.png" width="883" height="900" class="img_vXGZ"></p>
<p>An <a class="" href="https://docusaurus.io/fr/blog/authors">authors index page</a> is also created, listing all the blog authors.</p>
<p><img decoding="async" loading="lazy" alt="Author index page listing multiple authors" src="https://docusaurus.io/fr/assets/images/author-index-4abd3b8b777b2c1b3958768559896262.png" width="705" height="645" class="img_vXGZ"></p>
<p>Check the <a class="" href="https://docusaurus.io/fr/docs/blog#authors-pages">blog authors pages guide</a> for details.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="blog-feeds-styling">Blog Feeds Styling<a href="https://docusaurus.io/fr/blog/releases/3.5#blog-feeds-styling" class="hash-link" aria-label="Lien direct vers Blog Feeds Styling" title="Lien direct vers Blog Feeds Styling" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/9252" target="_blank" rel="noopener noreferrer" class="">#9252</a>, we added support for <a href="https://darekkay.com/blog/rss-styling/" target="_blank" rel="noopener noreferrer" class="">styling your blog feeds</a> by providing custom XSLT <code>.xls</code> files for the RSS and Atom feeds. This allows browsers to render the feeds in a more visually appealing way, like a regular HTML page, instead of the default XML view.</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">website/docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> blogOptions </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">feedOptions</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">xslt</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">rss</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'custom-rss.xsl'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">atom</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'custom-atom.xsl'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>Writing your own XSLT can be complex, but you can also use <code>xslt: true</code> to turn on the built-in style:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">website/docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> blogOptions </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">feedOptions</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">xslt</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="Screenshot of the Docusaurus blog RSS feed, beautifully styled" src="https://docusaurus.io/fr/assets/images/blog-feed-xslt-22194c2a971aba7f3bbf6115d3aa1d49.png" width="730" height="782" class="img_vXGZ"></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="blog-sidebar-grouping">Blog Sidebar Grouping<a href="https://docusaurus.io/fr/blog/releases/3.5#blog-sidebar-grouping" class="hash-link" aria-label="Lien direct vers Blog Sidebar Grouping" title="Lien direct vers Blog Sidebar Grouping" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10252" target="_blank" rel="noopener noreferrer" class="">#10252</a>, we added support for grouping blog posts by years in the blog sidebar.</p>
<p><img decoding="async" loading="lazy" alt="Screenshot of the Docusaurus blog, in particular the sidebar items grouped by year" src="https://docusaurus.io/fr/assets/images/blog-sidebar-years-1d0be02836d9a3307386c365b9969a37.png" width="910" height="452" class="img_vXGZ"></p>
<p>This feature is now turned on by default, but can be disabled with <code>themeConfig.blog.sidebar.groupByYear: false</code>.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="blog-consistency-options">Blog Consistency Options<a href="https://docusaurus.io/fr/blog/releases/3.5#blog-consistency-options" class="hash-link" aria-label="Lien direct vers Blog Consistency Options" title="Lien direct vers Blog Consistency Options" translate="no">​</a></h3>
<p>We added new blog options to enforce recommended practices for your blog posts:</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="oninlineauthors"><code>onInlineAuthors</code><a href="https://docusaurus.io/fr/blog/releases/3.5#oninlineauthors" class="hash-link" aria-label="Lien direct vers oninlineauthors" title="Lien direct vers oninlineauthors" translate="no">​</a></h4>
<p>We believe large multi-blogs are easier to manage by using <a class="" href="https://docusaurus.io/fr/docs/blog#global-authors">global authors</a>, declared in <code>authors.yml</code>. This notably permits to avoids duplicating author information across multiple blog posts, and now permits to generate <a class="" href="https://docusaurus.io/fr/docs/blog#authors-pages">author pages</a>.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10224" target="_blank" rel="noopener noreferrer" class="">#10224</a>, we added the <code>onInlineAuthors</code> option. Use <code>onInlineAuthors: 'throw'</code> to forbid <a class="" href="https://docusaurus.io/fr/docs/blog#inline-authors">inline authors</a>, and enforce a consistent usage of <a class="" href="https://docusaurus.io/fr/docs/blog#global-authors">global authors</a>.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="onuntruncatedblogposts"><code>onUntruncatedBlogPosts</code><a href="https://docusaurus.io/fr/blog/releases/3.5#onuntruncatedblogposts" class="hash-link" aria-label="Lien direct vers onuntruncatedblogposts" title="Lien direct vers onuntruncatedblogposts" translate="no">​</a></h4>
<p>We believe blog posts are better using <a class="" href="https://docusaurus.io/fr/docs/blog#blog-list">truncation markers</a> (<code>&lt;!-- truncate --&gt;</code> or <code>{/* truncate */}</code>). On paginated lists (blog home, tags pages, authors pages), this permits to render a more concise preview of the blog post instead of a full blog post.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10375" target="_blank" rel="noopener noreferrer" class="">#10375</a>, we added the <code>onUntruncatedBlogPosts</code> option. Use <code>onUntruncatedBlogPosts: 'throw'</code> to enforce a consistent usage of <a class="" href="https://docusaurus.io/fr/docs/blog#blog-list">truncation markers</a>.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/3.5#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h2>
<ul>
<li class="">🇪🇪 <a href="https://github.com/facebook/docusaurus/pull/10339" target="_blank" rel="noopener noreferrer" class="">#10339</a>: Add Estonian theme translations.</li>
<li class="">🇮🇩 <a href="https://github.com/facebook/docusaurus/pull/10325" target="_blank" rel="noopener noreferrer" class="">#10325</a>: Add Indonesian theme translations.</li>
<li class="">🇪🇸 <a href="https://github.com/facebook/docusaurus/pull/10360" target="_blank" rel="noopener noreferrer" class="">#10360</a>: Improve Spanish theme translations.</li>
<li class="">🇩🇪 <a href="https://github.com/facebook/docusaurus/pull/10235" target="_blank" rel="noopener noreferrer" class="">#10235</a>: Improve German theme translations.</li>
<li class="">🇨🇳 <a href="https://github.com/facebook/docusaurus/pull/10257" target="_blank" rel="noopener noreferrer" class="">#10257</a>: Improve Traditional Chinese (zh-Hant) theme translations.</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.5#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10369" target="_blank" rel="noopener noreferrer" class="">#10369</a>: Add support for <a href="https://pkg.pr.new/" target="_blank" rel="noopener noreferrer" class="">pkg.pr.new</a> continuous releases so that you can test any pull-request code in a StackBlitz playground.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10376" target="_blank" rel="noopener noreferrer" class="">#10376</a>: Theme unlisted/draft banners are also shown in dev so that you don't forget to publish your content.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10335" target="_blank" rel="noopener noreferrer" class="">#10335</a>: The Markdown top-level headings <code># title</code> are automatically wrapped in <code>&lt;header&gt;</code> for consistency with front matter <code>title: Title</code>.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10286" target="_blank" rel="noopener noreferrer" class="">#10286</a>: Allows Docusaurus plugins to self-disable by returning <code>null</code>.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10241" target="_blank" rel="noopener noreferrer" class="">#10241</a>: Add support for <a href="https://mdxjs.com/packages/mdx/#processoroptions" target="_blank" rel="noopener noreferrer" class="">MDX processor <code>recmaPlugins</code> option</a> to modify the MDX Estree AST.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10324" target="_blank" rel="noopener noreferrer" class="">#10324</a>: The docs autogenerated <code>_category_.json</code> accepts a new <code>description</code> property that gets displayed on generated index pages.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10368" target="_blank" rel="noopener noreferrer" class="">#10368</a>: The CLI command <code>docusaurus --version</code> now actually returns the Docusaurus version.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10240" target="_blank" rel="noopener noreferrer" class="">#10240</a>: Markdown <code>mdx-code-block</code> now supports indentation.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10219" target="_blank" rel="noopener noreferrer" class="">#10219</a>: Fix <code>&lt;TabItem lazy&gt;</code> support the for <code>className</code> prop.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10313" target="_blank" rel="noopener noreferrer" class="">#10313</a>: Blog-related <code>@docusaurus/theme-common/internal</code> APIs have been moved to <code>@docusaurus/plugin-content-blog/client</code>.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10316" target="_blank" rel="noopener noreferrer" class="">#10316</a>: Docs-related <code>@docusaurus/theme-common/internal</code> APIs have been moved to <code>@docusaurus/plugin-content-docs/client</code>.</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.5.0">3.5.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.4]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.4</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.4</guid>
            <pubDate>Fri, 31 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.4.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.4</strong>.</p>
<p>Upgrading should be easy. Our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a> respects <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>. Minor versions do not include any breaking changes.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-66116702bb73f0bf68a095ddaecc0fe4.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/3.4#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="tags-files">Tags files<a href="https://docusaurus.io/fr/blog/releases/3.4#tags-files" class="hash-link" aria-label="Lien direct vers Tags files" title="Lien direct vers Tags files" translate="no">​</a></h3>
<p>The docs and blog plugins both already supported a <code>tags</code> front matter attribute, enabling you to group related content. But tags declared inline in the front matter are not always ideal.</p>
<p>With <a href="https://github.com/facebook/docusaurus/pull/10137" target="_blank" rel="noopener noreferrer" class="">#10137</a>, you can now declare a list of pre-defined tags in a <code>tags.yml</code> file:</p>
<div class="language-yml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">blog/tags.yml</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#22863A">tag1</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">label</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Tag 1'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">description</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Tag 1 description'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">permalink</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> /tag</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">1</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">permalink</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">tag2</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">label</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Tag 2'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">description</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Tag 2 description'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">permalink</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> /tag</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">2</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">permalink</span><br></div></code></pre></div></div>
<p>These predefined tags can be used in the front matter of your blog or docs files:</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">blog/2024-05-31-my-blog-post.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token front-matter-block punctuation" style="color:#393A34">---</span><span class="token front-matter-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule" style="color:#22863A">tags</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#393A34">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#393A34">[</span><span class="token front-matter-block front-matter yaml language-yaml">tag1</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#393A34">,</span><span class="token front-matter-block front-matter yaml language-yaml"> tag2</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#393A34">]</span><span class="token front-matter-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:#393A34">---</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token title important punctuation" style="color:#393A34;font-weight:bold">#</span><span class="token title important" style="color:#0550AE;font-weight:bold"> Title</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Keeping tags usage consistent</div><div class="admonitionContent_Knsx"><p>Use the new <code>onInlineTags: 'throw'</code> plugin option to enforce the usage of predefined tags and prevent contributors from creating new unwanted tags.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="hash-router---experimental">Hash Router - Experimental<a href="https://docusaurus.io/fr/blog/releases/3.4#hash-router---experimental" class="hash-link" aria-label="Lien direct vers Hash Router - Experimental" title="Lien direct vers Hash Router - Experimental" translate="no">​</a></h3>
<p>With <a href="https://github.com/facebook/docusaurus/pull/9859" target="_blank" rel="noopener noreferrer" class="">9859</a>, we added a new <strong>experimental</strong> hash router config option, useful for <strong>offline browsing</strong> by opening your site locally through the <code>file://</code> protocol.</p>
<div class="language-tsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-tsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    experimental_router</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'hash'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>attention</div><div class="admonitionContent_Knsx"><p>This mode is <strong>not recommended for sites deployed through a web server</strong>.</p></div></div>
<p>When this mode is turned on, Docusaurus will opt out of static site rendering, and build a client-side single page application where all routes are prefixed with <code>/#/</code>. A single <code>index.html</code> file is generated. This file can be opened locally in your browser by simply clicking it, using the browser <code>file://</code> protocol. This makes it possible to distribute a Docusaurus site as a <code>.zip</code> file so that readers can browse it offline, without having to install anything complex on their computer apart a web browser.</p>
<p><img decoding="async" loading="lazy" alt="Docusaurus hash router - local browsing using the file:// protocol" src="https://docusaurus.io/fr/assets/images/hash-96c9ef1044dc1febfe3eefdc9350e2a0.png" width="1203" height="601" class="img_vXGZ"></p>
<p>Try browsing our own Docusaurus site built with the hash router:</p>
<ul>
<li class=""><a href="https://facebook.github.io/docusaurus/#/" target="_blank" rel="noopener noreferrer" class="">Docusaurus website - Hash Router web deployment</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/actions/workflows/build-hash-router.yml" target="_blank" rel="noopener noreferrer" class="">Docusaurus website - Hash Router downloadable GitHub artifacts</a></li>
</ul>
<div class="theme-admonition theme-admonition-caution admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Experimental</div><div class="admonitionContent_Knsx"><p>This feature is <strong>experimental</strong>. If you try it out, please let us know how it works for you <a href="https://github.com/facebook/docusaurus/issues/3825" target="_blank" rel="noopener noreferrer" class="">here</a>.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="site-storage---experimental">Site Storage - Experimental<a href="https://docusaurus.io/fr/blog/releases/3.4#site-storage---experimental" class="hash-link" aria-label="Lien direct vers Site Storage - Experimental" title="Lien direct vers Site Storage - Experimental" translate="no">​</a></h3>
<p>Docusaurus uses the browser <code>localStorage</code> API to persist UI state.</p>
<p>But sometimes the storage space is "shared" between multiple sites using the same domain, leading to <strong>storage key conflicts</strong>. This generally happens in two cases</p>
<ul>
<li class="">when working on multiple <code>http://localhost:3000</code> sites</li>
<li class="">when hosting multiple sites under the same domain: <code>https://example.com/site1/</code> and <code>https://example.com/site2/</code></li>
</ul>
<p>For this reason, we introduced a new <strong>experimental</strong> <code>siteStorage</code> configuration option:</p>
<div class="language-tsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-tsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  future</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    experimental_storage</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      type</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'localStorage'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      namespace</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>When <code>namespace: true</code> is set, we apply a hash suffix to all the storage keys, making them unique to the current site (based on <code>config.url</code> and <code>config.baseUrl</code>. For example, the <code>theme</code> storage key becomes <code>theme-x6f</code>. It is also possible to provide your own custom suffix <code>namespace: 'suffix'</code>. We also made it possible to use <code>type: 'sessionStorage'</code> instead of the default <code>localStorage</code>.</p>
<div class="theme-admonition theme-admonition-caution admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Experimental</div><div class="admonitionContent_Knsx"><p>This feature is <strong>experimental</strong>. If you try it out, please let us know how it works for you <a href="https://github.com/facebook/docusaurus/pull/10121" target="_blank" rel="noopener noreferrer" class="">here</a>.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.4#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10151" target="_blank" rel="noopener noreferrer" class="">#10151</a>: add Turkmen (tk) theme translations</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10111" target="_blank" rel="noopener noreferrer" class="">#10111</a>: add Bulgarian (bg) theme translations</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10168" target="_blank" rel="noopener noreferrer" class="">#10168</a>: fix many long overdue Markdown link resolution bugs</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10178" target="_blank" rel="noopener noreferrer" class="">#10178</a>: the <code>/search</code> page now respects the <code>contextualSearch: false</code> setting</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10118" target="_blank" rel="noopener noreferrer" class="">#10118</a>: fix bad pluralization on docs generated index category card description</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10130" target="_blank" rel="noopener noreferrer" class="">#10130</a>: fix false positives reported by the broken anchor checker due to trailing slashes</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.4.0">3.4.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.3]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.3</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.3</guid>
            <pubDate>Fri, 03 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Nous sommes heureux d'annoncer Docusaurus 3.3.]]></description>
            <content:encoded><![CDATA[<p>Nous sommes heureux d'annoncer <strong>Docusaurus 3.3</strong>.</p>
<p>Upgrading should be easy. Our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a> respects <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a>. Minor versions do not include any breaking changes.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-105335e6b4ebb3f62aa9b04e33a76dea.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/3.3#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="prepare-for-react-19">Prepare for React 19<a href="https://docusaurus.io/fr/blog/releases/3.3#prepare-for-react-19" class="hash-link" aria-label="Lien direct vers Prepare for React 19" title="Lien direct vers Prepare for React 19" translate="no">​</a></h3>
<p>The React core team recently <a href="https://react.dev/blog/2024/04/25/react-19" target="_blank" rel="noopener noreferrer" class="">released the first <strong>React 19 beta</strong></a>. They also <a href="https://react.dev/blog/2024/04/25/react-19-upgrade-guide" target="_blank" rel="noopener noreferrer" class="">published an upgrade guide and a <strong>React v18.3 release</strong></a> with new warnings to help us identify issues <strong>before upgrading to React 19</strong>.</p>
<p>Docusaurus v3 depends on React <code>18.x</code>. When initializing a new Docusaurus sites, it will use that new React <code>18.3</code> release. It's also the case if you decide to upgrade your dependencies, or re-generate your package manager lockfile.</p>
<p>It turns out in its current state, <strong>Docusaurus had a few of those extra warnings to fix</strong>, notably this one immediately appearing on your dev console on any page load and navigation:</p>
<blockquote>
<p>Warning: LoadableComponent uses the legacy contextTypes API which is no longer supported and will be removed in the next major release. Use React.createContext() with static contextType instead.</p>
</blockquote>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10079" target="_blank" rel="noopener noreferrer" class="">#10079</a>, we got Docusaurus ready for React 19. We fixed all the React 18.3 warnings we encountered. In case we missed any, don't hesitate to <a href="https://github.com/facebook/docusaurus/issues/10099" target="_blank" rel="noopener noreferrer" class=""><strong>report new warnings</strong></a> if you see them, to us but also to other Docusaurus third-party plugin authors.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="createsitemapitems"><code>createSitemapItems</code><a href="https://docusaurus.io/fr/blog/releases/3.3#createsitemapitems" class="hash-link" aria-label="Lien direct vers createsitemapitems" title="Lien direct vers createsitemapitems" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10083" target="_blank" rel="noopener noreferrer" class="">#10083</a>, we introduced a new flexible <code>createSitemapItems()</code> hook to the sitemap plugin. This enables users to create/filter/transform/enhance the sitemap items with their own custom logic.</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  presets</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#C6105F">'@docusaurus/preset-classic'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        sitemap</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token function-variable function" style="color:#8250DF">createSitemapItems</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            defaultCreateSitemapItems</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token operator" style="color:#D73A49">...</span><span class="token plain">params</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> items </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">await</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">defaultCreateSitemapItems</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">params</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> items</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">filter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">item</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">!</span><span class="token plain">item</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">url</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">includes</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'/tags/'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="pages-plugin-improvements">Pages plugin improvements<a href="https://docusaurus.io/fr/blog/releases/3.3#pages-plugin-improvements" class="hash-link" aria-label="Lien direct vers Pages plugin improvements" title="Lien direct vers Pages plugin improvements" translate="no">​</a></h3>
<p>The Docusaurus <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-content-pages">pages plugin</a> has historically been lagging behind the docs and blog plugins in terms of available feature.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/10032" target="_blank" rel="noopener noreferrer" class="">#10032</a> we normalized the options available on each core content plugins by adding a few the missing page plugins APIs related to the edit url and the last update metadata displayed at the bottom on Markdown pages.</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">presets</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#C6105F">'@docusaurus/preset-classic'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token literal-property property" style="color:#005CC5">pages</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token literal-property property" style="color:#005CC5">editUrl</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#C6105F">'https://github.com/facebook/docusaurus/tree/main/website/src/pages'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token literal-property property" style="color:#005CC5">editLocalizedFiles</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token literal-property property" style="color:#005CC5">showLastUpdateAuthor</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token literal-property property" style="color:#005CC5">showLastUpdateTime</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div style="padding:10px"><div class="browserWindow_my1Q" style="min-width:min(100%,45vw);width:800px;max-width:100%;overflow:hidden"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">/examples/markdownPageExample</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs" style="padding:0"><iframe src="/examples/markdownPageExample" title="/examples/markdownPageExample" style="display:block;width:100%;height:300px"></iframe></div></div></div>
<div class="theme-admonition theme-admonition-note admonition_o5H7 alert alert--secondary"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Only for Markdown pages</div><div class="admonitionContent_Knsx"><p>These new plugin options only apply to Markdown pages, and have no effect on React pages for which you have full control over the layout with JSX.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.3#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10064" target="_blank" rel="noopener noreferrer" class="">#10064</a>: new site config option <code>siteConfig.markdown.anchors.maintainCase</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9767" target="_blank" rel="noopener noreferrer" class="">#9767</a>: new <code>docusaurus deploy --target-dir</code> option</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10042" target="_blank" rel="noopener noreferrer" class="">#10042</a>: new (experimental) plugin API: <code>route.props</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10060" target="_blank" rel="noopener noreferrer" class="">#10060</a>: optimizes the App entrypoint, avoid useless re-renders on navigations</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10080" target="_blank" rel="noopener noreferrer" class="">#10080</a>: <code>&lt;Admonition&gt;</code> component can render properly without heading/icon</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10091" target="_blank" rel="noopener noreferrer" class="">#10091</a>: <code>&lt;Tabs&gt;</code> props can now override defaults</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10090" target="_blank" rel="noopener noreferrer" class="">#10090</a>: <code>docusaurus serve</code> works better with a <code>/baseUrl/</code> pathname prefix</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10070" target="_blank" rel="noopener noreferrer" class="">#10070</a>: add missing theme translations for <code>pt-BR</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/10025" target="_blank" rel="noopener noreferrer" class="">#10025</a>: doc sidebar item label now impacts the doc pagination label</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.3.0">3.3.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.2]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.2</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.2</guid>
            <pubDate>Fri, 29 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 3.2.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 3.2</strong>.</p>
<p>La mise à jour devrait être facile : comme expliqué dans notre <a class="" href="https://docusaurus.io/fr/community/release-process">documentation du processus de publication</a>, les versions mineures respectent <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">le versionnage sémantique</a>.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-8ca15c1adaeb77ca302178575136a0b6.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/3.2#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="faster-builds">Faster builds<a href="https://docusaurus.io/fr/blog/releases/3.2#faster-builds" class="hash-link" aria-label="Lien direct vers Faster builds" title="Lien direct vers Faster builds" translate="no">​</a></h3>
<p>We worked hard to reduce the time it takes to build a Docusaurus site in production mode.</p>
<p>Between v3.1.0 and v3.2.0, several changes have been made, leading to significantly faster production builds for many sites.</p>
<p>Let's take an example. Our benchmark on the <a href="https://github.com/facebook/react-native-website/pull/4072" target="_blank" rel="noopener noreferrer" class="">React Native website upgrading to v3.2</a> reports the following results:</p>
<ul>
<li class="">🔥 Cold builds: 95s ➡️ 66s (~30% faster)</li>
<li class="">🔥 Incremental builds: 55s ➡️ 22s (~60% faster)</li>
</ul>
<p>The results will vary depending on your site's topology and the options you turned on, but we expect the largest sites will see the most significant improvements.</p>
<p>Note that this is only the beginning, and Docusaurus performance can still be significantly improved, notably the bundling time and the memory consumption. Track our <a href="https://github.com/facebook/docusaurus/issues/4765" target="_blank" rel="noopener noreferrer" class="">performance issue</a> for upcoming improvements.</p>
<details class="details_Nokh alert alert--info details_Cn_P" data-collapsed="true"><summary>What is the difference between a cold build and an incremental build?</summary><div><div class="collapsibleContent_EoA1"><p>A cold build is when the Docusaurus caches are empty, generally after running <code>docusaurus clear</code>.</p><p>An incremental build happens when you run another time the <code>docusaurus build</code> command. Docusaurus automatically tries to "re-use" computations from former builds to make subsequent builds faster. In practice it's based on <a href="https://webpack.js.org/guides/build-performance/#persistent-cache" target="_blank" rel="noopener noreferrer" class="">Webpack persistent caching</a>. To enable incremental builds on your CI server, you can persist the <code>node_modules/.cache</code> folder across builds.</p></div></div></details>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="faster-dev-server">Faster Dev Server<a href="https://docusaurus.io/fr/blog/releases/3.2#faster-dev-server" class="hash-link" aria-label="Lien direct vers Faster Dev Server" title="Lien direct vers Faster Dev Server" translate="no">​</a></h3>
<p>We also worked on improving the performance of the dev server, so that you can get a faster feedback when editing Markdown/MDX files.</p>
<p>The way we initially implemented content reloading wasn't great. For example, editing a blog post file would also trigger a useless reload of the unrelated docs plugin. From now on, when editing a plugin's content, only that plugin will reload. It's hard to measure precisely the impact of this change, but I estimate edits should appear in your browser at least 50% faster 🔥.</p>
<p>We plan to keep improving the speed of our dev server, with even more granular hot reloads, ensuring we don't run useless computations that would always keep giving the same result.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="mdx-partials-table-of-contents">MDX partials table-of-contents<a href="https://docusaurus.io/fr/blog/releases/3.2#mdx-partials-table-of-contents" class="hash-link" aria-label="Lien direct vers MDX partials table-of-contents" title="Lien direct vers MDX partials table-of-contents" translate="no">​</a></h3>
<p>With <a href="https://github.com/facebook/docusaurus/pull/9684" target="_blank" rel="noopener noreferrer" class="">#9684</a>, Docusaurus is now able to render headings coming from an imported partial into the table-of-contents.</p>
<p>Docusaurus and MDX allows you to <a class="" href="https://docusaurus.io/fr/docs/markdown-features/react#importing-markdown">import one Markdown file into another</a>. We usually call the imported Markdown file a "partial", and use the <code>_</code> prefix so that this file does not lead to the creation of a new page.</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">myDoc.mdx</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token title important punctuation" style="color:#393A34;font-weight:bold">#</span><span class="token title important" style="color:#0550AE;font-weight:bold"> My Doc</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token title important punctuation" style="color:#393A34;font-weight:bold">##</span><span class="token title important" style="color:#0550AE;font-weight:bold"> Doc heading</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content is imported from another MDX file:</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">import ImportedDoc from './\_importedDoc.mdx';</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">ImportedDoc</span><span class="token tag" style="color:#22863A"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><br></div></code></pre></div></div>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">_myPartial.mdx</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token title important punctuation" style="color:#393A34;font-weight:bold">##</span><span class="token title important" style="color:#0550AE;font-weight:bold"> Partial heading</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Some paragraph</span><br></div></code></pre></div></div>
<p>Previously, the heading <code>Partial heading</code> did not appear in the table-of-contents, but now it will!</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="blog-improvements">Blog improvements<a href="https://docusaurus.io/fr/blog/releases/3.2#blog-improvements" class="hash-link" aria-label="Lien direct vers Blog improvements" title="Lien direct vers Blog improvements" translate="no">​</a></h3>
<p>We improved the blog plugin with several new options to make it even more powerful and flexible:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9912" target="_blank" rel="noopener noreferrer" class="">#9912</a>: you can now display the last update time and author of a blog post, a feature the docs plugin already had.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9886" target="_blank" rel="noopener noreferrer" class="">#9886</a>: a new <code>processBlogPosts</code> option allow you to filter/transform/sort blog posts.</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9838" target="_blank" rel="noopener noreferrer" class="">#9838</a>: a new <code>pageBasePath</code> option allows you to customize the blog pagination URL segment (<code>/blog/page/2</code>)</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="sitemap-lastmod">Sitemap lastmod<a href="https://docusaurus.io/fr/blog/releases/3.2#sitemap-lastmod" class="hash-link" aria-label="Lien direct vers Sitemap lastmod" title="Lien direct vers Sitemap lastmod" translate="no">​</a></h3>
<p>With <a href="https://github.com/facebook/docusaurus/pull/9954" target="_blank" rel="noopener noreferrer" class="">#9954</a>, the sitemap plugin has a new <code>lastmod</code> option that can now emit a <code>&lt;lastmod&gt;</code> tag on the XML. The value is read from the Git history by default, but can be overridden with docs and blog <code>last_update</code> front matter.</p>
<p>We also made it possible to opt-out of emitting <code>&lt;priority&gt;</code> and <code>&lt;frequency&gt;</code> tags, which are generally ignored by crawlers (notably <a href="https://developers.google.com/search/blog/2023/06/sitemaps-lastmod-ping" target="_blank" rel="noopener noreferrer" class="">Google</a>).</p>
<p>We recommend using the following sitemap plugin config, that will become the default in Docusaurus V4:</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">lastmod</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'date'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">priority</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token keyword null nil" style="color:#CF222E">null</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">changefreq</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token keyword null nil" style="color:#CF222E">null</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.2#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9687" target="_blank" rel="noopener noreferrer" class="">#9687</a>: new Vercel Analytics plugin</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9681" target="_blank" rel="noopener noreferrer" class="">#9681</a> and <a href="https://github.com/facebook/docusaurus/pull/9442" target="_blank" rel="noopener noreferrer" class="">#9442</a>: <code>docusaurus swizzle</code> and <code>create-docusaurus</code> CLIs now ask users if they prefer to use TypeScript</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9928" target="_blank" rel="noopener noreferrer" class="">#9928</a>: new Icelandic translation</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9931" target="_blank" rel="noopener noreferrer" class="">#9928</a>: new <code>allContentLoaded</code> plugin lifecycle (experimental)</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/3.2.0">3.2.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 3.1]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.1</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.1</guid>
            <pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Nous sommes heureux d'annoncer Docusaurus 3.1.]]></description>
            <content:encoded><![CDATA[<p>Nous sommes heureux d'annoncer <strong>Docusaurus 3.1</strong>.</p>
<p>La mise à jour devrait être facile : comme expliqué dans notre <a class="" href="https://docusaurus.io/fr/community/release-process">documentation du processus de publication</a>, les versions mineures respectent <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">le versionnage sémantique</a>.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-e1b6e0c51be29d4ab2d4c966d220410c.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/3.1#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="broken-anchors-checker">Vérificateur d'ancrage défectueux<a href="https://docusaurus.io/fr/blog/releases/3.1#broken-anchors-checker" class="hash-link" aria-label="Lien direct vers Vérificateur d'ancrage défectueux" title="Lien direct vers Vérificateur d'ancrage défectueux" translate="no">​</a></h3>
<p>Dans le <a href="https://github.com/facebook/docusaurus/pull/9528" target="_blank" rel="noopener noreferrer" class="">#9528</a>, nous avons amélioré le vérificateur intégré de liens défectueux pour qu'il détecte également les ancrages défectueux.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article du blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/broken-anchor-4191e5dd94aef9e8c5e3524880670f0f.jpg" width="1920" height="896" class="img_vXGZ"></p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Make ça échoue rapidement</div><div class="admonitionContent_Knsx"><p>La nouvelle option <a class="" href="https://docusaurus.io/fr/docs/api/docusaurus-config#onBrokenAnchors"><code>onBrokenAnchors</code></a> a la valeur par défaut <code>warn</code> pour des raisons de rétro-compatibilité.</p><p>Nous recommandons de le changer en <code>throw</code> et de faire échouer vos constructions CI au lieu de déployer des ancrages défectueux vers les productions.</p></div></div>
<div class="theme-admonition theme-admonition-note admonition_o5H7 alert alert--secondary"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>remarque</div><div class="admonitionContent_Knsx"><p>Pour les utilisateurs et les auteurs de plugins qui implémentent des composants <code>&lt;Heading&gt;</code> et <code>&lt;Link&gt;</code> personnalisés, nous fournissons une nouvelle API de hook React <a class="" href="https://docusaurus.io/fr/docs/docusaurus-core#useBrokenLinks"><code>useBrokenLinks</code></a>.</p><p><strong>La plupart des utilisateurs de Docusaurus n'ont pas besoin de s'en préoccuper</strong>, les composants intégrés (<code>docusaurus/Link</code> et <code>@theme/Heading</code>) l'utilisent déjà en interne.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="parsefrontmatter-hook">Hook <code>parseFrontMatter</code><a href="https://docusaurus.io/fr/blog/releases/3.1#parsefrontmatter-hook" class="hash-link" aria-label="Lien direct vers parsefrontmatter-hook" title="Lien direct vers parsefrontmatter-hook" translate="no">​</a></h3>
<p>Dans le <a href="https://github.com/facebook/docusaurus/pull/9624" target="_blank" rel="noopener noreferrer" class="">#9624</a>, nous avons ajouté une nouvelle <a class="" href="https://docusaurus.io/fr/docs/api/docusaurus-config#markdown">fonction hook <code>siteConfig.markdown.parseFrontMatter</code></a>.</p>
<p>Cela permet de mettre en œuvre des transformations pratiques du front matter, des raccourcis, ou de s'intégrer à des systèmes externes utilisant le front matter que les plugins de Docusaurus ne prennent pas en charge.</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">markdown</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token function-variable function" style="color:#8250DF">parseFrontMatter</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token parameter" style="color:#953800">params</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Réutiliser l'analyseur par défaut</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> result </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token keyword control-flow" style="color:#CF222E">await</span><span class="token plain"> params</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#8250DF">defaultParseFrontMatter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">params</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Traiter les placeholders de description de la page de garde</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">description</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">description</span><span class="token operator" style="color:#D73A49">?.</span><span class="token method function property-access" style="color:#8250DF">replaceAll</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'{{MY_VAR}}'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'MY_VALUE'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Créer votre propre raccourci pour les pages de garde</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword control-flow" style="color:#CF222E">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">i_do_not_want_docs_pagination</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">pagination_prev</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token keyword null nil" style="color:#CF222E">null</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">pagination_next</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token keyword null nil" style="color:#CF222E">null</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Renommer un front matter non supporté provenant d'un autre système</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword control-flow" style="color:#CF222E">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">cms_seo_summary</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">description</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">cms_seo_summary</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#CF222E">delete</span><span class="token plain"> result</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">frontMatter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">cms_seo_summary</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword control-flow" style="color:#CF222E">return</span><span class="token plain"> result</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>Lisez le <a class="" href="https://docusaurus.io/fr/docs/markdown-features#front-matter">guide du front matter</a> et la <a class="" href="https://docusaurus.io/fr/docs/api/docusaurus-config#markdown">référence de l'API <code>parseFrontMatter</code></a> pour plus de détails.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/3.1#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9674" target="_blank" rel="noopener noreferrer" class="">#9674</a>&nbsp;: ajout de <code>siteConfig.markdown.remarkRehypeOptions</code> pour passer des options à <code>remark-rehype</code>, ce qui permet de personnaliser des choses comme le libellé de la note de bas de page MDX</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9671" target="_blank" rel="noopener noreferrer" class="">#9671</a> : ajout d'un bloc de code MagicComments pour (Visual) Basic/Batch/Fortran/COBOL/ML</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9610" target="_blank" rel="noopener noreferrer" class="">#9610</a> : active la configuration du port CLI via la variable d'environnement <code>PORT</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9477" target="_blank" rel="noopener noreferrer" class="">#9477</a> : traductions complètes en portugais brésilien (pt-BR)</li>
</ul>
<p>Consultez <strong><a class="" href="https://docusaurus.io/fr/changelog/3.1.0">l'entrée 3.1.0 du journal des modifications</a></strong> pour une liste exhaustive des changements.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Annonce de Docusaurus 3.0]]></title>
            <link>https://docusaurus.io/fr/blog/releases/3.0</link>
            <guid>https://docusaurus.io/fr/blog/releases/3.0</guid>
            <pubDate>Tue, 31 Oct 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Aujourd'hui, nous sommes heureux d'annoncer Docusaurus 3.0 ! 🥳]]></description>
            <content:encoded><![CDATA[<p>Aujourd'hui, nous sommes heureux d'<strong>annoncer Docusaurus 3.0</strong>&nbsp;! 🥳</p>
<p>Chez <a href="https://opensource.fb.com/" target="_blank" rel="noopener noreferrer" class=""><strong>Meta Open Source</strong></a>, nous pensons que Docusaurus vous aidera à construire les <strong>meilleurs sites web de documentation</strong> avec <strong>un minimum d'effort</strong>, vous permettant de <strong>vous concentrer sur ce qui compte vraiment</strong>&nbsp;: l'écriture du contenu.</p>
<p>Il s'agit d'une nouvelle <strong>version majeure</strong> de Docusaurus, avec <strong>de nouvelles fonctionnalités intéressantes</strong> et des dépendances mises à jour.</p>
<p>Conformément aux principes du <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class=""><strong>Semantic Versioning</strong></a>, cette version inclut des <strong>changements de rupture</strong> que nous avons documentés en détail dans le <a class="" href="https://docusaurus.io/fr/docs/migration/v3"><strong>guide de mise à jour de la version 3</strong></a>. Les changements de rupture peuvent être gênants, mais ils sont nécessaires pour préparer le terrain à une <strong>nouvelle vague de fonctionnalités Docusaurus</strong> que nous prévoyons d'implémenter.</p>
<p><img decoding="async" loading="lazy" alt="image de carte sociale v3.0" src="https://docusaurus.io/fr/assets/images/social-card-75819f68ecbb579fe176843bb2e3df82.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<p>Nous avions initialement prévu de publier des versions majeures plus fréquemment, mais Docusaurus v3 a pris plus de temps que prévu. Parmi les changements de rupture que nous avons comptabilisés, <strong>la montée de version vers MDX v3</strong> est probablement le principal défi à l'adoption de cette nouvelle version. Nous avons fait un effort supplémentaire pour rendre cette montée de version aussi facile que possible, notamment en ajoutant des <a class="" href="https://docusaurus.io/fr/docs/api/docusaurus-config#markdown">options de compatibilité pour MDX v1</a>.</p>
<p>Les sites les plus simples n'auront besoin de mettre à jour que quelques dépendances npm. Pour les sites plus complexes, nous avons élaboré quelques stratégies qui peuvent vous aider à effectuer une mise à niveau en toute confiance&nbsp;:</p>
<ul>
<li class=""><a class="" href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3">Préparez votre site</a> à l'avance, progressivement, tout en restant sur Docusaurus v2</li>
<li class=""><a class="" href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing">Mettez en place des tests de régression visuelle</a> pour détecter les changements visuels inattendus survenant au cours de la mise à jour</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>À propos de Docusaurus v2</div><div class="admonitionContent_Knsx"><p>According to our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a>, Docusaurus v2 has now entered <strong>maintenance mode</strong>. Elle bénéficiera d'une assistance pour les problèmes de sécurité majeurs pendant trois mois seulement, jusqu'au 31 janvier 2024. Il est recommandé de passer à la version 3 dans ce laps de temps.</p></div></div>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="breaking-changes">Changements de rupture<a href="https://docusaurus.io/fr/blog/releases/3.0#breaking-changes" class="hash-link" aria-label="Lien direct vers Changements de rupture" title="Lien direct vers Changements de rupture" translate="no">​</a></h2>
<p>Cette section ne donne qu'un bref aperçu. Toutes les changements de rupture sont documentés en détail dans le <a class="" href="https://docusaurus.io/fr/docs/migration/v3"><strong>guide de mise à jour de la version 3</strong></a>.</p>
<p>Docusaurus v3 a mis à jour quelques dépendances vers de nouvelles versions majeures, chacune venant avec ses propres changements de rupture&nbsp;:</p>
<ul>
<li class="">Node.js v16 ➡️ v18</li>
<li class="">React v17 ➡️ v18</li>
<li class="">MDX v1 ➡️ v3</li>
<li class="">TypeScript v4 ➡️ v5</li>
<li class="">prism-react-renderer v1 ➡️ v2</li>
<li class="">react-live v2 ➡️ v4</li>
<li class="">Mermaid v9 ➡️ v10</li>
<li class="">import-fresh v3 ➡️ jiti v1</li>
<li class="">remark-emoji v2 ➡️ v4</li>
</ul>
<p>Une mise à jour typique des dépendances de <code>package.json</code> ressemble à ceci&nbsp;:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">package.json</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "dependencies": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    // upgrade to Docusaurus v3</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@docusaurus/core": "2.4.3",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@docusaurus/preset-classic": "2.4.3",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/core": "3.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/preset-classic": "3.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    // upgrade to MDX v3</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@mdx-js/react": "^1.6.22",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@mdx-js/react": "^3.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    // upgrade to prism-react-renderer v2.0+</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "prism-react-renderer": "^1.3.5",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "prism-react-renderer": "^2.1.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    // upgrade to React v18.0+</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "react": "^17.0.2",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "react-dom": "^17.0.2"</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "react": "^18.2.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "react-dom": "^18.2.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  },</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "devDependencies": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    // upgrade Docusaurus dev dependencies to v3</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@docusaurus/module-type-aliases": "2.4.3",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@docusaurus/types": "2.4.3"</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/module-type-aliases": "3.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/types": "3.0.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "engines": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    // require Node.js 18.0+</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "node": "&gt;=16.14"</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "node": "&gt;=18.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">}</span><br></div></code></pre></div></div>
<p>A l'exception de MDX v3, la plupart des changements de rupture provenant de ces dépendances, qui ont été mises à jour, ont été gérés en interne pour vous : la plupart du temps, vous ne devriez pas avoir à faire quoi que ce soit. En dehors des dépendances, les seuls changements de rupture fonctionnels provenant explicitement de la base de code de Docusaurus sont les suivantes&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9189" target="_blank" rel="noopener noreferrer" class="">#9189</a>&nbsp;: nouveau flux RSS de blog par défaut limité à 20 entrées</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9308" target="_blank" rel="noopener noreferrer" class="">#9308</a>&nbsp;: corrige et réintroduit l'admonition <code>:::warning</code>, supprime <code>:::caution</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9310" target="_blank" rel="noopener noreferrer" class="">#9310</a>&nbsp;: supprime l'ancien préfixe d'identification de la barre latérale, utilisé pour les sites dont la version est antérieure à <code>v2.0.0-beta.10</code> (décembre 2021)</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/7966" target="_blank" rel="noopener noreferrer" class="">#7966</a>&nbsp;: refactorise les composants du thème des docs, ce qui vous oblige éventuellement à les re-swizzler</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/3.0#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<p>Voici une liste non exhaustive des nouvelles fonctionnalités utiles de cette nouvelle version. Toutes les fonctionnalités sont listées dans les <a href="https://github.com/facebook/docusaurus/releases/tag/v3.0.0" target="_blank" rel="noopener noreferrer" class=""><strong>notes de version de Docusaurus v3.0.0</strong></a>.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="markdown">Markdown<a href="https://docusaurus.io/fr/blog/releases/3.0#markdown" class="hash-link" aria-label="Lien direct vers Markdown" title="Lien direct vers Markdown" translate="no">​</a></h3>
<p>Docusaurus v3 met à jour MDX v1 en MDX v3&nbsp;:</p>
<ul>
<li class="">dans <a href="https://github.com/facebook/docusaurus/pull/8288" target="_blank" rel="noopener noreferrer" class="">#8288</a>, nous avons mis à jour vers <a href="https://mdxjs.com/blog/v2/" target="_blank" rel="noopener noreferrer" class=""><strong>MDX v2</strong></a> (<a href="https://mdxjs.com/migrating/v2/" target="_blank" rel="noopener noreferrer" class="">guide de migration</a>)</li>
<li class="">dans <a href="https://github.com/facebook/docusaurus/pull/9451" target="_blank" rel="noopener noreferrer" class="">#9451</a>, nous avons mis à jour vers <a href="https://mdxjs.com/blog/v3/" target="_blank" rel="noopener noreferrer" class=""><strong>MDX v3</strong></a> (<a href="https://mdxjs.com/migrating/v3/" target="_blank" rel="noopener noreferrer" class="">guide de migration</a>)</li>
</ul>
<p>Cette nouvelle version de MDX est <strong>bien meilleure pour les rédacteurs de contenu et les auteurs de plugins</strong>, et prépare le terrain pour l'implémentation de nouvelles fonctionnalités Markdown passionnantes.</p>
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>MDX v3 - le principal défi</div><div class="admonitionContent_Knsx"><p>La transition de MDX v1 à MDX v3 est le <strong>principal défi</strong> pour le passage à Docusaurus v3.</p><p>Certains documents qui ont été compilés avec succès sous Docusaurus v2 peuvent maintenant <strong>ne pas être compilés</strong> sous Docusaurus v3, tandis que d'autres peuvent <strong>s'afficher différemment</strong>.</p><p>La plupart des changements de rupture proviennent de [MDX v2(<a href="https://mdxjs.com/blog/v2/" target="_blank" rel="noopener noreferrer" class="">https://mdxjs.com/blog/v2/</a>),<!-- --> et [MDX v3(<a href="https://mdxjs.com/blog/v3/" target="_blank" rel="noopener noreferrer" class="">https://mdxjs.com/blog/v3/</a>)<!-- --> qui est une version relativement petite. Le <a href="https://mdxjs.com/migrating/v2/" target="_blank" rel="noopener noreferrer" class="">guide de migration MDX v2</a> contient une section sur la façon de <a href="https://mdxjs.com/migrating/v2/#update-mdx-files" target="_blank" rel="noopener noreferrer" class="">mettre à jour les fichiers MDX</a> qui sera particulièrement pertinente pour nous. Assurez-vous également de lire la page <a href="https://mdxjs.com/docs/troubleshooting-mdx/" target="_blank" rel="noopener noreferrer" class="">Troubleshooting MDX</a> qui peut vous aider à interpréter les messages d'erreur MDX les plus courants.</p><p><strong>Ne soyez pas intimidé</strong>. La plupart des problèmes sont <strong>faciles à résoudre</strong> et souvent liés aux caractères <code>{</code> et <code>&lt;</code> que vous devez maintenant échapper. Cependant, en fonction de la taille de votre site, vous pourriez avoir besoin de modifier de nombreux fichiers et vous sentir submergé. Pour cette raison, nous fournissons une commande <a href="https://github.com/slorber/docusaurus-mdx-checker" target="_blank" rel="noopener noreferrer" class=""><code>npx docusaurus-mdx-checker</code></a> pour vous aider à obtenir une estimation du travail à effectuer, et nous recommandons de <a class="" href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3">préparer votre site à l'avance</a>.</p><p>Si vous avez créé des <a class="" href="https://docusaurus.io/fr/docs/markdown-features/plugins">plugins MDX</a> (Remark/Rehype), l'AST est légèrement différent et vous devrez peut-être les refactoriser.</p></div></div>
<p>Cela nous permet notamment d'ajouter un <a class="" href="https://docusaurus.io/fr/docs/markdown-features#mdx-vs-commonmark">mode CommonMark</a> qui devrait faciliter l'adoption de Docusaurus pour les documentations existantes. Elle est actuellement facultative, <strong>expérimentale</strong> et limitée (<a href="https://github.com/facebook/docusaurus/issues/9092" target="_blank" rel="noopener noreferrer" class="">certaines fonctionnalités de Docusaurus ne fonctionneront pas</a>). Dans Docusaurus v3, tous les fichiers sont encore interprétés en MDX, mais nous prévoyons d'interpréter les fichiers <code>.md</code> en CommonMark dans une prochaine version majeure, et nous recommandons d'utiliser l'extension <code>.mdx</code> pour tout fichier utilisant les modules JSX ou ES.</p>
<p>Nous avons également introduit une nouvelle façon de <a class="" href="https://docusaurus.io/fr/docs/api/docusaurus-config#markdown">configurer le Markdown globalement pour votre site</a>, et nous prévoyons d'ajouter des options plus flexibles ultérieurement.</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">markdown</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">format</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'mdx'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">mermaid</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token function-variable function" style="color:#8250DF">preprocessor</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token parameter punctuation" style="color:#393A34">{</span><span class="token parameter" style="color:#953800">filePath</span><span class="token parameter punctuation" style="color:#393A34">,</span><span class="token parameter" style="color:#953800"> fileContent</span><span class="token parameter punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword control-flow" style="color:#CF222E">return</span><span class="token plain"> fileContent</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#8250DF">replaceAll</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'{{MY_VAR}}'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'MY_VALUE'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">mdx1Compat</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">comments</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">admonitions</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">headingIds</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>Docusaurus utilise désormais le plugin <a href="https://github.com/remarkjs/remark-directive" target="_blank" rel="noopener noreferrer" class="">remark-directive</a> pour prendre en charge les admonitions. Cela vous offre également la possibilité de créer vos propres plugins Remark pour étendre Markdown avec vos propres <a href="https://talk.commonmark.org/t/generic-directives-plugins-syntax/444" target="_blank" rel="noopener noreferrer" class="">directives personnalisées</a> telles que <code>:textDirective</code>, <code>::leafDirective</code> ou <code>:::containerDirective</code>.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="esm-ts-configs">ESM and TypeScript configs<a href="https://docusaurus.io/fr/blog/releases/3.0#esm-ts-configs" class="hash-link" aria-label="Lien direct vers ESM and TypeScript configs" title="Lien direct vers ESM and TypeScript configs" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/9317" target="_blank" rel="noopener noreferrer" class="">#9317</a>, nous avons ajouté la prise en charge des modules ES et des fichiers de config TypeScript, y compris la config du site, les barres latérales des docs, les plugins et les presets.</p>
<p>Voici 2 exemples TypeScript, vous donnant une expérience moderne avec l'autocomplétion de l'IDE&nbsp;:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">type</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">Config</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@docusaurus/types'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">type</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">*</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">as</span><span class="token plain"> Preset </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@docusaurus/preset-classic'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> Config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  title</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Mon Site'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  favicon</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'img/favicon.ico'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Votre config de site ...</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  presets</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#C6105F">'classic'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Votre config de preset ...</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> satisfies Preset</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">Options</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  themeConfig</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Votre config de thème ...</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> satisfies Preset</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">ThemeConfig</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> config</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">sidebars.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">type</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">SidebarsConfig</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@docusaurus/plugin-content-docs'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> sidebars</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> SidebarsConfig </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  docs</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#C6105F">'introduction'</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> sidebars</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="unlisted-content">Contenu non listé<a href="https://docusaurus.io/fr/blog/releases/3.0#unlisted-content" class="hash-link" aria-label="Lien direct vers Contenu non listé" title="Lien direct vers Contenu non listé" translate="no">​</a></h3>
<p>Docusaurus prenait déjà en charge l'option <code>draft : true</code> dans nos 3 plugins de contenu (docs, blog, pages), ce qui vous permet de supprimer certaines pages de vos versions de production.</p>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8004" target="_blank" rel="noopener noreferrer" class="">#8004</a>, nous avons introduit une nouvelle option <code>unlisted : true</code>, qui gardera vos pages disponibles dans les constructions de production, tout en les « cachant » et en les rendant impossibles à découvrir à moins que vous n'ayez l'url. Cela permet de mettre en place des flux de travail utiles où vous pouvez facilement demander un avis sur un élément de contenu avant la publication finale.</p>
<p>Le contenu non listé sera&nbsp;:</p>
<ul>
<li class="">exclu de <code>sitemap.xml</code></li>
<li class="">exclu des résultats de référencement grâce à <code>&lt;meta name="robots" content="noindex, nofollow" /&gt;</code></li>
<li class="">exclu des flux RSS du blog</li>
<li class="">exclu des résultats d'Algolia DocSearch</li>
<li class="">filtré à partir des éléments de la barre de navigation du site, des barres latérales des docs, de la barre latérale du blog, des archives du blog, des tags des pages...</li>
</ul>
<p>Les contenus non listés affichent également une bannière afin que vous n'oubliiez pas de la désactiver une fois que votre contenu est prêt pour le grand jour. Voici un exemple d'<a class="" href="https://docusaurus.io/fr/tests/blog/unlisted-post">article du blog non listé</a>&nbsp;:</p>
<div style="padding:10px"><div class="browserWindow_my1Q" style="min-width:min(100%,45vw);width:800px;max-width:100%;overflow:hidden"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">/tests/blog/unlisted-post</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs" style="padding:0"><iframe src="/tests/blog/unlisted-post" title="/tests/blog/unlisted-post" style="display:block;width:100%;height:300px"></iframe></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="react-18">React 18<a href="https://docusaurus.io/fr/blog/releases/3.0#react-18" class="hash-link" aria-label="Lien direct vers React 18" title="Lien direct vers React 18" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8961" target="_blank" rel="noopener noreferrer" class="">#8961</a>, nous avons fait la mise à jour vers React 18. C'est important, notamment pour <a href="https://react.dev/blog/2022/03/29/react-v18#gradually-adopting-concurrent-features" target="_blank" rel="noopener noreferrer" class="">l'adoption progressive des fonctionnalités Concurrent de React</a>, ainsi que pour les fonctionnalités prometteuses à venir telles que <a href="https://github.com/facebook/docusaurus/issues/9089" target="_blank" rel="noopener noreferrer" class="">les composants de serveur React à l'exécution de la construction</a>.</p>
<p>Cette nouvelle version de React devrait pouvoir remplacer la plupart des sites Docusaurus. Elle s'accompagne de changements de rupture que nous avons gérés en interne dans la base de code de Docusaurus. Si votre site utilise beaucoup de code React personnalisé, nous vous recommandons de consulter l'article officiel sur <a href="https://react.dev/blog/2022/03/08/react-18-upgrade-guide" target="_blank" rel="noopener noreferrer" class="">Comment passer à React 18</a>, notamment le nouveau comportement de <a href="https://react.dev/blog/2022/03/08/react-18-upgrade-guide#automatic-batching" target="_blank" rel="noopener noreferrer" class="">batching automatique</a>.</p>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Prise en charge expérimentale des fonctionnalités de React 18</div><div class="admonitionContent_Knsx"><p>React 18 est livré avec de nouvelles fonctionnalités&nbsp;:</p><ul>
<li class=""><code>&lt;Suspense&gt;</code></li>
<li class=""><code>React.lazy()</code></li>
<li class=""><code>startTransition()</code></li>
</ul><p>Leur prise en charge par Docusaurus est considérée comme <strong>expérimentale</strong>. Nous pourrions être amenés à ajuster l'intégration à l'avenir, ce qui entraînerait un comportement différent au niveau de l'exécution.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="automatic-jsx-runtime">Exécution automatique du JSX<a href="https://docusaurus.io/fr/blog/releases/3.0#automatic-jsx-runtime" class="hash-link" aria-label="Lien direct vers Exécution automatique du JSX" title="Lien direct vers Exécution automatique du JSX" translate="no">​</a></h3>
<p>Docusaurus v3 utilise désormais le <a href="https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html" target="_blank" rel="noopener noreferrer" class="">runtime JSX «&nbsp;automatique&nbsp;»</a>.</p>
<p>Il n'est plus nécessaire d'importer React dans les fichiers JSX qui n'utilisent aucune API React.</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">src/components/MyComponent.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49"> import React from 'react';</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> export default function MyComponent() {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">   return &lt;div&gt;Hello&lt;/div&gt;;</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> }</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="debug-builds">Débogage des constructions<a href="https://docusaurus.io/fr/blog/releases/3.0#debug-builds" class="hash-link" aria-label="Lien direct vers Débogage des constructions" title="Lien direct vers Débogage des constructions" translate="no">​</a></h3>
<p>Il est maintenant possible de construire votre site statique en mode dev.</p>
<div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">docusaurus build </span><span class="token parameter variable" style="color:#E36209">--dev</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Déboguer les problèmes liés à React</div><div class="admonitionContent_Knsx"><p>Docusaurus enregistrera plus d'erreurs dans la console, notamment les erreurs d'hydratation de React 18 grâce au nouveau callback <a href="https://react.dev/reference/react-dom/client/hydrateRoot#parameters" target="_blank" rel="noopener noreferrer" class=""><code>onRecoverableError</code></a>.</p><p>Ce nouveau mode de compilation est particulièrement utile pour <strong>résoudre les problèmes de React</strong>. Docusaurus utilisera la version de développement de React, produisant ainsi des messages d'erreur détaillés et lisibles au lieu de messages minifiés renvoyant à la <a href="https://reactjs.org/docs/error-decoder.html/" target="_blank" rel="noopener noreferrer" class="">page du décodeur d'erreurs React</a>.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="typescript">TypeScript<a href="https://docusaurus.io/fr/blog/releases/3.0#typescript" class="hash-link" aria-label="Lien direct vers TypeScript" title="Lien direct vers TypeScript" translate="no">​</a></h3>
<p>Docusaurus v3 nécessite maintenant une version minimale de TypeScript 5.0.</p>
<p>Nous avons réinternalisé la config TypeScript de base recommandée dans un nouveau package officiel&nbsp;:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">tsconfig.json</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">  "extends": "@tsconfig/docusaurus/tsconfig.json",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">  "extends": "@docusaurus/tsconfig",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "compilerOptions": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    "baseUrl": "."</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">}</span><br></div></code></pre></div></div>
<p>Nous avons également des exportations plus propres et normalisées pour le type du noyau de Docusaurus, les plugins et les options de preset, que vous pouvez utiliser dans les tous nouveaux <a href="https://docusaurus.io/fr/blog/releases/3.0#esm-ts-configs" class="">fichiers de configuration TypeScript</a>&nbsp;:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">type</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">Config</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@docusaurus/types'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">type</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">Options</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> ThemeConfig</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@docusaurus/preset-classic'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">type</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">SidebarsConfig</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@docusaurus/plugin-content-docs'</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="code-blocks">Blocs de code<a href="https://docusaurus.io/fr/blog/releases/3.0#code-blocks" class="hash-link" aria-label="Lien direct vers Blocs de code" title="Lien direct vers Blocs de code" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/9316" target="_blank" rel="noopener noreferrer" class="">#9316</a>, nous avons amélioré la coloration syntaxique grâce à la mise à jour de <a href="https://github.com/FormidableLabs/prism-react-renderer" target="_blank" rel="noopener noreferrer" class="">prism-react-renderer</a> v2. Par exemple, le paramètre bash <code>--save</code> est maintenant colorisé&nbsp;:</p>
<div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">npm</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">install</span><span class="token plain"> </span><span class="token parameter variable" style="color:#E36209">--save</span><span class="token plain"> some-package</span><br></div></code></pre></div></div>
<p>L'<a class="" href="https://docusaurus.io/fr/docs/markdown-features/code-blocks#interactive-code-editor">éditeur de code interactif</a> passe également à <a href="https://github.com/FormidableLabs/react-live" target="_blank" rel="noopener noreferrer" class="">react-live</a> v4, avec un nouveau compilateur <a href="https://github.com/alangpierce/sucrase" target="_blank" rel="noopener noreferrer" class="">sucrase</a>. Il est plus rapide, plus léger et prend en charge des fonctionnalités modernes, notamment les annotations de type TypeScript.</p>
<div class="playgroundContainer_TDLX"><div class="playgroundHeader_h_Hu"><div class="playgroundHeaderContent_epzO">Éditeur en ligne</div><div class="playgroundHeaderButtons_RTSm"><button type="button" aria-label="Reset code to original" title="Reset" class="clean-btn resetButton_gKmz"><svg class="resetButtonIcon_B9AZ" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z"></path><path d="M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466z"></path></svg>Réinitialiser</button></div></div><div class="playgroundEditor_uqZ4"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#393A34;background-color:#f6f8fa" spellcheck="false"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">Hello</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> name</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'World'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Hello </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">name</span><span class="token punctuation" style="color:#393A34">}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span>
</span></pre></div><div class="playgroundHeader_h_Hu"><div class="playgroundHeaderContent_epzO">Résultat</div></div><div class="playgroundPreview_u2xE"><div>Loading...</div></div></div>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8982" target="_blank" rel="noopener noreferrer" class="">#8982</a> et <a href="https://github.com/facebook/docusaurus/pull/8870" target="_blank" rel="noopener noreferrer" class="">#8870</a>, nous avons également ajouté la prise en charge des <a class="" href="https://docusaurus.io/fr/docs/markdown-features/code-blocks#custom-magic-comments">commentaires magiques</a> pour les syntaxes de commentaires de type TeX, Haskell et WebAssembly.</p>
<div class="language-haskell codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">haskell.hs</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-haskell codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token hvariable">stringLength</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">::</span><span class="token plain"> </span><span class="token constant" style="color:#005CC5">String</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">-&gt;</span><span class="token plain"> </span><span class="token constant" style="color:#005CC5">Int</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain"></span><span class="token hvariable">stringLength</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">0</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token hvariable">stringLength</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token hvariable">x</span><span class="token operator" style="color:#D73A49">:</span><span class="token hvariable">xs</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">1</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">+</span><span class="token plain"> </span><span class="token hvariable">stringLength</span><span class="token plain"> </span><span class="token hvariable">xs</span><br></div></code></pre></div></div>
<div class="language-matlab codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">matlab.m</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-matlab codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> result </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">times2</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">n</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">  result </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> n </span><span class="token operator" style="color:#D73A49">*</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">2</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">end</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">x </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">10</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">y </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">times2</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">x</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="mermaid-diagrams">Diagrammes Mermaid<a href="https://docusaurus.io/fr/blog/releases/3.0#mermaid-diagrams" class="hash-link" aria-label="Lien direct vers Diagrammes Mermaid" title="Lien direct vers Diagrammes Mermaid" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/9305" target="_blank" rel="noopener noreferrer" class="">#9305</a>, nous avons mis à jour Mermaid v10.4 et ajouté la prise en charge du rendu asynchrone des diagrammes. Docusaurus est maintenant en mesure de rendre de nouveaux types de diagrammes.</p>
<details class="details_Nokh alert alert--info details_Cn_P" data-collapsed="true"><summary>Mindmap</summary><div><div class="collapsibleContent_EoA1"></div></div></details>
<details class="details_Nokh alert alert--info details_Cn_P" data-collapsed="true"><summary>Quadrant chart</summary><div><div class="collapsibleContent_EoA1"></div></div></details>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="query-string-data-attributes">Attributs de données de la chaîne de requête<a href="https://docusaurus.io/fr/blog/releases/3.0#query-string-data-attributes" class="hash-link" aria-label="Lien direct vers Attributs de données de la chaîne de requête" title="Lien direct vers Attributs de données de la chaîne de requête" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/9028" target="_blank" rel="noopener noreferrer" class="">#9028</a>, nous avons rendu possible la définition d'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*" target="_blank" rel="noopener noreferrer" class="">attributs de données</a> HTML personnalisés à travers les paramètres de la chaîne de requête <code>docusaurus-data-x</code>. Cela facilite l'intégration d'un iframe Docusaurus sur un autre site et vous permet de personnaliser l'apparence de la version intégrée à l'aide de CSS.</p>
<div class="language-css codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">/src/css/custom.css</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-css codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token selector" style="color:#6F42C1">html</span><span class="token selector attribute punctuation" style="color:#393A34">[</span><span class="token selector attribute attr-name" style="color:#0550AE">data-navbar</span><span class="token selector attribute operator" style="color:#D73A49">=</span><span class="token selector attribute attr-value" style="color:#C6105F">'false'</span><span class="token selector attribute punctuation" style="color:#393A34">]</span><span class="token selector" style="color:#6F42C1"> </span><span class="token selector class" style="color:#6F42C1">.navbar</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#005CC5">display</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> none</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token selector" style="color:#6F42C1">html</span><span class="token selector attribute punctuation" style="color:#393A34">[</span><span class="token selector attribute attr-name" style="color:#0550AE">data-red-border</span><span class="token selector attribute punctuation" style="color:#393A34">]</span><span class="token selector" style="color:#6F42C1"> div</span><span class="token selector id" style="color:#6F42C1">#__docusaurus</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#005CC5">border</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token color" style="color:#005CC5">red</span><span class="token plain"> solid thick</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<div style="padding:10px"><div class="browserWindow_my1Q" style="min-width:min(100%,45vw);width:800px;max-width:100%;overflow:hidden"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">/docs/?docusaurus-data-navbar=false&amp;docusaurus-data-red-border</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs" style="padding:0"><iframe src="/docs/?docusaurus-data-navbar=false&amp;docusaurus-data-red-border" title="/docs/?docusaurus-data-navbar=false&amp;docusaurus-data-red-border" style="display:block;width:100%;height:300px"></iframe></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-features">Autres fonctionnalités<a href="https://docusaurus.io/fr/blog/releases/3.0#other-features" class="hash-link" aria-label="Lien direct vers Autres fonctionnalités" title="Lien direct vers Autres fonctionnalités" translate="no">​</a></h3>
<p>Autres nouvelles fonctionnalités à mentionner&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9189" target="_blank" rel="noopener noreferrer" class="">#9189</a>&nbsp;: nouvelle option du blog <code>feedOptions.limit</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9071" target="_blank" rel="noopener noreferrer" class="">#9071</a>&nbsp;: ajout d'un support de référencement normalisé pour le plugin de pages</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9028" target="_blank" rel="noopener noreferrer" class="">#9171</a>&nbsp;: le plugin client-redirects prend désormais en charge les urls qualifiés et query-string/hash dans l'url de destination</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/9171" target="_blank" rel="noopener noreferrer" class="">#9171</a>&nbsp;: nouvelle règle ESLint <a class="" href="https://docusaurus.io/fr/docs/api/misc/@docusaurus/eslint-plugin/no-html-links"><code>no-html-links</code></a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8384" target="_blank" rel="noopener noreferrer" class="">#8384</a>&nbsp;: nouvelle règle ESLint <a class="" href="https://docusaurus.io/fr/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading"><code>prefer-docusaurus-heading</code></a></li>
</ul>
<p>Consultez les <a href="https://github.com/facebook/docusaurus/releases/tag/v3.0.0" target="_blank" rel="noopener noreferrer" class=""><strong>notes de version de Docusaurus v3.0.0</strong></a> pour une liste exhaustive des changements.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="conclusion">Conclusion<a href="https://docusaurus.io/fr/blog/releases/3.0#conclusion" class="hash-link" aria-label="Lien direct vers Conclusion" title="Lien direct vers Conclusion" translate="no">​</a></h2>
<p>Cette version est fournie avec quelques fonctionnalités, mais plus important encore, <strong>met à jour de nombreuses pièces de l'infrastructure Docusaurus</strong>.</p>
<p>La <strong>mise à jour MDX</strong> a consommé beaucoup de notre temps cette année, et nous avons travaillé dur pour rendre cette importante mise à jour moins difficile pour vous tous.</p>
<p>Maintenant que nous avons rattrapé notre retard en matière d'infrastructure, nous serons de retour pour <strong>délivrer des fonctionnalités de documentation utiles</strong> très bientôt, dans les prochaines versions mineures.</p>
<p>Nous vous remercions d'utiliser Docusaurus au fil des ans. Le marché des frameworks de documentation devient de plus en plus concurrentiel ces derniers temps, et nous ferons de notre mieux pour que Docusaurus reste une <strong>solution compétitive</strong> qui se distingue par sa grande <strong>flexibilité</strong>.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Préparation de votre site pour Docusaurus v3]]></title>
            <link>https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3</link>
            <guid>https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3</guid>
            <pubDate>Fri, 29 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the upgrade guide for the most up-to-date migration steps.]]></description>
            <content:encoded><![CDATA[<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>attention</div><div class="admonitionContent_Knsx"><p>This blog post was written when Docusaurus v3 was in beta. There are some changes in dependency versions and upgrade steps you should be aware of if upgrading to Docusaurus v3 current stable releases. Use the <a href="https://docusaurus.io/docs/next/migration/v3" target="_blank" rel="noopener noreferrer" class="">upgrade guide</a> for the most up-to-date migration steps.</p></div></div>
<p><strong>Docusaurus v3</strong> est maintenant <a href="https://github.com/facebook/docusaurus/discussions/9312" target="_blank" rel="noopener noreferrer" class=""><strong>en beta</strong></a> et la sortie officielle est imminente. C'est le moment idéal pour commencer à <strong>préparer votre site</strong> pour cette nouvelle version majeure.</p>
<p>Docusaurus v3 comporte quelques <strong>changements de rupture</strong>, dont beaucoup peuvent être <strong>traités aujourd'hui avec Docusaurus v2</strong>. La préparation de votre site en amont peut se faire de manière progressive et facilitera la mise à niveau vers la v3.</p>
<p>Le principal changement de rupture est la mise à jour de MDX v1 vers MDX v3. Lisez les notes de version pour <a href="https://mdxjs.com/blog/v2/" target="_blank" rel="noopener noreferrer" class=""><strong>MDX v2</strong></a> et <a href="https://mdxjs.com/blog/v3/" target="_blank" rel="noopener noreferrer" class=""><strong>MDX v3</strong></a> pour plus de détails. MDX compile maintenant votre contenu Markdown <strong>plus strictement</strong> et avec des <strong>différences subtiles</strong>.</p>
<p>Cet article se concentrera principalement sur la façon de préparer votre contenu pour cette nouvelle version de MDX, et énumérera également quelques autres changements de rupture que vous pouvez traiter dès aujourd'hui.</p>
<p><img decoding="async" loading="lazy" alt="Préparation de votre site pour Docusaurus v3 - carte sociale" src="https://docusaurus.io/fr/assets/images/social-card-1c688c53b51bdaa6e15ae532bf756276.png" width="1040" height="546" class="img_vXGZ"></p>
<!-- -->
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>attention</div><div class="admonitionContent_Knsx"><p>Cet article mentionne la plupart des changements de rupture de Docusaurus v3, mais ce n'est pas exhaustif. Lisez la <a href="https://github.com/facebook/docusaurus/discussions/9312" target="_blank" rel="noopener noreferrer" class="">v3.0.0-beta.0 release notes</a> pour une liste exhaustive.</p></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>N'ayez pas peur</div><div class="admonitionContent_Knsx"><p>Il y a beaucoup de contenu dans cet article du blog, mais de nombreux sites Docusaurus v2 peuvent être mis à jour avec très peu de changements.</p><p>Si votre site est relativement petit, avec seulement quelques personnalisations, vous pouvez probablement <a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#try-docusaurus-v3-today" class="">passer à Docusaurus v3</a> immédiatement.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="preparatory-work">Travaux préparatoires<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#preparatory-work" class="hash-link" aria-label="Lien direct vers Travaux préparatoires" title="Lien direct vers Travaux préparatoires" translate="no">​</a></h2>
<p>Avant de préparer la mise à niveau de Docusaurus v3, nous vous recommandons d'effectuer une mise à niveau vers la dernière <a class="" href="https://docusaurus.io/fr/versions">version de Docusaurus v2</a>.</p>
<p>En fonction de la complexité de votre site, il peut être judicieux d'adopter le <a class="" href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing">flux de travail des tests de régression visuels</a> que nous avons récemment présenté. Cela pourrait vous aider à détecter des effets secondaires visuels inattendus survenant lors de la mise à jour de Docusaurus v3.</p>
<p>Nous recommandons également d'utiliser l'extension <code>.mdx</code> chaque fois que vous utilisez JSX, <code>import</code>, ou <code>export</code> (par exemple les fonctionnalités MDX) dans un fichier Markdown. Elle est plus correcte sémantiquement et améliore la compatibilité avec les outils externes (IDE, formateurs, linters, etc.). Dans les versions futures de Docusaurus, les fichiers <code>.md</code> seront analysés comme du <a href="https://commonmark.org/" target="_blank" rel="noopener noreferrer" class="">CommonMark</a> standard, qui ne prend pas en charge ces fonctionnalités. Dans Docusaurus v3, les fichiers <code>.md</code> continuent d'être compilés comme des fichiers MDX, mais il sera possible d'<a href="https://github.com/facebook/docusaurus/issues/3018" target="_blank" rel="noopener noreferrer" class="">opter pour CommonMark</a>.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="preparing-content-for-mdx-v3">Préparation du contenu pour MDX v3<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#preparing-content-for-mdx-v3" class="hash-link" aria-label="Lien direct vers Préparation du contenu pour MDX v3" title="Lien direct vers Préparation du contenu pour MDX v3" translate="no">​</a></h2>
<p>MDX est une dépendance majeure de Docusaurus responsable de la compilation de vos fichiers <code>.md</code> et <code>.mdx</code> en composants React.</p>
<p>MDX v3 est bien meilleur, mais s'accompagne également de changements qui vous obligeront probablement à remanier quelque peu votre contenu. MDX v3 est plus strict, et certains composants qui se compilaient bien sous v1 peuvent maintenant ne pas se compiler sous v2, très probablement à cause des caractères <code>{</code> et <code>&lt;</code>.</p>
<p>La mise à jour de MDX s'accompagne de toutes les changements de rupture documentés dans les articles du blog sur les versions <a href="https://mdxjs.com/blog/v2/" target="_blank" rel="noopener noreferrer" class="">MDX v2</a> et <a href="https://mdxjs.com/blog/v3/" target="_blank" rel="noopener noreferrer" class="">MDX v3</a>. Les changements de rupture les plus importants proviennent de MDX v2. Le <a href="https://mdxjs.com/migrating/v2/" target="_blank" rel="noopener noreferrer" class="">guide de migration MDX v2</a> contient une section sur la façon de <a href="https://mdxjs.com/migrating/v2/#update-mdx-files" target="_blank" rel="noopener noreferrer" class="">mettre à jour les fichiers MDX</a> qui sera particulièrement pertinente pour nous. Assurez-vous également de lire la page <a href="https://mdxjs.com/docs/troubleshooting-mdx/" target="_blank" rel="noopener noreferrer" class="">Troubleshooting MDX</a> qui peut vous aider à interpréter les messages d'erreur MDX les plus courants.</p>
<p>Veillez également à lire notre page de documentation actualisée de <a class="" href="https://docusaurus.io/fr/docs/markdown-features/react"><strong>MDX et React</strong></a>.</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Demander de l’aide</div><div class="admonitionContent_Knsx"><p>Nous avons une discussion dédiée à <a href="https://github.com/facebook/docusaurus/discussions/9053" target="_blank" rel="noopener noreferrer" class="">MDX v3 - Support de mise à jour</a>.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="using-the-mdx-playground">Utilisation du terrain de jeu MDX<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#using-the-mdx-playground" class="hash-link" aria-label="Lien direct vers Utilisation du terrain de jeu MDX" title="Lien direct vers Utilisation du terrain de jeu MDX" translate="no">​</a></h3>
<p>Le terrain de jeu du MDX est votre nouveau meilleur ami. Il permet de comprendre comment votre contenu est <strong>compilé en composants React</strong>, et de résoudre les problèmes de compilation ou de rendu de manière isolée.</p>
<p>Chaque version MDX est livrée avec son propre terrain de jeu&nbsp;:</p>
<ul>
<li class=""><a href="https://mdxjs.com/playground/" target="_blank" rel="noopener noreferrer" class="">Terrain de jeu MDX - version actuelle</a></li>
<li class=""><a href="https://mdx-git-renovate-babel-monorepo-mdx.vercel.app/playground/" target="_blank" rel="noopener noreferrer" class="">Terrain de jeu MDX - v1</a></li>
</ul>
<details class="details_Nokh alert alert--info details_Cn_P" data-collapsed="true"><summary>Configuring the MDX playground options for Docusaurus</summary><div><div class="collapsibleContent_EoA1"><p>Pour obtenir un comportement de compilation similaire à celui de Docusaurus v2, activez ces options sur le <a href="https://mdxjs.com/playground/" target="_blank" rel="noopener noreferrer" class="">terrain de jeu MDX</a>&nbsp;:</p><ul>
<li class="">Use <code>MDX</code></li>
<li class="">Use <code>remark-gfm</code></li>
<li class="">Use <code>remark-directive</code></li>
</ul><p><img decoding="async" loading="lazy" alt="Capture d&amp;#39;écran du panneau d&amp;#39;options du terrain de jeu MDX v3, avec seulement les options &amp;quot;Use MDX&amp;quot;, &amp;quot;Use remark-gfm&amp;quot;, et &amp;quot;Use remark-directive&amp;quot; cochées" src="https://docusaurus.io/fr/assets/images/mdx2-playground-options-eab88e8328a6902759c4236ffc93d9c6.png" width="1968" height="1316" class="img_vXGZ"></p></div></div></details>
<p>En utilisant les deux terrains de jeu MDX côte à côte, vous remarquerez rapidement que certains contenus sont compilés différemment ou ne se compilent pas dans la v3.</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Faire en sorte que votre contenu soit prêt pour l'avenir</div><div class="admonitionContent_Knsx"><p>L'objectif est de remanier votre contenu problématique afin qu'il <strong>fonctionne correctement avec les deux versions du MDX</strong>. Ainsi, lorsque vous passerez à Docusaurus v3, ce contenu sera déjà prêt à l'emploi.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="using-the-mdx-checker-cli">Utilisation du CLI de vérification du MDX<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#using-the-mdx-checker-cli" class="hash-link" aria-label="Lien direct vers Utilisation du CLI de vérification du MDX" title="Lien direct vers Utilisation du CLI de vérification du MDX" translate="no">​</a></h3>
<p>Nous fournissons un CLI <a href="https://github.com/slorber/docusaurus-mdx-checker" target="_blank" rel="noopener noreferrer" class="">docusaurus-mdx-checker</a> qui permet de repérer facilement les contenus problématiques. Exécutez cette commande aujourd'hui sur votre site Docusaurus v2 pour obtenir la liste des fichiers qui ne pourront pas être compilés sous MDX v3.</p>
<div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">npx docusaurus-mdx-checker</span><br></div></code></pre></div></div>
<p>Pour chaque problème de compilation, le CLI enregistre le chemin d'accès au fichier et un numéro de ligne à consulter.</p>
<p><img decoding="async" loading="lazy" alt="Capture d&amp;#39;écran du terminal montrant un exemple de sortie du CLI du vérificateur de MDX, avec quelques messages d&amp;#39;erreur" src="https://docusaurus.io/fr/assets/images/mdx-checker-output-0f96cc19fd3ed4d55901ca90ad657c14.png" width="1161" height="417" class="img_vXGZ"></p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Utilisez ce CLI pour estimer la quantité de travail nécessaire pour rendre votre contenu compatible avec MDX v3.</p></div></div>
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>attention</div><div class="admonitionContent_Knsx"><p>Ce CLI est le fruit de notre travail et ne signale que les erreurs de compilation.</p><p>Il ne signale pas les modifications subtiles de la compilation qui ne produisent pas d'erreurs mais qui peuvent affecter l'affichage de votre contenu. Pour détecter ces problèmes, nous recommandons d'utiliser des <a class="" href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing">tests de régression visuels</a>.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="common-mdx-problems">Problèmes fréquents du MDX<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#common-mdx-problems" class="hash-link" aria-label="Lien direct vers Problèmes fréquents du MDX" title="Lien direct vers Problèmes fréquents du MDX" translate="no">​</a></h3>
<p>Nous avons mis à jour quelques sites Docusaurus vers Docusaurus v3 et MDX v3&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8288" target="_blank" rel="noopener noreferrer" class="">PR de Docusaurus</a></li>
<li class=""><a href="https://github.com/facebook/react-native-website/pull/3780" target="_blank" rel="noopener noreferrer" class="">PR de React-Native</a></li>
<li class=""><a href="https://github.com/jestjs/jest/pull/14463" target="_blank" rel="noopener noreferrer" class="">PR de Jest</a></li>
</ul>
<p>Ces mises à jour nous ont permis de regrouper les problèmes de contenu les plus courants et de documenter la meilleure façon de les traiter.</p>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="bad-usage-of-">Mauvaise utilisation de <code>{</code><a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#bad-usage-of-" class="hash-link" aria-label="Lien direct vers bad-usage-of-" title="Lien direct vers bad-usage-of-" translate="no">​</a></h4>
<p>Le caractère <code>{</code> est utilisé pour ouvrir des <a href="https://mdxjs.com/docs/what-is-mdx/#expressions" target="_blank" rel="noopener noreferrer" class="">expressions JavaScript</a>. Désormais, MDX échouera si ce que vous mettez dans <code>{expression}</code> n'est pas une expression valide.</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">La forme de l'objet ressemble à {username: string, age: number}</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Message d'erreur</div><div class="admonitionContent_Knsx"><blockquote>
<p>Could not parse expression with acorn: Unexpected content after expression</p>
</blockquote></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Options disponibles pour corriger cette erreur&nbsp;:</p><ul>
<li class="">Utilisez le code en ligne&nbsp;: <code>{username: string, age: number}</code></li>
<li class="">Utilisez le code HTML&nbsp;: <code>&amp;#123;</code></li>
<li class="">Échappez-le &nbsp;: <code>\{</code></li>
</ul></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="bad-usage-of--1">Mauvaise utilisation de <code>&lt;</code><a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#bad-usage-of--1" class="hash-link" aria-label="Lien direct vers bad-usage-of--1" title="Lien direct vers bad-usage-of--1" translate="no">​</a></h4>
<p>Le caractère <code>&lt;</code> est utilisé pour ouvrir des <a href="https://mdxjs.com/docs/what-is-mdx/#jsx" target="_blank" rel="noopener noreferrer" class="">balises JSX</a>. Désormais, MDX échouera s'il pense que votre JSX n'est pas valide.</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">Utiliser la version Android &lt;5</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Vous pouvez utiliser un type générique comme Array</span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">T</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Suivez le modèle "Road to </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">YOUR_MINOR_VERSION</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">"</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Messages d'erreur</div><div class="admonitionContent_Knsx"><blockquote>
<p>Unexpected character <code>5</code> (U+0035) before name, expected a character that can start a name, such as a letter, <code>$</code>, or <code>_</code></p>
</blockquote><blockquote>
<p>Expected a closing tag for <code>&lt;T&gt;</code> (1:6-1:9) before the end of <code>paragraph</code> end-tag-mismatch mdast-util-mdx-jsx</p>
</blockquote><blockquote>
<p>Expected a closing tag for <code>&lt;YOUR_MINOR_VERSION&gt;</code> (134:19-134:39) before the end of <code>paragraph</code></p>
</blockquote></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Options disponibles pour corriger cette erreur&nbsp;:</p><ul>
<li class="">Utilisez le code en ligne&nbsp;: <code>Array&lt;T&gt;</code></li>
<li class="">Utilisez le code HTML&nbsp;: <code>&amp;lt;</code> ou <code>&amp;#60;</code></li>
<li class="">Échappez-le&nbsp;: <code>\&lt;</code> (malheureusement le <code>\</code> sera affiché sous MDX v1)</li>
</ul></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="bad-usage-of-gfm-autolink">Mauvaise utilisation de GFM Autolink<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#bad-usage-of-gfm-autolink" class="hash-link" aria-label="Lien direct vers Mauvaise utilisation de GFM Autolink" title="Lien direct vers Mauvaise utilisation de GFM Autolink" translate="no">​</a></h4>
<p>Docusaurus prend en charge <a href="https://github.github.com/gfm/" target="_blank" rel="noopener noreferrer" class="">GitHub Flavored Markdown (GFM)</a>, mais <a href="https://github.github.com/gfm/#autolinks" target="_blank" rel="noopener noreferrer" class="">autolink</a> utilisant la syntaxe <code>&lt;link&gt;</code> n'est plus pris en charge par MDX.</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">sebastien@thisweekinreact.com</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">&lt;http://localhost:3000&gt;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Messages d'erreur</div><div class="admonitionContent_Knsx"><blockquote>
<p>Unexpected character <code>@</code> (U+0040) in name, expected a name character such as letters, digits, <code>$</code>, or <code>_</code>; whitespace before attributes; or the end of the tag (note: to create a link in MDX, use <code>[text](url)</code>)</p>
</blockquote><blockquote>
<p>Unexpected character <code>/</code> (U+002F) before local name, expected a character that can start a name, such as a letter, <code>$</code>, or <code>_</code> (note: to create a link in MDX, use <code>[text](url)</code>)</p>
</blockquote></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Utilisez des liens Markdown classiques, ou supprimez les <code>&lt;</code> et <code>&gt;</code>. MDX et GFM sont déjà en mesure d'établir des liens automatiques avec les littéraux.</p><div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">sebastien@thisweekinreact.com</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">sebastien@thisweekinreact.com</span><span class="token url" style="color:#36acaa">](</span><span class="token url" style="color:#36acaa">mailto:sebastien@thisweekinreact.com</span><span class="token url" style="color:#36acaa">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">http://localhost:3000</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">http://localhost:3000</span><span class="token url" style="color:#36acaa">](</span><span class="token url" style="color:#36acaa">http://localhost:3000</span><span class="token url" style="color:#36acaa">)</span><br></div></code></pre></div></div></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="lower-case-mdxcomponent-mapping">Correspondance de MDXComponent en minuscules<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#lower-case-mdxcomponent-mapping" class="hash-link" aria-label="Lien direct vers Correspondance de MDXComponent en minuscules" title="Lien direct vers Correspondance de MDXComponent en minuscules" translate="no">​</a></h4>
<p>Pour les utilisateurs fournissant une <a class="" href="https://docusaurus.io/fr/docs/markdown-features/react#mdx-component-scope">correspondance <code>MDXComponent</code> personnalisée</a>, les composants sont maintenant « mis en bac à sable&nbsp;» :</p>
<ul>
<li class="">une correspondance de <code>MDXComponent</code> pour <code>h1</code> n'est utilisée que pour <code># hi</code> mais pas pour <code>&lt;h1&gt;hi&lt;/h1&gt;</code></li>
<li class="">un nom d'élément personnalisé <strong>en minuscules</strong> ne sera plus remplacé par son composant <code>MDXComponent</code> respectif</li>
</ul>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>différence visuelle</div><div class="admonitionContent_Knsx"><p>Votre <a class="" href="https://docusaurus.io/fr/docs/markdown-features/react#mdx-component-scope">correspondance de composant <code>MDXComponent</code></a> pourrait ne pas être appliquée comme avant, et vos composants personnalisés pourraient ne plus être utilisés.</p></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Pour les éléments Markdown natifs, vous pouvez continuer à utiliser les <strong>minuscules</strong>&nbsp;: <code>p</code>, <code>h1</code>, <code>img</code>, <code>a</code>...</p><p>Pour tout autre élément, <strong>utiliser des noms en majuscules</strong>.</p><div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">src/theme/MDXComponents.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">import MDXComponents from '@theme-original/MDXComponents';</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">export default {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  ...MDXComponents,</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  p: (props) =&gt; &lt;p {...props} className="my-paragraph"/&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">  myElement: (props) =&gt; &lt;div {...props} className="my-class" /&gt;,</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">  MyElement: (props) =&gt; &lt;div {...props} className="my-class" /&gt;,</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">};</span><br></div></code></pre></div></div></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="unintended-extra-paragraphs">Paragraphes supplémentaires involontaires<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#unintended-extra-paragraphs" class="hash-link" aria-label="Lien direct vers Paragraphes supplémentaires involontaires" title="Lien direct vers Paragraphes supplémentaires involontaires" translate="no">​</a></h4>
<p>Dans MDX v3, il est désormais possible d'intercaler du JSX et du Markdown plus facilement sans avoir besoin de sauts de ligne supplémentaires. L'écriture d'un contenu sur plusieurs lignes peut également produire de nouvelles balises <code>&lt;p&gt;</code> attendues.</p>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>différence visuelle</div><div class="admonitionContent_Knsx"><p>Voyez comment ce contenu est rendu différemment par MDX v1 et v3.</p><div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Un peu de contenu </span><span class="token bold punctuation" style="color:#393A34">**</span><span class="token bold content">Markdown</span><span class="token bold punctuation" style="color:#393A34">**</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  Un peu de contenu </span><span class="token bold punctuation" style="color:#393A34">**</span><span class="token bold content">Markdown</span><span class="token bold punctuation" style="color:#393A34">**</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div><div class="language-html codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">MDX v1 output</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-html codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Un peu de contenu **Markdown**</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Un peu de contenu **Markdown**</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div><div class="language-html codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">MDX v3 output</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-html codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Un peu de contenu </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">strong</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Markdown</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">strong</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">p</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Un peu de contenu </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">strong</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Markdown</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">strong</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">p</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#22863A">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Si vous ne voulez pas de balise <code>&lt;p&gt;</code> supplémentaire, remaniez le contenu au cas par cas pour utiliser une balise JSX sur une seule ligne.</p><div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">&lt;figure&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  &lt;img src="/img/myImage.png" alt="My alt" /&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">  &lt;figcaption&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    Légende de mon image</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">  &lt;/figcaption&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">  &lt;figcaption&gt;Légende de mon image&lt;/figcaption&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">&lt;/figure&gt;</span><br></div></code></pre></div></div><p>Si votre contenu contient des « Markdown en ligne » (<code>**</code>, <code>*</code>, <code>_</code>, <code>[link](/path)</code>), il se peut que vous ne puissiez pas le remanier à l'avance, et devrez le faire en même temps que la mise à jour de Docusaurus v3.</p></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="unintended-usage-of-directives">Utilisation involontaire de directives<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#unintended-usage-of-directives" class="hash-link" aria-label="Lien direct vers Utilisation involontaire de directives" title="Lien direct vers Utilisation involontaire de directives" translate="no">​</a></h4>
<p>Docusaurus v3 utilise désormais des <a href="https://talk.commonmark.org/t/generic-directives-plugins-syntax/444" target="_blank" rel="noopener noreferrer" class="">directives Markdown</a> (mises en œuvre avec <a href="https://github.com/remarkjs/remark-directive" target="_blank" rel="noopener noreferrer" class="">remark-directive</a>) comme moyen générique de fournir un support pour les admonitions, et d'autres fonctionnalités à venir de Docusaurus.</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">Ceci est un :texteDeDirective</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">::directiveFeuille</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">:::conteneurDeDirective</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Contenu du conteneur de la directive</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">:::</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Changement visuel</div><div class="admonitionContent_Knsx"><p>Les directives sont analysées dans le but d'être traitées par d'autres plugins Remark. Les directives non traitées seront ignorées et ne seront pas restituées dans leur forme originale.</p><div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">La conférence AWS re:Invent est formidable</span><br></div></code></pre></div></div><p>En raison de l'analyse de <code>:Invent</code> en tant que directive de texte, ceci sera maintenant rendu ainsi&nbsp;:</p><div class="language-text codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-text codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">La conférence AWS re</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">est formidable</span><br></div></code></pre></div></div></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><ul>
<li class="">Utilisez le code HTML&nbsp;: <code>&amp;#58;</code></li>
<li class="">Ajoutez un espace après <code>:</code> (si cela a du sens)&nbsp;: <code>: texte</code></li>
<li class="">Échappez-le&nbsp;: <code>\:</code> (malheureusement le <code>\</code> sera affiché sous MDX v1)</li>
</ul></div></div>
<h4 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="unsupported-indented-code-blocks">Blocs de code indentés non pris en charge<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#unsupported-indented-code-blocks" class="hash-link" aria-label="Lien direct vers Blocs de code indentés non pris en charge" title="Lien direct vers Blocs de code indentés non pris en charge" translate="no">​</a></h4>
<p>MDX ne transforme plus le texte indenté comme des blocs de code.</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">    console.log("hello");</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Changement visuel</div><div class="admonitionContent_Knsx"><p>La mise à jour ne produit généralement pas de nouvelles erreurs de compilation MDX, mais peut entraîner un rendu inattendu du contenu parce qu'il n'y a plus de bloc de code.</p></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Utilisez la syntaxe du bloc de code normal au lieu de l'indentation&nbsp;:</p><div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">example.md</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token code punctuation" style="color:#393A34">```</span><span class="token code code-language">js</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code code-block language-js">console.log('hello');</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code punctuation" style="color:#393A34">```</span><br></div></code></pre></div></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="mdx-plugins">Plugins MDX<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#mdx-plugins" class="hash-link" aria-label="Lien direct vers Plugins MDX" title="Lien direct vers Plugins MDX" translate="no">​</a></h3>
<p>Tous les paquets officiels (Unified, Remark, Rehype...) dans l'écosystème MDX sont désormais des <a href="https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c" target="_blank" rel="noopener noreferrer" class=""><strong>Modules ES uniquement</strong></a> et ne supportent plus [CommonJS] (<a href="https://nodejs.org/api/modules.html#modules-commonjs-modules" target="_blank" rel="noopener noreferrer" class="">https://nodejs.org/api/modules.html#modules-commonjs-modules</a>).</p>
<p>En pratique, cela signifie que vous ne pouvez plus faire de <code>require("remark-plugin")</code>.</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Docusaurus v3 prend désormais en charge les fichiers de configuration <a href="https://flaviocopes.com/es-modules/" target="_blank" rel="noopener noreferrer" class=""><strong>ES Modules</strong></a>. Nous vous recommandons de migrer votre fichier de config vers le ES module, qui vous permet d'importer facilement les plugins Remark&nbsp;:</p><div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token imports">remarkPlugin</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'remark-plugin'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">default</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">title</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Docusaurus'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* config du site à l'aide des plugins remark ici */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div><p>Si vous souhaitez continuer à utiliser les modules CommonJS, vous pouvez utiliser les importations dynamiques comme solution de contournement qui vous permet d'importer des modules ES à l'intérieur d'un module CommonJS. Heureusement, la <a class="" href="https://docusaurus.io/fr/docs/configuration#syntax-to-declare-docusaurus-config">config de Docusaurus prend en charge l'utilisation d'une fonction asynchrone</a> qui vous permet de le faire.</p><div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">module</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method-variable function-variable method function property-access" style="color:#8250DF">exports</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">async</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> myPlugin </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword control-flow" style="color:#CF222E">await</span><span class="token plain"> </span><span class="token keyword module" style="color:#CF222E">import</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'remark-plugin'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token keyword module" style="color:#CF222E">default</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword control-flow" style="color:#CF222E">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// config du site...</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div></div></div>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Pour les auteurs de plugins</div><div class="admonitionContent_Knsx"><p>Si vous avez créé des plugins Remark ou Rehype personnalisés, vous devrez peut-être les refactoriser, voire les réécrire complètement, étant donné la façon dont le nouveau système AST est structuré. Nous avons créé une <a href="https://github.com/facebook/docusaurus/discussions/9337" target="_blank" rel="noopener noreferrer" class="">discussion d'assistance dédiée</a> pour aider les auteurs de plugins à mettre à jour leur code.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-breaking-changes">Autres changements de rupture<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#other-breaking-changes" class="hash-link" aria-label="Lien direct vers Autres changements de rupture" title="Lien direct vers Autres changements de rupture" translate="no">​</a></h2>
<p>Hormis le MDX, il existe d'autres changements de rupture auxquels vous pouvez d'ores et déjà préparer votre site, notamment des montées de version majeures de dépendances importantes.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="nodejs-180">Node.js 18.0<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#nodejs-180" class="hash-link" aria-label="Lien direct vers Node.js 18.0" title="Lien direct vers Node.js 18.0" translate="no">​</a></h3>
<p>Node.js 16 <a href="https://nodejs.org/en/blog/announcements/nodejs16-eol" target="_blank" rel="noopener noreferrer" class="">a atteint sa fin de vie</a>, et Docusaurus v3 nécessite désormais <strong>Node.js &gt;= 18.0</strong>.</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Veuillez mettre à jour votre site Docusaurus v2 vers Node.js 18 avant de passer à Docusaurus v3.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="react-180">React 18.0<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#react-180" class="hash-link" aria-label="Lien direct vers React 18.0" title="Lien direct vers React 18.0" translate="no">​</a></h3>
<p>Docusaurus v3 nécessite désormais <strong>React &gt;= 18.0</strong>.</p>
<p>React 18 s'accompagne de ses propres changements de rupture qui devraient être relativement faciles à gérer, selon la quantité de code React personnalisé que vous avez créé pour votre site.</p>
<p>Les simples sites Docusaurus, qui n'utilisent que du code de notre thème officiel sans swizzling, n'ont aucun souci à se faire.</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Lisez les documents officiels de <a href="https://react.dev/blog/2022/03/29/react-v18" target="_blank" rel="noopener noreferrer" class="">React v18.0</a> et <a href="https://react.dev/blog/2022/03/08/react-18-upgrade-guide" target="_blank" rel="noopener noreferrer" class="">Comment passer à React 18</a>, et examinez votre code React initial pour déterminer les composants susceptibles d'être affectés par cette mise à niveau de React 18.</p><p>Nous recommandons de vérifier tout particulièrement les points suivants&nbsp;:</p><ul>
<li class="">Le traitement automatique des composants avec état</li>
<li class="">Les nouvelles erreurs d'hydratation de React signalées dans la console</li>
</ul></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="typescript-50">TypeScript 5.0<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#typescript-50" class="hash-link" aria-label="Lien direct vers TypeScript 5.0" title="Lien direct vers TypeScript 5.0" translate="no">​</a></h3>
<p>Docusaurus v3 nécessite désormais <strong>TypeScript &gt;= 5.0</strong>.</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Veuillez mettre à jour votre site Docusaurus v2 vers TypeScript 5 avant de passer à Docusaurus v3.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="typescript-base-config">Configuration de base de TypeScript<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#typescript-base-config" class="hash-link" aria-label="Lien direct vers Configuration de base de TypeScript" title="Lien direct vers Configuration de base de TypeScript" translate="no">​</a></h3>
<p>La configuration officielle de TypeScript de Docusaurus a été réinternalisée depuis le paquet externe <a href="https://www.npmjs.com/package/@tsconfig/docusaurus" target="_blank" rel="noopener noreferrer" class=""><code>@tsconfig/docusaurus</code></a> vers notre nouveau paquet monorepo <a href="https://www.npmjs.com/package/@docusaurus/tsconfig" target="_blank" rel="noopener noreferrer" class=""><code>@docusaurus/tsconfig</code></a>.</p>
<p>Ce nouveau paquet est versionné en même temps que tous les autres paquets de base de Docusaurus, et il sera utilisé pour assurer la rétro-compatibilité de TypeScript et les changements de rupture lors des mises à jour de versions majeures.</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>La nouvelle configuration TypeScript de Docusaurus v3 est judicieusement la même que l'ancienne configuration TypeScript de Docusaurus v2. Si vous avez effectué la montée de version vers TypeScript 5, l'utilisation de la configuration de Docusaurus v3 sur un site v2 est déjà possible&nbsp;:</p><div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">package.json</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "devDependencies": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@tsconfig/docusaurus": "^1.0.7",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/tsconfig": "^3.0.0-beta.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">}</span><br></div></code></pre></div></div><div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">tsconfig.json</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">  "extends": "@tsconfig/docusaurus/tsconfig.json",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">  "extends": "@docusaurus/tsconfig",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "compilerOptions": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    "baseUrl": "."</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">}</span><br></div></code></pre></div></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="admonition-warning">Admonition warning<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#admonition-warning" class="hash-link" aria-label="Lien direct vers Admonition warning" title="Lien direct vers Admonition warning" translate="no">​</a></h3>
<p>Pour des raisons historiques, nous prenons en charge un admonition non documenté <code>:::warning</code> qui s'affiche avec une couleur rouge.</p>
<div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Attention</div><div class="admonitionContent_Knsx"><p>Ceci est une admonition de Docusaurus v2 <code>:::warning</code>.</p></div></div>
<p>Cependant, la couleur et l'icône sont historiquement erronées. Docusaurus v3 réintroduit officiellement l'admonition <code>:::warning</code>, la documente, et corrige la couleur et l'icône.</p>
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>attention</div><div class="admonitionContent_Knsx"><p>Ceci est une admonition de Docusaurus v3 <code>:::warning</code>.</p></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Si vous utilisiez auparavant l'admonition non documentées <code>:::warning</code>, vérifiez pour chaque utilisation si le jaune est maintenant une couleur appropriée. Si vous voulez conserver la couleur rouge, utilisez <code>:::danger</code> à la place.</p><p>Docusaurus v3 <a href="https://github.com/facebook/docusaurus/pull/9308" target="_blank" rel="noopener noreferrer" class="">a aussi déprécié l'admonition <code>:::caution</code></a>. Veuillez refactoriser <code>:::caution</code> (jaune) soit en <code>:::warning</code> (jaune) soit en <code>:::danger</code> (rouge).</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="versioned-sidebars">Barres latérales versionnées<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#versioned-sidebars" class="hash-link" aria-label="Lien direct vers Barres latérales versionnées" title="Lien direct vers Barres latérales versionnées" translate="no">​</a></h3>
<p>Ce changement de rupture n'affectera <strong>que les utilisateurs de Docusaurus v2</strong> qui ont versionné leurs documents avant la <code>v2.0.0-beta.10</code> (décembre 2021).</p>
<p>Lors de la création de la version <code>v1.0.0</code>, le fichier sidebar contenait un préfixe <code>version-v1.0.0/</code> que <a href="https://github.com/facebook/docusaurus/pull/9310" target="_blank" rel="noopener noreferrer" class="">Docusaurus v3 ne prend plus en charge</a>.</p>
<div class="language-json codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">versioned_sidebars/version-v1.0.0-sidebars.json</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-json codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#005CC5">"version-v1.0.0/docs"</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" style="color:#C6105F">"version-v1.0.0/introduction"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" style="color:#C6105F">"version-v1.0.0/prerequisites"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Comment se préparer</div><div class="admonitionContent_Knsx"><p>Votre site Docusaurus v2 est capable de gérer les deux formats de barres latérales de la même manière.</p><p>Vous pouvez supprimer le préfixe versionné inutile de vos barres latérales versionnées.</p><div class="language-json codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">versioned_sidebars/version-v1.0.0-sidebars.json</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-json codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#005CC5">"docs"</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#C6105F">"introduction"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">"prerequisites"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="try-docusaurus-v3-today">Try Docusaurus v3 today<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#try-docusaurus-v3-today" class="hash-link" aria-label="Lien direct vers Try Docusaurus v3 today" title="Lien direct vers Try Docusaurus v3 today" translate="no">​</a></h2>
<p>Docusaurus v3 est maintenant <a href="https://github.com/facebook/docusaurus/discussions/9312" target="_blank" rel="noopener noreferrer" class="">en beta</a>, et déjà utilisé en production par <a href="https://reactnative.dev/" target="_blank" rel="noopener noreferrer" class="">React-Native</a>, <a href="https://jestjs.io/" target="_blank" rel="noopener noreferrer" class="">Jest</a> et <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">notre propre site web</a>.</p>
<p>Nous pensons que cette nouvelle version de Docusaurus est <strong>robuste et prête à être déployée en production</strong>. Il devrait être lancé officiellement bientôt, après avoir reçu un retour positif de la part des premiers utilisateurs de notre communauté.</p>
<p>Nous vous serions très reconnaissants d'essayer la mise à jour et de signaler les problèmes sur le <a href="https://github.com/facebook/docusaurus/discussions/9312" target="_blank" rel="noopener noreferrer" class="">fil de discussion sur la version 3.0.0-beta.0</a>.</p>
<p>Pour la plupart des sites, la mise à jour devrait être facile. Si vous avez préparé votre site au préalable comme indiqué ici, la mise à jour des dépendances suivantes devrait suffire&nbsp;:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">package.json</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "dependencies": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@docusaurus/core": "2.4.3",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@docusaurus/preset-classic": "2.4.3",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@mdx-js/react": "^1.6.22",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/core": "3.0.0-beta.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/preset-classic": "3.0.0-beta.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@mdx-js/react": "^3.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    "clsx": "^2.0.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">    "prism-react-renderer": "^1.3.5",</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "react": "^17.0.2",</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "react-dom": "^17.0.2"</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "react": "^18.2.0",</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "react-dom": "^18.2.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  },</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  "devDependencies": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49">    "@docusaurus/module-type-aliases": "2.4.3"</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa">    "@docusaurus/module-type-aliases": "3.0.0-beta.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token inserted-sign inserted line" style="color:#36acaa"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="ask-for-help">Demander de l’aide<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#ask-for-help" class="hash-link" aria-label="Lien direct vers Demander de l’aide" title="Lien direct vers Demander de l’aide" translate="no">​</a></h2>
<p>Nous serons là pour vous aider à effectuer la montée de version par le biais des canaux d'assistance suivants&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/discussions/9336" target="_blank" rel="noopener noreferrer" class="">Docusaurus v3 - Support de mise à jour</a></li>
<li class=""><a href="https://discord.com/channels/398180168688074762/1154771869094912090" target="_blank" rel="noopener noreferrer" class="">Docusaurus v3 - Canal Discord #migration-v2-to-v3</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/discussions/9053" target="_blank" rel="noopener noreferrer" class="">MDX v3 - Support de mise à jour</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/discussions/9337" target="_blank" rel="noopener noreferrer" class="">MDX v3 - Support des plugins Remark/Rehype</a></li>
<li class=""><a href="https://discord.com/channels/398180168688074762/1116724556976111616" target="_blank" rel="noopener noreferrer" class="">MDX v3 - Canal Discord #migration-mdx-v3</a></li>
</ul>
<p>Vous pouvez également faire appel à un <a href="https://github.com/facebook/docusaurus/discussions/9281" target="_blank" rel="noopener noreferrer" class="">fournisseur de service Docusaurus</a> payant pour effectuer cette montée de version à votre place. Si votre site est open source, vous pouvez également demander à notre communauté une <a href="https://github.com/facebook/docusaurus/discussions/9283" target="_blank" rel="noopener noreferrer" class="">aide gratuite et bienveillante</a>.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="conclusion">Conclusion<a href="https://docusaurus.io/fr/blog/preparing-your-site-for-docusaurus-v3#conclusion" class="hash-link" aria-label="Lien direct vers Conclusion" title="Lien direct vers Conclusion" translate="no">​</a></h2>
<p>Docusaurus v3 est prêt à être essayé, et sera bientôt disponible. Cet article vous donne déjà une bonne idée de tous les changements majeurs nécessaires à la montée de version.</p>
<p>La version initiale 3.0 se concentre sur les dépendances et les mises à niveau de l'infrastructure qui nous permettront d'implémenter de nouvelles fonctionnalités intéressantes. Elle est également dotée de quelques fonctionnalités utiles que nous détaillerons dans les notes de la version finale.</p>]]></content:encoded>
            <category>Maintenance</category>
        </item>
        <item>
            <title><![CDATA[Mettre à jour les dépendances du frontend en toute confiance]]></title>
            <link>https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing</link>
            <guid>https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing</guid>
            <pubDate>Fri, 22 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Mettez à jour les dépendances npm en toute confiance grâce à un flux de travail de test sur la régression visuelle en utilisant GitHub Actions, Playwright et Argos.]]></description>
            <content:encoded><![CDATA[<p>Les développeurs frontend ont souvent besoin de <strong>mettre à jour les dépendances npm</strong>, mais ces mises à jour peuvent être angoissantes et entraîner des <strong>effets secondaires subtils sur l'interface utilisateur</strong> qui ne sont pas détectés par votre suite de tests habituelle.</p>
<p>La mise à jour de Docusaurus est un bon exemple&nbsp;: à moins de revoir toutes les pages une à une, il est difficile de s'assurer qu'il n'y a pas de régression visuelle. <strong>Docusaurus v3 est sur le point de sortir</strong> (actuellement en <a href="https://github.com/facebook/docusaurus/discussions/9312" target="_blank" rel="noopener noreferrer" class="">beta</a>), et nous aimerions vous aider à effectuer cette mise à jour en toute confiance.</p>
<p>Cet article présente un flux de travail de <strong>test sur la régression visuelle</strong> basé sur <a href="https://github.com/features/actions" target="_blank" rel="noopener noreferrer" class=""><strong>GitHub Actions</strong></a>, <a href="https://playwright.dev/" target="_blank" rel="noopener noreferrer" class=""><strong>Playwright</strong></a> et <a href="https://argos-ci.com/" target="_blank" rel="noopener noreferrer" class=""><strong>Argos</strong></a>. Il n'est pas directement lié à Docusaurus ou React, et peut être adapté pour fonctionner avec d'autres applications frontend et d'autres frameworks.</p>
<p><img decoding="async" loading="lazy" alt="Mettre à jour les dépendances du frontend en toute confiance - carte sociale" src="https://docusaurus.io/fr/assets/images/social-card-0662a6f419d0032829f99915ccf8918b.png" width="1500" height="785" class="img_vXGZ"></p>
<!-- -->
<p>Ce flux de travail a été testé lors de la montée de version de Docusaurus v2 vers v3, et a déjà permis de corriger quelques régressions visuelles sur des sites tels que <a href="https://reactnative.dev/" target="_blank" rel="noopener noreferrer" class="">React Native</a>, <a href="https://jestjs.io/" target="_blank" rel="noopener noreferrer" class="">Jest</a>, et le site <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">Docusaurus</a> lui-même.</p>
<p>Docusaurus v3 s'accompagne de changements d'infrastructure et de mises à niveau de dépendances majeures telles que <a href="https://mdxjs.com/blog/v3/" target="_blank" rel="noopener noreferrer" class="">MDX v3</a> et <a href="https://react.dev/blog/2022/03/29/react-v18" target="_blank" rel="noopener noreferrer" class="">React 18</a>, qui peuvent produire des effets secondaires inattendus. Il aurait été difficile de constater toutes les régressions visuelles en l'absence d'un tel flux de travail. C'est pourquoi nous encourageons les propriétaires de sites à adopter des tests de régression visuels, en particulier pour les sites hautement personnalisés.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="workflow-overview">Vue d'ensemble du flux de travail<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#workflow-overview" class="hash-link" aria-label="Lien direct vers Vue d'ensemble du flux de travail" title="Lien direct vers Vue d'ensemble du flux de travail" translate="no">​</a></h2>
<p>L'idée générale est assez simple&nbsp;:</p>
<ul>
<li class="">Construire votre site dans une CI avec <a href="https://github.com/features/actions" target="_blank" rel="noopener noreferrer" class="">GitHub Actions</a></li>
<li class="">Faire des captures d'écran de toutes les pages de <code>sitemap.xml</code> avec <a href="https://playwright.dev/" target="_blank" rel="noopener noreferrer" class="">Playwright</a></li>
<li class="">Les télécharger sur <a href="https://argos-ci.com/" target="_blank" rel="noopener noreferrer" class="">Argos</a></li>
<li class="">Faire cela pour les deux branches Git&nbsp;: <code>main</code> et <code>pr-branch</code>.</li>
<li class="">Comparez les captures d'écran les unes aux autres dans <a href="https://argos-ci.com/" target="_blank" rel="noopener noreferrer" class="">Argos</a></li>
</ul>
<p>Argos va alors <strong>signaler les différences visuelles</strong> trouvées entre <code>main</code> et <code>pr-branch</code> sous forme d'un statut de commit GitHub et d'un commentaire de pull-request. Cela peut vous aider à détecter les régressions visuelles en amont de manière automatisée.</p>
<p><img decoding="async" loading="lazy" alt="Statut du commit Argos sur GitHub" src="https://docusaurus.io/fr/assets/images/argos-github-status-05e8264c59fa4f8a21292f59665edf3d.png" width="978" height="375" class="img_vXGZ"></p>
<p><img decoding="async" loading="lazy" alt="Commentaire de PR de Argos sur GitHub" src="https://docusaurus.io/fr/assets/images/argos-github-comment-8b62a1561b13881608d5c9f8a8f833a5.png" width="982" height="303" class="img_vXGZ"></p>
<p>Argos crée un rapport référençant toutes les différences visuelles trouvées en comparant l'un à l'autre les sites des 2 branches Git, et fournit une interface utilisateur pratique pour repérer facilement la différence.</p>
<p>Consultez la <a href="https://app.argos-ci.com/meta-open-source/docusaurus" target="_blank" rel="noopener noreferrer" class="">page Argos de Docusaurus</a> pour explorer les rapports de notre propre site web.</p>
<p>Voici un exemple plus concret d'Argos <a href="https://app.argos-ci.com/slorber/rnw-visual-tests/builds/32/56012838" target="_blank" rel="noopener noreferrer" class="">signalant une régression visuelle</a> trouvé lors de la mise à jour du site web React-Native&nbsp;:</p>
<p><a href="https://app.argos-ci.com/slorber/rnw-visual-tests/builds/32/56012838" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" alt="Commentaire de PR de Argos sur GitHub" src="https://docusaurus.io/fr/assets/images/argos-react-native-regression-216ace77baedfaf873a770112ec817ac.png" width="1959" height="979" class="img_vXGZ"></a></p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="workflow-implementation">Implémentation du flux de travail<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#workflow-implementation" class="hash-link" aria-label="Lien direct vers Implémentation du flux de travail" title="Lien direct vers Implémentation du flux de travail" translate="no">​</a></h2>
<p>Cette section décrit les modalités de mise en place de chaque étape du flux de travail.</p>
<p>Vous devrez <a href="https://app.argos-ci.com/signup" target="_blank" rel="noopener noreferrer" class="">vous inscrire à Argos</a> et <a href="https://argos-ci.com/docs/github" target="_blank" rel="noopener noreferrer" class="">connecter Argos à votre dépôt GitHub</a></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="dependencies">Dépendances<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#dependencies" class="hash-link" aria-label="Lien direct vers Dépendances" title="Lien direct vers Dépendances" translate="no">​</a></h3>
<p>Ce flux de travail nécessite les dépendances suivantes, en plus des dépendances habituelles de Docusaurus&nbsp;:</p>
<div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">yarn</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">add</span><span class="token plain"> </span><span class="token parameter variable" style="color:#E36209">-D</span><span class="token plain"> @argos-ci/cli @argos-ci/playwright @playwright/test cheerio</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="github-action">GitHub Action<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#github-action" class="hash-link" aria-label="Lien direct vers GitHub Action" title="Lien direct vers GitHub Action" translate="no">​</a></h3>
<p>GitHub action se charge de l'exécution du flux de travail pour chaque branche Git.</p>
<p>Un flux de travail minimal pourrait ressembler à ce qui suit&nbsp;:</p>
<div class="language-yaml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">.github/workflows/argos.yml</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yaml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Argos CI Screenshots</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">on</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">push</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">branches</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">main</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">pull_request</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">branches</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">main</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">jobs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">take-screenshots</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">runs-on</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ubuntu</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">latest</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">steps</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Check out repository code</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> actions/checkout@v4</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Use Node.js</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> actions/setup</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">node@v3</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">with</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#22863A">node-version</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> current</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Install dependencies</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> yarn install </span><span class="token punctuation" style="color:#393A34">-</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">frozen</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">lockfile</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Install Playwright browsers</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> yarn playwright install </span><span class="token punctuation" style="color:#393A34">-</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">with</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">deps chromium</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Build the website</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> yarn docusaurus build</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Take screenshots with Playwright</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> yarn playwright test</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Upload screenshots to Argos</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#22863A">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> yarn argos upload ./screenshots</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="playwright-config">Config de Playwright<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#playwright-config" class="hash-link" aria-label="Lien direct vers Config de Playwright" title="Lien direct vers Config de Playwright" translate="no">​</a></h3>
<p>Playwright se charge des captures d'écran du site web précédemment construit localement par Github action.</p>
<p>Une <a href="https://playwright.dev/docs/test-configuration" target="_blank" rel="noopener noreferrer" class="">config de Playwright</a> minimale pourrait ressembler à ce qui suit&nbsp;:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">playwright.config.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">devices</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@playwright/test'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">type</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">PlaywrightTestConfig</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@playwright/test'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> PlaywrightTestConfig </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  webServer</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    port</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">3000</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    command</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'yarn docusaurus serve'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  projects</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      name</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'chromium'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      use</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token operator" style="color:#D73A49">...</span><span class="token plain">devices</span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#C6105F">'Desktop Chrome'</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">default</span><span class="token plain"> config</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="playwright-test">Test de Playwright<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#playwright-test" class="hash-link" aria-label="Lien direct vers Test de Playwright" title="Lien direct vers Test de Playwright" translate="no">​</a></h3>
<p>Une config de Playwright ne suffit pas&nbsp;: nous devons également écrire un fichier de test Playwright pour générer les captures d'écran du site.</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">screenshot.spec.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">*</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">as</span><span class="token plain"> fs </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'fs'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">test</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@playwright/test'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">argosScreenshot</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'@argos-ci/playwright'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">extractSitemapPathnames</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> pathnameToArgosName</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'./utils'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Constantes</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> siteUrl </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'http://localhost:3000'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> sitemapPath </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'./build/sitemap.xml'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> stylesheetPath </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'./screenshot.css'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> stylesheet </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> fs</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">readFileSync</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">stylesheetPath</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">toString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Attends l'hydratation, nécessite Docusaurus v2.4.3+</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Docusaurus ajoute un &lt;html data-has-hydrated="true"&gt; une fois l'hydratation terminée</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Consultez https://github.com/facebook/docusaurus/pull/9256</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">waitForDocusaurusHydration</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> document</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">documentElement</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">dataset</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">hasHydrated </span><span class="token operator" style="color:#D73A49">===</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'true'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">screenshotPathname</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">pathname</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token function" style="color:#8250DF">test</span><span class="token punctuation" style="color:#393A34">(</span><span class="token template-string template-punctuation string" style="color:#C6105F">`</span><span class="token template-string string" style="color:#C6105F">pathname </span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation">pathname</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string template-punctuation string" style="color:#C6105F">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">page</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> url </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> siteUrl </span><span class="token operator" style="color:#D73A49">+</span><span class="token plain"> pathname</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#CF222E">await</span><span class="token plain"> page</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">goto</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">url</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#CF222E">await</span><span class="token plain"> page</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">waitForFunction</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">waitForDocusaurusHydration</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#CF222E">await</span><span class="token plain"> page</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">addStyleTag</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">content</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> stylesheet</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#CF222E">await</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">argosScreenshot</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">page</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">pathnameToArgosName</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">pathname</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">test</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">describe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'Docusaurus site screenshots'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> pathnames </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">extractSitemapPathnames</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sitemapPath</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token builtin">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'Pathnames to screenshot:'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> pathnames</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  pathnames</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">forEach</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">screenshotPathname</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<details class="details_Nokh alert alert--info details_Cn_P" data-collapsed="true"><summary>Why do we take screenshots with Argos instead of Playwright?</summary><div><div class="collapsibleContent_EoA1"><p>Argos dispose d'une <a href="https://argos-ci.com/docs/playwright" target="_blank" rel="noopener noreferrer" class="">intégration Playwright</a> qui reprend l'API originale de capture d'écran Playwright et fournit de meilleures valeurs par défaut pour rendre les captures d'écran suffisamment détaillées.</p></div></div></details>
<details class="details_Nokh alert alert--info details_Cn_P" data-collapsed="true"><summary>What's inside <code>utils.ts</code>?</summary><div><div class="collapsibleContent_EoA1"><p>Ce module contient des détails d'implémentation que nous avons choisi de masquer par souci de clarté.</p><div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">*</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">as</span><span class="token plain"> cheerio </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'cheerio'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">import</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">*</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">as</span><span class="token plain"> fs </span><span class="token keyword" style="color:#CF222E">from</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'fs'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Extrait une liste de noms de chemin, à partir d'un chemin fs vers un fichier sitemap.xml</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Docusaurus génère un fichier build/sitemap.xml pour vous !</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">extractSitemapPathnames</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sitemapPath</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> sitemap </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> fs</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">readFileSync</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sitemapPath</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">toString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> $ </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> cheerio</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">load</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sitemap</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">xmlMode</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> urls</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token function" style="color:#8250DF">$</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'loc'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">each</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">handleLoc</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    urls</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">push</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#8250DF">$</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#CF222E">this</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">text</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> urls</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">map</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">url</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">new</span><span class="token plain"> </span><span class="token class-name constant" style="color:#005CC5">URL</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">url</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">pathname</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">// Convertit un nom de chemin en un nom de capture d'écran convenable</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#CF222E">export</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">pathnameToArgosName</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">pathname</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> pathname</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">replace</span><span class="token punctuation" style="color:#393A34">(</span><span class="token regex regex-delimiter" style="color:#36acaa">/</span><span class="token regex regex-source language-regex anchor function" style="color:#8250DF">^</span><span class="token regex regex-source language-regex escape" style="color:#36acaa">\/</span><span class="token regex regex-source language-regex alternation keyword" style="color:#CF222E">|</span><span class="token regex regex-source language-regex escape" style="color:#36acaa">\/</span><span class="token regex regex-source language-regex anchor function" style="color:#8250DF">$</span><span class="token regex regex-delimiter" style="color:#36acaa">/</span><span class="token regex regex-flags" style="color:#36acaa">g</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">''</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">||</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'index'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div></div></div></details>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="stylesheet">Feuille de style<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#stylesheet" class="hash-link" aria-label="Lien direct vers Feuille de style" title="Lien direct vers Feuille de style" translate="no">​</a></h3>
<p>Les captures d'écran ne sont pas toujours suffisamment détaillées, et le fait de prendre deux fois une capture d'écran d'une page peut entraîner des variations subtiles qui seront signalées de manière incorrecte par Argos comme des régressions visuelles.</p>
<p>C'est pourquoi nous recommandons d'injecter une feuille de style supplémentaire pour masquer les éléments problématiques. Vous devrez probablement ajouter de nouvelles règles CSS à cette feuille de style de base, en fonction des éléments instables trouvés sur votre propre site. Consultez <a href="https://argos-ci.com/docs/about-flaky" target="_blank" rel="noopener noreferrer" class="">Argos - Docs à propos des tests instables</a> pour plus d'informations.</p>
<div class="language-css codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">screenshot.css</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-css codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Les iframes peuvent se charger de manière différée */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">iframe</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Les avatars peuvent être instables en raison de l'utilisation de sources externes&nbsp;: GitHub/Unavatar */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">.avatar__photo</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Les Gif se chargent de manière différée et sont animés */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">img[src$=</span><span class="token string" style="color:#C6105F">'.gif'</span><span class="token plain">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Les raccourcis clavier d'Algolia apparaissent avec un peu de retard */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">.DocSearch-Button-Keys &gt; kbd</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* L'aperçu de l'aire de jeu en direct peut souvent afficher des dates/compteurs */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token selector attribute punctuation" style="color:#393A34">[</span><span class="token selector attribute attr-name" style="color:#0550AE">class</span><span class="token selector attribute operator" style="color:#D73A49">*=</span><span class="token selector attribute attr-value" style="color:#C6105F">'playgroundPreview'</span><span class="token selector attribute punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#005CC5">visibility</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> hidden</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Différentes dates de dernière mise à jour des documents peuvent modifier la mise en page */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">.theme-last-updated</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#6B6B6B;font-style:italic">/* Les diagrammes Mermaid sont rendus côté client et produisent des changements de mise en page */</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token selector class" style="color:#6F42C1">.docusaurus-mermaid-container</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#005CC5">display</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> none</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>éviter les changements de mise en page</div><div class="admonitionContent_Knsx"><p>Nous recommandons de masquer les éléments instables de l'interface utilisateur qui affectent la mise en page avec <code>display : none;</code>.</p><p>Par exemple, la documentation «&nbsp;Dernière mise à jour le&nbsp;» peut être affichée sur plus d'une ligne, ce qui «&nbsp;pousse&nbsp;» le reste du contenu vers le bas et conduit Argos à détecter de nombreux pixels différents.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="example-repository">Exemple de dépôt<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#example-repository" class="hash-link" aria-label="Lien direct vers Exemple de dépôt" title="Lien direct vers Exemple de dépôt" translate="no">​</a></h2>
<p>Le dépôt <a href="https://github.com/slorber/docusaurus-argos-example" target="_blank" rel="noopener noreferrer" class="">slorber/docusaurus-argos-example</a> montre un exemple complet de mise en place de ce flux de travail sur un site Docusaurus v2 nouvellement initialisé, en utilisant un monorepo Yarn.</p>
<p><a href="https://github.com/slorber/docusaurus-argos-example" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" alt="Capture d&amp;#39;écran de l&amp;#39;exemple du monorepo de Docusaurus + Argos" src="https://docusaurus.io/fr/assets/images/docusaurus-argos-example-repo-screenshot-a56583e16aa02c7fa96c592f1339928f.png" width="767" height="427" class="img_vXGZ"></a></p>
<p>Pull-requests significatives&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/slorber/docusaurus-argos-example/pull/1" target="_blank" rel="noopener noreferrer" class="">PR - Mise en place de GitHub Action + Playwright + Argos</a>&nbsp;: implémente le flux de travail minimal décrit ci-dessus</li>
<li class=""><a href="https://github.com/slorber/docusaurus-argos-example/pull/2" target="_blank" rel="noopener noreferrer" class="">PR - Mise à jour du Docusaurus de la v2 à la v3</a>&nbsp;: montre comment Argos a détecté 3 régressions visuelles lors de la montée de version</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Exemple plus avancé&nbsp;?</div><div class="admonitionContent_Knsx"><p>Consultez le dépôt de Docusaurus pour une intégration plus avancée&nbsp;:</p><ul>
<li class=""><a href="https://github.com/facebook/docusaurus/blob/main/.github/workflows/argos.yml" target="_blank" rel="noopener noreferrer" class="">GitHub Action</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/tree/main/argos" target="_blank" rel="noopener noreferrer" class="">Tests avec Playwright + Argos</a></li>
</ul></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="make-it-cheap">Réduire les coûts<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#make-it-cheap" class="hash-link" aria-label="Lien direct vers Réduire les coûts" title="Lien direct vers Réduire les coûts" translate="no">​</a></h2>
<p>Les outils que nous choisissons sont des éléments importants de la mise en place de ce flux de travail de test de régression visuel.</p>
<p>Pour Docusaurus, nous avons choisi <a href="https://argos-ci.com/" target="_blank" rel="noopener noreferrer" class="">Argos</a>&nbsp;: il fonctionne bien chez nous et propose des plans <a href="https://argos-ci.com/pricing" target="_blank" rel="noopener noreferrer" class="">gratuits</a> et <a href="https://argos-ci.com/docs/open-source" target="_blank" rel="noopener noreferrer" class="">open source</a>. Toutefois, vous êtes libre d'adopter d'autres outils.</p>
<p>Si cela ne vous dérange pas de stocker de grandes captures d'écran dans Git, vous pouvez également essayer le logiciel gratuit et auto-hébergé <a href="https://playwright.dev/docs/test-snapshots" target="_blank" rel="noopener noreferrer" class="">Playwright Visual Comparisons</a> et parcourir les différences visuelles avec <code>npx playwright show-report</code>. Cependant, nous avons constaté que l'utilisation d'un outil externe dédié est plus pratique.</p>
<p>Les outils externes peuvent être coûteux, mais ils offrent généralement des plans gratuits avec un quota important de captures d'écran. Vous pouvez réduire votre consommation de captures d'écran en appliquant les quelques astuces ci-dessous.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="limit-the-number-of-pathnames">Limiter le nombre de noms de chemin<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#limit-the-number-of-pathnames" class="hash-link" aria-label="Lien direct vers Limiter le nombre de noms de chemin" title="Lien direct vers Limiter le nombre de noms de chemin" translate="no">​</a></h3>
<p>La configuration de base consiste à faire une capture d'écran de chaque chemin trouvé dans <code>sitemap.xml</code>. Pour les sites de grande taille, cela peut se traduire par un grand nombre de captures d'écran.</p>
<p>Vous pouvez décider de filtrer les noms de chemin pour ne prendre que les captures d'écran des pages les plus critiques.</p>
<p>Pour le site web Docusaurus, ne faites pas de captures d'écran pour les pages de docs versionnés&nbsp;:</p>
<div class="language-ts codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">screenshot.spec.ts</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-ts codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">function</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">isVersionedDocsPathname</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">pathname</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token builtin">boolean</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> pathname</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">match</span><span class="token punctuation" style="color:#393A34">(</span><span class="token regex regex-delimiter" style="color:#36acaa">/</span><span class="token regex regex-source language-regex anchor function" style="color:#8250DF">^</span><span class="token regex regex-source language-regex escape" style="color:#36acaa">\/</span><span class="token regex regex-source language-regex" style="color:#36acaa">docs</span><span class="token regex regex-source language-regex escape" style="color:#36acaa">\/</span><span class="token regex regex-source language-regex group punctuation" style="color:#393A34">(</span><span class="token regex regex-source language-regex group punctuation" style="color:#393A34">(</span><span class="token regex regex-source language-regex char-set class-name" style="color:#116329">\d</span><span class="token regex regex-source language-regex special-escape escape" style="color:#36acaa">\.</span><span class="token regex regex-source language-regex char-set class-name" style="color:#116329">\d</span><span class="token regex regex-source language-regex special-escape escape" style="color:#36acaa">\.</span><span class="token regex regex-source language-regex char-set class-name" style="color:#116329">\d</span><span class="token regex regex-source language-regex group punctuation" style="color:#393A34">)</span><span class="token regex regex-source language-regex alternation keyword" style="color:#CF222E">|</span><span class="token regex regex-source language-regex group punctuation" style="color:#393A34">(</span><span class="token regex regex-source language-regex" style="color:#36acaa">next</span><span class="token regex regex-source language-regex group punctuation" style="color:#393A34">)</span><span class="token regex regex-source language-regex group punctuation" style="color:#393A34">)</span><span class="token regex regex-source language-regex escape" style="color:#36acaa">\/</span><span class="token regex regex-delimiter" style="color:#36acaa">/</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">test</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">describe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#C6105F">'Docusaurus site screenshots'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> pathnames </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">extractSitemapPathnames</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sitemapPath</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">filter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">isVersionedDocsPathname</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  pathnames</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#8250DF">forEach</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">screenshotPathname</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="limit-the-workflow-concurrency">Limiter la simultanéité des flux de travail<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#limit-the-workflow-concurrency" class="hash-link" aria-label="Lien direct vers Limiter la simultanéité des flux de travail" title="Lien direct vers Limiter la simultanéité des flux de travail" translate="no">​</a></h3>
<p>La mise en place de <a href="https://docs.github.com/en/actions/using-jobs/using-concurrency" target="_blank" rel="noopener noreferrer" class="">groupes de simultanéité pour les GitHub Actions</a> permet d'éviter que des commits successifs ne déclenchent de multiples exécutions inutiles de flux de travail. Le flux de travail ne sera exécuté que pour le dernier commit, et pour les commits précédents, ils seront automatiquement annulés.</p>
<div class="language-yaml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">.github/workflows/argos.yml</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yaml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#22863A">concurrency</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">group</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> github.workflow </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">$</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> github.head_ref </span><span class="token punctuation" style="color:#393A34">|</span><span class="token punctuation" style="color:#393A34">|</span><span class="token plain"> github.run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">cancel-in-progress</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#005CC5">true</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="run-your-workflow-conditionally">Exécuter votre flux de travail de manière conditionnelle<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#run-your-workflow-conditionally" class="hash-link" aria-label="Lien direct vers Exécuter votre flux de travail de manière conditionnelle" title="Lien direct vers Exécuter votre flux de travail de manière conditionnelle" translate="no">​</a></h3>
<p>Il n'est pas utile d'exécuter ce flux de travail pour chaque commit et chaque pull-request.</p>
<p>Par exemple, si quelqu'un corrige une coquille dans votre documentation, vous ne voudrez probablement pas prendre des centaines de captures d'écran et demander à Argos de signaler que seule la page modifiée présente une différence visuelle :&nbsp;bien sûr, c'est un peu attendu&nbsp;!</p>
<p>Pour le site web de Docusaurus, nous n'exécutons le flux de travail que pour les pull-request ayant le label <code>Argos</code>&nbsp;:</p>
<div class="language-yaml codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">.github/workflows/argos.yml</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-yaml codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#22863A">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Argos CI Screenshots</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">on</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">push</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">branches</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">main</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">pull_request</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">branches</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">main</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">types</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> opened</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> synchronize</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> reopened</span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> labeled</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#22863A">jobs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#22863A">take-screenshots</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">if</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> github.ref_name == 'main' </span><span class="token punctuation" style="color:#393A34">|</span><span class="token punctuation" style="color:#393A34">|</span><span class="token plain"> (github.event_name == 'pull_request' </span><span class="token important">&amp;&amp;</span><span class="token plain"> contains(github.event.pull_request.labels.</span><span class="token important">*.name</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> 'Argos')) </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">runs-on</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ubuntu</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">latest</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#22863A">steps</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#6B6B6B;font-style:italic"># Vos étapes de travail ici ...</span><br></div></code></pre></div></div>
<p>Il existe de nombreuses options à explorer, telles que <a href="https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow" target="_blank" rel="noopener noreferrer" class="">déclencher le flux de travail manuellement</a> ou <a href="https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#example-including-paths" target="_blank" rel="noopener noreferrer" class="">uniquement lorsque les fichiers correspondant à un pattern spécifique sont modifiés</a>.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="conclusion">Conclusion<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#conclusion" class="hash-link" aria-label="Lien direct vers Conclusion" title="Lien direct vers Conclusion" translate="no">​</a></h2>
<p>Je pense que les <strong>tests de régression visuels sont sous-utilisés</strong> dans l'écosystème frontend.</p>
<p>La réalisation de captures d'écran pleine page est <strong>à portée de main</strong>, elle est facile à mettre en place et peut vous aider <strong>à intercepter une nouvelle classe de bogues</strong> que votre suite de tests habituelle n'aurait pas détectée. Cette technique n'est pas seulement utile pour les mises à jour de paquets npm, mais aussi pour <strong>tout type de refactorisation</strong> qui ne doit pas changer l'interface utilisateur.</p>
<p>Alors pourquoi ne pas essayer&nbsp;?</p>
<p>Bon codage&nbsp;!</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="see-also">Voir aussi<a href="https://docusaurus.io/fr/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing#see-also" class="hash-link" aria-label="Lien direct vers Voir aussi" title="Lien direct vers Voir aussi" translate="no">​</a></h2>
<p>Liens utiles de documentation&nbsp;:</p>
<ul>
<li class=""><a href="https://playwright.dev/docs/intro" target="_blank" rel="noopener noreferrer" class="">Playwright - Installation</a></li>
<li class=""><a href="https://playwright.dev/docs/test-configuration" target="_blank" rel="noopener noreferrer" class="">Playwright - Guide de config de test</a></li>
<li class=""><a href="https://playwright.dev/docs/api/class-testconfig" target="_blank" rel="noopener noreferrer" class="">Playwright - API de config de test</a></li>
<li class=""><a href="https://argos-ci.com/docs/installation" target="_blank" rel="noopener noreferrer" class="">Argos - Installation</a></li>
<li class=""><a href="https://argos-ci.com/docs/github-actions" target="_blank" rel="noopener noreferrer" class="">Argos - Utilisation avec GitHub Actions</a></li>
<li class=""><a href="https://argos-ci.com/docs/playwright" target="_blank" rel="noopener noreferrer" class="">Argos - Utilisation avec Playwright</a></li>
<li class=""><a href="https://argos-ci.com/docs/about-flaky" target="_blank" rel="noopener noreferrer" class="">Argos - A propos des tests instables</a></li>
</ul>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 2.4]]></title>
            <link>https://docusaurus.io/fr/blog/releases/2.4</link>
            <guid>https://docusaurus.io/fr/blog/releases/2.4</guid>
            <pubDate>Thu, 23 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Nous sommes heureux d'annoncer Docusaurus 2.4.]]></description>
            <content:encoded><![CDATA[<p>Nous sommes heureux d'annoncer <strong>Docusaurus 2.4</strong>.</p>
<p>La mise à jour devrait être facile : comme expliqué dans notre <a class="" href="https://docusaurus.io/fr/community/release-process">documentation du processus de publication</a>, les versions mineures respectent <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">le versionnage sémantique</a>.</p>
<p><img decoding="async" loading="lazy" alt="Carte sociale d&amp;#39;article de blog de Docusaurus" src="https://docusaurus.io/fr/assets/images/social-card-3239a62bb56c9529ff255bc2c72e94f6.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/2.4#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="sidebar-item-description">Description des éléments de la barre latérale<a href="https://docusaurus.io/fr/blog/releases/2.4#sidebar-item-description" class="hash-link" aria-label="Lien direct vers Description des éléments de la barre latérale" title="Lien direct vers Description des éléments de la barre latérale" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8236" target="_blank" rel="noopener noreferrer" class="">#8236</a>, nous avons ajouté la possibilité de fournir un nouvel attribut <code>description</code> pour les éléments de type <code>link</code> et <code>category</code> de la barre latérale de la documentation.</p>
<div class="language-tsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">sidebars.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-tsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    type</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'link'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    label</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Lien avec description'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    href</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'https://docusaurus.io'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    description</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Une descriptions pour le lien'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    type</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'category'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    label</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Catégorie avec description'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">    description</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'Une description de la catégorie'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    objets </span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>Ces descriptions seront utilisées dans les pages d'index générées pour les catégories.</p>
<p><img decoding="async" loading="lazy" alt="Montre l&amp;#39;index des catégories généré pour la barre latérale avec des descriptions personnalisées" src="https://docusaurus.io/fr/assets/images/sidebar-item-description-f38981b17f486bc09fb811c6992ef668.jpg" width="1400" height="691" class="img_vXGZ"></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="theme-query-string">Chaîne de requête du thème<a href="https://docusaurus.io/fr/blog/releases/2.4#theme-query-string" class="hash-link" aria-label="Lien direct vers Chaîne de requête du thème" title="Lien direct vers Chaîne de requête du thème" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8708" target="_blank" rel="noopener noreferrer" class="">#8708</a>, nous avons ajouté la possibilité de forcer Docusaurus à s'initialiser en mode <code>light</code> (clair) ou <code>dark</code> (sombre) grâce à un nouveau paramètre <code>docusaurus-theme</code> de la chaîne de requête.</p>
<p>Ceci est utile pour assurer un thème cohérent lors de l'intégration d'une page Docusaurus existante dans une iframe ou WebView.</p>
<div style="padding:10px"><div class="browserWindow_my1Q" style="min-width:min(100%,45vw);width:800px;max-width:100%;overflow:hidden"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">/docs/?docusaurus-theme=light</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs" style="padding:0"><iframe src="/docs/?docusaurus-theme=light" title="/docs/?docusaurus-theme=light" style="display:block;width:100%;height:300px"></iframe></div></div></div>
<div style="padding:10px"><div class="browserWindow_my1Q" style="min-width:min(100%,45vw);width:800px;max-width:100%;overflow:hidden"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">/docs/?docusaurus-theme=dark</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs" style="padding:0"><iframe src="/docs/?docusaurus-theme=dark" title="/docs/?docusaurus-theme=dark" style="display:block;width:100%;height:300px"></iframe></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="remark-plugin-npm2yarn-upgrade">Mise à jour du plugin Remark-plugin-npm2yarn<a href="https://docusaurus.io/fr/blog/releases/2.4#remark-plugin-npm2yarn-upgrade" class="hash-link" aria-label="Lien direct vers Mise à jour du plugin Remark-plugin-npm2yarn" title="Lien direct vers Mise à jour du plugin Remark-plugin-npm2yarn" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8690" target="_blank" rel="noopener noreferrer" class="">#8690</a>, nous avons mis à jour notre plugin Remark <a href="https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-remark-plugin-npm2yarn" target="_blank" rel="noopener noreferrer" class="">@docusaurus/remark-plugin-npm2yarn</a> avec de nombreuses corrections de bugs de conversion, un support de première classe pour pnpm, et la possibilité d'enregistrer des convertisseurs personnalisés produisant de nouveaux onglets.</p>
<div class="language-markdown codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-markdown codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">Run these commands!</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token code punctuation" style="color:#393A34">```</span><span class="token code code-language">bash npm2yarn</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code code-block language-bash">npm install</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-bash">npm run build</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-bash">npm run myCustomScript -- --some-arg</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code punctuation" style="color:#393A34">```</span><br></div></code></pre></div></div>
<div class="browserWindow_my1Q"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">http://localhost:3000</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs"><div class="theme-tabs-container tabs-container tabList_Qoir"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_AQgk tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_AQgk">Yarn</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_AQgk">pnpm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_AQgk">Bun</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_pnkT"><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">npm</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">install</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#8250DF">npm</span><span class="token plain"> run build</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#8250DF">npm</span><span class="token plain"> run myCustomScript -- --some-arg</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_pnkT" hidden=""><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">yarn</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">install</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#8250DF">yarn</span><span class="token plain"> build</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#8250DF">yarn</span><span class="token plain"> myCustomScript --some-arg</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_pnkT" hidden=""><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#8250DF">pnpm</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">install</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#8250DF">pnpm</span><span class="token plain"> run build</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#8250DF">pnpm</span><span class="token plain"> run myCustomScript --some-arg</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_pnkT" hidden=""><div class="language-bash codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-bash codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">bun </span><span class="token function" style="color:#8250DF">install</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">bun run build</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">bun run myCustomScript --some-arg</span><br></div></code></pre></div></div></div></div></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="gtag-support-for-multiple-tracking-ids">Prise en charge de gtag pour plusieurs ID de suivi<a href="https://docusaurus.io/fr/blog/releases/2.4#gtag-support-for-multiple-tracking-ids" class="hash-link" aria-label="Lien direct vers Prise en charge de gtag pour plusieurs ID de suivi" title="Lien direct vers Prise en charge de gtag pour plusieurs ID de suivi" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8620" target="_blank" rel="noopener noreferrer" class="">#8620</a> nous avons ajouté le support du plugin <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-google-gtag">@docusaurus/plugin-google-gtag</a> pour déclarer plusieurs ID de suivi.</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">module</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">presets</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token string" style="color:#C6105F">'@docusaurus/preset-classic'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token literal-property property" style="color:#005CC5">gtag</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token literal-property property" style="color:#005CC5">trackingID</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#C6105F">'G-&lt;YOUR-NEW-GA4-ID&gt;'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#C6105F">'UA-&lt;YOUR-OLD-UA-ID&gt;'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Google met progressivement fin à Universal Analytics</div><div class="admonitionContent_Knsx"><p><strong><a href="https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/" target="_blank" rel="noopener noreferrer" class="">Google mettra fin à Universal Analytics</a></strong> le <strong>1ᵉʳ juillet 2023</strong>.</p><p>Les utilisateurs de Docusaurus devraient par conséquent migrer vers Google Analytics 4. Google <strong>ne permet pas de migrer vos données Universal Analytics existantes</strong> vers votre nouveau domaine Google Analytics 4.</p><p>Pour préserver la continuité de vos statistiques, nous vous recommandons temporairement de rapporter les événements à deux identifiants de suivi simultanément : l'ancien (<code>UA-*</code>) et le nouveau (<code>G-*</code>). Reportez-vous au <strong><a href="https://github.com/facebook/docusaurus/issues/7221" target="_blank" rel="noopener noreferrer" class="">problème dédié</a></strong> pour plus de détails.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="developer-experience">Expérience de développeur<a href="https://docusaurus.io/fr/blog/releases/2.4#developer-experience" class="hash-link" aria-label="Lien direct vers Expérience de développeur" title="Lien direct vers Expérience de développeur" translate="no">​</a></h3>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8736" target="_blank" rel="noopener noreferrer" class="">#8736</a>, nous avons amélioré la façon dont les messages d'erreur sont rendus et ajouté le support initial pour le rendu de la chaîne causale complète d'une erreur (voir <a href="https://h3manth.com/ES2022/#error-cause" target="_blank" rel="noopener noreferrer" class="">ES2022 Error Cause</a>).</p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Pour le voir en action, cliquez ici : <button class="button button--danger" type="button">Boom!</button></p></div></div>
<p>Dans <a href="https://github.com/facebook/docusaurus/pull/8735" target="_blank" rel="noopener noreferrer" class="">#8735</a>, nous avons également clarifié les messages d'erreur liés à la barre de navigation pour aider les utilisateurs à comprendre ce qu'ils ont fait de mal.</p>
<p><img decoding="async" loading="lazy" alt="Capture d&amp;#39;écran de message d&amp;#39;erreur de la barre de navigation de Docusaurus" src="https://docusaurus.io/fr/assets/images/navbar-error-15eefab8e8d77aa4d605939956987164.jpg" width="1676" height="1614" class="img_vXGZ"></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/2.4#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h3>
<p>Nous avons rendu possible la traduction de quelques nouveaux éléments :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8677" target="_blank" rel="noopener noreferrer" class="">#8677</a> introduit un nouveau <code>process.env.DOCUSAURUS_CURRENT_LOCALE</code> (expérimental) vous permettant de localiser votre fichier de configuration, y compris le titre du site, le slogan, la barre d'annonce, baseUrl...</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8616" target="_blank" rel="noopener noreferrer" class="">#8616</a> permet de traduire le texte alternatif de la barre de navigation et du logo du pied de page</li>
</ul>
<p>Nous avons ajouté la prise en charge de la traduction du thème par défaut pour plusieurs langues :</p>
<ul>
<li class="">🇭🇺 <a href="https://github.com/facebook/docusaurus/pull/8668" target="_blank" rel="noopener noreferrer" class="">#8668</a>: Hongrois</li>
<li class="">🇳🇴 <a href="https://github.com/facebook/docusaurus/pull/8631" target="_blank" rel="noopener noreferrer" class="">#8631</a>: Norvégien (Bokmål)</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Terminer les traductions du thème est un <a href="https://github.com/facebook/docusaurus/issues/3526" target="_blank" rel="noopener noreferrer" class="">effort en cours</a> et un moyen facile de contribuer à Docusaurus. Nous ajoutons régulièrement de nouvelles fonctionnalités de thème, pour lesquelles nous avons souvent <a href="https://github.com/facebook/docusaurus/issues/3526" target="_blank" rel="noopener noreferrer" class="">besoin de nouvelles traductions</a>.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/2.4#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8674" target="_blank" rel="noopener noreferrer" class="">#8674</a> : respect de la requête média <code>prefers-reduced-motion: reduce</code></li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8712" target="_blank" rel="noopener noreferrer" class="">#8712</a> : utilisation d'un élément de la barre de navigation de type <code>docSidebar</code> dans le modèle</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8801" target="_blank" rel="noopener noreferrer" class="">#8801</a> : permettre aux onglets enfants d'être faux</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8757" target="_blank" rel="noopener noreferrer" class="">#8757</a> : faire que la page de recherche réagisse aux changements externes de chaîne de recherche</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8803" target="_blank" rel="noopener noreferrer" class="">#8803</a> : correction de la position des boutons du bloc de code en DàG</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8615" target="_blank" rel="noopener noreferrer" class="">#8615</a> : correction de la bascule du mode couleur lorsque la barre de navigation sombre est utilisée</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8699" target="_blank" rel="noopener noreferrer" class="">#8699</a> : correction d'un bug de focalisation de l'onglet déroulant de la barre de navigation</li>
</ul>
<p>Consultez <strong><a class="" href="https://docusaurus.io/fr/changelog/2.4.0">l'entrée 2.4.0 du journal des modifications</a></strong> pour une liste exhaustive des changements.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 2.3]]></title>
            <link>https://docusaurus.io/fr/blog/releases/2.3</link>
            <guid>https://docusaurus.io/fr/blog/releases/2.3</guid>
            <pubDate>Fri, 27 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 2.3.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 2.3</strong>.</p>
<p>La mise à jour devrait être facile : comme expliqué dans notre <a class="" href="https://docusaurus.io/fr/community/release-process">documentation du processus de publication</a>, les versions mineures respectent <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">le versionnage sémantique</a>.</p>
<p><img decoding="async" loading="lazy" alt="Docusaurus 2.2 social card" src="https://docusaurus.io/fr/assets/images/social-card-7e038d19ea67c686e90e1f599f7256d0.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/2.3#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="google-tag-manager-plugin">Plugin Google Tag Manager<a href="https://docusaurus.io/fr/blog/releases/2.3#google-tag-manager-plugin" class="hash-link" aria-label="Lien direct vers Plugin Google Tag Manager" title="Lien direct vers Plugin Google Tag Manager" translate="no">​</a></h3>
<p>Google Tag Manager est un système de gestion des balises qui offre une grande flexibilité. Il permet aux équipes d'analyse et de marketing de charger facilement d'autres traceurs tiers et des balises d'analyse des incendies.</p>
<p>We now have a <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-google-tag-manager"><code>@docusaurus/plugin-google-tag-manager</code></a> package that you can use alongside or as an alternative to the existing <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-google-gtag">gtag.js plugin</a> (refer to <a href="https://support.google.com/tagmanager/answer/7582054" target="_blank" rel="noopener noreferrer" class="">this doc</a> to understand when to use which solution).</p>
<div class="theme-admonition theme-admonition-warning admonition_o5H7 alert alert--warning"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Google met progressivement fin à Universal Analytics</div><div class="admonitionContent_Knsx"><p><a href="https://blog.google/products/marketingplatform/analytics/prepare-for-future-with-google-analytics-4/" target="_blank" rel="noopener noreferrer" class="">Google will sunset its Universal Analytics</a> on <strong>July 1, 2023</strong>, and ask users to migrate to <strong>Google Analytics 4</strong>.</p><p>Therefore, we are also <strong>deprecating our existing <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-google-analytics"><code>@docusaurus/plugin-google-analytics</code></a></strong> package. Docusaurus users should create a new Google Analytics 4 property, and migrate to the <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-google-gtag">gtag.js plugin</a>, or the <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-google-tag-manager">Google Tag Manager plugin</a>. Refer to the <a href="https://github.com/facebook/docusaurus/issues/7221" target="_blank" rel="noopener noreferrer" class="">dedicated Docusaurus issue</a> for details and questions.</p></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="tabs-query-string-support">Prise en charge de la chaîne de requête pour les onglets<a href="https://docusaurus.io/fr/blog/releases/2.3#tabs-query-string-support" class="hash-link" aria-label="Lien direct vers Prise en charge de la chaîne de requête pour les onglets" title="Lien direct vers Prise en charge de la chaîne de requête pour les onglets" translate="no">​</a></h3>
<p>Il est maintenant possible de lier un onglet sélectionné à un paramètre de chaîne de requête. When a tab is selected, it will be stored in your browser URL as a <code>?qs-param=tab-value</code> search parameter.</p>
<p>Cette fonction permet de créer des liens profonds vers un onglet de documentation spécifique qui sera présélectionné au chargement de la page.</p>
<p>When used alongside the <code>groupId</code> prop, the query string tab value takes precedence over the <code>localStorage</code> value.</p>
<p>Make sure to check the <a class="" href="https://docusaurus.io/fr/docs/markdown-features/tabs#query-string">documentation</a> and the demo below to understand how it works:</p>
<!-- -->
<div class="language-tsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-tsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#116329">Tabs</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">groupId</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">current-os</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">queryString</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#116329">TabItem</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">value</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">android</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">label</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">Android</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">    Android</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#116329">TabItem</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#116329">TabItem</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">value</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">ios</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">label</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">iOS</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">    iOS</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#116329">TabItem</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#116329">Tabs</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<div class="browserWindow_my1Q"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">http://localhost:3000</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs"><div class="theme-tabs-container tabs-container tabList_Qoir"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_AQgk tabs__item--active">Android</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_AQgk">iOS</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_pnkT"><p>Android</p></div><div role="tabpanel" class="tabItem_pnkT" hidden=""><p>iOS</p></div></div></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="nested-admonitions">Admonitions imbriquées<a href="https://docusaurus.io/fr/blog/releases/2.3#nested-admonitions" class="hash-link" aria-label="Lien direct vers Admonitions imbriquées" title="Lien direct vers Admonitions imbriquées" translate="no">​</a></h3>
<p>Il est désormais possible d'imbriquer une admonition dans une autre en ajoutant des deux-points supplémentaires pour l'admonition extérieure/enveloppante&nbsp;:</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">::::tip[nested admonitions]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">You can now nest one admonition within another!</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">:::danger</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Use this sparingly when it makes sense.</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">:::</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">::::</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>des admonitions imbriquées</div><div class="admonitionContent_Knsx"><p>Vous pouvez désormais imbriquer une admonition dans une autre !</p><div class="theme-admonition theme-admonition-danger admonition_o5H7 alert alert--danger"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>danger</div><div class="admonitionContent_Knsx"><p>Utilisez ceci avec parcimonie quand cela a du sens.</p></div></div></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="blog-createfeeditems">Blog <code>createFeedItems</code><a href="https://docusaurus.io/fr/blog/releases/2.3#blog-createfeeditems" class="hash-link" aria-label="Lien direct vers blog-createfeeditems" title="Lien direct vers blog-createfeeditems" translate="no">​</a></h3>
<p>A new blog plugin option <a class="" href="https://docusaurus.io/fr/docs/api/plugins/@docusaurus/plugin-content-blog#CreateFeedItemsFn"><code>feedOptions.createFeedItems</code></a> gives you more control over the RSS/Atom feed generation. Il est maintenant possible de transformer/filtrer/limiter les éléments de flux grâce à un nouveau callback.</p>
<div class="language-tsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-tsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string" style="color:#C6105F">'@docusaurus/preset-classic'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    blog</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      feedOptions</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        </span><span class="token function-variable function" style="color:#8250DF">createFeedItems</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token keyword" style="color:#CF222E">async</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">params</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:#D73A49">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">blogPosts</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> defaultCreateFeedItems</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token spread operator" style="color:#D73A49">...</span><span class="token plain">rest</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> params</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token keyword" style="color:#CF222E">return</span><span class="token plain"> </span><span class="token function" style="color:#8250DF">defaultCreateFeedItems</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token comment" style="color:#6B6B6B;font-style:italic">// keep only the 10 most recent blog posts in the feed</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            blogPosts</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> blogPosts</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#8250DF">filter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">item</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> index</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:#D73A49">=&gt;</span><span class="token plain"> index </span><span class="token operator" style="color:#D73A49">&lt;</span><span class="token plain"> </span><span class="token number" style="color:#005CC5">10</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">            </span><span class="token spread operator" style="color:#D73A49">...</span><span class="token plain">rest</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/2.3#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h3>
<p>Nous avons ajouté ou terminé la prise en charge par défaut de la traduction du thème pour plusieurs langues&nbsp;:</p>
<ul>
<li class="">🇸🇮 <a href="https://github.com/facebook/docusaurus/pull/8541" target="_blank" rel="noopener noreferrer" class="">#8541</a> Slovenian</li>
<li class="">🇹🇷 <a href="https://github.com/facebook/docusaurus/pull/8289" target="_blank" rel="noopener noreferrer" class="">#8289</a> Turkish</li>
<li class="">🇮🇷 <a href="https://github.com/facebook/docusaurus/pull/8406" target="_blank" rel="noopener noreferrer" class="">#8406</a> Farsi</li>
<li class="">🇵🇱 <a href="https://github.com/facebook/docusaurus/pull/8525" target="_blank" rel="noopener noreferrer" class="">#8525</a> Polish</li>
<li class="">🇨🇳 <a href="https://github.com/facebook/docusaurus/pull/8423" target="_blank" rel="noopener noreferrer" class="">#8423</a> Chinese</li>
<li class="">🇸🇪 <a href="https://github.com/facebook/docusaurus/pull/8312" target="_blank" rel="noopener noreferrer" class="">#8312</a> Swedish</li>
<li class="">🇻🇳 <a href="https://github.com/facebook/docusaurus/pull/8450" target="_blank" rel="noopener noreferrer" class="">#8450</a> Vietnamese</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Terminer les traductions du thème est un <a href="https://github.com/facebook/docusaurus/issues/3526" target="_blank" rel="noopener noreferrer" class="">effort en cours</a> et un moyen facile de contribuer à Docusaurus. Nous ajoutons régulièrement de nouvelles fonctionnalités de thème, pour lesquelles nous avons souvent <a href="https://github.com/facebook/docusaurus/issues/3526" target="_blank" rel="noopener noreferrer" class="">besoin de nouvelles traductions</a>.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/2.3#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8463" target="_blank" rel="noopener noreferrer" class="">#8463</a> and <a href="https://github.com/facebook/docusaurus/pull/8328" target="_blank" rel="noopener noreferrer" class="">#8328</a>: fix some annoying Docusaurus layout issues</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8539" target="_blank" rel="noopener noreferrer" class="">#8539</a>: Algolia plugin <code>options.searchPagePath</code> should be correctly applied to search modal footer</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8462" target="_blank" rel="noopener noreferrer" class="">#8462</a>: Algolia plugin now makes it easier to transform displayed search results with custom logic</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8397" target="_blank" rel="noopener noreferrer" class="">#8397</a>: the <code>deploy</code> CLI now understands git url <code>insteadOf</code> config</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/2.3.0">2.3.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 2.2]]></title>
            <link>https://docusaurus.io/fr/blog/releases/2.2</link>
            <guid>https://docusaurus.io/fr/blog/releases/2.2</guid>
            <pubDate>Sat, 29 Oct 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 2.2.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 2.2</strong>.</p>
<p>La mise à jour devrait être facile : comme expliqué dans notre <a class="" href="https://docusaurus.io/fr/community/release-process">documentation du processus de publication</a>, les versions mineures respectent <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">le versionnage sémantique</a>.</p>
<p><img decoding="async" loading="lazy" alt="Docusaurus 2.2 social card" src="https://docusaurus.io/fr/assets/images/social-card-402517ac2205718a22585e627fe1351c.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/releases/2.2#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="mermaid-diagrams">Diagrammes Mermaid<a href="https://docusaurus.io/fr/blog/releases/2.2#mermaid-diagrams" class="hash-link" aria-label="Lien direct vers Diagrammes Mermaid" title="Lien direct vers Diagrammes Mermaid" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/7490" target="_blank" rel="noopener noreferrer" class="">#7490</a>, we added support for Mermaid diagrams. This fills the gap between GitHub Flavored Markdown which also <a href="https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/" target="_blank" rel="noopener noreferrer" class="">added support recently</a>. Vous pouvez créer des diagrammes Mermaid en utilisant des blocs de code Markdown&nbsp;:</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token code punctuation" style="color:#393A34">```</span><span class="token code code-language">mermaid</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code code-block language-mermaid">sequenceDiagram</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    participant Alice</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    participant Bob</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    Alice-&gt;&gt;John: Hello John, how are you?</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    loop Health check</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">        John-&gt;&gt;John: Fight against hypochondria</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    end</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    Note right of John: Rational thoughts &lt;br/&gt;prevail!</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    John--&gt;&gt;Alice: Great!</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    John-&gt;&gt;Bob: How about you?</span><br></div><div class="token-line" style="color:#393A34"><span class="token code code-block language-mermaid">    Bob--&gt;&gt;John: Jolly good!</span><span class="token code"></span><br></div><div class="token-line" style="color:#393A34"><span class="token code"></span><span class="token code punctuation" style="color:#393A34">```</span><br></div></code></pre></div></div>
<!-- -->
<div class="browserWindow_my1Q"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">http://localhost:3000</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs"></div></div>
<p>Make sure to check the <a class="" href="https://docusaurus.io/fr/docs/markdown-features/diagrams">documentation</a>, and the <a class="" href="https://docusaurus.io/fr/tests/pages/diagrams">more advanced examples</a></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="config-headtags">Config <code>headTags</code><a href="https://docusaurus.io/fr/blog/releases/2.2#config-headtags" class="hash-link" aria-label="Lien direct vers config-headtags" title="Lien direct vers config-headtags" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/8151" target="_blank" rel="noopener noreferrer" class="">#8151</a>, we added the ability to apply arbitrary HTML <code>&lt;head&gt;</code> tags to all pages of your site.</p>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">module</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">headTags</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">tagName</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'link'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">attributes</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token literal-property property" style="color:#005CC5">rel</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'icon'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token literal-property property" style="color:#005CC5">href</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'/img/docusaurus.png'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="accessibility">Accessibilité<a href="https://docusaurus.io/fr/blog/releases/2.2#accessibility" class="hash-link" aria-label="Lien direct vers Accessibilité" title="Lien direct vers Accessibilité" translate="no">​</a></h3>
<p>Nous avons fait plusieurs améliorations d'accessibilité&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8207" target="_blank" rel="noopener noreferrer" class="">#8207</a>: improves keyboard navigation for mobile drawer hamburger button</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8161" target="_blank" rel="noopener noreferrer" class="">#8161</a>: improves keyboard navigation for tabs</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8204" target="_blank" rel="noopener noreferrer" class="">#8204</a>: makes the skip to content button support progressive enhancement</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8174" target="_blank" rel="noopener noreferrer" class="">#8174</a>: improves screen reader announcement when toggling between light/dark mode</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="developer-experience">Expérience de développeur<a href="https://docusaurus.io/fr/blog/releases/2.2#developer-experience" class="hash-link" aria-label="Lien direct vers Expérience de développeur" title="Lien direct vers Expérience de développeur" translate="no">​</a></h3>
<p>Nous avons rendu la validation plus stricte et amélioré les messages d'erreur&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8234" target="_blank" rel="noopener noreferrer" class="">#8234</a>: in case of doc processing failure, prints the problematic markdown file path in the error message</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8192" target="_blank" rel="noopener noreferrer" class="">#8192</a> and <a href="https://github.com/facebook/docusaurus/pull/8159" target="_blank" rel="noopener noreferrer" class="">#8159</a>: validates <code>siteConfig.url</code> more strictly and with better error message</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8066" target="_blank" rel="noopener noreferrer" class="">#8066</a>: makes config <code>url</code> and <code>baseUrl</code> fail-safe and less sensitive to the presence or absence of a leading or trailing slash</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="translations">Traductions<a href="https://docusaurus.io/fr/blog/releases/2.2#translations" class="hash-link" aria-label="Lien direct vers Traductions" title="Lien direct vers Traductions" translate="no">​</a></h3>
<p>Nous avons ajouté la prise en charge de la traduction du thème par défaut pour plusieurs langues :</p>
<ul>
<li class="">🇹🇷 <a href="https://github.com/facebook/docusaurus/pull/8105" target="_blank" rel="noopener noreferrer" class="">#8105</a>: completes Turkish translations</li>
<li class="">🇷🇺 <a href="https://github.com/facebook/docusaurus/pull/8253" target="_blank" rel="noopener noreferrer" class="">#8253</a>: completes Russian translations</li>
<li class="">🇫🇷 <a href="https://github.com/facebook/docusaurus/pull/8243" target="_blank" rel="noopener noreferrer" class="">#8243</a>: completes French translations</li>
<li class="">🇯🇵 <a href="https://github.com/facebook/docusaurus/pull/8075" target="_blank" rel="noopener noreferrer" class="">#8075</a>: completes Japanese translations</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Terminer les traductions du thème est un <a href="https://github.com/facebook/docusaurus/issues/3526" target="_blank" rel="noopener noreferrer" class="">effort en cours</a> et un moyen facile de contribuer à Docusaurus. Nous ajoutons régulièrement de nouvelles fonctionnalités de thème, pour lesquelles nous avons souvent <a href="https://github.com/facebook/docusaurus/issues/3526" target="_blank" rel="noopener noreferrer" class="">besoin de nouvelles traductions</a>.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/releases/2.2#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Voici les autres changements notables :</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8210" target="_blank" rel="noopener noreferrer" class="">#8210</a>: the <code>docusaurus swizzle</code> CLI has a new <code>--config</code> option</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8109" target="_blank" rel="noopener noreferrer" class="">#8109</a>: mobile navigation performance optimizations, prefetch resources earlier</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8059" target="_blank" rel="noopener noreferrer" class="">#8059</a>: versions/locales navbar dropdowns preserve hash and querystring on navigation</li>
<li class=""><a href="https://github.com/facebook/docusaurus/pull/8227" target="_blank" rel="noopener noreferrer" class="">#8227</a>: the client redirect plugin preserves hash and querystring on redirect</li>
</ul>
<p>Check the <strong><a class="" href="https://docusaurus.io/fr/changelog/2.2.0">2.2.0 changelog entry</a></strong> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Docusaurus 2.1]]></title>
            <link>https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1</link>
            <guid>https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1</guid>
            <pubDate>Thu, 01 Sep 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[We are happy to announce Docusaurus 2.1, our very first minor version release.]]></description>
            <content:encoded><![CDATA[<p>We are happy to announce <strong>Docusaurus 2.1</strong>, our very first minor version release.</p>
<p>La mise à jour devrait être facile : comme expliqué dans notre <a class="" href="https://docusaurus.io/fr/community/release-process">documentation du processus de publication</a>, les versions mineures respectent <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">le versionnage sémantique</a>.</p>
<p><img decoding="async" loading="lazy" alt="Docusaurus 2.1 social card" src="https://docusaurus.io/fr/assets/images/social-card-8dc2413b4f9e86328bf77575e91171d7.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="doccardlist-improvements">Améliorations de DocCardList<a href="https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1#doccardlist-improvements" class="hash-link" aria-label="Lien direct vers Améliorations de DocCardList" title="Lien direct vers Améliorations de DocCardList" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/8008" target="_blank" rel="noopener noreferrer" class="">#8008</a>, we simplified the usage of the<code>&lt;DocCardList&gt;</code> component, that is notably used on sidebar category generated index pages.</p>
<p>The <code>items</code> prop is now optional, and will be automatically inferred from the content of the parent sidebar category:</p>
<div class="language-diff codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-diff codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token plain">import DocCardList from '@theme/DocCardList';</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49"> import {useCurrentSidebarCategory} from '@docusaurus/theme-common';</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token deleted-sign deleted prefix deleted" style="color:#d73a49">-</span><span class="token deleted-sign deleted line" style="color:#d73a49"> &lt;DocCardList items={useCurrentSidebarCategory().items}/&gt;</span><br></div><div class="token-line" style="color:#393A34"><span class="token deleted-sign deleted line" style="color:#d73a49"></span><span class="token inserted-sign inserted prefix inserted" style="color:#36acaa">+</span><span class="token inserted-sign inserted line" style="color:#36acaa"> &lt;DocCardList/&gt;</span><br></div></code></pre></div></div>
<p>De plus, nous avons fait en sorte qu'il soit possible de l'utiliser sur n'importe quel document, y compris les documents ordinaires non liés à une catégorie de la barre latérale.</p>
<p><img decoding="async" loading="lazy" alt="simplified DocCardList component" src="https://docusaurus.io/fr/assets/images/doc-card-list-e52d727eadceb3d21cfc0f851f09aa93.png" width="1062" height="489" class="img_vXGZ"></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="noindex-improvements"><code>noindex</code> improvements<a href="https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1#noindex-improvements" class="hash-link" aria-label="Lien direct vers noindex-improvements" title="Lien direct vers noindex-improvements" translate="no">​</a></h3>
<p>We improved the support of the <a href="https://developers.google.com/search/docs/advanced/crawling/block-indexing" target="_blank" rel="noopener noreferrer" class=""><code>noindex</code> meta <code>robots</code> directive</a>, a way to signal search engines you don't want a specific page to be indexed.</p>
<p>In <a href="https://github.com/facebook/docusaurus/pull/7963" target="_blank" rel="noopener noreferrer" class="">#7963</a>, we allow <code>noindex</code> to be configured on a per-docs-version basis.</p>
<p>Use the following plugin options to tell crawlers you don't want the <code>1.0.0</code> version to be indexed:</p>
<div class="language-jsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-jsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> options </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">versions</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string-property property" style="color:#005CC5">'1.0.0'</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">noIndex</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token boolean" style="color:#005CC5">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>En pratique, Docusaurus ajoutera la méta suivante à chaque page de cette version&nbsp;:</p>
<div class="language-html codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-html codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">meta</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">name</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">robots</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">content</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">noindex, nofollow</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><br></div></code></pre></div></div>
<p>In <a href="https://github.com/facebook/docusaurus/pull/7964" target="_blank" rel="noopener noreferrer" class="">#7964</a>, we also fixed a bug where the sitemap plugin would still contain pages that have a <code>noindex</code> directive. Now the sitemap plugin will reliably filter out all the pages containing <code>noindex</code> directives.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="overriding-default-meta-tags">Remplacement des balises méta par défaut<a href="https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1#overriding-default-meta-tags" class="hash-link" aria-label="Lien direct vers Remplacement des balises méta par défaut" title="Lien direct vers Remplacement des balises méta par défaut" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/7952" target="_blank" rel="noopener noreferrer" class="">#7952</a>, it becomes possible to override default html meta tags you couldn't before:</p>
<div class="language-jsx codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-jsx codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">siteConfig</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">noIndex</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">&amp;&amp;</span><span class="token plain"> </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">meta</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">name</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">robots</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">content</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">nofollow, noindex</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">meta</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">name</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">viewport</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag attr-name" style="color:#0550AE">content</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#C6105F">width=device-width, initial-scale=1.0</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#22863A"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<p>It is now possible to use <code>&lt;Head&gt;</code> or <code>themeConfig.metadata</code>:</p>
<ul>
<li class="">to override the <code>viewport</code> meta</li>
<li class="">to override the <code>robots</code> meta: you could mark your site as <code>noIndex</code>, but except for specific pages that should be indexed</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="ukrainian-translations">Traductions ukrainiennes<a href="https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1#ukrainian-translations" class="hash-link" aria-label="Lien direct vers Traductions ukrainiennes" title="Lien direct vers Traductions ukrainiennes" translate="no">​</a></h3>
<p>In <a href="https://github.com/facebook/docusaurus/pull/7953" target="_blank" rel="noopener noreferrer" class="">#7953</a>, we added default classic theme translations for the Ukrainian language.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-changes">Autres modifications<a href="https://docusaurus.io/fr/blog/2022/09/01/docusaurus-2.1#other-changes" class="hash-link" aria-label="Lien direct vers Autres modifications" title="Lien direct vers Autres modifications" translate="no">​</a></h2>
<p>Check the <a class="" href="https://docusaurus.io/fr/changelog/2.1.0">2.1.0 changelog entry</a> for an exhaustive list of changes.</p>]]></content:encoded>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Annonce de Docusaurus 2.0]]></title>
            <link>https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0</link>
            <guid>https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0</guid>
            <pubDate>Mon, 01 Aug 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Today we are extremely happy to finally announce Docusaurus 2.0! 🥳️]]></description>
            <content:encoded><![CDATA[<p>Today we are extremely happy to finally <strong>announce Docusaurus 2.0</strong>! 🥳️</p>
<p>Chez <a href="https://opensource.fb.com/" target="_blank" rel="noopener noreferrer" class=""><strong>Meta Open Source</strong></a>, nous pensons que Docusaurus vous aidera à construire les <strong>meilleurs sites web de documentation</strong> avec <strong>un minimum d'effort</strong>, vous permettant de <strong>vous concentrer sur ce qui compte vraiment</strong>&nbsp;: l'écriture du contenu.</p>
<p>After <strong>4 years of work, <a href="https://github.com/facebook/docusaurus/releases/tag/v2.0.0-alpha.75" target="_blank" rel="noopener noreferrer" class="">75 alphas</a> and <a href="https://github.com/facebook/docusaurus/releases/tag/v2.0.0-beta.22" target="_blank" rel="noopener noreferrer" class="">22 betas</a></strong>, the next generation of Docusaurus is <strong>ready for prime time</strong>. From now on, we now plan to <strong>respect <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a></strong> and will release <strong>major versions more frequently</strong>.</p>
<p><img decoding="async" loading="lazy" alt="social-card image" src="https://docusaurus.io/fr/assets/images/social-card-736cfe55fc7bba07204176852d67c0d5.png" width="1200" height="600" class="img_vXGZ"></p>
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>We are on <a href="https://www.producthunt.com/posts/docusaurus-2-0" target="_blank" rel="noopener noreferrer" class="">ProductHunt</a> and <a href="https://news.ycombinator.com/item?id=32303052" target="_blank" rel="noopener noreferrer" class="">Hacker News</a>!</div><div class="admonitionContent_Knsx"><p><strong>Now</strong> is the best time to show your love for Docusaurus!</p><div style="display:flex"><a href="https://www.producthunt.com/posts/docusaurus-2-0?utm_source=badge-featured&amp;utm_medium=badge&amp;utm_souce=badge-docusaurus-2-0" target="_blank" rel="noopener noreferrer" class="producthunt-badge-widget" style="display:block;width:250px;height:54px"><img class="producthunt-badge-widget" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=353916&amp;theme=light" alt="Docusaurus 2.0 - Build optimized websites quickly, focus on your content. | Product Hunt" style="width:250px;height:54px;max-width:initial" width="250" height="54"></a><a href="https://news.ycombinator.com/item?id=32303052" target="_blank" rel="noopener noreferrer" style="display:block;width:54px;height:54px"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="54" height="54"><path fill="#FF6D00" d="M42 42H6V6h36v36z"></path><path fill="#FFF" d="M8 8v32h32V8H8zm30 30H10V10h28v28z"></path><path fill="#FFF" d="M23 32h2v-6l5.5-10h-2.1L24 24.1 19.6 16h-2.1L23 26z"></path></svg></a></div></div></div>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Pas beaucoup de temps&nbsp;? Check <a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#whats-new-in-20" class="">what's new in Docusaurus 2.0</a>!</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="what-is-docusaurus-exactly">Qu'est-ce que Docusaurus exactement&nbsp;? <a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#what-is-docusaurus-exactly" class="hash-link" aria-label="Lien direct vers Qu'est-ce que Docusaurus exactement&nbsp;? " title="Lien direct vers Qu'est-ce que Docusaurus exactement&nbsp;? " translate="no">​</a></h2>
<p>Docusaurus is a <strong>static site generator</strong> that helps you ship <strong>beautiful documentation websites</strong> in <strong>no time</strong>.</p>
<p>Focus on your content: just write <strong>Markdown files</strong>. Docusaurus will generate an optimized <strong>website</strong> for you that's easy to <strong>host anywhere</strong>.</p>
<p>Docusaurus is <strong>full-featured</strong> and very <strong>flexible</strong>: we ship with well-designed docs and blog layout, as well as out-of-the-box versioning, search, and internationalization functionalities, with a call to accessibility and search engine optimizations. Its flexible theming system permits to <strong>adapt the UI to match your branding</strong> so that it integrates nicely with your main website or documentation portal. Its usage of <strong>React</strong> enables a <strong>modern client-side navigation</strong>, and the ability to build an <strong>interactive documentation</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Introducing Slash" src="https://docusaurus.io/fr/assets/images/slash-introducing-411a16dd05086935b8e9ddae38ae9b45.svg" width="760" height="160" class="img_vXGZ"></p>
<p>The Docusaurus philosophy is akin to the <strong>Pareto principle</strong>: you can get <strong>80% of the results</strong> for <strong>20% of the effort</strong>. This enables you to compete with top-notch documentation sites with <strong>minimal effort</strong>.</p>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/rachelnabors/status/1452697991039660038" target="_blank" rel="noopener noreferrer"><p>Unless you're spinning up a documentation team with engineering resources, you
probably want Docusaurus!</p></a></blockquote><figcaption><a href="https://x.com/rachelnabors" target="_blank" rel="nofollow"><div class="avatar"><img alt="Rachel Nabors" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/rachelnabors"><div class="avatar__intro"><strong class="avatar__name"><cite>Rachel Nabors</cite></strong><small class="avatar__subtitle" itemprop="description">Former ReactJS &amp; React-Native docs manager</small></div></div></a></figcaption></figure>
<p>Docusaurus aims to be the <strong>best documentation tool</strong>, but you can use it for <strong>other use-cases</strong> as well: a blog, a knowledge base, a developer portfolio, a second brain, or even to scaffold landing pages!</p>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/johnny_reilly/status/1551861926334025728" target="_blank" rel="noopener noreferrer"><p>Using Docusaurus for my tech blog has been a fantastic choice. It looks
tremendous out-of-the-box and the awesome DX means I write way more</p></a></blockquote><figcaption><a href="https://x.com/johnny_reilly" target="_blank" rel="nofollow"><div class="avatar"><img alt="Johnny Reilly" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/johnny_reilly"><div class="avatar__intro"><strong class="avatar__name"><cite>Johnny Reilly</cite></strong><small class="avatar__subtitle" itemprop="description">Group Principal Engineer at Investec</small></div></div></a></figcaption></figure>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Try Docusaurus now with our <a class="" href="https://docusaurus.io/fr/docs/playground">online playgrounds</a> and <a href="https://tutorial.docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">5 minutes tutorial</a> ⏱️</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="the-story-behind-docusaurus">L'histoire de Docusaurus<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#the-story-behind-docusaurus" class="hash-link" aria-label="Lien direct vers L'histoire de Docusaurus" title="Lien direct vers L'histoire de Docusaurus" translate="no">​</a></h2>
<p>Docusaurus was created at <strong>Facebook Open Source</strong> in <strong>2017</strong> (now <a href="https://opensource.fb.com/" target="_blank" rel="noopener noreferrer" class="">Meta Open Source</a>). Nous avions beaucoup de projets internes et open source à documenter. It's <strong>complicated enough to write good documentation</strong>, let alone to create the HTML, CSS, and JavaScript for a good-looking website. We wanted project leaders to be able to <strong>focus on the content</strong>, and <strong>Markdown</strong> is great for that.</p>
<p>At that time, our solution was to <strong>copy/paste a Jekyll template</strong> over and over again. This naturally became <strong>hard to maintain</strong>, so we created a tool to <strong>solve our own pain</strong> once for all.</p>
<p><strong><a class="" href="https://docusaurus.io/fr/blog/2017/12-14-introducing-docusaurus.mdx">Docusaurus v1 was born</a>!</strong></p>
<p><img decoding="async" loading="lazy" alt="Birth of Slash" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvgAAACgCAIAAAD2Ao8HAAAbm0lEQVR42u3dCVhV553HcbtMp31m2uk807TTaTvtzDx52sk002xNpjZeRBY3UMANRRQXQBQXFFEWAREBt2B2Y6IhNXFp0hhj1GhMYtQY9Rwu62WVXS67F3BFWeZ/uYYgIAIiXO798nwen8v1Luec9z3v++M97zln2Nb6OgAAAIs0jE0AAAAIOgAAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAAAQdAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAgg4AAABBBwAAgKADAABA0AEAACDoAAAAEHQAAABBBwAAgKADAABA0AEAACDoAEAXNhrKwiq0q/Vn5N/NtZVsEAAEHQBD25baquCyr+blveWUFqxRZ7cZqc6Zlrk5sjKNTQSAoANgKImvr42oTF1Q+NdJuuiRiXPb55sObFQvv8L32GIACDoAzN366rylJYfcs+Ltkvy6CTedkXUAEHQAmOm0m8DSE7NzXxubsrxX4abDuE5kZTobEwBBB4AZTLupqw4tP++dt2tCelhvM83/bLV7cu+Ezs+7Z25hwwIg6AAYNJFVuoVFf5ucEWubOL9vIzfPnvUcNmzYPz7yL10N6szdZChjIwMg6AAYODE1BQEXP56R/byDdmGfj0y197v1mv99bXSX/7VS/wUbHABBB0C/8S860DlebDSUBelPeeW+Pi41sM+B5vcv2f/gNz96/K3xPX/L7NztlAgAgg6A+xKk/2JpyWF5EFJ2zpQwJO48V3cprCLRJ3+3S3q4jep1/yM3v103Yth3vnW3wZsujU1ZQekAIOgA6LWIylRJM1vqquMMJaYcMzv3tbl5O9tChm2id78cmeowI6fnL16QGRVYfCC+vpbCAkDQAXBvEhqeqzeYHo9OXiZhYnJGzNKSw+1P6u73cNNbvplr95YfKW+obmlp+ez6NUoNAEEHQI9SzrjUQPukhf5FByKrdO1Pbhr0cCO8MyN2lx8qa6hqafeTe/MmBQeAoAPg3uIMJQ/0sFTfzM8If6fsI31DZUtXPzeam/0/OvhcrYHiA0DQAdBt0LlUYibhRszLCN9VdvDijYqWbn/S09N/9+c/b67iruYACDoA7pJvXNLDRycvG528ZNDzzZyMsL+UfVhyo7zLWKPVanNzc9s/Ex0dHffeuxQiAIIOgK61nTE+mPlGF/aW/kDxjbJuBm8CAwPd3d3t7e23bt3a9qSdnV1qRQWFCICgA+Cuc5AnpIUOSr6ZrQtJ0H9QdF3fcq+f+vr6Z599Vh40NjZ6enrGxsbK4+vXrw8fPryxufklyhEAQQfA3QSUHOs+kYw45/nIZtv/Cnxa/PED1/vMN7N0wW/q9xdeL+0y0xgMBkdHx6eeemrevHkSZUxP7tmzJyYmxvS4qanJx8dnxowZzs7O27Ztk2f2X71KIQIg6ADoaEtdtdeFHd1fHefRlxy+/8sfDmv385DDb/582qNvU4yTL2d1P3gTFBS0Y8cOefD222+PGDGivLy8ubl53LhxOTk57V+mqqpWqzU9Tmy4QVECIOgA6GhR4f7uo8ljCeO+/f3vSLj50WM//fWCx/7N/b+/++O/l19//MzP+zCQc7Xpevuwkpyc7OnpOWfOnPz8/Nuni9+48cQTTzQ1NZl+PXPmzJNPPvnUU08FBAR0k42qGhspSgAEHQAdravOHpMS0E06+afHfyax5ldzH2175umPJn3vJz+QJx992aFXQefL2qQ70klV1R/+8IeTJ09+/vnnTz/9dEJCgqScqKiotkNUbQeqrl692v0g0JXGa1EViZsM5RQoAIIOgI5Hr3wL9nYZTZ75eIoEmu/+6HsdbkH1cNhwef4/ljzZ85Rjk+jV0HyzfTpZvnz5u+++a3p87dq1wMBAyT1+fn4Sd+45N/la042Uy9n7Kj5el7/NI32VfLh8xYrSzyhNAAQdAHeIr6/1yH6xy3Tyxw9cJdD8w8P/3Pm/Ht/lNOKcZ69GdG40NbQllTfeeMPW1ralxz/y3vQrue9VHFtfsH2WLnhk4pzOn++Z+wqlCYCgA+AOdxvOEcNPTP/W3337h7//Sb+cTK7UpZtSy82bN+Pi4mpqarpJNg3NN3VXLuyvPB5b+IaXLtS2q2TTwejkZZQmAIIOgDssKNjXTXp4Yo/zM4cm99ddxzscvWr/c7P5VtbVggNVn20o3Dk3Y82oxN7dSXRSimdMwYydtccpUAAEHQB3iKzS+eTvHoArBC7Mis6+WmBKNo3NjTnXig5Wndhc9Ob8jIhRifN6+2ljtLOCc2e8VzG18LpbS4uLOHN5FaUJgKAD4A6bDOUu6eEDdkFkt9RlU1KX22vn9+G9tursRVkeO0vd0y5PutXsYso3bSoaplGaAAg6AO4wN2+n+dy3vEue6TOfL57+pWHK1caO4aaDnZdzQqvO+Vx8K77+EiULgKADoC6w9MQora+5hRuX5Fnr8qcfqZ5a1eDafbhp75UK3zHZC+yzvOYVv7as7CCFC4CgA6Auvu7SspKjgx5uHLWzVubM2Fc+Le/apJ6Hm/ZO1k+RlGPilLOUkgVA0AFQt746zzF5yWDlm6mps7ZfdE+qn3yzybVv+aZNfaOrw9dBZ3S298zCLRQuAIIOYO1m524flIgzIdnzWM2U5maX+8w37S0qnNk2qDMtfz2FC4CgA1i7yMo0N906G3XuQKacGWkzKxpc+zHi3J6PXOneFnRmFG6kcAEQdAAYBelPDVjKGaOdVXrDreP54bfc9tS4NzTfO/1UVY3dt++P8+f/2t39Fx3+K/nqZFPKcciay4gOAIIOAKM1FUm2ib27tk2kOuOEMmV071POaHVWZaprS4Mxl9TcdDtaMyUk32NJwUyv/FkSUF6qmH6odlrncHP9uvMnnwxftephR8eHpk37xfbtjxUUOHR+2c1m1w9Tpi3WzXS5sJpiBUDQAaxcremB14UdvQor49VZlxS3FsWlSHHzVGf26r371anyxvpE18C0GfLryJTZbQebbg/GZHvVNhrHdZqbJ2q1IzdseMTZ+V+dnH4WF/eIqo6UJ7sb77np0qi6XkmcEl28nfIFQNABrNrpwncSqnPkwQbDxfl5uyakhfYwrBxSjGHF5KriGq7O6OEbfRSPpq/fWKW4zkz07JByxLis2XNPu0zz+JWDw0NBQQ8fOzb8+nXnuyWb2trxdzxTcvvDryR57azJbb+yr18qosQBgg4AK1KZurg0fWXbuI5/0YemODJd9ewmrCxVPdpSTps9yrSR6qx73sMhV5nU/l01itvcjFmds874dM+SqnHfxJeGO08jrx9/4MAzixf/p739Q76+v/nmvxpdWrTffHhtsndbuNlmKNWnB1LiAEEHgLXYUZNnCgRfFO6TX1eUfmaKI7Hq9Fuqy4uKe5dhxV6dXdJ60KqzRHXyhG4T0jbFvfO7DKqrd0bHcZ2AYs9bLV/PSja4tCS6NFZMOH16RETEb8eO/amr68+ff/7RjAy7jgM8+o4fXp2y6FVDqaxdcu6L8uubrcNXAAg6ACzfiaJ3TWngljo1oTrbt2CvZJG/KNNMTzYrLlFdHZB6W53WZcoxqVDcfO8yZWea6nlDce3yXXWq2wLdHVnHNXf29dbTr/LTHG6dm2hansMJf5Ksc+vWhK4PYzW5tCR38eFl6Sv2VGibWsOZrDLlDhB0AFiFYl1wWxrQpwe+WFuRnL6qfUS4pbqsUD3ahxUvdeatu6cck5uK6yZleuegc16d3M27Lquui3S3r/XnnD17x95nvLz+3WPKr+pPOd3xSn0Xp5ofOvR/xscVd/3wxq+/ukgXQrkDBB0Alu9Vg77pziNQV5K8OkeEa4qrz9cjNDbq7Iw7Z9h047Ayxb5dylmnTr/nW64orssT3e33jh5/yHnnm4+XFo9pSe/qlSXGU82PHRseFPSwg8ND7u6/SEh4whh0Uu+9VI3qpFcMZZQ+QNABYOEOlR7rYWQxqK4zWrPOCz0IK+1lq5Omtk5PdlI95UN68pZG+fdy61BNs0tL9l1fdnT7nzZseCQxsd2p5jU9XSpZcUofIOgAsHBJF17ueWQpU9z8VI9rimuvgo5x8o3iukL1OKJO7cW7tC4t9S4tBfd6WV5rGGo7hpXe089Pzn2R0gcIOgAsXFn6il5FlqZeRpz7eWNzD1+ZY8w6dXXjv/pY0/MPL09bRukDBB0AluzFuupGdVJLX7OL+Uh7b5TH9F+Wfjam52+RFZfVpw4ABB0AFmtfhWoBKee21F6/RVafOgAQdABYrJOF+ywn6PSe6QKJAAg6ACxTTma0NQed7KxY6gBA0AFgsS6lLLDmoGNI8aUOAAQdAJaqtrHbixRbvEZ10vP1BmoCQNABYIF21ORbc8ox2VGTR00ACDoALNB75WcJOrIRqAkAQQeABfqk5CBBRzYCNQEg6ACwQOfzdhB0zuXtoCYABB0AFigrK46gk5W9gZoAEHQAWKDCjDUEnSJdKDUBIOgAsECl6YEEHX16IDUBIOgAsECVqYsJOlWp/tQEgKADwAIZUnwJOrXJPtQEgKADwHzF11VtMZRuMRRtupS3sTozrjotrkobU3F+fcWZ9eUn1umPR+mPRJZ+GFHyfnjJvjXFb68pTAgtfD2k4NV6dSpB53LiNNkask1ky8j2ka0k20q2mGw32XqyDWVLyvaUrSrbVrawbGfZ2rLNqXgAQQfAXaJJ/SXpLKXX3FCti61U11eclm51belHkSV/Cy/ebQwiBa8F57+4Om9zUG5MYE7EiqzggMzlS3X+S3Te/mmzF6a6+yW7+SaN90m0n69q+uyGMpGgIxuhzxtQtr+UgpSFlIiUi5SOlJGUlJSXlJqUnZSglKOUppSplKyUr5SyMUJVnJZyl9JvTU6lUh/YKQCCDmBuYaV2i0G/qebChurUmMqz0WWfRpZ+GF6yL6wwIaRg26q8+NaMEr48c+XSjMVL0uf7p870S5ks/aJ3ot39pJN+1GT1KUfIRjCHspBaYcxMKZOlnkhtkTojNUfqj9QiqUtSo6ReSe2SOiY1Teqb1Dqpe1IDpR6yMwIEHaBHB4A2XSqMq05bX3EmSn8s8uIH4cXvhBZuX533vHQ2K7LDAjIDluh8jHkl2c1HO8ZMwsp9jeiojOi4yEYY6uUotVHqpDEh6XyklkpdbR1Mel5qr9RhqclSn6VWS92WGs5BNxB02AqwsEGX0o3VWbGVanTZibWlH4UX75HWX/5EDsyNMo616PwWpXr6Jbve5zGgIapenUDQkY1gbeUutV3qvNR8qf/GcaPcKNkjWlPRHtlHZE+R/UX2mtZjagwXgaADDJLnjAMwebGVWmmXIy8eWFO0Kzj/ZflDdnnW6tb44rFA6+St2lhhfOm5aoKO4lJtfUGnFwfUVBvZj2RvMkairNWyf8leJvua7HGteUgr++BzDBGBoAP0nmGzoTCuKnld2ecRF/eHFe1cnfdcYE5EQGbA4vR5C1Om+Ggd6YTun151JujIRqAm3PexM0fZK2XflD1U9lPZW2WflT1X9l/Zi2Vflj2aZg0EHViXLYaSDdWp0eVfGAdjChOC87dK+7g0Y+mitFkLkpwZiRkYhQQdxaWQoDMwI0NJzrJ3yz4ue7rs77LXG4eFyr+QdkBaA5pEEHQwFKNMaVx1WnTZiYiS90MLtwflxi3PXCl/8y1IdvFWbWn6zUGmOp6gIxuBmmAGSchWWgZpH6SVkLZCWgxpN6T1kDZEWhKaUxB0MFinKdVsrMmJqTwbVXoorGjX6vz4FdnhS3ULF6a6W+fc3iHnS3UcQUc2AjXB7GdPO0irIm2LtDDSzkhrI22OtDzS/kgrRFMMgg7u12ZDSWylNkp/dE3R26vy4ldkhSxJn++XNJH2d6j7UBlN0JGNQE0Y0qQtkhZJ2iVpnaSNkpZK2qvNHA4DQQedhmeqN1ZnRpefiih5P6Rg28qcdcYZM6nTGZuxYG+qDgQd2QjUBEs9i15aMGnHpDWTNs14LKz8lLRy0tbR4BN0YOE2XcqPqfgq4uL+kIJXV+ZELtX5+SW70Sxaoc2qHUFHNgI1weoGgZLdpN2T1k/aQGkJpT2UVpGugaCDoTgdWB9XpY3SHwkrTAi6sGFZZoD8fWM+9x/AoAtWRxJ0ZCNQE2C6C4e0kNJOSmspbaa0nNJ+SitKV0LQgbmc4hRbqay9eED+QAnMCV+cPt83iSmWuOepLprr1n1fT1l9b2oCuiVtqbSo0q5K6yptrLS0nAhG0MEDviJwbbn8nbG29KPQwu2BOZFLdD4LtE40RuAMc84tx4CRVlfaXmmBpR2W1ljaZGmZ6Z4IOuj9BOH62o01OdFln64pTDDODtb5LeBcJ/SrI6pVn3glq08dQL+ln6SJrVN/1kmLLe228ex3bhZG0EGHy9LEVaet1R8OLXgtMHvN4jQvznjCg/aKam/NQUdWnzqAB3rml7Tk0p5Lqy5tu7TwXPiHoGNVR6AqYiuViIv7V+e9sDxz5aJU9/lMisSAW2nd85FXstNhoI2U1l7afGn5pf2XXkD6AjpEgo5lMGyozpBEH1Lw6vKsVQuNsYYdHmahXLHSO17JilP6MAfSI0i/YJzsrD8sPQX3QCXoDJXToIrWl58IK3prZe5a//S5HISC2TpqrdN0jjJBB+Z6wEt6Dek7pAeRfkR6E7pUgo6ZDNikth6H2rwsw983idOgMGRsUEdZZ9DZwKUCMWROcXeSnkX6F+llpK9hyIegM0A3TIitTAwv+WtQbuyS9PkM2GBIX03nsvVdTecyV9DBUB7ykX5Heh/pg6Qn4qYWBJ1+mzscU3EuvPidwNwo/7TZ3qotOxsshhXexpyblsOC/laxlV5J+ibpoaSfYnYzQafnYzaXjGM2xXsCcyIXpXp4qzbsTrBUG63v6JWsMuUOC809NtJnSc8l/VfreM8lOnSCzjc21uSsLT24Km/LEp2PN0ejYE1Krencq1LOt4L15J5Ee+nRpF+T3k36OIKO1QWdLYbS6LIToQWvBWStYAYxrNk7ioP1BB1ZWUocVjuvWfo76fWk77POm3YNs5Zhm4sHgnJjFqV6UOkBE3/V5oZ1TEmW1fTnSDTQSvpB6Q2lT7SewR7LDDrx9bVxVclrinevyA7zS3alZgNdOq6OsYagI6tJWQOdSf8ovaT0ldJjWvBduoZZ0FTiqvUVZ0ILXw/IDPDVjqUGA/cUoI60+EEdWcEAbvsA3PMIl3as9J7Sh0pPKv0pQceMzpOKqTwbUrBtqW6hdyKnVAC9dtDSB3UOMpwD9Ho68yjpVaVvlR7WAs7hGjY0D0tpwwoTJHv6aLmgO3C/M3Us+OKBl5mdA9wf6Welt5U+V3reIXp4a8gEnQ3VuvDi3cuzVvsmjafmAf1ot+JoqUFHVo3yBfrvBK7x0gtLXyw9MkGnv04F10fpj6zMWceEYuABDlOrmhzVyfJSjqwU93wAHtxEZumdpY+Wnpqg02txVSmhRTuM02646wIwIEJU2wbLSjmyOiE0IMBA/KVkK/219NrSdxN0ur+xVHmU/uOVOdEM3gCDYq9qUQewZHUoU2AwhnmipTeXPp2g882l/MKKdi3VLWLwBhj0A1hpynjLSDmpyngOWgGDPczjL/27OVyWcHCCTlx1Wkjhdv+0OdQGwHwsVm306pC/AZaswmLOtALM59TOtDnS40u/bxVBJ7ZSCc57YVGqOwUPmKdg1fbKUD7bXBY+mOFhwCxJ7y8ZQJKApQWd+Pra9RWngy5sZPINMCRsVkfdGpopRxZbFp4SBMx/Ko+kAskGA3NhnmEP8uQp7er8ePINMORsVe1uDrVxHVlgWWzKDhhaiUdygqSFIRZ0NtbkhBZu5z7hwJC2RbFrGFInk8sCU2rAkD2q5SHJ4QHNXB7Wfxf3K1lTvHuJzocCAyzDJtXu+lAY15GF3MRYDmARJEVIlpBEYVZBx7BOfzwgK5DzwwHLE6bamvl5WLJ4YTQ+gGWRRCG5QtKFZIzBDDqbLuWFFGzzS3ajSABLHlJWbRKVceaZcmTBFnEmOWDJk3jcJGlI3hjgoGOI0h8LyFzuTfsCWI19iuMN1YwOY8nC7OOGnYC1DPDYSOqQ7NG3AZ5hvRrCCc5/hbOoAOu0Wh1pJpdOlsWQhaFEACs8S0tySG8HeHoUdGKrklbkhDMLB8B2xb5GmTBYEUe+WhaAUgCsfAaPZBJJJv0TdNaVfbY0YzGbFUAbX1WzS3GoHti4I18nX+rL9gfwNcknklL6GHTi66ojSt7zT53JdgTQxue8xu+sxv8rzZIvNctPaf76pcPFs04POuKUnnV697RD0EnNslPG75Vvl2WQJaE4AAjJKpJYJLf0NOg8V1sZVrRzQdJEth1gpcPCijFJSKRYcVKz6jNN6HFNxFFN1MeamMOamEMjOtt+dORXX4yuP9fPAzzygfKx8uFdfqnRYeNSybLJEspyytLKMsuSy/JTiIC1kdwi6UUyTHdBR9LQmuK3iTiA2QpRbcMfxFQ5xThMIkEh5FPN2qN3DTT39OYx208/d7zw5fiG8308P0veKG+XD5GP6tsymAKQrIWsi6yRrNd8cg9gTXFHkkyH0Z1hrffdvBRR8i5XxAHMbSrMWnXUTtXhuDomR3UyXaRYfu23kZvzmoDTmrDjEg40fU8VXYk9rHnj6Mj3j9ud+Nwx9dTYkjNOlV85156bcO3cxEbFRcgD+VWelP+SF8jL5MXyltjD/bwkrYzrKGvqzdEuwFpOznKTVCPZ5nbQWXvxwMKUaWwXYNAtUm1ilVHvKA6nlLFFilPnW4g3Ky4B/XT9qqWnNeuOPIhUYb5kfWWtqWaAlZBsIwknvr52GNsCGPxpMapmp+pQod5jmku+6txf3xhtZSnHRNa6JxtnrTrqA3V0juokcbMbqeq4vaojN6AAzHuq8iyCDmBGYtRRx9UxdXc5c3u/Orq/vogRnXsf7Fdt4lW7T5Wx7U+kb2i9XOE+xTGcfAMMEQQdwBwHeLYodqeVsVfvvOvCWnVUf37LA5ujY2b6YY5OhDpqj+oohbKAW98ABB0A/XYGgWrzsmqvqOMaFBeDMuFBfVE/nXVlLjjrCgBBBxhy85SjFdv7eftmdVQPLyvc5XV0jMe5zC0AHTYuFdfRAUDQAazRMnXkS6r9UXVMvuLUqEw8qI65/8/0Pa/xO3f7ysgBpzWBJzUrT2hWf64J/nRE6PERa45rwj/RRBzTRLZeYHDdx8YgEt1q/WFjLhGmE8hjWx8Led70AnmlvF7eJe+VT5DPkU+Tz5RPls+Xb5Hvkm+8fWXkc8YloYgBEHQAa7RQtTmtjG1uN7knW3HyZssAIOgAsBhbVbt81dl4LwV1QqA6kg0CgKADwOLijmK/SbVjOwAg6AAAABB0AAAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAACDoAAAAEHQAAAIIOAAAAQQcAAICgAwAAQNABAADW4v8BIMkHbXsCeUgAAAAASUVORK5CYII=" width="760" height="160" class="img_vXGZ"></p>
<p>It quickly built momentum at Facebook and in the frontend ecosystem, adopted by many popular projects such as <a href="https://prettier.io/" target="_blank" rel="noopener noreferrer" class="">Prettier</a>, <a href="https://babeljs.io/" target="_blank" rel="noopener noreferrer" class="">Babel</a>, <a href="https://archive.reactnative.dev/" target="_blank" rel="noopener noreferrer" class="">React-Native</a>, <a href="https://katex.org/docs/" target="_blank" rel="noopener noreferrer" class="">KaTeX</a>, and of course <a href="http://v1.docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">Docusaurus v1</a> itself.</p>
<div class="cssCarousel_QNqB" style="aspect-ratio:1.8356164383561644"><div class="cssCarouselSlider_kweU" style="aspect-ratio:1.8356164383561644"><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvklEQVR4nDXCzwvBUBwA8PcHO6yWQktIK0kcnJRc5OIosZ1wkXKRNjYchmbzY794tnnv7SsHnz6IGy6rfbnWkyqdkViXxJJULspCYcyXB6naDM23Bvac4+mk69rFNv2n6z9dx7uzOJiuTaQYNwCGo4gwBn+MJQCwUm2kGVegJMD4FYaUEEbp74cAwHm+QfrBihnx8Nt6uO4Le/gdhHFEaALgTJZIaS+UVldrNlQxqxbTmzy/zXG7DLcXeDOV/gIPyZWv09LiSwAAAABJRU5ErkJggg==&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="355"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/prettier.0987194.640.png srcset="/fr/assets/ideal-img/prettier.0987194.640.png 640w,/fr/assets/ideal-img/prettier.ac62bde.1030.png 1030w" alt=Prettier width=640 height=355 /></noscript></div><a href="https://prettier.io/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Prettier</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVR4nAG6AEX/AHW3yo+qtZWouZOjuZCTupGGu4yEuoKCt3yHsnCOwQDI2OD07urj4uHc29ns6+fy8+3y8+3s7Oj18enC0+UA1ODq/vz78vP06+vu8PDz9PT38/P39/f5////0dbpANjf6f/9/Pj28fDs4PXy6P767/757v359P///+TH1wDb3ej4/Pv1+PPw8eb1+O31+Oz1+ez4+/b+///vwMwA1p7J1Zuk2JSQ1oZ71IB01Htx1nhv23lw3Xxy5m11yK+UrA2JDh4AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="355"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/babel.cbc364a.640.png srcset="/fr/assets/ideal-img/babel.cbc364a.640.png 640w,/fr/assets/ideal-img/babel.3669cfa.1030.png 1030w" alt=Babel width=640 height=355 /></noscript></div><a href="https://babeljs.io/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Babel</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVR4nAG6AEX/AGisw32brIaZrYCSqn2EroB1rX52r5eYzoGMumSBtwC8ztfm4uHZ2dnLy8rP0c/i49/q6+f4+fX/+/S7zN8Az9zl+/n38vP04uTm6enq7O3u7Ovt9vb3////0NXpANDY4vXz8vHx8efm5+zr6vPy8vTz8vv4+f///+PG1wDY2+b3+/ni6OnO1djY3d/d4uTb4OPu8fL////uwMwA1p7J1pylzYiFvW5iu2dcu2NZulxUz2tk33505mx04r2PDpDiiAMAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="355"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/react-native.e8025ec.640.png srcset="/fr/assets/ideal-img/react-native.e8025ec.640.png 640w,/fr/assets/ideal-img/react-native.8cebf9a.1030.png 1030w" alt=React-Native width=640 height=355 /></noscript></div><a href="https://archive.reactnative.dev/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->React-Native</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAv0lEQVR4nAXB3wrBUBwA4PPAaiHSduOGG4UiV0rIC3gCNwqToraz5d8K46zNzraznbMxP9+HqqrV3eiDldFfmp252Z4arQluTLA83UnjA1pfbJFxQv2n51LOaMbiXPgiiri/wARplgP5N04S50VCSlkY8ThJRQYAe40gwyIAOWPMth9vzw0CGoZBygUA3FYYna4kB6Asvr8c4r1dGkQiFZ/vD8BfbBEeqfpwZva6elPW6mVNKeKadKxJZ6VkFyp/r/+XglW08JQAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="355"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/katex.2b3ecc9.640.png srcset="/fr/assets/ideal-img/katex.2b3ecc9.640.png 640w,/fr/assets/ideal-img/katex.91ac937.1030.png 1030w" alt=Katex width=640 height=355 /></noscript></div><a href="https://katex.org/docs/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Katex</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwUlEQVR4nBXJPQuCQBgA4PvBQWE4CEFBSwQhRG1KU1M/oYYCzaCGCLIPjb4uQ++6pNOztHqjZ32QPFk0LbM1MtW+0eiZDX1c18ZV3VD0QV63kLU7xSL0yPnkbRn3aHQJxZVGPhdkaF/Q8kgAIIkfd4pf4p4m4Tfjn3cKAPOlj1zM/p1wEhzYDYcMC+5/MwEA2Fqhw/nf4skD4gTUpbd9FOPsHX0A2HCGVp2prXU3bXVdU+yKtC5LTqngKnm3VPRy8g+/UpX4n6rSEgAAAABJRU5ErkJggg==&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="355"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/docusaurus.2ad1782.640.png srcset="/fr/assets/ideal-img/docusaurus.2ad1782.640.png 640w,/fr/assets/ideal-img/docusaurus.ba4280f.1030.png 1030w" alt=Docusaurus width=640 height=355 /></noscript></div><a href="https://v1.docusaurus.io/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Docusaurus</a></div></div><button class="navButton_Ugnv navButtonPrev_rcXi" type="button">&lt;</button><button class="navButton_Ugnv navButtonNext_Qf__" type="button">&gt;</button></div></div>
<br>
<div class="theme-admonition theme-admonition-note admonition_o5H7 alert alert--secondary"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>remarque</div><div class="admonitionContent_Knsx"><p>Remarquez que les différents sites ci-dessus utilisent des couleurs différentes, mais ils se ressemblent beaucoup.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="toward-docusaurus-20">En route vers Docusaurus 2.0<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#toward-docusaurus-20" class="hash-link" aria-label="Lien direct vers En route vers Docusaurus 2.0" title="Lien direct vers En route vers Docusaurus 2.0" translate="no">​</a></h2>
<p><a href="http://v1.docusaurus.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Docusaurus v1</strong></a> has been very successful, but we started to <strong>question some architectural choices</strong>:</p>
<ul>
<li class="">React was only used as a <strong>server-side templating language</strong>, and not used on the client</li>
<li class=""><strong>Theming system was pretty limited</strong>, and apart from changing a few colors with CSS, it was difficult to do more advanced customizations</li>
<li class="">The <strong>docs versioning system was confusing</strong>, since it was based on a diff algorithm</li>
<li class="">The codebase was <strong>monolithic</strong>, neither well-tested nor easy to extend</li>
</ul>
<p><a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Docusaurus v2</strong></a> was <strong>rebuilt</strong> from the ground up with a new <strong>modular architecture</strong>:</p>
<ul>
<li class="">React is now also used on the client, enabling a <strong>modern Single Page Application navigation</strong></li>
<li class=""><strong>Plugins</strong> empower the community to contribute useful features as third-party packages</li>
<li class=""><strong>Theming</strong> is more <strong>flexible</strong> than ever</li>
<li class="">Le versionnage des documents est désormais basé sur des copies instantanées, ce qui est beaucoup plus facile à comprendre</li>
<li class="">We kept <strong>everything good from v1</strong>: docs, blog, pages, versioning, i18n...</li>
<li class="">We implemented <strong>several new features</strong></li>
</ul>
<p>More details in the <a class="" href="https://docusaurus.io/fr/blog/2018/09-11-Towards-Docusaurus-2.mdx">Docusaurus 2 project announcement</a> and <a href="https://docusaurus.io/docs/migration" target="_blank" rel="noopener noreferrer" class="">v1 to v2 migration guide</a></p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="who-uses-docusaurus-20">Qui utilise Docusaurus 2.0&nbsp;? <a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#who-uses-docusaurus-20" class="hash-link" aria-label="Lien direct vers Qui utilise Docusaurus 2.0&nbsp;? " title="Lien direct vers Qui utilise Docusaurus 2.0&nbsp;? " translate="no">​</a></h2>
<p>Despite being in pre-release, it didn't take long for <strong>Docusaurus v2 to outgrow Docusaurus v1</strong> in terms of NPM downloads:</p>
<p><a href="https://npmtrends.com/docusaurus-vs-@docusaurus/core" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" alt="NPM downloads: v2 outgrows v1" src="https://docusaurus.io/fr/assets/images/npm-downloads-f9d754a81ff372a5bae83c8751195e2b.png" width="1200" height="645" class="img_vXGZ"></a></p>
<p>La tendance de nos étoiles GitHub est très positive, en concurrence avec les principaux frameworks&nbsp;:</p>
<p><a href="https://star-history.com/#facebook/docusaurus&amp;vercel/next.js&amp;gatsbyjs/gatsby&amp;hexojs/hexo&amp;nuxt/nuxt.js&amp;vuejs/vuepress&amp;11ty/eleventy&amp;gohugoio/hugo&amp;remix-run/remix&amp;mkdocs/mkdocs&amp;Timeline" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" alt="GitHub stars: Docusaurus is well-positioned" src="https://docusaurus.io/fr/assets/images/star-history-72ae014f60d05445753e9f690e41d347.png" width="1200" height="759" class="img_vXGZ"></a></p>
<p>Actuellement, Docusaurus v2 est déjà un grand succès avant même son lancement&nbsp;:</p>
<ul>
<li class="">We received so many <a href="https://x.com/sebastienlorber/timelines/1392048416872706049" target="_blank" rel="noopener noreferrer" class="">lovely testimonials</a></li>
<li class="">Companies like <a href="https://blog.1password.com/docusaurus-documentation-framework/" target="_blank" rel="noopener noreferrer" class="">1Password</a> and <a href="https://www.courier.com/blog/how-we-built-our-documentation/" target="_blank" rel="noopener noreferrer" class="">Courier</a> are writing down their positive experience</li>
<li class="">Our <a class="" href="https://docusaurus.io/fr/showcase">site showcase</a> references hundreds of sites, and this is only the tip of the iceberg.</li>
</ul>
<div class="cssCarousel_QNqB" style="aspect-ratio:1.7989949748743719"><div class="cssCarouselSlider_kweU" style="aspect-ratio:1.7989949748743719"><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFucsWV/jXCCk2h4kGBljmFXjl9Yk1tbkVBbiFV0qgBFWWMTEhIYGxwuLyQ4ODM0NzMuKhoxNjczNDI5SFcAQ1lmSkM2UUxELTk4S0pKR0hLPzcnQEpYPUpbR0dSAEhWY0ZEOE1HPh4fJTc4PDQ0NyIkKSomIyYmG1w9SwBNUl0PHB4YIicaHyEwNjg0Oz0YHiAkKCcaJyFbLTkAtXypqGt0rWZirVxPpVBDqE1CrExCrUlAqEc+xUlStsQ1Jd2lGVkAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/tauri.7d284be.640.png srcset="/fr/assets/ideal-img/tauri.7d284be.640.png 640w,/fr/assets/ideal-img/tauri.4852075.1030.png 1030w" alt=Tauri width=640 height=356 /></noscript></div><a href="https://tauri.app/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Tauri</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AHCswX+aqIearISVrH6Cq4F3rn93r3V1rG54pmeFuQDC09zu6ebp5+fl5OTo6OXu7+rx8ezr7Ojz7+e8zuEA0d7o///++fn65+fo9fX1+Pj5+Pj5/Pz9////0NToANXd5/z6+Pf39+Xk4+Ph5ePi5urp6vv5+f///+PF1QDe4ez////z+Pnf4+rg5O7m6/Hr8fP5/Pz9///uvssA157K1pqk2ZOO1YN50nxz1Xtw2Hdu3Hdv3Hpw52pyiw2SNplStDwAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/figma.e023b25.640.png srcset="/fr/assets/ideal-img/figma.e023b25.640.png 640w,/fr/assets/ideal-img/figma.4b79b06.1030.png 1030w" alt=Figma width=640 height=356 /></noscript></div><a href="https://www.figma.com/plugin-docs/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Figma</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AHGztIijj5GjlYydlIqNkYqAk4Z9lYCAlnJ9iGiGpQDQ2Er96gDz5wP26QDv5RHw5xD47QD26wP/7wDAykgAr7dRwbcEvrcSwLYLvLMWurQWv7gQv7cQxLsFpqZLAD9IY19YEVtVGxUiNy0oMDQ0LTA+PxwZIhkeI1E0SgBITFs2OB44OiggLC8mLSovLSwoLSskKSwbKytaLDkAuH2ppGl3q2ZlrlxPqlRJqE9Fq0pDsk1ErkxDx0pT21lMrI2uNt0AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/snapchat.5f28663.640.png srcset="/fr/assets/ideal-img/snapchat.5f28663.640.png 640w,/fr/assets/ideal-img/snapchat.39e00a7.1030.png 1030w" alt=Snapchat width=640 height=356 /></noscript></div><a href="https://docs.snap.com/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Snapchat</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFOYtVZ2j111kl1zlFpilVtVl09LjkhLjEJSi05uqgA0TWYSGC8lLkQTGzELFy0IFCknOEsoOk4FDSAmQmUAO1BoGyU7NURYHTJIEh83DBQsZJGpbJeuBQ8lSUZpAEBPZwYRJw8qPRVDUwwWLR4sQUpvkUhoihAhNFQxUQA7Rl8ABx0DESgADSUCEigNHjQRJkIVJ0MAGCxJITwAs3uqnWNypmNjpFZOpVJKo0xFoUI8pEE8oUJAxEhVk18yaV+3uG0AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/iota.95754da.640.png srcset="/fr/assets/ideal-img/iota.95754da.640.png 640w,/fr/assets/ideal-img/iota.117672c.1030.png 1030w" alt=Iota width=640 height=356 /></noscript></div><a href="https://wiki.iota.org/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Iota</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJjT3Mzc1NLa1tDW2M7F186318i12MG217q50Zas1ADUrU3/pgD8pwv+rBD/uC//uTD/rxH9rQ3/rQDHokwA2bRi/7Ie/bkx/7Yq9rxT9rtS/7Yt/bUx/7QezqJbANzk7P///8XHyN7g4f//+f///dLPyNzZz////+PF1ADf4+7////N2NzW5Ob7///5/v/U3dTV2sr6///uvssA153K0JWe15CK14R2035y1Hlu1HRs1nJr13Vr52pyn7CEdE5qo0kAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/sap-cloud.f57d7fa.640.png srcset="/fr/assets/ideal-img/sap-cloud.f57d7fa.640.png 640w,/fr/assets/ideal-img/sap-cloud.312bf29.1030.png 1030w" alt="SAP Cloud" width=640 height=356 /></noscript></div><a href="https://sap.github.io/cloud-sdk/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->SAP Cloud</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFibsGF8iWx/kGd4jmFljWFWjFxUjFhYjU5ZhVRypgBGWGAXEg4jIiEnJiQcHBgZGhUaGhUcHRkZFQ0yRFcAUV5nHx0cKiorLS0tKSkqJyYoKSgpKCgqHx4cPkNXAFdfaB8dGywsLDIxMS0rKyknJzEvLzAuLyMmI1Y4SABVWWMTFxUiJicnLC0hJicdIiMlKywkKCkTISBbLTkAuX+so2dxqmVgqllMp1FFp01Cqkk/rEc+qEY9xkpSZqAv5L+d0r8AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/supabase.e96fd5f.640.png srcset="/fr/assets/ideal-img/supabase.e96fd5f.640.png 640w,/fr/assets/ideal-img/supabase.f37ca60.1030.png 1030w" alt=Supabase width=640 height=356 /></noscript></div><a href="https://supabase.com/docs" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Supabase</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AGmswn6ZqIibrISUq4CDrH90qntyqXNzqGl1omaEuADK2+Tx6+ns6unv7evr6+j4+fT5+vXz8/D//fW+z+IA2ebv/v37+Pr79v7/8vX3ysrMv8DDur3B0tbXzdLmAN3m7////fj5+ff//9bv9SEmKwUIDgYNFR0sM9W5yQDLz9nd4uDZ3d7a4ePE1txxen5kbHBka29oeXnRpLEAv4azsHR/uHJuuGdbuGFUwWdbxGNaxmFZw2JY0FRd0wl8G5D7uNgAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/stackblitz.3a585ac.640.png srcset="/fr/assets/ideal-img/stackblitz.3a585ac.640.png 640w,/fr/assets/ideal-img/stackblitz.786829d.1030.png 1030w" alt=StackBlitz width=640 height=356 /></noscript></div><a href="https://developer.stackblitz.com/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->StackBlitz</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AIzU7rnd78Te8cHa8b7I87+69ri19ayx8qCy7oao5wCd1eWz3eO94OTI5eXM6/K43/+bw/6Bqfxji/xTgOoAt93q1/b53PX65fr83/T7zuT8vdT8rMT6nrj/hpzmAN3k7vTw8PLw8Pv6+vHv8P/+/Pn29fXw7P///uTH1gDe4ezx9/bx9vj2+/zw9vj3/f7x9/nq7/Pz///pu8kA153J0JWf1pCN2IZ60ntv1ntw13dt1G9n13Vr52pzffeTuLcnN78AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/lacework.dfc8aa5.640.png srcset="/fr/assets/ideal-img/lacework.dfc8aa5.640.png 640w,/fr/assets/ideal-img/lacework.33303f9.1030.png 1030w" alt=Lacework width=640 height=356 /></noscript></div><a href="https://docs.lacework.com/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Lacework</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJna8c3n9tLl99Hh+c3Q+czC+cjA+L+/9bfC8JWz6QDN3u728Pjw7/j29Pz19fv09fr29/zz8/n69vjC1O4Aydfr3dzu2Nrp19fkzc7gzs/g29znxMXitbbevsTiAMzU6c/O7NHR5+Xk7c/O3aWkt+bl7bOy2Kyx29W30wDKzujQ1fHR1vHb4PXZ3/LT1+za4PXP1O/R4Pnaq8gA0pjHz5Oi1I6P1YR71H901Xtz1HNv1XFu1HNv4mVyADiS2eC63VAAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/react-navigation.1b40364.640.png srcset="/fr/assets/ideal-img/react-navigation.1b40364.640.png 640w,/fr/assets/ideal-img/react-navigation.a6b28c6.1030.png 1030w" alt=React-Navigation width=640 height=356 /></noscript></div><a href="https://reactnavigation.org/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->React-Navigation</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJfa783n9dXo+c/g9szP98zB98i/98C+9LfC7pa06QDS5e3+/Pj7+/r8/Pr2+vX7/vr8/fr2+/b///vH2e4A1eLs9Pb08fT09PX26/Dw9vb38vL06/Dx/f38zNHlAN3l7v////z+/v7+//3+/v////7//v39/f///+PG1wCcoKuWmZiVmZqWm5yXm5yVmZqWm5yWmZuRnp2qfIgAsXejmF1noFlUolBDnkk8nUM4oUA3oj41njwywENMFZ6NFBzee74AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/solana.8bcac78.640.png srcset="/fr/assets/ideal-img/solana.8bcac78.640.png 640w,/fr/assets/ideal-img/solana.e7c1e4f.1030.png 1030w" alt=Solana width=640 height=356 /></noscript></div><a href="https://docs.solana.com/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Solana</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJG2zL6ls8OmuMGiubuLs7x9tLd7s7F+taR/rIeGugDU3eb/8/D97+7/8e/97en45N/76eX57On/6+PBx9oA0N/o8fPz7fDy7fDx8fT1/P7++fT189/i////ztLmANHY4u/r6vDu7+/t7fXz8//+/vrt7vXY2v///+PE1QDg4+7////9/v7+///8/v729/j3+/v2+fr4///ru8gA153J1pqj25SQ2ol82IF12X5z2npw3Hdu3Hpw52py1S6WZvfndWMAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/gulp.645374a.640.png srcset="/fr/assets/ideal-img/gulp.645374a.640.png 640w,/fr/assets/ideal-img/gulp.f298c97.1030.png 1030w" alt=Gulp width=640 height=356 /></noscript></div><a href="https://gulpjs.com/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Gulp</a></div></div><button class="navButton_Ugnv navButtonPrev_rcXi" type="button">&lt;</button><button class="navButton_Ugnv navButtonNext_Qf__" type="button">&gt;</button></div></div>
<br>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>Please add your site to our <a class="" href="https://docusaurus.io/fr/showcase">site showcase</a>! It only takes a few seconds: just <a href="https://github.com/facebook/docusaurus/discussions/7826" target="_blank" rel="noopener noreferrer" class="">post a comment here</a>.</p></div></div>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/maxlynch/status/1549415692704825346" target="_blank" rel="noopener noreferrer"><p>We use Docusaurus everywhere now and love it</p></a></blockquote><figcaption><a href="https://x.com/maxlynch" target="_blank" rel="nofollow"><div class="avatar"><img alt="Max Lynch" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/maxlynch"><div class="avatar__intro"><strong class="avatar__name"><cite>Max Lynch</cite></strong><small class="avatar__subtitle" itemprop="description">Ionic co-founder and CEO</small></div></div></a></figcaption></figure>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/supabase/status/1328960757149671425" target="_blank" rel="noopener noreferrer"><p>We've been using V2 since January and it has been great</p></a></blockquote><figcaption><a href="https://x.com/supabase" target="_blank" rel="nofollow"><div class="avatar"><img alt="Supabase" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/supabase"><div class="avatar__intro"><strong class="avatar__name"><cite>Supabase</cite></strong><small class="avatar__subtitle" itemprop="description">Open Source Firebase alternative</small></div></div></a></figcaption></figure>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/gabrielcsapo/status/1415061312917233665" target="_blank" rel="noopener noreferrer"><p>Docusaurus is next level easy for literally everything you would need for
documentation in your project.</p></a></blockquote><figcaption><a href="https://x.com/gabrielcsapo" target="_blank" rel="nofollow"><div class="avatar"><img alt="Gabriel Csapo" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/gabrielcsapo"><div class="avatar__intro"><strong class="avatar__name"><cite>Gabriel Csapo</cite></strong><small class="avatar__subtitle" itemprop="description">Staff Software Engineer at LinkedIn</small></div></div></a></figcaption></figure>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/ItWasMattGregg/status/1526682295075102721" target="_blank" rel="noopener noreferrer"><p>Docusaurus is awesome. We use it</p></a></blockquote><figcaption><a href="https://x.com/ItWasMattGregg" target="_blank" rel="nofollow"><div class="avatar"><img alt="Matt Gregg" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/ItWasMattGregg"><div class="avatar__intro"><strong class="avatar__name"><cite>Matt Gregg</cite></strong><small class="avatar__subtitle" itemprop="description">Senior Front End Developer at Shopify</small></div></div></a></figcaption></figure>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="whats-new-in-20">Quoi de neuf dans la 2.0&nbsp;? <a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#whats-new-in-20" class="hash-link" aria-label="Lien direct vers Quoi de neuf dans la 2.0&nbsp;? " title="Lien direct vers Quoi de neuf dans la 2.0&nbsp;? " translate="no">​</a></h2>
<p>Il serait difficile de décrire toutes les nouvelles fonctionnalités de Docusaurus v2. Let's focus on the features we believe are the <strong>most impactful</strong>.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="mdx">MDX<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#mdx" class="hash-link" aria-label="Lien direct vers MDX" title="Lien direct vers MDX" translate="no">​</a></h3>
<p><a href="https://github.com/mdx-js/mdx" target="_blank" rel="noopener noreferrer" class="">MDX</a> allows you to <strong>interleave React components</strong> in Markdown. This enables you to build top-notch <strong>interactive documentation experiences</strong> very easily.</p>
<p>Une démo vaut mieux qu'un long discours&nbsp;:</p>
<div class="language-md codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docs/my-document.mdx</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-md codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token title important punctuation" style="color:#393A34;font-weight:bold">###</span><span class="token title important" style="color:#0550AE;font-weight:bold"> Give it a try: press that button!</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">import ColorModeToggle from '@theme/ColorModeToggle';</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#22863A">ColorModeToggle</span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><br></div></code></pre></div></div>
<div class="browserWindow_my1Q"><div class="browserWindowHeader_jXSR"><div class="buttons_uHc7"><span class="dot_giz1" style="background:#f25f58"></span><span class="dot_giz1" style="background:#fbbe3c"></span><span class="dot_giz1" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_Pd8y text--truncate">http://localhost:3000</div><div class="browserWindowMenuIcon_Vhuh"><div><span class="bar_rrRL"></span><span class="bar_rrRL"></span><span class="bar_rrRL"></span></div></div></div><div class="browserWindowBody_Idgs"><h3>Give it a try: press that button!</h3><div class="toggle_bT41"><button class="clean-btn toggleButton_x9TT toggleButtonDisabled_Dj8q" type="button" disabled="" title="system mode" aria-label="Basculer entre le mode sombre et le mode clair (actuellement system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_nCQi lightToggleIcon_dnYY"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_nCQi darkToggleIcon_OBbf"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_nCQi systemToggleIcon_IWwm"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div></div></div>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_Knsx"><p>MDX has its own <a href="https://mdxjs.com/docs/extending-mdx/" target="_blank" rel="noopener noreferrer" class="">plugin system</a>. Vous pouvez personnaliser votre expérience de création de Markdown et même créer votre propre syntaxe Markdown.</p></div></div>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/HamelHusain/status/1551962275250053123" target="_blank" rel="noopener noreferrer"><p>Docusaurus + MDX is great: we were able to implement a beautiful two-pane
layout and give the author fine-grained control on the placement of code and
corresponding prose.</p></a></blockquote><figcaption><a href="https://x.com/HamelHusain" target="_blank" rel="nofollow"><div class="avatar"><img alt="Hamel Husain" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/HamelHusain"><div class="avatar__intro"><strong class="avatar__name"><cite>Hamel Husain</cite></strong><small class="avatar__subtitle" itemprop="description">Head Of Data Science at Outerbounds</small></div></div></a></figcaption></figure>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="file-system-conventions">Conventions du système de fichiers<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#file-system-conventions" class="hash-link" aria-label="Lien direct vers Conventions du système de fichiers" title="Lien direct vers Conventions du système de fichiers" translate="no">​</a></h3>
<p>Our goal is to make Docusaurus very <strong>intuitive</strong> to use. Nous avons ajouté des conventions de système de fichiers et l'ajout d'une page de doc est aussi simple que la création d'un fichier Markdown.</p>
<!-- --><article class="yt-lite " data-title="Explain Like I'm 5: Docusaurus" style="background-image:url(https://i.ytimg.com/vi_webp/T3S8GyFIXjo/maxresdefault.webp);--aspect-ratio:56.25%"><button type="button" class="lty-playbtn" aria-label="Watch Explain Like I'm 5: Docusaurus"></button></article>
<br>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/paularmstrong/status/1552005085168865281" target="_blank" rel="noopener noreferrer"><p>Using the auto-generated sidebars makes it so simple to just create a page and
not worry about any other configuration.</p></a></blockquote><figcaption><a href="https://x.com/paularmstrong" target="_blank" rel="nofollow"><div class="avatar"><img alt="Paul Armstrong" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/paularmstrong"><div class="avatar__intro"><strong class="avatar__name"><cite>Paul Armstrong</cite></strong><small class="avatar__subtitle" itemprop="description">Principal Engineer at Microsoft</small></div></div></a></figcaption></figure>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="plugins">Plugins<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#plugins" class="hash-link" aria-label="Lien direct vers Plugins" title="Lien direct vers Plugins" translate="no">​</a></h3>
<p>Docusaurus now has a <strong>modular architecture</strong> with a plugin system — our <strong>core features</strong> like docs, blog, pages, and search are all powered by individual plugins.</p>
<p>More importantly, it enables our community to <strong>enhance Docusaurus</strong> with additional features.</p>
<p>Soulignons quelques exemples&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/rohit-gohri/redocusaurus" target="_blank" rel="noopener noreferrer" class="">redocusaurus</a>: seamless integration with <a href="https://www.openapis.org/" target="_blank" rel="noopener noreferrer" class="">OpenAPI</a> and <a href="https://github.com/Redocly/redoc" target="_blank" rel="noopener noreferrer" class="">Redoc</a></li>
</ul>
<p><img decoding="async" loading="lazy" alt="redocusaurus plugin example" src="https://docusaurus.io/fr/assets/images/redocusaurus-5cf08a76be6f85090544417b82986cfb.png" width="1200" height="667" class="img_vXGZ"></p>
<ul>
<li class=""><a href="https://www.npmjs.com/package/docusaurus-preset-shiki-twoslash" target="_blank" rel="noopener noreferrer" class="">docusaurus-preset-shiki-twoslash</a>: use <a href="https://github.com/shikijs/shiki" target="_blank" rel="noopener noreferrer" class="">Shiki</a> code block syntax highlighting with <a href="https://shikijs.github.io/twoslash/" target="_blank" rel="noopener noreferrer" class="">TwoSlash</a> TypeScript compiler hints</li>
</ul>
<p><img decoding="async" loading="lazy" alt="shiki-twoslash plugin example" src="https://docusaurus.io/fr/assets/images/shiki-twoslash-b74271684fa819a0175595409b2f323b.png" width="1200" height="667" class="img_vXGZ"></p>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/orta" target="_blank" rel="noopener noreferrer"><p>The plugin API was a breeze to use, and powerful enough that I could port the
code sample renderer from the TypeScript website site in a couple of hours.</p></a></blockquote><figcaption><a href="https://x.com/orta" target="_blank" rel="nofollow"><div class="avatar"><img alt="Orta Therox" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/orta"><div class="avatar__intro"><strong class="avatar__name"><cite>Orta Therox</cite></strong><small class="avatar__subtitle" itemprop="description">Former TypeScript core team at Microsoft</small></div></div></a></figcaption></figure>
<ul>
<li class=""><a href="https://github.com/easyops-cn/docusaurus-search-local" target="_blank" rel="noopener noreferrer" class="">docusaurus-search-local</a>: one of the various local search alternatives to the built-in Algolia plugin</li>
</ul>
<p><img decoding="async" loading="lazy" alt="local search plugin example" src="https://docusaurus.io/fr/assets/images/search-848f1f1b9eb0d1b710e1d1dec50fb84a.png" width="1200" height="627" class="img_vXGZ"></p>
<div class="theme-admonition theme-admonition-tip admonition_o5H7 alert alert--success"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>astuce</div><div class="admonitionContent_Knsx"><p>We have a curated list of outstanding plugins in our <a class="" href="https://docusaurus.io/fr/community/resources">community resources</a> page.</p></div></div>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/jodyheavener/status/1551974535452311552" target="_blank" rel="noopener noreferrer"><p>The plugin system in Docusaurus v2 has made expanding 1Password's developer
portal so easy and fun. Nous sommes très heureux de vous montrer ce que nous avons conçu.</p></a></blockquote><figcaption><a href="https://x.com/jodyheavener" target="_blank" rel="nofollow"><div class="avatar"><img alt="Jody Heavener" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/jodyheavener"><div class="avatar__intro"><strong class="avatar__name"><cite>Jody Heavener</cite></strong><small class="avatar__subtitle" itemprop="description">Senior Developer at 1Password</small></div></div></a></figcaption></figure>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="theming">Thème<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#theming" class="hash-link" aria-label="Lien direct vers Thème" title="Lien direct vers Thème" translate="no">​</a></h3>
<p>Theming is one of the most important features of Docusaurus: we believe a professional documentation site should <strong>respect your company's branding</strong> and create a consistent experience.</p>
<p>Docusaurus theming gives a lot of <strong>flexibility</strong> on multiple levels:</p>
<ul>
<li class="">Personnalisez les variables CSS pour ajuster les couleurs, les polices et plus encore</li>
<li class="">Fournissez vos propres feuilles de style CSS</li>
<li class="">Implémentez votre propre thème à partir de zéro</li>
<li class=""><strong>Override any React component</strong> provided by our default theme: we call this <a href="https://docusaurus.io/docs/swizzling" target="_blank" rel="noopener noreferrer" class="">swizzling</a></li>
</ul>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/hung_dev/status/1546918275065741312" target="_blank" rel="noopener noreferrer"><p>I love Docusaurus Swizzling feature. Elle est à la fois opiniâtre et flexible. C'est super cool car un framework doit généralement sacrifier l'un au profit de l'autre.</p></a></blockquote><figcaption><a href="https://x.com/hung_dev" target="_blank" rel="nofollow"><div class="avatar"><img alt="
Hung Viet Nguyen" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/hung_dev"><div class="avatar__intro"><strong class="avatar__name"><cite>
Hung Viet Nguyen</cite></strong><small class="avatar__subtitle" itemprop="description">Creator of JestPreview</small></div></div></a></figcaption></figure>
<p>This enables users willing to invest a bit more time on <strong>customizations</strong> to build sites that <strong>look different</strong> from others.</p>
<div class="cssCarousel_QNqB" style="aspect-ratio:1.7989949748743719"><div class="cssCarouselSlider_kweU" style="aspect-ratio:1.7989949748743719"><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AJbY7s3o99Xo+tPk+8DK/MbA+ci/98HB98DM+Ji26gDK3ej//Pzy8vLs6+rn6u74+vn////x8u/w7OXE1uoA0d7p////7u/w4uPm6Ojq7e7z8/T309PW19fWub7UANTd6P/+/vj4+Pj4+fr6/Pr7/fb3+tve5/3//tCzxADZ3en8///0+Pn1+vv2+/v2+/vz+fvO2ef3///crLoA1ZzJ1Zqj2ZSP2ol814F12H1z2Hhv1HFq23lw42ZvKQ2aZPs/3GIAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/ionic.7f10b53.640.png srcset="/fr/assets/ideal-img/ionic.7f10b53.640.png 640w,/fr/assets/ideal-img/ionic.cd19b49.1030.png 1030w" alt=Ionic width=640 height=356 /></noscript></div><a href="https://ionicframework.com/docs/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Ionic</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAwklEQVR4nAXBPWvCQBgA4Pu7UhQsUh2Kk2sXF8Ghkz/BqdqCIBkUbf1Ag5GKaFsjyZ2X+3ovd+bt85BuxD9jszip6T6bzPVsBMFQfLzzt/Gt0/8jy3OCWFCasvSaZdR7i17fnUSEIIzJ4vvi81xIBZAbcNY6kMIIgd5MZ0eyin6cBSU1ZTJOtFRWcXZLWYH5cfRFosO1QJQGuJBCG3COZYIybhGTQUDC18mm2wvbL5vW07pZ3T5Xw3p5V3vYNSq/pcd/0kecLyndd98AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/outerbounds.7fa8be7.640.png srcset="/fr/assets/ideal-img/outerbounds.7fa8be7.640.png 640w,/fr/assets/ideal-img/outerbounds.17abaf6.1030.png 1030w" alt=Outerbounds width=640 height=356 /></noscript></div><a href="https://outerbounds.com/docs/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Outerbounds</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AIyt27SXz7ud17eW2bGD269z3qhv3p5x3ZJw2X1+2gDIyeH52u/XwdTDq8LRu8/SvdLQu9Hm1+j/8//EzewAz9ro+/j+3dzizczR1NPY19XbxMHIxLzH49/hvb7XANTW5/ft+Pr3+//+/v39/f///8S+xUIjSS8XPIZdfwDW1ub39v3y9Pju8fTy9vj///+4uMImFDceEjeUVXkA1pzJ1Jej2JKO2IZ61oB024B1zGpjrUNDrERE11Vl8lGDEKxF5owAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/courier.e9b71f4.640.png srcset="/fr/assets/ideal-img/courier.e9b71f4.640.png 640w,/fr/assets/ideal-img/courier.f8addf0.1030.png 1030w" alt=Courier width=640 height=356 /></noscript></div><a href="https://www.courier.com/docs/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Courier</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFyguGaElrfL3djp/8zP+MvA98e99b7C97yt3pmd1QBLYG0jIii6u77x7+3s7On+//z+/fr8/vz/9/PHy+EAVWRzKCszvb/C6uvr4ODi7+7w8vHz8vL0////ztToAFxmdSkrM7/Bw/Ty8ujo6Ors6/T09P38/P///+PF1QBXXW0bIyu4vcDk7OzZ3+Dc4eLn7e72+fr9///uvssAuYCtpGl0zYeD2Ip70n1x13xy13du2XVs3Hpx52tzWcaFkyvPIw8AAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/quickwit.aae4257.640.png srcset="/fr/assets/ideal-img/quickwit.aae4257.640.png 640w,/fr/assets/ideal-img/quickwit.e851c05.1030.png 1030w" alt=Quickwit width=640 height=356 /></noscript></div><a href="https://quickwit.io/docs/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Quickwit</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAvElEQVR4nCXJPQ/BQBgA4Pu9FqSDIBKjicFmEIPERmwkWCQkREvQpr4SJK7otb1DtXp3r4hnfVBhZrfmZHpg6uGpLkJt+BkP/H6PNjqs2LyhWmfZ7por82RZl3foCxBSSi4iABgaDlJ3FucCM/9IGKYv2/+QgLNAAIC2xEjfYwBJXM/1vIj/CcF/fR7paLO3JIBD6eVuXx2XsAd9B2H0e2cwRUZ1olfqZrlkFrLrvGLklE06sUvFt5kkjilfulmaxNksu3AAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/dyte.b411d0a.640.png srcset="/fr/assets/ideal-img/dyte.b411d0a.640.png 640w,/fr/assets/ideal-img/dyte.9d967ec.1030.png 1030w" alt=Dyte width=640 height=356 /></noscript></div><a href="https://docs.dyte.io/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Dyte</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AGaqwXuXqIWWqoKSqoKEroN1rYF2rXVzq32Jt22MwAC/0drp4uDF0NSpvcS+0dTI3N6909nQ3N789+++0eQA0+Dp///90urysdjlttrmuN3rpsXg0+Xw////ztPoANTc5vv5+PTy8ejk5O3p6fn19fz39f36+f///+PG1QDZ3Of09/bv8/Xq7/Hz+Pr0+vv0+vz5/Pz9///uvssA1p3J05eh1Y+L1IN22YN32X9023px3Hhv23pw52pzwqeO97QIzhcAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/react-native.9ad7a23.640.png srcset="/fr/assets/ideal-img/react-native.9ad7a23.640.png 640w,/fr/assets/ideal-img/react-native.02f5343.1030.png 1030w" alt=React-Native width=640 height=356 /></noscript></div><a href="https://reactnative.dev/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->React-Native</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAxUlEQVR4nAG6AEX/AFqhu2SFmW2FnGR7l2Bpl2Fcl1pXk1dblk1lm1N7tgBGXm0VGyImLjUhKC0cJCgdJykbJSYWHyERHB0sSGIASl1sGSIqJi81KzI4KDA1JCsxJSwyISkvGiAiOUJZAFJgbxwkLCYuNiUtNR8nLiIqMh8mLiQqMhooLk42TABOWWkPHSUbKTMgMkEcLTsjNEEdMD4hMD4XNEFYMUUAtn6soWhzqmZjqFpPplJIqFBHqElCq0lCp0hAxUpUim0yiR9LFnEAAAAASUVORK5CYII=&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/hasura.e4f3ebd.640.png srcset="/fr/assets/ideal-img/hasura.e4f3ebd.640.png 640w,/fr/assets/ideal-img/hasura.226d6d3.1030.png 1030w" alt=Hasura width=640 height=356 /></noscript></div><a href="https://hasura.io/docs/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Hasura</a></div></div><div class="cssCarouselItem_j42A"><div class="cssCarouselContent_nJpB"><div style="background-size:cover;background-repeat:no-repeat;position:relative;background-image:url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAIAAAB1kpiRAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAtElEQVR4nB3MSwtBQRiH8fm+SkoSycLOykI2ZOUb2CqxILlEJ5dDlFyaFIccnZk5877zF+un3yMah3B+UytpvJOZLsykb0Y90+urzjCstaVYyhcAdg6Ati6M6RFGlhiIB/5d+JcnAGMptsTETKyUUTomsjNPisP1l91fR5rfEQdvzUQAzsO1OJ4DAIqcIheR+1j3+Gj9vwfdidg0x+t6a1ut7MoFv5Txi+ldLrXPJvf5lEykv9L2nupSFk8xAAAAAElFTkSuQmCC&quot;)"><svg style="width:100%;height:auto;max-width:100%;margin-bottom:-4px" width="640" height="356"></svg><noscript><img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/fr/assets/ideal-img/datagit.98630dd.640.png srcset="/fr/assets/ideal-img/datagit.98630dd.640.png 640w,/fr/assets/ideal-img/datagit.afeea1f.1030.png 1030w" alt=Datagit width=640 height=356 /></noscript></div><a href="https://www.datagit.ir/" target="_blank" rel="noopener noreferrer" class="siteLink_EAF1">🔗 <!-- -->Datagit</a></div></div><button class="navButton_Ugnv navButtonPrev_rcXi" type="button">&lt;</button><button class="navButton_Ugnv navButtonNext_Qf__" type="button">&gt;</button></div></div>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/dabit3/status/1382855449813389315" target="_blank" rel="noopener noreferrer"><p>So far it’s working out really nicely. Il a été très facile de le styliser comme nous le voulions. Aucun blocage.</p></a></blockquote><figcaption><a href="https://x.com/dabit3" target="_blank" rel="nofollow"><div class="avatar"><img alt="Nader Dabit" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/dabit3"><div class="avatar__intro"><strong class="avatar__name"><cite>Nader Dabit</cite></strong><small class="avatar__subtitle" itemprop="description">Web3 developer, Developer DAO founder</small></div></div></a></figcaption></figure>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="other-features">Autres fonctionnalités<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#other-features" class="hash-link" aria-label="Lien direct vers Autres fonctionnalités" title="Lien direct vers Autres fonctionnalités" translate="no">​</a></h3>
<p>Docusaurus 2 est doté d'une très longue liste de fonctions utiles&nbsp;:</p>
<ul>
<li class="">Theme: dark mode, better UI and UX, flexible <code>themeConfig</code> options...</li>
<li class="">Versionnage des docs&nbsp;: options du plugin flexibles pour s'adapter à votre flux de travail</li>
<li class="">Barre latérale des docs&nbsp;: catégorie repliable, pages d'index des catégories...</li>
<li class="">Blog&nbsp;: auteurs multiples, carte des auteurs, page d'archives...</li>
<li class="">Markdown&nbsp;: onglets, équations mathématiques, blocs de code en direct, liens, frontmatter flexible...</li>
<li class="">Recherche&nbsp;: utilisez la nouvelle expérience Algolia DocSearch 3</li>
<li class="">Ressources&nbsp;: facilitez l'incorporation d'images et d'autres types de fichiers</li>
<li class="">Internationalisation&nbsp;: options de configuration, traductions du thème par défaut...</li>
<li class="">Accessibilité&nbsp;: étiquettes aria, contrastes des couleurs, saut vers le contenu, navigation par le clavier, amélioration progressive...</li>
<li class="">Référencement&nbsp;: valeurs par défaut judicieuses, facile à personnaliser, url canonique, carte sociale, no-index, sitemap, microdata, hreflang...</li>
<li class="">PWA&nbsp;: ajoute la prise en charge hors ligne à votre site et le rend installable</li>
<li class="">Echec rapide : validation stricte de la configuration, détection des liens erronés et prévention des mauvais déploiements en production</li>
<li class="">Prise en charge de TypeScript pour les fichiers de configuration, les plugins, les pages personnalisées et les auteurs de thèmes</li>
<li class="">Playgrounds: assess Docusaurus easily from your browser with <a href="https://docusaurus.new/" target="_blank" rel="noopener noreferrer" class="">docusaurus.new</a></li>
<li class="">Versions canary&nbsp;: utilisez la balise @canary avec npm pour utiliser la prochaine version avant tout le monde</li>
<li class="">Des tests : Docusaurus est bien testé, nous testons les fonctionnalités et nous nous assurons qu'elles fonctionnent toujours</li>
</ul>
<figure class="tweetQuote_h8Rz"><blockquote><a href="https://x.com/alexbdebrie/status/1540010328335032320" target="_blank" rel="noopener noreferrer"><p>Recently, I was shocked at how good Docusaurus is out of the box. Super solide, une bonne dose de configuration sans être excessive, et la possibilité de vraiment personnaliser le style si vous êtes plus courageux que moi.</p></a></blockquote><figcaption><a href="https://x.com/alexbdebrie" target="_blank" rel="nofollow"><div class="avatar"><img alt="Alex DeBrie" class="avatar__photo avatarImg_b51M" src="https://unavatar.io/x/alexbdebrie"><div class="avatar__intro"><strong class="avatar__name"><cite>Alex DeBrie</cite></strong><small class="avatar__subtitle" itemprop="description">AWS Data Hero, author of The DynamoDB Book</small></div></div></a></figcaption></figure>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="why-20-now">Pourquoi la 2.0 maintenant&nbsp;? <a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#why-20-now" class="hash-link" aria-label="Lien direct vers Pourquoi la 2.0 maintenant&nbsp;? " title="Lien direct vers Pourquoi la 2.0 maintenant&nbsp;? " translate="no">​</a></h2>
<p>Many enthusiastic followers of ours have been curious <strong>why it took us 4 years to release Docusaurus 2.0</strong>, considering the beta is already successful and <strong>widely used in production</strong>.</p>
<p>The reason is that we aim to <strong>respect <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">Semantic Versioning</a></strong>, which means we will be incrementing the major version number whenever we release a <strong>breaking change</strong>.</p>
<p>C'est important pour plusieurs raisons&nbsp;:</p>
<ul>
<li class="">It <strong>guarantees simple minor version upgrades</strong>, as long as you only use the <a class="" href="https://docusaurus.io/fr/community/release-process#public-api-surface">public API</a></li>
<li class="">Il respecte les conventions de l'écosystème front-end</li>
<li class="">Une nouvelle version majeure est l'occasion de documenter minutieusement les changements de rupture</li>
<li class="">Une nouvelle version majeure ou mineure est l'occasion de communiquer les nouvelles fonctionnalités par le biais d'un article du blog</li>
</ul>
<p>The problem is that our flexible theming system inherently creates a very <strong>implicit API surface</strong> on which it is <strong>hard to know what is a breaking change</strong> in the first place. Les sites Docusaurus hautement personnalisés ont parfois du mal à mettre à jour Docusaurus parce qu'ils réalisent des personnalisations en utilisant des API internes. We dedicated time to extensive theme refactors and clearly defining our <a class="" href="https://docusaurus.io/fr/community/release-process#public-api-surface">public API</a>, so that future code changes can be made more safely. Nous continuerons à développer cette API publique de thématisation afin que les personnalisations de site les plus courantes n'aient pas besoin d'utiliser d'API interne.</p>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_Knsx"><p>From now on, Docusaurus will <strong>release new major versions more frequently</strong>. In practice, you can expect a <strong>new major version every 2 to 4 months</strong>.</p><p><a href="https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html" target="_blank" rel="noopener noreferrer" class="">Major version numbers are not sacred</a>, but we still group breaking changes together and avoid releasing major versions too often.</p><p>Check our <a class="" href="https://docusaurus.io/fr/community/release-process">release process</a> documentation for details.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="whats-next">Quelle est la prochaine étape&nbsp;? <a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#whats-next" class="hash-link" aria-label="Lien direct vers Quelle est la prochaine étape&nbsp;? " title="Lien direct vers Quelle est la prochaine étape&nbsp;? " translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Slash Up and Running" src="https://docusaurus.io/fr/assets/images/slash-up-and-running-1c1f83f3064dcd56be41632c51be62ac.png" width="760" height="160" class="img_vXGZ"></p>
<p>Le travail sur Docusaurus 3.0 a commencé, et cette prochaine version ne sortira que dans quelques mois. We will <strong>backport retro-compatible changes in Docusaurus 2.x</strong> minor versions to make them available as soon as possible to the community on a stable channel.</p>
<p>Un échantillon des fonctionnalités figurant sur notre feuille de route pour les prochaines versions majeures de Docusaurus&nbsp;:</p>
<ul>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/4029" target="_blank" rel="noopener noreferrer" class="">Upgrade to MDX 2.0</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/4625" target="_blank" rel="noopener noreferrer" class="">Improve Markdown infrastructure</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/6114" target="_blank" rel="noopener noreferrer" class="">Improve theming and swizzle</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/2961" target="_blank" rel="noopener noreferrer" class="">TailwindCSS theme</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/7227" target="_blank" rel="noopener noreferrer" class="">Theme; support custom item types for navbar, doc sidebar, blog sidebar, footer</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/4389" target="_blank" rel="noopener noreferrer" class="">Dynamic navbar: navbar item activation strategies</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/2968" target="_blank" rel="noopener noreferrer" class="">Custom Social Cards</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/3236" target="_blank" rel="noopener noreferrer" class="">CSS-in-JS support</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/6520" target="_blank" rel="noopener noreferrer" class="">Use Node.js ES Modules</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/4765" target="_blank" rel="noopener noreferrer" class="">Improve build time performance</a></li>
<li class=""><a href="https://github.com/facebook/docusaurus/issues/4138" target="_blank" rel="noopener noreferrer" class="">Extend Docusaurus plugins, CMS integration</a></li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="thank-you">Merci<a href="https://docusaurus.io/fr/blog/2022/08/01/announcing-docusaurus-2.0#thank-you" class="hash-link" aria-label="Lien direct vers Merci" title="Lien direct vers Merci" translate="no">​</a></h2>
<p>We'd like to express our gratitude to <a href="https://github.com/facebook/docusaurus/graphs/contributors" target="_blank" rel="noopener noreferrer" class="">all our contributors</a>, including:</p>
<ul>
<li class="">The Docusaurus core team: <a href="https://github.com/lex111" target="_blank" rel="noopener noreferrer" class="">Alexey Pyltsyn</a>, <a href="https://github.com/Josh-Cena" target="_blank" rel="noopener noreferrer" class="">Joshua Chen</a>, <a href="https://github.com/slorber" target="_blank" rel="noopener noreferrer" class="">Sébastien Lorber</a>, <a href="https://github.com/yangshun" target="_blank" rel="noopener noreferrer" class="">Yangshun Tay</a> and all our <a href="https://docusaurus.io/community/team" target="_blank" rel="noopener noreferrer" class="">former team members</a></li>
<li class=""><a href="https://github.com/JoelMarcey" target="_blank" rel="noopener noreferrer" class="">Joel Marcey</a> for creating Docusaurus 1.0 and supporting the Docusaurus 2.0 project at Meta Open Source</li>
<li class=""><a href="https://github.com/zpao" target="_blank" rel="noopener noreferrer" class="">Paul O’Shannessy</a> for supporting the development of all the next versions of Docusaurus at Meta Open Source</li>
<li class=""><a href="https://github.com/ericnakagawa" target="_blank" rel="noopener noreferrer" class="">Eric Nakagawa</a> for creating our cutest mascot Slash</li>
<li class=""><a href="https://github.com/endiliey" target="_blank" rel="noopener noreferrer" class="">Endilie Yacop Sucipto</a> for his significant <a class="" href="https://docusaurus.io/fr/blog/2020/01-07-tribute-to-endi.mdx">initial work on Docusaurus v2</a></li>
<li class=""><a href="https://github.com/shortcuts" target="_blank" rel="noopener noreferrer" class="">Clément Vannicatte</a>, <a href="https://github.com/Shipow" target="_blank" rel="noopener noreferrer" class="">Kevin Granger</a> and the whole Algolia team for their support</li>
<li class="">All the community members for making valuable code contributions, improving our documentation, and answering questions on <a href="https://discordapp.com/invite/docusaurus" target="_blank" rel="noopener noreferrer" class="">Discord</a></li>
</ul>
<p>We'd like to thank in particular all our <strong>Docusaurus 2.0 early adopters</strong> for assessing its alpha, beta and canary releases, providing a ton of <strong>invaluable feedback</strong>. Nous espérons sincèrement que vous avez eu une agréable expérience en l'utilisant, et que vous continuerez à nous faire part de vos commentaires sur les prochaines préversions de Docusaurus 3.0.</p>
<p>At <a href="https://opensource.fb.com/" target="_blank" rel="noopener noreferrer" class="">Meta Open Source</a>, Docusaurus is one of our <strong>most successful projects</strong>. Nous sommes impatients de voir tous les sites de documentation exceptionnels que vous allez créer&nbsp;! Don't forget to <strong>submit them to our <a class="" href="https://docusaurus.io/fr/showcase">site showcase</a></strong>!</p>
<p><strong>Now, let your imagination run wild 🤪!</strong></p>
<p>— Slash</p>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>We are on <a href="https://www.producthunt.com/posts/docusaurus-2-0" target="_blank" rel="noopener noreferrer" class="">ProductHunt</a> and <a href="https://news.ycombinator.com/item?id=32303052" target="_blank" rel="noopener noreferrer" class="">Hacker News</a>!</div><div class="admonitionContent_Knsx"><p>🙏 Partagez votre expérience d'utilisation de Docusaurus avec la communauté&nbsp;!</p><div style="display:flex"><a href="https://www.producthunt.com/posts/docusaurus-2-0?utm_source=badge-featured&amp;utm_medium=badge&amp;utm_souce=badge-docusaurus-2-0" target="_blank" rel="noopener noreferrer" class="producthunt-badge-widget" style="display:block;width:250px;height:54px"><img class="producthunt-badge-widget" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=353916&amp;theme=light" alt="Docusaurus 2.0 - Build optimized websites quickly, focus on your content. | Product Hunt" style="width:250px;height:54px;max-width:initial" width="250" height="54"></a><a href="https://news.ycombinator.com/item?id=32303052" target="_blank" rel="noopener noreferrer" style="display:block;width:54px;height:54px"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="54" height="54"><path fill="#FF6D00" d="M42 42H6V6h36v36z"></path><path fill="#FFF" d="M8 8v32h32V8H8zm30 30H10V10h28v28z"></path><path fill="#FFF" d="M23 32h2v-6l5.5-10h-2.1L24 24.1 19.6 16h-2.1L23 26z"></path></svg></a></div></div></div>
<p><img decoding="async" loading="lazy" alt="Slash plushies" src="https://docusaurus.io/fr/assets/images/slash-plushies-71b7a47477442dfcf890627669aba97d.jpg" width="1332" height="1331" class="img_vXGZ"></p>]]></content:encoded>
            <author>sidachen2003@gmail.com (Joshua Chen)</author>
            <author>lex@php.net (Alexey Pyltsyn)</author>
            <category>version</category>
        </item>
        <item>
            <title><![CDATA[Récapitulatif de Docusaurus 2021]]></title>
            <link>https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap</link>
            <guid>https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap</guid>
            <pubDate>Mon, 24 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Docusaurus a fait de grands progrès en 2021 ! We've seen a lot of traction and just crossed 30k stars on GitHub!]]></description>
            <content:encoded><![CDATA[<p>Docusaurus a fait de grands progrès en 2021&nbsp;! We've seen a lot of traction and just crossed <strong>30k stars on GitHub</strong>!</p>
<p>We've <strong>reached full feature parity</strong> with v1 after <a class="" href="https://docusaurus.io/fr/blog/2021/03-09-releasing-docusaurus-i18n.mdx">the release of internationalization</a>, <a class="" href="https://docusaurus.io/fr/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx">announced our <strong>first beta</strong></a>, and welcomed <strong>significantly more users</strong> this year.</p>
<p>The <strong>official v2 release</strong> is just around the corner! Follow the <a href="https://github.com/facebook/docusaurus/issues/6113" target="_blank" rel="noopener noreferrer" class="">roadmap issue</a> for any latest news.</p>
<p><img decoding="async" loading="lazy" src="https://docusaurus.io/fr/assets/images/thumbnail-dbb46fec970f4431a6846603224dd2fe.png" width="1000" height="562" class="img_vXGZ"></p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="highlights">Points importants<a href="https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap#highlights" class="hash-link" aria-label="Lien direct vers Points importants" title="Lien direct vers Points importants" translate="no">​</a></h2>
<p>Commençons par passer en revue quelques faits marquants de cette année. Remember the <a class="" href="https://docusaurus.io/fr/blog/2021/05-12-announcing-docusaurus-two-beta/index.mdx#whats-next">todo-list</a> from half a year ago? Il est temps de la sortir à nouveau et de voir jusqu'où nous sommes arrivés&nbsp;!</p>
<ul>
<li class=""><strong>Internationalization</strong>: officially released four months after its initial landing in late 2020. Seen great success in <a class="" href="https://docusaurus.io/fr/showcase?tags=i18n">many projects</a></li>
<li class=""><strong>Autogenerated sidebars</strong>: no need to maintain a big <code>sidebars.js</code> anymore</li>
<li class=""><strong>Webpack 5</strong>: significantly improved build performance</li>
<li class=""><strong>Trailing slash config</strong>: seamless integration with any content hosting provider</li>
<li class=""><strong>Redesigned mobile navigation</strong>: mobile users now enjoy all navigation features as on desktop</li>
<li class=""><strong>UI improvements</strong>: more accessible quotes, better admonitions, back-to-top button...</li>
<li class=""><strong>Blog multi-authors</strong>: credit all the amazing contributors that collaborated on one blog post!</li>
<li class=""><strong>More blog features</strong>: archive page, structured data for SEO, full post content in feeds – empowering you to ship a fully-featured blog in no time</li>
<li class=""><strong>Asset collocation</strong>: no need for a bloated static folder anymore: colocate your images with Markdown files</li>
<li class=""><strong>Sidebar category index pages</strong>: category labels can now be associated with pages, enabling better doc organization</li>
</ul>
<p>Notre base de code a également été perfectionnée au fil du temps. Nous avons amélioré la couverture des tests, migré tous les paquets vers TypeScript et réduit la taille de nos paquets publiés d'un maximum de 60 %&nbsp;!</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="trends">Tendances<a href="https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap#trends" class="hash-link" aria-label="Lien direct vers Tendances" title="Lien direct vers Tendances" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="npm">npm<a href="https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap#npm" class="hash-link" aria-label="Lien direct vers npm" title="Lien direct vers npm" translate="no">​</a></h3>
<p>Docusaurus v2 continue de croître régulièrement. L'installation de la v2 est maintenant 8 fois plus importante que la v1. En ce qui concerne les téléchargements hebdomadaires, nous avons assisté à une triple augmentation (+209,4 %), passant de 28 066 début janvier à un sommet de 86 846 à la mi-décembre.</p>
<p><a href="https://www.npmtrends.com/docusaurus-vs-@docusaurus/core" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" alt="Docusaurus v1 vs. v2 npm trends of the year 2021. Les installations de Docusaurus v2 sont en constante augmentation, alors que celles de v1 sont presque stables. La V1 reste à 10 000, tandis que la v2 passe de 30 000 à près de 90  000. There&amp;#39;s a sharp drop from 90000 to 40000 just before the Jan 2022 line." src="https://docusaurus.io/fr/assets/images/npm-trend-1e69b5c9e35be8bd6d9ac6fbaaf313d7.png" width="800" height="483" class="img_vXGZ"></a></p>
<p>(Ah, le classique repas de Noël...)</p>
<p>We released 18 versions, going from <code>2.0.0-alpha.71</code> to <code>2.0.0-beta.14</code>. C'est une version tous les 20 jours&nbsp;!</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="github">GitHub<a href="https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap#github" class="hash-link" aria-label="Lien direct vers GitHub" title="Lien direct vers GitHub" translate="no">​</a></h3>
<ul>
<li class=""><strong>Stars</strong>: 20,460 → 29,679 (+45.1% y/y). Et, juste avant que cet article du blog soit publié, nous avons atteint 30k stars&nbsp;!</li>
<li class=""><strong>Total contributors</strong>: 512 → 773 (+51.0% y/y)</li>
<li class=""><strong>Dependents</strong>: 5,039 → 14,579 (+189.3% y/y) for v2, and 6,311 → 7,581 (+20.1% y/y) for v1</li>
<li class=""><strong>Commits</strong>: 1,187 commits in the past year, averaging 23 commits every week</li>
<li class=""><strong>Issues</strong>: 619 issues opened, 505 of them eventually resolved</li>
<li class="">A <a href="https://github.com/Josh-Cena" target="_blank" rel="noopener noreferrer" class=""><strong>new core team member</strong></a> (yep, that's me 😝)</li>
</ul>
<p>Notre tendance de star est également très positive. Compared to similar projects, we are <strong>growing at a faster rate</strong>:</p>
<p><img decoding="async" loading="lazy" alt="Stars trend by year of 9 static site generators. Next.js grows the fastest, with Docusaurus at the 4th place in terms of growth rate." src="https://docusaurus.io/fr/assets/images/star-history-c7ba492b822fed1336d08fe449f87840.png" width="800" height="550" class="img_vXGZ"></p>
<p>With an 8.4k increase in stars, we are ranked number 3 in this year's <a href="https://risingstars.js.org/2021/en#section-ssg" target="_blank" rel="noopener noreferrer" class="">JavaScript rising stars of static site generators</a>, preceded only by Next.js and Astro.</p>
<p><img decoding="async" loading="lazy" alt="Docusaurus placing 3rd in the &amp;quot;Static Sites&amp;quot; ranking list" src="https://docusaurus.io/fr/assets/images/rising-stars-56326450d25b95f221f56db3b352c724.png" width="600" height="412" class="img_vXGZ"></p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="featured-adoptions">Adoptions en vedette<a href="https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap#featured-adoptions" class="hash-link" aria-label="Lien direct vers Adoptions en vedette" title="Lien direct vers Adoptions en vedette" translate="no">​</a></h2>
<p>Our showcase has welcomed a few new <a class="" href="https://docusaurus.io/fr/showcase?tags=favorite">"favorite" sites</a> that showcase the true potential of Docusaurus 2's pluggable architecture.</p>
<ul>
<li class=""><a href="https://wiki.iota.org/" target="_blank" rel="noopener noreferrer" class=""><strong>IOTA-wiki</strong></a></li>
</ul>
<p><img decoding="async" loading="lazy" alt="Iota wiki light mode" src="https://docusaurus.io/fr/assets/images/iota-light-d899be0c1eb939a5ad13e2ecca4eb951.png#gh-light-mode-only" width="800" height="456" class="img_vXGZ"><img decoding="async" loading="lazy" alt="Iota wiki dark mode" src="https://docusaurus.io/fr/assets/images/iota-dark-986d9518ba0e03583d734212ba93539d.png#gh-dark-mode-only" width="800" height="456" class="img_vXGZ"></p>
<ul>
<li class=""><a href="https://docs.dyte.io/docs/home/introduction/" target="_blank" rel="noopener noreferrer" class=""><strong>Dyte</strong></a></li>
</ul>
<p><img decoding="async" loading="lazy" alt="Dyte light mode" src="https://docusaurus.io/fr/assets/images/dyte-light-24caa76f96400453386185ae6bc06b8a.png#gh-light-mode-only" width="800" height="454" class="img_vXGZ"><img decoding="async" loading="lazy" alt="Dyte dark mode" src="https://docusaurus.io/fr/assets/images/dyte-dark-b9748e4bcb4281880ff1856519d58b38.png#gh-dark-mode-only" width="800" height="454" class="img_vXGZ"></p>
<ul>
<li class=""><a href="https://ionicframework.com/docs" target="_blank" rel="noopener noreferrer" class=""><strong>Ionic</strong></a></li>
</ul>
<p><img decoding="async" loading="lazy" alt="Ionic light mode" src="https://docusaurus.io/fr/assets/images/ionic-light-b8a9c77c71a99f4c71a16584dac8ccf3.png#gh-light-mode-only" width="800" height="456" class="img_vXGZ"><img decoding="async" loading="lazy" alt="Ionic dark mode" src="https://docusaurus.io/fr/assets/images/ionic-dark-17086f816052f02e84054fe002256ed9.png#gh-dark-mode-only" width="800" height="456" class="img_vXGZ"></p>
<ul>
<li class=""><a href="https://www.courier.com/docs/" target="_blank" rel="noopener noreferrer" class=""><strong>Courier</strong></a></li>
</ul>
<p><img decoding="async" loading="lazy" alt="Courier" src="https://docusaurus.io/fr/assets/images/courier-624bbae7cbef3b4e7533d1976e35f842.png" width="800" height="454" class="img_vXGZ"></p>
<p>La créativité des utilisateurs de Docusaurus dépasse notre imagination 🤩 Nous sommes impatients de voir de plus en plus d'adoptants tirer parti des fonctionnalités de contenu de Docusaurus tout en explorant des designs de thèmes originaux&nbsp;! If your site uses Docusaurus, we would love to <a href="https://github.com/facebook/docusaurus/edit/main/website/src/data/users.tsx" target="_blank" rel="noopener noreferrer" class="">have it in our showcase</a>.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="community">Communauté<a href="https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap#community" class="hash-link" aria-label="Lien direct vers Communauté" title="Lien direct vers Communauté" translate="no">​</a></h2>
<p>As an active moderator on <a href="https://discord.gg/docusaurus" target="_blank" rel="noopener noreferrer" class="">Discord</a>, I can clearly see the community thriving. De nombreuses questions fréquemment posées sont désormais intégrées dans notre documentation, et certaines demandes de fonctionnalités ont également été mises en œuvre. Le projet et la communauté s'enrichissent mutuellement - à titre d'exemple, j'étais auparavant un contributeur de la communauté avant de devenir un mainteneur.</p>
<p>We are constantly mentioned on X with inspirational feedback:</p>
<blockquote>
<p><strong>@docusaurus</strong> is amazing! je n'arrive pas à croire que c'est si simple à utiliser.</p>
</blockquote>
<blockquote>
<p>Aucun plugin, outil ou étape de compilation supplémentaire. Cela fonctionne dès le départ.</p>
</blockquote>
<blockquote>
<p>I love <strong>@docusaurus</strong>. Sans Docusaurus, je n'aurais pas pu construire les API, les didacticiels et les blogs contenus dans mon site de manière efficace et belle dans le cadre de mon flux de travail.</p>
</blockquote>
<p>And we keep every one of them in <a href="https://x.com/sebastienlorber/timelines/1392048416872706049" target="_blank" rel="noopener noreferrer" class="">our little box</a> 😄 If you enjoy Docusaurus yourself, keep tagging us with your comments!</p>
<p>As we approach the official release, we are interested in knowing more about what people are doing out there: <a href="https://github.com/facebook/docusaurus/discussions/4025" target="_blank" rel="noopener noreferrer" class="">plugin authors</a>, <a href="https://github.com/facebook/docusaurus/discussions/5468" target="_blank" rel="noopener noreferrer" class="">creators of customized sites</a>, and <a href="https://github.com/facebook/docusaurus/discussions/4610" target="_blank" rel="noopener noreferrer" class="">all new users</a> – please keep us posted about your achievements so we can steer our development to better serve your needs.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="going-forward">Aller de l'avant<a href="https://docusaurus.io/fr/blog/2022/01/24/docusaurus-2021-recap#going-forward" class="hash-link" aria-label="Lien direct vers Aller de l'avant" title="Lien direct vers Aller de l'avant" translate="no">​</a></h2>
<p>Au cours des derniers mois, nous n'avons cessé de parler de la phase release-candidate de Docusaurus, et oui, elle est presque arrivée. We have created a dedicated <a href="https://github.com/facebook/docusaurus/milestone/15" target="_blank" rel="noopener noreferrer" class="">milestone</a> to keep track of all issues to solve before we can confidently progress to the next stage. In short, we want to build a <strong>more robust theming workflow</strong>, empowering creative site creators to customize our default theme without fearing breaking changes as they upgrade. Cela comprendra&nbsp;:</p>
<ul>
<li class="">Guidelines on <strong>component organization</strong>. Nous voulons que les composants du thème aient la bonne modularité, de sorte que lorsque vous souhaitez personnaliser une partie de votre site, il y a toujours un composant qui fait exactement ce dont vous avez besoin.</li>
<li class="">Improvements to the <strong>swizzle CLI</strong>. Nous voulons que les utilisateurs l’utilisent avec plaisir, et qu’il vous aide à travers tous les scénarios de swizzling possibles.</li>
<li class="">Refactoring our <strong>theme APIs</strong>. Nous voulons que tous les composants swizzlables soient réellement appropriés pour le swizzling, donc les composants non-UI seront relocalisés.</li>
<li class=""><strong>Docs</strong>. Nous voulons que nos documents soient le plus accessibles possible à tout le monde, des codeurs débutants aux développeurs web expérimentés. Nous l'organiserons comme un tutoriel plus évolutif qui peut être bénéfique pour tous les niveaux de compétence.</li>
</ul>
<p>Read more about plans for Docusaurus 2.0 in this <a href="https://github.com/facebook/docusaurus/issues/6113" target="_blank" rel="noopener noreferrer" class="">roadmap issue</a>. La version 2.0 sera une plus meilleure version avec l'aide de la communauté, alors n'hésitez pas à partager vos opinions et vos suggestions sous l'une des rubriques des jalons&nbsp;!</p>
<p>Comme l'équipe centrale travaille d'arrache-pied pour livrer la version de distribution générale, nous prévoyons de publier d'autres fonctionnalités utiles sous forme de versions mineures après la 2.0. We have even made further plans for <a href="https://github.com/facebook/docusaurus/milestone/16" target="_blank" rel="noopener noreferrer" class="">architectural changes in 3.0</a>!</p>
<p>Avec la sortie officielle de Docusaurus 2.0, nous sommes certains de voir beaucoup plus de nouvelles adoptions et de migrations depuis la v1.</p>
<p>We'd like to express our gratitude to <a href="https://github.com/facebook/docusaurus/graphs/contributors?from=2021-01-01&amp;to=2022-01-01&amp;type=c" target="_blank" rel="noopener noreferrer" class="">all the contributors in 2021</a>, including:</p>
<ul>
<li class="">The core team: <a href="https://github.com/lex111" target="_blank" rel="noopener noreferrer" class="">Alexey Pyltsyn</a>, <a href="https://github.com/slorber" target="_blank" rel="noopener noreferrer" class="">Sébastien Lorber</a>, <a href="https://github.com/Josh-Cena" target="_blank" rel="noopener noreferrer" class="">Joshua Chen</a>, and <a href="https://github.com/yangshun" target="_blank" rel="noopener noreferrer" class="">Yangshun Tay</a> for moderating the community, publicizing Docusaurus, triaging issues, and implementing new features</li>
<li class=""><a href="https://github.com/JoelMarcey" target="_blank" rel="noopener noreferrer" class="">Joel Marcey</a> for creating Docusaurus and supporting its development all along</li>
<li class="">The Algolia team for helping Docusaurus users <a class="" href="https://docusaurus.io/fr/blog/2021/11-21-algolia-docsearch-migration/index.mdx">migrate to the new DocSearch</a> and answering search-related questions</li>
<li class="">Tous les membres actifs de la communauté pour apporter de précieuses contributions de code, améliorer notre documentation et répondre aux questions sur Discord</li>
</ul>
<p>À bientôt, 2021, et faisons un beau 2022&nbsp;!</p>]]></content:encoded>
            <author>sidachen2003@gmail.com (Joshua Chen)</author>
            <category>récapitulatif</category>
        </item>
        <item>
            <title><![CDATA[Migration de DocSearch]]></title>
            <link>https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration</link>
            <guid>https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration</guid>
            <pubDate>Sun, 21 Nov 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[DocSearch is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.]]></description>
            <content:encoded><![CDATA[<p><a href="https://docsearch.algolia.com/" target="_blank" rel="noopener noreferrer" class="">DocSearch</a> is migrating to a new, more powerful system, which gives users their own Algolia application and new credentials.</p>
<p>Docusaurus site owners should upgrade their configuration with their new credentials <strong>by February 1, 2022</strong>, existing search indexes will be frozen and become read-only after this date.</p>
<!-- -->
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="upgrading-your-docusaurus-site">Mise à jour de votre site Docusaurus<a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#upgrading-your-docusaurus-site" class="hash-link" aria-label="Lien direct vers Mise à jour de votre site Docusaurus" title="Lien direct vers Mise à jour de votre site Docusaurus" translate="no">​</a></h2>
<p>Dans les prochaines semaines, les propriétaires de sites Docusaurus recevront un courriel les invitant à rejoindre leur application personnelle Algolia.</p>
<p>This email will include a new <code>appId</code> and <code>apiKey</code> to use in your Docusaurus configuration.</p>
<p>Les seules choses que vous avez à faire&nbsp;:</p>
<ul>
<li class="">Rejoignez l'application Algolia (éventuellement en créant un nouveau compte Algolia)</li>
<li class="">Mettez à jour la configuration de votre site.</li>
</ul>
<div class="language-js codeBlockContainer_jDV4 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_U6Q0">docusaurus.config.js</div><div class="codeBlockContent_cKMj"><pre tabindex="0" class="prism-code language-js codeBlock_Gebt thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FJaf"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#CF222E">const</span><span class="token plain"> config </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#005CC5">themeConfig</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#005CC5">algolia</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">appId</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'&lt;NEW_APP_ID&gt;'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain">      </span><span class="token literal-property property" style="color:#005CC5">apiKey</span><span class="token operator" style="color:#D73A49">:</span><span class="token plain"> </span><span class="token string" style="color:#C6105F">'&lt;NEW_SEARCH_API_KEY&gt;'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">module</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator" style="color:#D73A49">=</span><span class="token plain"> config</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-info admonition_o5H7 alert alert--info"><div class="admonitionHeading_FzoX"><span class="admonitionIcon_rXq6"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_Knsx"><p><code>appId</code> is now <strong>required</strong>.</p><p>Ces clés ne sont pas des secrets et peuvent être ajoutées à votre dépôt Git.</p></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="docsearch-has-a-new-home">DocSearch a une nouvelle maison&nbsp;! <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#docsearch-has-a-new-home" class="hash-link" aria-label="Lien direct vers DocSearch a une nouvelle maison&nbsp;! " title="Lien direct vers DocSearch a une nouvelle maison&nbsp;! " translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="what-is-docsearch">Qu'est-ce que DocSearch&nbsp;? <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#what-is-docsearch" class="hash-link" aria-label="Lien direct vers Qu'est-ce que DocSearch&nbsp;? " title="Lien direct vers Qu'est-ce que DocSearch&nbsp;? " translate="no">​</a></h3>
<p><a href="https://docsearch.algolia.com/" target="_blank" rel="noopener noreferrer" class="">DocSearch</a> is a program created by <a href="http://algolia.com/" target="_blank" rel="noopener noreferrer" class="">Algolia</a>, which offers search to technical documentation of Open Source projects and technical blogs <strong>for free</strong>.</p>
<p>You can <a href="https://docsearch.algolia.com/docs/what-is-docsearch/" target="_blank" rel="noopener noreferrer" class="">read more here</a>, and <a href="https://docsearch.algolia.com/apply" target="_blank" rel="noopener noreferrer" class="">apply</a> if you'd like to give it a try!</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="what-is-this-migration-about">De quoi traite cette migration&nbsp;? <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#what-is-this-migration-about" class="hash-link" aria-label="Lien direct vers De quoi traite cette migration&nbsp;? " title="Lien direct vers De quoi traite cette migration&nbsp;? " translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="motivation">Motivation<a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#motivation" class="hash-link" aria-label="Lien direct vers Motivation" title="Lien direct vers Motivation" translate="no">​</a></h3>
<p>With the upcoming stable release of <a href="https://docsearch.algolia.com/docs/DocSearch-v3" target="_blank" rel="noopener noreferrer" class="">DocSearch UI</a>, we wanted to go further and provide better tooling for our users to improve their search, but also leverage the full potential of Algolia.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="whats-new">Quoi de neuf ? <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#whats-new" class="hash-link" aria-label="Lien direct vers Quoi de neuf ? " title="Lien direct vers Quoi de neuf ? " translate="no">​</a></h3>
<p>DocSearch now leverages the <a href="https://www.algolia.com/products/search-and-discovery/crawler/" target="_blank" rel="noopener noreferrer" class="">Algolia Crawler</a>, which includes a web interface that will allow you to:</p>
<ul>
<li class="">Lancer, planifier et surveiller vos recherches de contenu</li>
<li class="">Modifier votre fichier de configuration à partir d'un éditeur en ligne</li>
<li class="">Tester vos résultats avec DocSearch v3</li>
</ul>
<p><img decoding="async" loading="lazy" alt="The Algolia crawler front page showing the project&amp;#39;s overview, such as last complete crawl and indices" src="https://docusaurus.io/fr/assets/images/crawler-overview-6224cc4c7b20511010652f3f4ed5904e.png" width="3832" height="1882" class="img_vXGZ"></p>
<p><img decoding="async" loading="lazy" alt="The Algolia config editor opened to the docusaurus-2 config. The right pane shows the results for index and various facet filters." src="https://docusaurus.io/fr/assets/images/editor-823e50dbed8e508bd5a69c708bab8928.png" width="3832" height="1880" class="img_vXGZ"></p>
<p>But also, more Algolia features in <strong>your own Algolia app</strong>:</p>
<ul>
<li class="">Gestion d'équipe</li>
<li class="">Explorer et voir comment vos documents sont indexés dans Algolia</li>
<li class="">Essayez d'autres fonctionnalités d'Algolia avec des évaluations gratuites</li>
</ul>
<p><img decoding="async" loading="lazy" alt="The Algolia index overview page, showing various filters and the details of every single index" src="https://docusaurus.io/fr/assets/images/index-overview-ca216346e6eee6881443644b6d7d8fe8.png" width="3834" height="1882" class="img_vXGZ"></p>
<p><img decoding="async" loading="lazy" alt="The Algolia index analytics page, showing trends for total users, total searches, etc." src="https://docusaurus.io/fr/assets/images/index-analytics-f9c27da3900de6206e949736b1cd8101.png" width="3810" height="1876" class="img_vXGZ"></p>
<p>And of course, <strong>a lot more, for free</strong>.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="faq">FAQ<a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#faq" class="hash-link" aria-label="Lien direct vers FAQ" title="Lien direct vers FAQ" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="im-using-docusaurus-and-docsearch-can-i-migrate">J'utilise Docusaurus et DocSearch, puis-je migrer&nbsp;? <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#im-using-docusaurus-and-docsearch-can-i-migrate" class="hash-link" aria-label="Lien direct vers J'utilise Docusaurus et DocSearch, puis-je migrer&nbsp;? " title="Lien direct vers J'utilise Docusaurus et DocSearch, puis-je migrer&nbsp;? " translate="no">​</a></h3>
<p>Au moment où nous écrivons ceci, nous sommes encore à un stade précoce de la migration. Nous faisons de petits lots chaque semaine mais nous allons augmenter la charge sous peu, alors soyez patient et gardez un œil sur votre boîte aux lettres, vous serez contacté dès que votre application Algolia sera prête&nbsp;!</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="where-can-i-read-more-about-this">Où puis-je en savoir plus à ce sujet&nbsp;? <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#where-can-i-read-more-about-this" class="hash-link" aria-label="Lien direct vers Où puis-je en savoir plus à ce sujet&nbsp;? " title="Lien direct vers Où puis-je en savoir plus à ce sujet&nbsp;? " translate="no">​</a></h3>
<p>We wrote a small <a href="https://docsearch.algolia.com/docs/migrating-from-legacy" target="_blank" rel="noopener noreferrer" class="">migration guide</a> but you'll have more detailed information in the migration email.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="i-received-the-migration-email-but-the-invite-expired">J'ai reçu l'email de migration mais l'invitation a expiré<a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#i-received-the-migration-email-but-the-invite-expired" class="hash-link" aria-label="Lien direct vers J'ai reçu l'email de migration mais l'invitation a expiré" title="Lien direct vers J'ai reçu l'email de migration mais l'invitation a expiré" translate="no">​</a></h3>
<p>Please contact us via either <a href="mailto:docsearch@algolia.com" target="_blank" rel="noopener noreferrer" class="">email</a> or <a href="https://discord.gg/bRTacwYrfX" target="_blank" rel="noopener noreferrer" class="">DocSearch's Discord</a> or on <a href="https://discordapp.com/invite/docusaurus" target="_blank" rel="noopener noreferrer" class="">Docusaurus's Discord #algolia channel</a></p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="i-have-feedback">J'ai un retour d'expérience&nbsp;! <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#i-have-feedback" class="hash-link" aria-label="Lien direct vers J'ai un retour d'expérience&nbsp;! " title="Lien direct vers J'ai un retour d'expérience&nbsp;! " translate="no">​</a></h3>
<p>For any feedback regarding our documentation or the DocSearch UI component, you can open an issue <a href="https://github.com/algolia/docsearch/issues" target="_blank" rel="noopener noreferrer" class="">on our GitHub repository</a>, but also contact us via the methods above.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_qJOx" id="can-i-still-run-my-own-docsearch-instance">Puis-je quand même exécuter ma propre instance DocSearch&nbsp;? <a href="https://docusaurus.io/fr/blog/2021/11/21/algolia-docsearch-migration#can-i-still-run-my-own-docsearch-instance" class="hash-link" aria-label="Lien direct vers Puis-je quand même exécuter ma propre instance DocSearch&nbsp;? " title="Lien direct vers Puis-je quand même exécuter ma propre instance DocSearch&nbsp;? " translate="no">​</a></h3>
<p>In favor of the new infrastructure and DocSearch v3, we will no longer maintain our beloved <a href="https://github.com/algolia/docsearch-scraper" target="_blank" rel="noopener noreferrer" class="">DocSearch scraper</a> and <a href="https://github.com/algolia/docsearch/tree/master" target="_blank" rel="noopener noreferrer" class="">DocSearch v2</a>, but the repositories will still be available and open to pull requests.</p>
<p>The previous documentation (now called <code>legacy</code>) remains available as well as our <a href="https://docsearch.algolia.com/docs/legacy/run-your-own" target="_blank" rel="noopener noreferrer" class=""><code>run your own</code></a> guide.</p>]]></content:encoded>
            <category>Search</category>
        </item>
    </channel>
</rss>