* Fix handling of empty `dependencies` section.
In Flipper, https://github.com/facebook/flipper/blob/master/website/package.json, all our dependencies live in `devDependecies` of our `package.json`. As a result `dependencies` is not set, causing a crash when running `yarn start`:
```
/Users/mweststrate/fbsource/xplat/sonar/website/node_modules/@docusaurus/core/bin/docusaurus.js:50
const siteDocusaurusPackagesForUpdate = Object.keys(sitePkg.dependencies)
^
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at Object.<anonymous> (/Users/mweststrate/fbsource/xplat/sonar/website/node_modules/@docusaurus/core/bin/docusaurus.js:50:50)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
at internal/main/run_main_module.js:17:11
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
```
Setting `"dependencies": {}`, works as work around, but this patch fixes the crash, and makes sure the deps are upgraded as well if they live in `devDependencies` instead of `dependencies`.
* formatting fix
* Add _ to dogfood docs folder to cover against edge case
* Fix edge case with MDX partials when site / content dir contains a _ prefix
* add globUtils tests
* proper dogfooding folder re-organization, all content plugins being used
* refactor dogfooding folder + expose /tests page index
* fix page plugin ignoring options.routeBasePath
* create a swizzleWarning partial for shared text
* Generalize usage of _ prefix convention to exclude content files/folders
* add api doc
* MDX loader should not expect metadata/frontmatter on MDX partial files
* feat(v2): mobile TOC
* Bug fixes and various improvements
* Redesign
* extract TOCCollapsible component
* TS improvements
* Assign sidebar name directly to the doc route => no need for either permalinkToSidebar or GlobalData
* revert changes to useWindowSize, fix FOUC issues
* extract DocSidebarDesktop component
* remove now useless menu infima classes
* TOCHeadings => rename + remove unused onClick prop
* Extract DocSidebarItem
* minor renaming
* replace GlobalData usage by a React teleport system to render in the navbar mobile sidebar menu directly from the DocPage component
* useWindowSize => simulate SSR size in dev to make FOUC issues more obvious
* fix remaining sidebar layout shift
* update docs snapshots
* remove unused code translations
* remove unused code translations
* fix minor update-code-translations bug
* Add more build-size paths to watch
* Restyle back button
* Add missing`menu` class
* extract useShallowMemoizedObject
* fix routes tests + better routes formatting
* use Translate api for labels
* use Translate api for labels
* Update translations
* Improve dark mode support for back button
* Merge branch 'master' into lex111/inline-color-code
# Conflicts:
# packages/core/dist/css/default-dark/default-dark-rtl.min.css
# packages/core/dist/css/default-dark/default-dark.min.css
# packages/core/dist/css/default/default-rtl.min.css
# packages/core/dist/css/default/default.min.css
* replace useCollapse by new useCollapsible
* Cleanup and use clean-btn for TOCCollapsible button
* Make TOC links clickable over full width
* Cleanup
* fix uncollapsible sidebar that can be collapsed + create <Collapsible> component
* dependency array typo
* rollback sidebars community commit typo
Co-authored-by: slorber <lorber.sebastien@gmail.com>
* remove webpackConfig.resolve.symlinks: true
* Add docs-test docs plugin instance to validate using a symlink folder as docs source is possible
* comment
* useful comments
This was likely a typo, and resulted in the following error when using Typescript strict mode:
node_modules/@docusaurus/types/src/index.d.ts(250,14): error TS7031: Binding element 'Content' implicitly has an 'any' type.
* fix(v2): avoid slowdown transition with huge sidebar items
* move useCollapsible to theme-common
* @docusaurus/theme-classic => watch mode should include type-checking
* refactor useCollapsible => encapsulate more behavior / state / ref inside it, making code simpler for component using it
* useCollapseAnimation => animate DOM properties directly instead of using React inline styles => optimize perf from 4 render per click to 1 render per click
* add missing items in deps array
* rename ref to collapsibleRef
* lint
Co-authored-by: slorber <lorber.sebastien@gmail.com>
* never apply trailingSlash to site root ('/baseUrl/') => only subroutes
* add deprecation comment for loadContext.baseUrl in favor of loadContext.siteConfig.baseUrl
* commit typo
* useless code
* Sitemap should respect the global trailingSlash config option.
* improve tests for createSitemap / trailingSlash
Co-authored-by: slorber <lorber.sebastien@gmail.com>
In some cases, negative sidebar positions can be useful for reversing
the sorting order with minimal maintenance overhead. For example, a docs
folder with changelogs for historical versions should be sorted in
reverse chronological order. This is easy to do for semantic version
numbers by converting them into a negative numerical representation,
e.g. 11.5.1 -> -110501.
The alternative is to make the first version start with a large position
number (e.g. 9999) and decrement it for each version. However, this
requires referring to older versions to get the current sequence number,
thus increasing maintenance overhead. It also makes the number less
intuitive and more prone to error.
Negative sidebar positions work great for this purpose, so make the
front matter validator allow them again as #4796 broke this use case.