docusaurus/assets/js/c4990fee.57770a9a.js
2024-10-25 09:18:10 +00:00

1 line
No EOL
18 KiB
JavaScript

"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([["9023"],{69175:function(e,s,t){t.d(s,{Z:function(){return n}});let n=t.p+"assets/images/datagit-rtl-screenshot-0def4b4e4d5f458ea864774e78b0bf8f.png"},29954:function(e,s,t){t.d(s,{Z:function(){return n}});let n=t.p+"assets/images/docusaurus-npm-trends-3c618d573fc9ca319e54667383ea1e01.png"},91500:function(e,s,t){t.d(s,{Z:function(){return n}});let n=t.p+"assets/images/docusaurus-plushie-banner-a60f7593abca1e3eef26a9afa244e4fb.jpeg"},51487:function(e,s,t){t.d(s,{Z:function(){return n}});let n=t.p+"assets/images/jest-screenshot-fa8ba3dd1b0ebbf923ed56274f0e4f5e.png"},90257:function(e,s,t){t.d(s,{Z:function(){return n}});let n=t.p+"assets/images/react-native-screenshot-d5ace12ce89fe59dc14ac25859685b01.png"},27165:function(e,s,t){t.r(s),t.d(s,{assets:function(){return c},contentTitle:function(){return o},default:function(){return h},frontMatter:function(){return a},metadata:function(){return n},toc:function(){return u}});var n=t(15712),i=t(24246),r=t(80980);let a={title:"Docusaurus 2020 Recap",authors:["slorber"],tags:["recap"],image:"/img/docusaurus-2020-recap.png"},o=void 0,c={authorsImageUrls:[void 0]},u=[{value:"Docusaurus 2 highlights",id:"docusaurus-2-highlights",level:2},{value:"Docusaurus 2 growth",id:"docusaurus-2-growth",level:2},{value:"GitHub Activity",id:"github-activity",level:2},{value:"Collaboration with Major League Hacking",id:"collaboration-with-major-league-hacking",level:2},{value:"Media",id:"media",level:2},{value:"Community",id:"community",level:2},{value:"What's next?",id:"whats-next",level:2}];function l(e){let s={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"2020 was great for Docusaurus"}),", despite ",(0,i.jsx)(s.a,{href:"https://docusaurus.io/blog/2020/01/07/tribute-to-endi",children:"a regrettable start"})," and a tumultuous year for everyone."]}),"\n",(0,i.jsxs)(s.p,{children:["We continued to invest in ",(0,i.jsx)(s.a,{href:"https://docusaurus.io/",children:"Docusaurus 2"}),", and made it reach ",(0,i.jsx)(s.strong,{children:"full feature parity"})," with ",(0,i.jsx)(s.a,{href:"https://v1.docusaurus.io/",children:"Docusaurus 1"}),"."]}),"\n",(0,i.jsxs)(s.p,{children:["We now ",(0,i.jsx)(s.strong,{children:"recommend Docusaurus 2"})," as the ",(0,i.jsx)(s.strong,{children:"default choice"})," to start a new Docusaurus project and encourage v1 users to ",(0,i.jsx)(s.a,{href:"https://docusaurus.io/docs/migration",children:"migrate to Docusaurus 2"}),"."]}),"\n",(0,i.jsxs)(s.p,{children:["We are ",(0,i.jsx)(s.strong,{children:"still in alpha"}),", but expect ",(0,i.jsx)(s.strong,{children:"some good news very soon"}),"!"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Three Docusaurus plushies laid side-by-side on the table",src:t(91500).Z+"",width:"1500",height:"500"})}),"\n",(0,i.jsx)(s.h2,{id:"docusaurus-2-highlights",children:"Docusaurus 2 highlights"}),"\n",(0,i.jsx)(s.p,{children:"We have worked on many features this year, and would like to highlight the most significant ones:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"i18n"}),": easily translate your Docusaurus site, released soon! (",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/pull/3325",children:"preview"}),", ",(0,i.jsx)(s.a,{href:"https://docusaurus.io/docs/next/i18n/introduction",children:"doc"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Version dropdown"}),": enable contextual version switch"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Versioning options"}),": solving the most common pain-points users had with versioning"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Contextual search"}),": search in the current version, use the brand-new DocSearch 3 experience"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Markdown pages"}),": use Markdown instead of React components to create standalone pages"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Better theme"}),": various UI, UX and accessibility improvements"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"PWA"}),": add offline support to your site, and make it installable"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Fail-fast"}),": strict config validation, detect broken links, and prevent bad production deployments"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Multi-instance"}),": use the docs plugin twice on a single site (e.g. iOS/Android SDK docs)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Migration CLI"}),": automate the upgrade from Docusaurus 1"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"CodeSandbox"}),": assess Docusaurus easily from your browser with ",(0,i.jsx)(s.a,{href:"https://new.docusaurus.io/",children:"new.docusaurus.io"})]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Canary releases"}),": use the ",(0,i.jsx)(s.code,{children:"@canary"})," npm tag to use the upcoming release before anyone else"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"TypeScript"}),": progressive adoption for internal code, and improve usage for users"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Publish Infima"}),": it is now ",(0,i.jsx)(s.a,{href:"https://github.com/facebookincubator/infima",children:"open-source"})]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"docusaurus-2-growth",children:"Docusaurus 2 growth"}),"\n",(0,i.jsxs)(s.p,{children:["The plan to ",(0,i.jsx)(s.a,{href:"https://docusaurus.io/blog/2019/12/30/docusaurus-2019-recap",children:"rebuild Docusaurus from scratch in 2019"})," paid off: after a slow start, Docusaurus 2 has been widely adopted and has ",(0,i.jsx)(s.strong,{children:"already outgrown Docusaurus 1"})," usage."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Docusaurus v1 vs. v2 npm trends of the year 2020. The installations of Docusaurus v2 is visibly up-growing, while v1 is slightly downward. V1 starts at 15000 and ends at 10000, while v2 starts at 2000 and ends at 25000. The intersection happens around June 2020.",src:t(29954).Z+"",width:"2480",height:"922"})}),"\n",(0,i.jsxs)(s.p,{children:["Notable ",(0,i.jsx)(s.strong,{children:"projects, startups, large companies, and individuals"})," adopted Docusaurus 2 (",(0,i.jsx)(s.a,{href:"https://docusaurus.io/showcase",children:"showcase"}),"):"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://supabase.io",children:"Supabase"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://reactnavigation.org",children:"React Navigation"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://react-redux.js.org/",children:"React Redux"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://vector.dev",children:"Vector"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://docsearch.algolia.com",children:"Algolia DocSearch"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://sap.github.io/cloud-sdk",children:"SAP Cloud SDK"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://xsoar.pan.dev",children:"Palo Alto Cortex XSOAR"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://portfoliosaurus.now.sh",children:"Qudd\xfas George's website"})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["We helped ",(0,i.jsx)(s.strong,{children:"large scale Docusaurus 1 sites to upgrade"}),", ensuring a proper ",(0,i.jsx)(s.strong,{children:"migration path"})," and ",(0,i.jsx)(s.strong,{children:"feature parity"}),"."]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.a,{href:"https://reactnative.dev/",children:"React Native"})," was successfully upgraded to Docusaurus 2 (",(0,i.jsx)(s.a,{href:"http://archive.reactnative.dev/",children:"archived v1 site"}),"):"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"React Native's new website built with Docusaurus v2",src:t(90257).Z+"",width:"2914",height:"1664"})}),"\n",(0,i.jsxs)(s.p,{children:["Localized Docusaurus 1 sites (like ",(0,i.jsx)(s.strong,{children:"Jest"}),") will be able to upgrade too:"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Jest's new website built with Docusaurus v2 in Japanese",src:t(51487).Z+"",width:"3324",height:"1878"})}),"\n",(0,i.jsxs)(s.p,{children:["We also saw the ",(0,i.jsx)(s.strong,{children:(0,i.jsx)(s.a,{href:"https://datagit.ir/",children:"first right-to-left"})})," Docusaurus 2 site published:"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Datagit's website in Persian, a right-to-left language. The sidebar appears on the right of the window and the TOC appears on the left.",src:t(69175).Z+"",width:"1447",height:"944"})}),"\n",(0,i.jsx)(s.h2,{id:"github-activity",children:"GitHub Activity"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Stars"}),": 14632 \u2192 20946 (+43.2% y/y)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Total Contributors"}),": 303 \u2192 512 (+68.9% y/y). Most of which are non-Facebook contributors"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Weekly npm Downloads"}),": 2356 \u2192 25592 (+986% y/y)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"On GitHub"}),", Docusaurus 1 is used by 6311 projects (+62.9% y/y) while Docusaurus 2 is used by 5039 projects (+1940% y/y)"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"collaboration-with-major-league-hacking",children:"Collaboration with Major League Hacking"}),"\n",(0,i.jsxs)(s.p,{children:["We have welcomed ",(0,i.jsx)(s.a,{href:"https://mlh.io/",children:"Major League Hacking"})," (MLH) fellows for 2 seasons already."]}),"\n",(0,i.jsxs)(s.p,{children:["We are very thankful for the ",(0,i.jsx)(s.strong,{children:"various contributions"})," they made, such as:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Writing the foundations of the v1 to v2 migration CLI"}),"\n",(0,i.jsx)(s.li,{children:"Help migrate the React Native website from v1 to v2"}),"\n",(0,i.jsx)(s.li,{children:"Making the config validation more strict and exhaustive, returning helpful error messages"}),"\n",(0,i.jsx)(s.li,{children:"Adding CodeSandbox support"}),"\n",(0,i.jsx)(s.li,{children:"Improving the CI pipelines: build size and Lighthouse bots"}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"We look forward to continuing this collaboration in 2021."}),"\n",(0,i.jsx)(s.h2,{id:"media",children:"Media"}),"\n",(0,i.jsxs)(s.p,{children:["Dmitry Vinnik (Developer Advocate @ Facebook) explains Docusaurus in ",(0,i.jsx)(s.a,{href:"https://www.youtube.com/watch?v=_An9EsKPhp0",children:"60 seconds"})," or ",(0,i.jsx)(s.a,{href:"https://www.youtube.com/watch?v=Yhyx7otSksg",children:"15min"})," videos."]}),"\n",(0,i.jsxs)(s.p,{children:["Rachel Nabors (Documentation Engineer @ Facebook) talked a bit about Docusaurus in ",(0,i.jsx)(s.a,{href:"https://reactnativeradio.com/episodes/178-documenting-react-native-with-rachel-nabors-gWxwySPl",children:"React Native Radio 178 (podcast)"}),", and William Candillon the ",(0,i.jsx)(s.a,{href:"https://www.youtube.com/watch?v=-zhjq2ECKq4",children:"React Native website migration (video)"}),"."]}),"\n",(0,i.jsx)(s.p,{children:"Many blog posts have been published:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://portfoliosaurus.now.sh/blog/toTheMakers",children:"To the Makers of Docusaurus"})," by Quddus George"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://davidgoss.co/blog/api-documentation-redoc-docusaurus/",children:"Richer API documentation with Redoc and Docusaurus"})," by David Goss"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://aknapen.nl/blog/how-to-build-a-plugin-for-docusaurus-v2/",children:"How to Build a Plugin for Docusaurus v2"})," by Adriaan Knapen"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://blog.axlight.com/posts/react-tracked-documentation-website-with-docusaurus-v2/",children:"React Tracked Documentation Website with Docusaurus v2"})," by Daishi Kato"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://blog.logrocket.com/easy-documentation-with-docusaurus/",children:"Easy documentation with Docusaurus"})," by Anshul Goyal (MLH fellow)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://lo-victoria.com/build-beautiful-documentation-websites-with-docusaurus",children:"Build Beautiful Documentation Websites with Docusaurus"})," by Victoria Lo"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"community",children:"Community"}),"\n",(0,i.jsxs)(s.p,{children:["The Docusaurus community continues to grow, the ",(0,i.jsx)(s.a,{href:"https://discord.gg/docusaurus",children:"Discord"})," server is quite active, and ",(0,i.jsx)(s.a,{href:"https://stackoverflow.com/questions/tagged/docusaurus",children:"Stack Overflow questions"})," keep being posted."]}),"\n",(0,i.jsxs)(s.p,{children:["The ",(0,i.jsx)(s.strong,{children:"modular architecture"})," of Docusaurus 2 allowed the community to build and publish ",(0,i.jsx)(s.a,{href:"https://docusaurus.io/community/resources#community-plugins-",children:"third-party plugins"}),". As we would like to federate better our community, if you are building a plugin, please ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/discussions/4025",children:"let us know"}),"."]}),"\n",(0,i.jsx)(s.h2,{id:"whats-next",children:"What's next?"}),"\n",(0,i.jsxs)(s.p,{children:["As the ",(0,i.jsx)(s.strong,{children:"core features of Docusaurus 2"})," have finally been built, we will be able to dedicate more time to solve the pain points and bugs reported by the community, and make Docusaurus stable and convenient enough to enter the ",(0,i.jsx)(s.strong,{children:"beta and release-candidate phase"}),"."]}),"\n",(0,i.jsxs)(s.p,{children:["With proper support for ",(0,i.jsx)(s.strong,{children:"i18n and versioning"}),", and ",(0,i.jsx)(s.strong,{children:"large scale migrations"})," such as ",(0,i.jsx)(s.strong,{children:"React Native"})," and ",(0,i.jsx)(s.strong,{children:"Jest"}),", we now have a clear migration path for all Docusaurus 1 sites."]}),"\n",(0,i.jsxs)(s.p,{children:["We still have a few ",(0,i.jsx)(s.strong,{children:"major features"})," that we would like to work on:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3522",children:"Create a theme gallery"}),", make it easy to switch from one another, and include ",(0,i.jsx)(s.strong,{children:"first-class Tailwind support"})]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4027",children:"Upgrade to Webpack 5"}),", improve performances and build times"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/3018",children:"Better compatibility with CommonMark"}),", as MDX and makes it harder for CommonMark-based sites to adopt Docusaurus"]}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/issues/4029",children:"Upgrade to MDX 2.0"})}),"\n",(0,i.jsx)(s.li,{children:"Other tasks that we might discover during 2021"}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Huge thanks to the community for ",(0,i.jsx)(s.a,{href:"https://github.com/facebook/docusaurus/graphs/contributors?from=2020-01-01&to=2021-01-01&type=c",children:"their contributions in 2020"}),", especially:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/JoelMarcey",children:"Joel Marcey"})," for creating Docusaurus and supporting the project all this time"]}),"\n",(0,i.jsxs)(s.li,{children:["the core team - ",(0,i.jsx)(s.a,{href:"https://github.com/lex111",children:"Alexey Pyltsyn"}),", ",(0,i.jsx)(s.a,{href:"https://sebastienlorber.com",children:"S\xe9bastien Lorber"}),", ",(0,i.jsx)(s.a,{href:"https://x.com/yangshunz",children:"Yangshun Tay"})]}),"\n",(0,i.jsx)(s.li,{children:"the Major League Hacking and Facebook interns for their significant impact"}),"\n",(0,i.jsx)(s.li,{children:"the Algolia team for DocSearch 3 and their support"}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://github.com/Simek",children:"Bartosz Kaszubowski"})," for his investment in the React Native migration"]}),"\n",(0,i.jsx)(s.li,{children:"the whole community for their contributions, and providing support to each other"}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"Cheers to a great 2021! \uD83C\uDF89"})]})}function h(e={}){let{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},80980:function(e,s,t){t.d(s,{Z:function(){return o},a:function(){return a}});var n=t(27378);let i={},r=n.createContext(i);function a(e){let s=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:s},e.children)}},15712:function(e){e.exports=JSON.parse('{"permalink":"/blog/2021/01/19/docusaurus-2020-recap","editUrl":"https://github.com/facebook/docusaurus/edit/main/website/blog/2021/01-19-docusaurus-2020-recap.mdx","source":"@site/blog/2021/01-19-docusaurus-2020-recap.mdx","title":"Docusaurus 2020 Recap","description":"2020 was great for Docusaurus, despite a regrettable start and a tumultuous year for everyone.","date":"2021-01-19T00:00:00.000Z","tags":[{"inline":false,"label":"Recap","permalink":"/blog/tags/recap","description":"Blog posts about Docusaurus\' year recaps"}],"readingTime":5.04,"hasTruncateMarker":true,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer, This Week In React editor","url":"https://thisweekinreact.com","page":{"permalink":"/blog/authors/slorber"},"description":"A freelance React and React-Native developer near Paris and Docusaurus maintainer. Also runs ThisWeekInReact.com, a newsletter to stay updated with the React ecosystem.\\n","socials":{"x":"https://x.com/sebastienlorber","linkedin":"https://www.linkedin.com/in/sebastienlorber/","github":"https://github.com/slorber","newsletter":"https://thisweekinreact.com"},"imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"title":"Docusaurus 2020 Recap","authors":["slorber"],"tags":["recap"],"image":"/img/docusaurus-2020-recap.png"},"unlisted":false,"lastUpdatedAt":1729847735000,"lastUpdatedBy":"S\xe9bastien Lorber","prevItem":{"title":"Releasing Docusaurus i18n","permalink":"/blog/2021/03/09/releasing-docusaurus-i18n"},"nextItem":{"title":"Tribute to Endi","permalink":"/blog/2020/01/07/tribute-to-endi"}}')}}]);