diff --git a/packages/docusaurus-1.x/.eslintrc.js b/packages/docusaurus-1.x/.eslintrc.js index 956f11406df5..5bbfd2ece892 100644 --- a/packages/docusaurus-1.x/.eslintrc.js +++ b/packages/docusaurus-1.x/.eslintrc.js @@ -28,6 +28,7 @@ module.exports = { 'no-plusplus': OFF, 'prefer-template': OFF, 'import/no-extraneous-dependencies': OFF, + 'react/jsx-fragments': OFF, // Babylon v6 does not support <> fragments 'react/jsx-closing-bracket-location': OFF, // Formatting is left to Prettier. 'react/jsx-filename-extension': OFF, // Enable in future when migrating. 'react/jsx-one-expression-per-line': OFF, // Formatting is left to Prettier. diff --git a/packages/docusaurus-1.x/examples/basics/pages/en/users.js b/packages/docusaurus-1.x/examples/basics/pages/en/users.js index 800e6525f5d8..5a0136d4736b 100644 --- a/packages/docusaurus-1.x/examples/basics/pages/en/users.js +++ b/packages/docusaurus-1.x/examples/basics/pages/en/users.js @@ -34,14 +34,14 @@ class Users extends React.Component {
{showcase}
{siteConfig.repoUrl && ( - <> +

Are you using this project?

Add your company - +
)} diff --git a/packages/docusaurus-1.x/lib/start-server.js b/packages/docusaurus-1.x/lib/start-server.js index c835a86272a1..987c90b2a960 100755 --- a/packages/docusaurus-1.x/lib/start-server.js +++ b/packages/docusaurus-1.x/lib/start-server.js @@ -49,6 +49,6 @@ program .parse(process.argv); startDocusaurus().catch((ex) => { - console.error(chalk.red(`Failed to start Docusaurus server: ${ex}`)); + console.error(chalk.red(ex && ex.stack ? ex.stack : ex)); process.exit(1); }); diff --git a/packages/docusaurus-1.x/lib/write-translations.js b/packages/docusaurus-1.x/lib/write-translations.js index 0238a0a49d41..9de359647ec0 100755 --- a/packages/docusaurus-1.x/lib/write-translations.js +++ b/packages/docusaurus-1.x/lib/write-translations.js @@ -55,6 +55,17 @@ if (fs.existsSync(`${CWD}/data/custom-translation-strings.json`)) { ); } +function parseJSXFile(file) { + try { + return babylon.parse(fs.readFileSync(file, 'utf8'), { + plugins: ['jsx'], + }); + } catch (e) { + throw new Error(`Babylon parsing failure for file=${file}: ${e.message} + \nNote: Docusaurus v1 currently uses Babylon v6, and <> fragment syntax is not supported`); + } +} + function writeFileAndCreateFolder(file, content) { mkdirp.sync(file.replace(new RegExp('/[^/]*$'), '')); fs.writeFileSync(file, content); @@ -151,9 +162,7 @@ function execute() { glob.sync(`${CWD}/pages/en/**`).forEach((file) => { const extension = nodePath.extname(file); if (extension === '.js') { - const ast = babylon.parse(fs.readFileSync(file, 'utf8'), { - plugins: ['jsx'], - }); + const ast = parseJSXFile(file); traverse(ast, { enter(path) { if (