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.
* refactor DocVersionBanner => versionMetadata prop should be forwarded instead of using "useActiveVersion" + global data
* docs version banner configuration
* add doc for versions.banner
* fix tests
* improve docs plugin option api doc
* sidebar_label should be used to compute next/previous button texts, as documented.
* improve docs frontmatter doc
* use a little bit of destructuring
* attempt to fix contentTitle issues when markdown h1 title contains inline code blocks
* mention hide_title frontmatter only prevents frontmatter.title from being added in the dom (not a markdown # title in content)
* alwayss insert MainHeading under the div.markdown container for consistency
* ensure MainHeading has no useless id
* revert https://github.com/facebook/docusaurus/pull/4859 as it's now useless: docMeta.title contains the text/frontmatter title in priority over the contentTitle
* fix docs test after revert
* improve markdownParser and fix tests
* fix docs tests
* markdownParser: restore option to remove contentTitle (mostly for blog plugin)
* use removeContentTitle for blog
* Improve sidebar config
* Edit message
* fix some little issues in the way undefined/false sidebars are handled
* remove old error message as it has been moved to a better place
Co-authored-by: Nam Hoang Le <nam.hoang.le@mgm-tp.com>
Co-authored-by: slorber <lorber.sebastien@gmail.com>
* Initial webpack 5 work
* It works on my machine (lol)
* Committing a bit more work
* It works - sorta
* Update packages/docusaurus/package.json
* at least fix prettier /shrug
* making more progress. build should work now, css stuff is still a bit broken
* Terser things
Signed-off-by: Reece Dunham <me@rdil.rocks>
* Working on things
* Vendor webpack
* Repair chunks, and tests
* Rerun prettier
* Re-add client prefetching
* Update snapshots
* Update snapshots
* I hope this works
* Remove redundant dev server code
* relock
* Trying to reduce memory usage and fix things
* Dead code elim
* Search bar works!!!
* Prefetching should work again
* lock
* ts issue
* Repair snapshot
* Run prettier
* Fix the CI for now
* fix lint-prettier
* clean-css works, now for the other one
* Fix lockfile
* Fixes prettier
* Other css minification works!!!
* Add clean-css options, fix webpack versions
Signed-off-by: Reece Dunham <me@rdil.rocks>
* Fix tests and several of the webpack loaders
Signed-off-by: Reece Dunham <me@rdil.rocks>
* Re-add support for simple css minifier
* Update other related dependencies
* Fix lockfile
* Dev server fixups
Signed-off-by: Reece Dunham <me@rdil.rocks>
* Simplify css things
* Update webpack, try with postcss 7
* Other cssnano repairs
* fix lockfile
* Clean up the babel preset
* Fix lockfile
* Bump RL SSR version
* Fix the build errors
* Lockfile fix
* It works again
* webpack 5 should close compiler after run
* add proper webpack5 persistent caching config
* upgrade webpack deps again
* reduce build perf timeouts to avoid build time regressions
* test if incremental build can run on netlify
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* test
* test
* test
* test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* fix existsSync() calls
* replace @ts-nocheck by a temporary Webpack type
* replace @ts-nocheck by a temporary Webpack type
* replace @ts-nocheck by a temporary Webpack type
* migrate existing stats.warningsFilter to config.ignoreWarnings
* remove stats from postBuild lifecycle data doc, as it is likely unused (we'll add it back if someone ask for it)
* improve build.ts TS issues + move some sync code to async
* cleanup TS of start.ts
* fix TS error
* fix TS issues
* fix TS issues
* fix ts error
* netlify test
* netlify test
* netlify test
* netlify test
* netlify test
* script cleanup
* script cleanup
* re-enable @typescript-eslint/ban-ts-comment
* Deprecate getCacheLoader / getBabelLoader but keep retrocompatibility
* useless TS
* fix and comment gca(chunkName) prefetching function
* remove deprecated mainTemplate.requireFn
* temporarily use react-loadable-ssr-addon-v5-slorber until PR merged: https://github.com/facebook/docusaurus/pull/4089
* comment unsafeCache option
* add explicit and more precise webpack targets
* splitChunks, use new type: "css/mini-extract" as it seems recommended for webpack 5
* webpack error handling:
- log error.details as documented
- keep using react-dev-utils/formatWebpackMessages for now
* fix webpack5 warnings for evalSourceMapMiddleware.js
* typo
* rename webpackHotDevClient
* make all modifications of react-dev-utils explicit with a comment
* revert LogPlugin adapter
* loader-utils update
* add useful share cache comment
* add useful comments regarding the null-loader used in SSR for css files
* upgrade webpack-merge in a retrocompatible way
* use MiniCssExtractPlugin.emit false as recommended
* use @docusaurus/responsive-loader
* revert MiniCssExtractPlugin esModule: false change
* add link to PR for custom CleanWebpackPlugin
* pwa: add fallback to env variable or webpack 5 fails to build
* upgrade to CssMinimizerPlugin 2.0
* only build en locale for windows tests
* line breaks between errors
* add useful comment
* Fix e2e tests with Yarn2 not finding new init template dependencies
* fix bad import
* disable browserslist target as webpack already tries to use browserlists if a config is found, and it is a problem for existing sites
* webpack5 TS fixes
* fix getMinimizer order (even if it does not work yet)
* update postcss to v8, fix cssnano minimizer errors
* add NavbarItem position to types (useful for QuestDB site upgrade to Webpack5)
* add webpack cache env variable to reduce risk of webpack 5 adoption
Co-authored-by: slorber <lorber.sebastien@gmail.com>
* parseMarkdownContentTitle should ignore {#my-anchor-id} syntax
* use frontMatter.title in priority for page meta title
* parseMarkdownString should ignore fixed anchor ids syntax
* docs: make the distinction between headingTitle + metaTitle more clear + add useful todo
* docs: make the distinction between headingTitle + metaTitle more clear + add useful todo
* writeHeadingIds should ignore top-level md title like "# Title"
=> we are not supposed to create anchor links for h1 headers
* update tests
* fix doc tests
* make number prefix parsing logic configurable
* Make numberPrefixParser configurable + rename frontmatter + avoid parsing date/version patterns by default
* add more tests
* more test cases
* POC of autogenerated sidebars
* use combine-promises utility lib
* autogenerated sidebar poc working
* Revert "autogenerated sidebar poc working"
This reverts commit c81da980
* POC of auto-generated sidebars for community docs
* update tests
* add initial test suite for autogenerated sidebars + fix some edge cases
* Improve autogen sidebars: strip more number prefixes in folder breadcrumb + slugs
* fix typo!
* Add tests for partially generated sidebars + fix edge cases + extract sidebar generation code
* Ability to read category metadatas file from a file in the category
* fix tests
* change position of API
* ability to extract number prefix
* stable system to enable position frontmatter
* fix tests for autogen sidebar position
* renamings
* restore community sidebars
* rename frontmatter position -> sidebar_position
* make sidebarItemsGenerator fn configurable
* minor changes
* rename dirPath => dirName
* Make the init template use autogenerated sidebars
* fix options
* fix docusaurus site: remove test docs
* add _category_ file to docs pathsToWatch
* add _category_ file to docs pathsToWatch
* tutorial: use sidebar_position instead of file number prefixes
* Adapt Docusaurus tutorial for autogenerated sidebars
* remove slug: /
* polish the homepage template
* rename _category_ sidebar_position to just "position"
* test for custom sidebarItemsGenerator fn
* fix category metadata + add link to report tutorial issues
* fix absolute path breaking tests
* fix absolute path breaking tests
* Add test for floating number sidebar_position
* add sidebarItemsGenerator unit tests
* add processSidebars unit tests
* Fix init template broken links
* windows test
* increase code translations test timeout
* cleanup mockCategoryMetadataFiles after windows test fixed
* update init template positions
* fix windows tests
* fix comment
* Add autogenerated sidebar items documentation + rewrite the full sidebars page doc
* add useful comment
* fix code block title
* extract createExcerpt code in separate file + add bad test
* almost working markdown parsing refactor
* complete parseMarkdownString refactor
* fix tests
* fix blog test issue
* fix docusaurus utils imports
* feat(v2): read first heading as title and pass it to front-matter
* fix(v2): always trim content after extracting front-matter
* fix(v2): remove heading from rss and keep duplicate heading
* fix(v2): rollback some unnecessary comment changes
* test(v2): add unit tests to blog
* test(v2): add unit tests to docs
* test(v2): correct issue on windows
* test(v2): add additional test cases