Skip to content

Latest commit

 

History

History
671 lines (510 loc) · 40.4 KB

CHANGELOG-2.x.md

File metadata and controls

671 lines (510 loc) · 40.4 KB

Docusaurus 2 Changelog

2.0.0-alpha.40 (2019-12-25)

🚀 New Feature

  • docusaurus-theme-classic
    • #2117 feat(v2): auto switch theme depending on the system theme (@lex111)
    • #2055 feat(v2): hide navbar on scroll (@lex111)

🐛 Bug Fix

  • docusaurus
    • #2145 fix(v2): remove style-loader, use minicssextract in both dev & prod (@endiliey)
    • #2122 fix(v2): dont collapse whitespace in minified html (@endiliey)
  • docusaurus-mdx-loader, docusaurus-plugin-content-blog, docusaurus-plugin-content-docs
    • #2105 fix(v2): move metadata export after compiling MDX to avoid weird MDX parsing error. (@endiliey)
  • docusaurus-theme-classic
    • #2113 fix(v2): set stored theme only if it exists (@lex111)

💅 Polish

  • docusaurus-theme-classic
    • #2129 fix(v2): disable scroll while mobile menu open (@lex111)
  • docusaurus-theme-classic, docusaurus
    • #2127 refactor(v2): toggle data-theme with vanilla js instead of react helmet (@endiliey)
  • docusaurus-theme-search-algolia, docusaurus
    • #2125 feat(v2): lazy load algolia css so its not render blocking (@endiliey)

📝 Documentation

  • Other
  • docusaurus-theme-classic, docusaurus-theme-live-codeblock
    • #2114 fix(v2): add syntax highlight to generated colors (@lex111)

🏠 Internal

  • Other
  • docusaurus-init
  • docusaurus
  • docusaurus-1.x, docusaurus-init, docusaurus-mdx-loader, docusaurus-plugin-content-blog, docusaurus-plugin-content-docs, docusaurus-plugin-ideal-image, docusaurus-theme-live-codeblock, docusaurus

🏃‍♀️ Performance

Committers: 6

2.0.0-alpha.39

🐛 Bug Fix

  • docusaurus
  • docusaurus-plugin-content-blog, docusaurus-plugin-content-docs
    • #2095 fix(v2): metadata error if markdown does not have ending line (@endiliey)

🏠 Internal

  • Other
    • #2100 chore(CI): docusaurus build on Windows with GitHub actions (@endiliey)
  • docusaurus

Committers: 1

2.0.0-alpha.38

💥 Breaking Change

  • docusaurus-plugin-content-blog, docusaurus-plugin-content-docs, docusaurus-plugin-content-pages, docusaurus-theme-classic, docusaurus-utils
    • #2088 perf(v2): smaller bundlesize by embedding metadata to content (@endiliey)

If you have swizzled any Docs/Blog component that depends on metadata, you'll have to update. If you haven't, no action is needed.

For example, if you've swizzled @theme/DocItem. You'll have to update

- const {metadata, content: DocContent} = props;
+ const {content: DocContent} = props;
+ const {metadata} = DocContent;

🐛 Bug Fix

  • docusaurus
  • docusaurus-plugin-ideal-image
    • #2074 fix(v2): fix plugin-ideal-image breaking website (exports not defined) (@endiliey)

💅 Polish

  • docusaurus-mdx-loader

🏠 Internal

  • docusaurus-1.x
  • docusaurus
    • #2081 refactor(v2): move scripts/stylesheets injection to server side (@endiliey)
    • #2080 refactor(v2): minor code refactoring on component creator (@endiliey)

🏃‍♀️ Performance

  • docusaurus-utils
    • #2089 perf(v2): improve dev build time by not overwriting file if possible (@endiliey)
  • docusaurus-theme-search-algolia
    • #2079 perf(v2): algolia search result no longer cause full page refresh (@endiliey)
    • #2076 perf(v2): load algolia JS only when user interacts with search (@endiliey)

Committers: 4

2.0.0-alpha.37

💥 Breaking Change

  • docusaurus-init, docusaurus-plugin-content-blog, docusaurus-plugin-content-docs, docusaurus-plugin-content-pages, docusaurus-theme-classic, docusaurus-theme-live-codeblock, docusaurus-theme-search-algolia, docusaurus-utils, docusaurus
    • #2045 breaking(v2): minimum required nodejs version 8.9-> 8.10 so we can use es2017 (@endiliey)

🚀 New Feature

  • docusaurus-theme-classic, docusaurus
    • #2069 feat(v2): support prefers-color-scheme & fix dark mode FOUC on refresh (@endiliey)
  • docusaurus-plugin-content-blog
    • #2000 feat(v2): add meta RSS/Atom feed links to head (@lex111)
  • docusaurus-plugin-content-docs, docusaurus-types, docusaurus
    • #2057 feat(v2): injectHtmlTags API to inject head and/or body html tags (@endiliey)
  • docusaurus-mdx-loader, docusaurus-plugin-content-docs, docusaurus-plugin-sitemap, docusaurus-theme-classic, docusaurus
    • #2032 feat(v2): allow non sidebar category to be first item of sidebar (@endiliey)
  • docusaurus-plugin-content-docs, docusaurus-theme-classic, docusaurus-types, docusaurus

🐛 Bug Fix

  • docusaurus-theme-classic, docusaurus
    • #2069 feat(v2): support prefers-color-scheme & fix dark mode FOUC on refresh (@endiliey)
  • docusaurus-mdx-loader
    • #2067 fix(v2): toc should not be broken for heading with html inline code (@endiliey)
  • docusaurus-theme-classic
    • #2064 fix(v2): markdown reference to file should not be page not found (@endiliey)
    • #2061 fix(v2): fix docs sidebar highlighting if link is partially matched (@endiliey)
  • docusaurus
    • #2042 fix(v2): remove css order warning if css imports are not sorted (@endiliey)

💅 Polish

  • docusaurus-theme-classic

📝 Documentation

🏠 Internal

  • docusaurus-plugin-content-blog
  • docusaurus
    • #2060 fix(v2): clean generated manifest from previous build so we dont use the wrong one (@endiliey)
    • #2033 refactor(v2): move unused generated files out from build folder (@endiliey)
  • docusaurus-types, docusaurus
  • docusaurus-mdx-loader, docusaurus-plugin-ideal-image, docusaurus-types, docusaurus
  • docusaurus-init, docusaurus-mdx-loader, docusaurus-plugin-content-docs, docusaurus

🏃‍♀️ Performance

  • docusaurus-plugin-google-analytics, docusaurus-plugin-google-gtag
    • #2070 perf(v2): more performant gtag and analytics plugin (@endiliey)
  • docusaurus
    • #2046 perf(v2): use webpack future version of asset emitting logic to free memory (@endiliey)
    • #2039 perf(v2): replace unnecessary json stringify(string) with inline string (@endiliey)
    • #2035 perf(v2): use @babel/runtime plugin to reduce codesize (@endiliey)
  • docusaurus-plugin-content-docs
    • #2054 perf(v2): unblock metadata processing when possible (@endiliey)

Committers: 5

2.0.0-alpha.36

💥 Breaking Change

  • docusaurus-init, docusaurus-plugin-content-blog, docusaurus-theme-classic

🚀 New Feature

  • docusaurus-plugin-content-docs, docusaurus-theme-classic

🐛 Bug Fix

  • docusaurus
    • #2007 feat(v2): only create one css file to avoid code-split css loading problem (@endiliey)
  • docusaurus-theme-classic
    • #2005 fix(v2): adjust first-level heading offset (@lex111)

💅 Polish

  • docusaurus-theme-classic
    • #2013 refactor(v2): split out dark mode toggle so it is easily swizzle-able (@endiliey)
    • #2017 feat(v2): style right sidebar scrollbar when overflow (@endiliey)
    • #2003 refactor(v2): improve semantic markup of blog (@lex111)

🏠 Internal

  • docusaurus
    • #2024 test(v2): babel exclude transpilation logic to prevent regression (@endiliey)
    • #2014 feat(v2): add meta generator docusaurus (@endiliey)
  • docusaurus-mdx-loader, docusaurus-plugin-ideal-image
  • Other

📝 Documentation

Committers: 3

2.0.0-alpha.35

🚀 New Feature

  • docusaurus-theme-classic
    • #1965 feat(v2): add ability specify link in footer logo (@lex111)

🐛 Bug Fix

  • docusaurus-mdx-loader, docusaurus-theme-classic
    • #1992 fix(v2): static phrasing content should be rendered correctly in TOC (@endiliey)
  • docusaurus-theme-classic
    • #1999 fix(v2): remove hashbang when click on category (@lex111)
    • #1962 fix(v2): make not clickable post title on post item page (@lex111)
    • #1980 fix(v2): remove invalid label attribute of footer links (@lex111)
    • #1978 fix(v2): use regular div instead of main tag for wrapper layout page (@lex111)
    • #1975 fix(v2): move header inside article tag in doc page (@lex111)
    • #1974 fix(v2): remove invalid attributes of nav links (@lex111)
    • #1963 fix(v2): remove empty containers when no data in blog pages (@lex111)
    • #1966 fix(v2): remove duplicate meta tags (@lex111)
  • docusaurus-plugin-content-docs
    • #1994 fix(v2): throw error if first level item of a sidebar is not category (@endiliey)

💅 Polish

  • docusaurus-theme-search-algolia
  • docusaurus-theme-classic
    • #1991 fix(v2): remove accessible anchors via keyboard (@lex111)
    • #1987 refactor(v2): replace h1 tag with h2 in blog list pages (@lex111)
    • #1981 fix(v2): use tag time for showing last update of doc item (@lex111)
    • #1977 feat(v2): add aria-label to read more links for a11y (@lex111)
    • #1964 fix(v2): use tag time for showing post item date (@lex111)
  • docusaurus-plugin-content-docs
    • #1994 fix(v2): throw error if first level item of a sidebar is not category (@endiliey)
  • Other
    • #1986 fix(v2): remove obsolete iframe attributes (@lex111)
  • docusaurus-init
  • docusaurus-plugin-content-blog

📝 Documentation

🏠 Internal

  • Other
    • #2002 fix(v2): fix browser window menu icon on smaller screen (@lex111)
    • #1986 fix(v2): remove obsolete iframe attributes (@lex111)
  • docusaurus-init
  • docusaurus-1.x, docusaurus-init-1.x, docusaurus-init, docusaurus-plugin-content-docs, docusaurus-plugin-ideal-image, docusaurus-types, docusaurus

🏃‍♀️ Performance

  • docusaurus
    • #1979 perf(v2): reduce main bundle size by using es5 if possible (@endiliey)

Committers: 6

2.0.0-alpha.34

🚀 New Feature

  • docusaurus-theme-classic
    • #1956 feat(v2): add ability hide dark mode toggle (@lex111)

💥 Breaking Change

  • docusaurus-plugin-content-docs
    • #1958 breaking(v2): editUrl should point to website instead of docsDir (@endiliey)

🐛 Bug Fix

  • docusaurus-theme-classic
    • #1959 fix(v2): useTOC hooks should not be called in each nested children (@endiliey)

💅 Polish

  • docusaurus-plugin-content-docs, docusaurus
    • #1957 refactor(v2): avoid synchronous/ blocking operation when possible (@endiliey)

📝 Documentation

🏠 Internal

  • docusaurus-1.x, docusaurus-plugin-content-blog, docusaurus-plugin-content-docs, docusaurus-theme-classic, docusaurus-theme-search-algolia, docusaurus-types, docusaurus-utils, docusaurus
  • Other

🏃‍♀️ Performance

  • docusaurus-plugin-content-docs, docusaurus-utils, docusaurus
    • #1951 perf(v2): skip runtime fileHash cache in prod & get timestamp asynchronously (@endiliey)
    • #1950 perf(v2): more efficient hot reload & consistent filegen (@endiliey)

Committers: 3

2.0.0-alpha.33

Features

  • Table of contents is now highlighted depending on current active headings. (thanks to awesome @SantiagoGdaR) #1896
  • Official blog plugin can now generate feed for blog posts. (thanks to awesome @moozzyk) #1916
  • BREAKING prismTheme is renamed to theme as part new prism object in themeConfig field in your docusaurus.config.js. Eg:
     themeConfig: {
    -   prismTheme: require('prism-react-renderer/themes/dracula'),
    +   prism: {
    +     theme: require('prism-react-renderer/themes/dracula'),
    +   },
    },
  • Added new prism option defaultLanguage that is used if the language is not specified in code blocks. #1910

Fixes

  • Fix babel/env not picking the correct browserslist configuration during development. When running docusaurus start, process.env.NODE_ENV is now consistently set to development.
  • Ensure routes config generation to be more consistent in ordering. Nested routes should be placed last in routes.js. This will allow user to create src/pages/docs.js to create custom docs page for /docs or even src/pages/docs/super.js to create page for /docs/super/;
  • Fix watcher does not trigger reload on windows.
  • Fix build compilation error if exists only one code tab.
  • Add minor padding to docs container so that hash-link won't be cut off.

Others

  • Misc dependency upgrades.
  • Stability improvement (more tests) & refactoring on docs plugin to prevent regression.

2.0.0-alpha.32

Features

  • Add <Redirect> component for client side redirect. Example Usage:
import React from 'react';
import {Redirect} from '@docusaurus/router';

function Home() {
  return <Redirect to="/docs/test" />;
}
  • Allow user to add custom HTML to footer items. #1905
  • Added code block line highlighting feature (thanks @lex111)! If you have previously swizzled the CodeBlock theme component, it is recommended to update your source code to have this feature. (#1860)

Bug Fixes

  • Fix @theme/Tabs component to be able to create tabs with only one item.
  • Fix MDX @theme/Heading component. If there is no id, it should not create anchor link.
  • Fixed a bug in which if themeConfig.algolia is not defined, the custom searchbar won't appear. If you've swizzled Algolia SearchBar component before, please update your source code otherwise CSS might break. See #1909 for reference.
- <Fragment>
+ <div className="navbar__search" key="search-box">
  • Slightly adjust search icon position to be more aligned on small width device. (#1893)
  • Fix algolia styling bug, previously search suggestion result is sometimes hidden. (#1915)
  • Changed the way we read the USE_SSH env variable during deployment to be the same as in v1.
  • Fix accessing docs/ or /docs/xxxx that does not match any existing doc page should return 404 (Not found) page, not blank page. (#1903)
  • Prioritize @docusaurus/core dependencies/ node_modules over user's node_modules. This fix a bug whereby if user has core-js@3 on its own node_modules but docusaurus depends on core-js@2, we previously encounter Module not found: core-js/modules/xxxx (because core-js@3 doesn't have that).
  • Fix a bug where docs plugin add /docs route even if docs folder is empty. We also improved docs plugin test coverage to 100% for stability before working on docs versioning. (#1912)

Performance Improvement

  • Reduce memory usage consumption. (#1900)
  • Significantly reduce main bundle size and initial HTML payload on production build. Generated files from webpack is also shorter in name. (#1898)
  • Simplify blog metadata. Previously, accessing /blog/post-xxx will request for next and prev blog post metadata too aside from target post metadata. We should only request target post metadata. (#1908)

Others

  • Convert sitemap plugin to TypeScript. (#1894)
  • Refactor dark mode toggle into a hook. (#1899)

2.0.0-alpha.31

  • Footer is now sticky/ pinned to the bottom of the viewport in desktop browsers.
  • Footer is now also displayed in docs page for consistency.
  • Remove empty doc sidebar container if sidebar for a particular doc page does not exist. Otherwise, it will cause an additional empty space.
  • Default PostCSS loader now only polyfills stage 3+ features (previously it was stage 2) like Create React App. Stage 2 CSS is considered relatively unstable and subject to change while Stage 3 features will likely become a standard.
  • Fix search bar focus bug. When you put the focus on search input, previously the focus will remain although we have clicked to other area outside of the search input.
  • New themeConfig option sidebarCollapsible. It is on by default. If explicitly set to false, all doc items in sidebar is expanded. Otherwise, it will still be a collapsible sidebar.
  • Disable adding hashes to the generated class names of CSS modules in dev mode. Generating unique identifiers takes some time, which can be saved since including paths to files in class names is enough to avoid collisions.
  • Fix showing sidebar category with empty items.
  • Update infima from 0.2.0-alpha.2 to 0.2.0-alpha.3
    • Fix pagination nav and right sidebar color contrast ratio
    • Fix sidebar arrow color in dark mode
    • Fix footer mobile issue
    • Increase sidebar width
    • etc

2.0.0-alpha.30

  • Fix babel transpilation include/exclude logic to be more efficient. This also fix a very weird bug TypeError: Cannot assign to read only property 'exports' of object '#<Object>'.(#1868)

If you are still encountering the error. Please check whether you use module.exports for your .js file instead of doing export (mixing CJS and ES). See webpack/webpack#4039 (comment) and webpack/webpack#4039 (comment) for more context.

2.0.0-alpha.29

HOTFIX for 2.0.0-alpha.28.

  • Fix missing core-js dependencies on @docusaurus/core.
  • Fix wrong @babel/env preset configuration that causes build compilation error.
  • New UI for webpack compilation progress bar.

2.0.0-alpha.28

  • Further reduce memory usage to avoid heap memory allocation failure.
  • Fix keywords frontmatter for SEO not working properly.
  • Fix swizzle command not passing context properly to theme packages.
  • Add extendCli api for plugins. This will allow plugin to further extend Docusaurus CLI.
  • Fix swizzle command not being able to swizzle single js file.
  • Fix logo URL in footer to be appended with baseUrl automatically.
  • Add the option --no-open for start command.
  • Set @babel/env useBuiltins to usage. This will automatically use browserlist and import polyfills required.
  • Modified TerserWebpackPlugin terserOptions for better cross-browser compatibility.
  • BREAKING withBaseUrl is renamed to useBaseUrl because its a React Hooks. Make sure you import/rename it correctly. Eg: import useBaseUrl from '@docusaurus/useBaseUrl;
  • Fix potential security vulnerability because we're exposing the directory structure of the host machine.
  • Upgrade dependencies.

2.0.0-alpha.27

  • Add @theme/Tabs which can be used to implement multi-language code tabs.
  • Implement custom_edit_url and hide_title markdown header for docusaurus v1 feature parity.
  • Reduce memory usage and slightly faster production build.
  • Misc dependency upgrades.

2.0.0-alpha.26

  • Docs, pages plugin is rewritten in TypeScript
  • Docs improvements and tweaks
    • Improved metadata which results in smaller bundle size.
    • Docs sidebar can now be more than one level deep, theoretically up to infinity
    • Collapsible docs sidebar!
    • Make doc page title larger
    • Add editUrl option (URL for editing) to docs plugin. If this field is set, there will be an "Edit this page" link for each doc page. Example: 'https://github.com/facebook/docusaurus/edit/master/docs'
    • Add showLastUpdateTime and showLastUpdateAuthor options to docs plugin to further achieve v1 parity of showing last update data for a particular doc
  • Slight tweaks to the Blog components - blog title is larger now
  • Code Blocks
    • Change default theme from Night Owl to Palenight
    • Slight tweaks to playground/preview components
  • Add scripts and stylesheets field to docusaurus.config.js
  • More documentation...

2.0.0-alpha.25

  • Blog plugin is rewritten in TypeScript and can now support CJK
  • Upgrade key direct dependencies such as webpack, mdx and babel to latest
  • Do not escape html and body attributes
  • For devices with very small viewport width, the searchbar is replaced with a search icon. On tap of the search icon the searchbar is expanded and the text beside the logo is hidden and remains hidden while the search bar is expanded.
  • Add date frontMatter support for blog plugin
  • Add truncateMarker option to blog plugin, support string or regex.
  • Webpack optimization.removeAvailableModules is now disabled for performance gain. See https://github.com/webpack/webpack/releases/tag/v4.38.0 for more context.

2.0.0-alpha.24

  • Remove unused metadata for pages. This minimize number of http request & smaller bundle size.
  • Upgrade dependencies of css-loader from 2.x to 3.x. Css modules localIdentName hash now only use the last 4 characters instead of 8.
  • Fix broken markdown linking replacement for mdx files
  • Fix potential security vulnerability because we're exposing the directory structure of the host machine. Instead of absolute path, we use relative path from site directory. Resulting in shorter webpack chunk naming and smaller bundle size.
  • Use contenthash instead of chunkhash for better long term caching
  • Allow user to customize generated heading from MDX. Swizzle @theme/Heading

2.0.0-alpha.23

  • Fix docusaurus route config generation for certain edge case

2.0.0-alpha.22

  • Add missing dependencies on @docusaurus/preset-classic
  • New plugin @docusaurus/plugin-ideal-image to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder)
  • Better Twitter/discord image preview. Previously the size is too zoomed
  • Allow prism syntax highlighting theme customization. Refer to https://v2.docusaurus.io/docs/markdown-features#syntax-highlighting
  • CSS is now autoprefixed using postcss
  • Faster, lighter webpack bundle size
  • @docusaurus/theme-live-codeblock is now much smaller in size and no longer only load on viewport
  • Blog markdown files now support using the id field to specify the path

2.0.0-alpha.21

  • Fix babel-loader not transpiling docusaurus package

2.0.0-alpha.20

  • Add copy codeblock button
  • Add Google analytics and Google gtag plugins.
  • Move source components to /src. Please create a website/src directory and move your /pages and /theme code into it. This is to make it easier to integrate your website with external build/static analysis tooling (you can now just pass in src/**/*.js as the path to process).
  • Adde more documentation thanks to @wgao19.
  • Deprecate the current docs plugin. The docs plugin as of 2.0.0-alpha.19 is heavily based on V1 specifications and we intend to create a better one that fixes some of the inconsistencies in V1. If you have swizzled any doc components, you will have to update their names. You are highly encourages to not swizzle the legacy doc components until we have completed the new docs plugin.
  • Separate v2 init command to new package @docusaurus/init
  • Render 404.html page
  • Improve SEO
  • Clicking on the logo in the mobile sliding navigation will now bring you to the homepage.
  • Performance
    • Disable webpack output pathinfo. Webpack has the ability to generate path info in the output bundle. However, this puts garbage collection pressure on projects that bundle thousands of modules. Not very useful for our case
    • Drop cache-loader in CI and test environment because it has an initial overhead. We always start from scratch in vm instance like CI so cache-loader is useless
    • Better splitchunks and babel default webpack config

2.0.0-alpha.19

  • Add a sensible default for browserslist config.
  • UI
    • Add sun and moon emoji to the dark mode toggle.
    • Mobile responsive menu.
    • Right table of contents for docs is now sticky.
  • Plugins
    • Change plugin definitions from classes to functions. Refer to the new plugin docs.
    • Implement Clients module API.
    • Change format within docusaurus.config.js to be like presets.
  • Deps
    • Infima CSS is now locked down to specific versions and not relying upon the CDN which reads from trunk.
    • Update dependencies to latest
  • Customize/ Override infima CSS variables by passing options into the classic preset.
presets: [
  [
    '@docusaurus/preset-classic',
    {
      theme: {
        customCss: require.resolve('./css/custom.css'),
      },
      ...
    },
  ],
],
  • Allow passing remark and rehype plugins to mdx-loader for docs and blog plugin
  • Move themes component of docs and blog to be part of theme-classic
  • Use composition style for prism syntax highlighting instead of doing it via rehype plugin
  • Pass MDXProvider to docs and blog. To change the provided MDX components, run docusaurus swizzle @docusaurus/theme-classic MDXComponents
  • Add @docusaurus/theme-livecodeblock plugin
  • Better run-time code generation & webpack splitchunks optimization
  • Minify css for production build
  • Fix weird scrolling problem when navigating to a route with a hash location

V2 Changelog

siteConfig.js changes

  • siteConfig.js renamed to docusaurus.config.js.
  • Remove the following config options:
    • docsUrl. Use the plugin option on docusaurus-plugin-content-docs instead.
    • customDocsPath. Use the plugin option on docusaurus-plugin-content-docs instead.
    • sidebars.json now has to be explicitly loaded by users and passed into the the plugin option on docusaurus-plugin-content-docs.
    • headerLinks doc, page, blog is deprecated and has been to moved into themeConfig under the name navbar. The syntax is now:
themeConfig: {
  navbar: {
    title: 'Docusaurus',
    logo: {
      alt: 'Docusaurus Logo',
      src: 'img/docusaurus.svg',
    },
    links: [
      {to: 'docs/introduction', label: 'Docs', position: 'left'},
      {to: 'blog', label: 'Blog', position: 'left'},
      {to: 'feedback', label: 'Feedback', position: 'left'},
      {
        href: 'https://github.com/facebook/docusaurus',
        label: 'GitHub',
        position: 'right',
      },
    ],
  },
}

Migration Guide

Work in Progress

Presets