From 41ff9a9fd03a38b9fb11faa44612e5e988ffe15c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lorber?= Date: Thu, 1 Oct 2020 17:16:24 +0200 Subject: [PATCH] chore(v1): move v1 docs inside website-1.x (#3504) * move v1 docs in website-1.x * fix editUrl after moving v1 docs * update crowdin source for v1 docs * fix test after v1 config change * migration cli should support customDocsPath (fix v1->v2 integration tests) * fix migrationConfig.test.ts --- crowdin.yaml | 2 +- .../lib/server/__tests__/docs.test.js | 6 +- packages/docusaurus-migrate/package-lock.json | 404 ------------------ ...Config.test.js => migrationConfig.test.ts} | 9 +- packages/docusaurus-migrate/src/index.ts | 70 ++- packages/docusaurus-migrate/src/types.ts | 1 + {docs => website-1.x/docs}/api-commands.md | 0 .../docs}/api-doc-markdown.md | 0 {docs => website-1.x/docs}/api-pages.md | 0 {docs => website-1.x/docs}/api-site-config.md | 0 .../docs}/getting-started-docker.md | 0 .../docs}/getting-started-installation.md | 0 .../docs}/getting-started-preparation.md | 0 .../docs}/getting-started-publishing.md | 0 .../docs}/getting-started-site-creation.md | 0 {docs => website-1.x/docs}/guides-blog.md | 0 .../docs}/guides-custom-pages.md | 0 .../docs}/guides-navigation.md | 0 {docs => website-1.x/docs}/guides-search.md | 0 .../docs}/guides-translation.md | 0 .../docs}/guides-versioning.md | 0 .../docs}/tutorial-create-new-site.md | 0 .../docs}/tutorial-create-pages.md | 0 .../docs}/tutorial-publish-site.md | 0 {docs => website-1.x/docs}/tutorial-setup.md | 0 .../docs}/tutorial-version.md | 0 website-1.x/siteConfig.js | 4 +- 27 files changed, 77 insertions(+), 419 deletions(-) delete mode 100644 packages/docusaurus-migrate/package-lock.json rename packages/docusaurus-migrate/src/__tests__/{migrationConfig.test.js => migrationConfig.test.ts} (61%) rename {docs => website-1.x/docs}/api-commands.md (100%) rename {docs => website-1.x/docs}/api-doc-markdown.md (100%) rename {docs => website-1.x/docs}/api-pages.md (100%) rename {docs => website-1.x/docs}/api-site-config.md (100%) rename {docs => website-1.x/docs}/getting-started-docker.md (100%) rename {docs => website-1.x/docs}/getting-started-installation.md (100%) rename {docs => website-1.x/docs}/getting-started-preparation.md (100%) rename {docs => website-1.x/docs}/getting-started-publishing.md (100%) rename {docs => website-1.x/docs}/getting-started-site-creation.md (100%) rename {docs => website-1.x/docs}/guides-blog.md (100%) rename {docs => website-1.x/docs}/guides-custom-pages.md (100%) rename {docs => website-1.x/docs}/guides-navigation.md (100%) rename {docs => website-1.x/docs}/guides-search.md (100%) rename {docs => website-1.x/docs}/guides-translation.md (100%) rename {docs => website-1.x/docs}/guides-versioning.md (100%) rename {docs => website-1.x/docs}/tutorial-create-new-site.md (100%) rename {docs => website-1.x/docs}/tutorial-create-pages.md (100%) rename {docs => website-1.x/docs}/tutorial-publish-site.md (100%) rename {docs => website-1.x/docs}/tutorial-setup.md (100%) rename {docs => website-1.x/docs}/tutorial-version.md (100%) diff --git a/crowdin.yaml b/crowdin.yaml index fc12d13605..d9cf38c810 100644 --- a/crowdin.yaml +++ b/crowdin.yaml @@ -5,7 +5,7 @@ preserve_hierarchy: true files: - - source: '/docs/**/*.md' + source: '/website-1.x/docs/**/*.md' translation: '/website-1.x/translated_docs/%locale%/**/%original_file_name%' languages_mapping: &anchor locale: diff --git a/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js b/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js index 4639701ee0..2051a7c3e5 100644 --- a/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js +++ b/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js @@ -143,7 +143,7 @@ describe('getFile', () => { 'Document 2 is not good', 'website-1.x/translated_docs/ko/version-1.0.0/doc1.md': '이것은 오래된 가짜입니다.', - 'docs/doc1.md': 'Just another document', + 'website-1.x/docs/doc1.md': 'Just another document', }; fs.existsSync = jest.fn().mockReturnValue(true); fs.readFileSync = jest.fn().mockImplementation((file) => { @@ -189,7 +189,9 @@ describe('getFile', () => { test('normal docs', () => { const metadata = Metadata['en-doc1']; - expect(docs.getFile(metadata)).toEqual(fakeContent['docs/doc1.md']); + expect(docs.getFile(metadata)).toEqual( + fakeContent['website-1.x/docs/doc1.md'], + ); }); }); diff --git a/packages/docusaurus-migrate/package-lock.json b/packages/docusaurus-migrate/package-lock.json deleted file mode 100644 index 20f0fb6275..0000000000 --- a/packages/docusaurus-migrate/package-lock.json +++ /dev/null @@ -1,404 +0,0 @@ -{ - "name": "@docusaurus/migrate", - "version": "2.0.0-alpha.64", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/fs-extra": { - "version": "9.0.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/jscodeshift": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@types/jscodeshift/-/jscodeshift-0.7.1.tgz", - "integrity": "sha512-4jkASx74qGl2OUK8NNFEq10QP0MXriOIqeBeNb1IdevHP8k8VDqS5Uv6nIixAA6ZUjjF6/SwOvecrjXkbcaFzw==", - "dev": true, - "requires": { - "ast-types": "0.12.1", - "recast": "0.17.2" - } - }, - "@types/node": { - "version": "14.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz", - "integrity": "sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==", - "dev": true - }, - "@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "ast-types": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.1.tgz", - "integrity": "sha512-H2izJAyT2xwew4TxShpmxe6f9R5hHgJQy1QloLiUC2yrJMtyraBWNJL7903rpeCY9keNUipORR/zIUC2XcYKng==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" - }, - "ccount": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", - "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==" - }, - "chalk": { - "version": "4.1.0", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" - }, - "collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "commander": { - "version": "5.1.0" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "fs-extra": { - "version": "9.0.1", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" - }, - "is-plain-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.0.0.tgz", - "integrity": "sha512-EYisGhpgSCwspmIuRHGjROWTon2Xp8Z7U03Wubk/bTL5TTRC5R1rGVgyjzBrk9+ULdH6cRD06KRcw/xfqhVYKQ==" - }, - "is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" - }, - "is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" - }, - "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "recast": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.17.2.tgz", - "integrity": "sha512-YHFvn4rBXl8eIjALjUiOV/AP3xFpyGNGNHDw9mAncAWuIdgnBKjbZQ9+P3VlsKcNaNapRVFlTEX1dvDRlYwyxg==", - "dev": true, - "requires": { - "ast-types": "0.12.1", - "esprima": "~4.0.0", - "private": "~0.1.5", - "source-map": "~0.6.1" - } - }, - "remark-parse": { - "version": "8.0.2", - "requires": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "semver": { - "version": "7.3.2" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" - }, - "trim-trailing-lines": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", - "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==" - }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" - }, - "unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "requires": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "unified": { - "version": "9.0.0", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - } - }, - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" - }, - "unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "requires": { - "unist-util-visit": "^2.0.0" - }, - "dependencies": { - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - } - } - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "requires": { - "@types/unist": "^2.0.2" - } - }, - "unist-util-visit-parents": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", - "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" - }, - "vfile": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz", - "integrity": "sha512-lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - } - }, - "vfile-location": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz", - "integrity": "sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==" - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - } - } -} diff --git a/packages/docusaurus-migrate/src/__tests__/migrationConfig.test.js b/packages/docusaurus-migrate/src/__tests__/migrationConfig.test.ts similarity index 61% rename from packages/docusaurus-migrate/src/__tests__/migrationConfig.test.js rename to packages/docusaurus-migrate/src/__tests__/migrationConfig.test.ts index 6160c8a722..9acf2f5abc 100644 --- a/packages/docusaurus-migrate/src/__tests__/migrationConfig.test.js +++ b/packages/docusaurus-migrate/src/__tests__/migrationConfig.test.ts @@ -7,12 +7,17 @@ import importFresh from 'import-fresh'; import {createConfigFile} from '../index'; +import {VersionOneConfig} from '../types'; describe('create config', () => { test('simple test', () => { - const input = importFresh(`${__dirname}/__fixtures__/sourceSiteConfig.js`); + const v1Config: VersionOneConfig = importFresh( + `${__dirname}/__fixtures__/sourceSiteConfig.js`, + ) as any; + const siteDir = 'website'; + const newDir = 'websiteMigrated'; - const result = createConfigFile(input); + const result = createConfigFile({v1Config, siteDir, newDir}); const output = importFresh( `${__dirname}/__fixtures__/expectedSiteConfig.js`, diff --git a/packages/docusaurus-migrate/src/index.ts b/packages/docusaurus-migrate/src/index.ts index 8fe7192f28..9ee477f6f0 100644 --- a/packages/docusaurus-migrate/src/index.ts +++ b/packages/docusaurus-migrate/src/index.ts @@ -61,16 +61,46 @@ function sanitizedFileContent( return sanitizedData; } +// TODO refactor this new type should be used everywhere instead of passing many params to each method +type MigrationContext = { + siteDir: string; + newDir: string; + shouldMigrateMdFiles: boolean; + shouldMigratePages: boolean; + v1Config: VersionOneConfig; + v2Config: VersionTwoConfig; +}; + export async function migrateDocusaurusProject( siteDir: string, newDir: string, shouldMigrateMdFiles: boolean = false, shouldMigratePages: boolean = false, ): Promise { - const siteConfig = importFresh(`${siteDir}/siteConfig`) as VersionOneConfig; - console.log('Starting migration from v1 to v2...'); - const config = createConfigFile(siteConfig); - const classicPreset = config.presets[0][1]; + function createMigrationContext(): MigrationContext { + const v1Config = importFresh(`${siteDir}/siteConfig`) as VersionOneConfig; + console.log('Starting migration from v1 to v2...'); + const partialMigrationContext = { + siteDir, + newDir, + shouldMigrateMdFiles, + shouldMigratePages, + v1Config, + }; + const v2Config = createConfigFile(partialMigrationContext); + return { + ...partialMigrationContext, + v2Config, + }; + } + + const migrationContext = createMigrationContext(); + + // TODO need refactor legacy, we pass migrationContext to all methods + const siteConfig = migrationContext.v1Config; + const config = migrationContext.v2Config; + + const classicPreset = migrationContext.v2Config.presets[0][1]; const deps: Record = { '@docusaurus/core': DOCUSAURUS_VERSION, @@ -139,7 +169,7 @@ export async function migrateDocusaurusProject( ); } try { - handleVersioning(siteDir, newDir, config, shouldMigrateMdFiles); + handleVersioning(siteDir, siteConfig, newDir, config, shouldMigrateMdFiles); } catch (errorInVersion) { console.log( chalk.red( @@ -187,9 +217,15 @@ export async function migrateDocusaurusProject( console.log('Completed migration from v1 to v2'); } -export function createConfigFile( - siteConfig: VersionOneConfig, -): VersionTwoConfig { +export function createConfigFile({ + v1Config, + siteDir, + newDir, +}: Pick< + MigrationContext, + 'v1Config' | 'siteDir' | 'newDir' +>): VersionTwoConfig { + const siteConfig = v1Config; const homePageId = siteConfig.headerLinks?.filter((value) => value.doc)[0] .doc; @@ -215,6 +251,7 @@ export function createConfigFile( 'colors', 'copyright', 'editUrl', + 'customDocsPath', 'facebookComments', 'usePrism', 'highlight', @@ -241,6 +278,17 @@ export function createConfigFile( 'Following Fields from siteConfig.js will be added to docusaurus.config.js in `customFields`', )}\n${chalk.yellow(Object.keys(customConfigFields).join('\n'))}`, ); + + let v2DocsPath: string | undefined; + if (siteConfig.customDocsPath) { + const absoluteDocsPath = path.resolve( + siteDir, + '..', + siteConfig.customDocsPath, + ); + v2DocsPath = path.relative(newDir, absoluteDocsPath); + } + const result: VersionTwoConfig = { title: siteConfig.title ?? '', tagline: siteConfig.tagline, @@ -258,6 +306,7 @@ export function createConfigFile( '@docusaurus/preset-classic', { docs: { + ...(v2DocsPath && {path: v2DocsPath}), homePageId, showLastUpdateAuthor: true, showLastUpdateTime: true, @@ -416,6 +465,7 @@ function migrateBlogFiles( function handleVersioning( siteDir: string, + siteConfig: VersionOneConfig, newDir: string, config: VersionTwoConfig, migrateMDFiles: boolean, @@ -433,6 +483,7 @@ function handleVersioning( migrateVersionedSidebar(siteDir, newDir, versions, versionRegex, config); fs.mkdirpSync(path.join(newDir, 'versioned_docs')); migrateVersionedDocs( + siteConfig, versions, siteDir, newDir, @@ -456,6 +507,7 @@ function handleVersioning( } function migrateVersionedDocs( + siteConfig: VersionOneConfig, versions: string[], siteDir: string, newDir: string, @@ -465,7 +517,7 @@ function migrateVersionedDocs( versions.reverse().forEach((version, index) => { if (index === 0) { fs.copySync( - path.join(siteDir, '..', 'docs'), + path.join(siteDir, '..', siteConfig.customDocsPath || 'docs'), path.join(newDir, 'versioned_docs', `version-${version}`), ); fs.copySync( diff --git a/packages/docusaurus-migrate/src/types.ts b/packages/docusaurus-migrate/src/types.ts index 045fb5c958..2ad92e3d2d 100644 --- a/packages/docusaurus-migrate/src/types.ts +++ b/packages/docusaurus-migrate/src/types.ts @@ -101,6 +101,7 @@ export type VersionOneConfig = { colors?: any; copyright?: string; editUrl?: string; + customDocsPath?: string; users?: Array>; disableHeaderTitle?: string; disableTitleTagline?: string; diff --git a/docs/api-commands.md b/website-1.x/docs/api-commands.md similarity index 100% rename from docs/api-commands.md rename to website-1.x/docs/api-commands.md diff --git a/docs/api-doc-markdown.md b/website-1.x/docs/api-doc-markdown.md similarity index 100% rename from docs/api-doc-markdown.md rename to website-1.x/docs/api-doc-markdown.md diff --git a/docs/api-pages.md b/website-1.x/docs/api-pages.md similarity index 100% rename from docs/api-pages.md rename to website-1.x/docs/api-pages.md diff --git a/docs/api-site-config.md b/website-1.x/docs/api-site-config.md similarity index 100% rename from docs/api-site-config.md rename to website-1.x/docs/api-site-config.md diff --git a/docs/getting-started-docker.md b/website-1.x/docs/getting-started-docker.md similarity index 100% rename from docs/getting-started-docker.md rename to website-1.x/docs/getting-started-docker.md diff --git a/docs/getting-started-installation.md b/website-1.x/docs/getting-started-installation.md similarity index 100% rename from docs/getting-started-installation.md rename to website-1.x/docs/getting-started-installation.md diff --git a/docs/getting-started-preparation.md b/website-1.x/docs/getting-started-preparation.md similarity index 100% rename from docs/getting-started-preparation.md rename to website-1.x/docs/getting-started-preparation.md diff --git a/docs/getting-started-publishing.md b/website-1.x/docs/getting-started-publishing.md similarity index 100% rename from docs/getting-started-publishing.md rename to website-1.x/docs/getting-started-publishing.md diff --git a/docs/getting-started-site-creation.md b/website-1.x/docs/getting-started-site-creation.md similarity index 100% rename from docs/getting-started-site-creation.md rename to website-1.x/docs/getting-started-site-creation.md diff --git a/docs/guides-blog.md b/website-1.x/docs/guides-blog.md similarity index 100% rename from docs/guides-blog.md rename to website-1.x/docs/guides-blog.md diff --git a/docs/guides-custom-pages.md b/website-1.x/docs/guides-custom-pages.md similarity index 100% rename from docs/guides-custom-pages.md rename to website-1.x/docs/guides-custom-pages.md diff --git a/docs/guides-navigation.md b/website-1.x/docs/guides-navigation.md similarity index 100% rename from docs/guides-navigation.md rename to website-1.x/docs/guides-navigation.md diff --git a/docs/guides-search.md b/website-1.x/docs/guides-search.md similarity index 100% rename from docs/guides-search.md rename to website-1.x/docs/guides-search.md diff --git a/docs/guides-translation.md b/website-1.x/docs/guides-translation.md similarity index 100% rename from docs/guides-translation.md rename to website-1.x/docs/guides-translation.md diff --git a/docs/guides-versioning.md b/website-1.x/docs/guides-versioning.md similarity index 100% rename from docs/guides-versioning.md rename to website-1.x/docs/guides-versioning.md diff --git a/docs/tutorial-create-new-site.md b/website-1.x/docs/tutorial-create-new-site.md similarity index 100% rename from docs/tutorial-create-new-site.md rename to website-1.x/docs/tutorial-create-new-site.md diff --git a/docs/tutorial-create-pages.md b/website-1.x/docs/tutorial-create-pages.md similarity index 100% rename from docs/tutorial-create-pages.md rename to website-1.x/docs/tutorial-create-pages.md diff --git a/docs/tutorial-publish-site.md b/website-1.x/docs/tutorial-publish-site.md similarity index 100% rename from docs/tutorial-publish-site.md rename to website-1.x/docs/tutorial-publish-site.md diff --git a/docs/tutorial-setup.md b/website-1.x/docs/tutorial-setup.md similarity index 100% rename from docs/tutorial-setup.md rename to website-1.x/docs/tutorial-setup.md diff --git a/docs/tutorial-version.md b/website-1.x/docs/tutorial-version.md similarity index 100% rename from docs/tutorial-version.md rename to website-1.x/docs/tutorial-version.md diff --git a/website-1.x/siteConfig.js b/website-1.x/siteConfig.js index a2b3c6165c..ed2c7ee538 100644 --- a/website-1.x/siteConfig.js +++ b/website-1.x/siteConfig.js @@ -18,7 +18,9 @@ const siteConfig = { cname: 'docusaurus.io', noIndex: false, users, - editUrl: 'https://github.com/facebook/docusaurus/edit/master/docs/', + customDocsPath: 'website-1.x/docs', + editUrl: + 'https://github.com/facebook/docusaurus/edit/master/website-1.x/docs/', headerLinks: [ {doc: 'installation', label: 'Docs'}, {doc: 'tutorial-setup', label: 'Tutorial'},