This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 70d951c73d5 refactor: sync-docs script (#1065)
70d951c73d5 is described below

commit 70d951c73d5909a180a4a3bece577088fa192290
Author: Young <isk...@outlook.com>
AuthorDate: Tue May 3 14:40:29 2022 +0800

    refactor: sync-docs script (#1065)
---
 .github/workflows/deploy.yml                       |  10 +-
 scripts/sync-docs.js                               | 364 +++++++++++++--------
 website/docs/apisix-dashboard/IGNORE_DOC.md        |   1 -
 website/docs/apisix-dashboard/sidebars.json        |   3 -
 website/docs/apisix-docker/IGNORE_DOC.md           |   1 -
 website/docs/apisix-docker/sidebars.json           |   3 -
 website/docs/apisix-go-plugin-runner/IGNORE_DOC.md |   1 -
 website/docs/apisix-go-plugin-runner/sidebars.json |   3 -
 website/docs/apisix-helm-chart/IGNORE_DOC.md       |   1 -
 website/docs/apisix-helm-chart/sidebars.json       |   3 -
 .../docs/apisix-ingress-controller/IGNORE_DOC.md   |   1 -
 .../docs/apisix-ingress-controller/sidebars.json   |   3 -
 .../docs/apisix-java-plugin-runner/IGNORE_DOC.md   |   1 -
 .../docs/apisix-java-plugin-runner/sidebars.json   |   3 -
 .../docs/apisix-python-plugin-runner/IGNORE_DOC.md |   0
 .../docs/apisix-python-plugin-runner/sidebars.json |   3 -
 website/docs/apisix/IGNORE_DOC.md                  |   1 -
 website/docs/apisix/sidebars.json                  |   3 -
 .../current.json                                   |  10 -
 .../current.json                                   |  10 -
 .../current.json                                   |  10 -
 .../current/.gitlock                               |   1 -
 22 files changed, 230 insertions(+), 206 deletions(-)

diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 03c936868a1..ad66e7a825f 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -54,6 +54,14 @@ jobs:
         run: |
           yarn install
 
+      - name: Apply docs cache
+        id: docs-cache
+        uses: actions/cache@v3
+        with:
+          path: |
+            ./scripts/temp
+          key: ${{ runner.os }}-dep-${{ steps.node-version.outputs.ver 
}}-docs-${{ hashFiles('website/config/apisix-versions.js') }}
+
       - name: Sync documents
         run: |
           yarn sync-doc && yarn generate-repos-info && git status
@@ -65,7 +73,7 @@ jobs:
           path: |
             ./website/.docusaurus
             ./website/build
-          key: ${{ runner.os }}-dep-${{ steps.node-version.outputs.ver }}-${{ 
hashFiles('./website/docs/apisix/**') }}
+          key: ${{ runner.os }}-dep-${{ steps.node-version.outputs.ver 
}}-docusaurus-${{ hashFiles('website/config/apisix-versions.js') }}
 
       - name: Build
         run: |
diff --git a/scripts/sync-docs.js b/scripts/sync-docs.js
index 53b00b46c5a..40710e2b291 100644
--- a/scripts/sync-docs.js
+++ b/scripts/sync-docs.js
@@ -7,58 +7,21 @@ const Listr = require('listr');
 const simpleGit = require('simple-git');
 const semver = require('semver');
 const replace = require('replace-in-file');
-const { promisify } = require('util');
 
 const common = require('./common.js');
 const { versions } = require('../website/config/apisix-versions.js');
 
 const { projects, languages, projectPaths } = common;
-const exec = promisify(childProcess.exec);
-const tempPath = './tmp';
+const tempPath = './temp';
 const websitePath = '../website';
 const gitMap = {};
 const projectReleases = {};
 
-const extractDocsHeadTasks = (project, version) => ([
-  {
-    title: `Checkout ${project.name} version: ${version}`,
-    task: () => 
gitMap[project.name].cwd(`${tempPath}/${project.name}/`).checkout(`remotes/origin/release/${version}`,
 ['-f']),
-  },
-  {
-    title: 'Replace elements inside MD files',
-    task: async () => {
-      const branchName = `release/${version}`;
-      await replaceMDElements(project.name, 
[`${tempPath}/${project.name}/docs`], branchName);
-      await copyAllDocs(project);
-    },
-  },
-]);
-
-const extractDocsTailTasks = (project, version) => ([
-  {
-    title: 'Add English & Chinese documents',
-    task: () => Promise.all([
-      exec(
-        `yarn docusaurus docs:version:docs-${project.name} ${version}`,
-        { cwd: websitePath },
-      ),
-      isDirExisted(`./${tempPath}/${project.name}/docs/zh/latest`)
-        .then(
-          (exist) => exist && copyFolder(
-            project.latestDocs.zh,
-            
`${websitePath}/i18n/zh/docusaurus-plugin-content-docs-docs-${project.name}/version-${version}`,
-          ),
-        ),
-    ]),
-  },
-]);
-
 const tasks = new Listr([
   {
     title: 'Start documents sync',
     task: async () => {
-      await removeFolder(tempPath);
-      await fs.mkdir(tempPath);
+      if (!await isDirExisted(tempPath)) { await fs.mkdir(tempPath); }
     },
   },
   {
@@ -67,8 +30,28 @@ const tasks = new Listr([
       const gitTasks = projects.map((project) => ({
         title: `Clone ${project.name} repository`,
         task: async () => {
-          gitMap[project.name] = simpleGit();
-          await 
gitMap[project.name].clone(`https://github.com/apache/${project.name}.git`, 
`${tempPath}/${project.name}/`);
+          const dir = `${tempPath}/${project.name}/`;
+          const exist = await isDirExisted(dir);
+          if (exist) {
+            gitMap[project.name] = simpleGit(dir);
+            await gitMap[project.name].cwd(dir).fetch();
+          } else {
+            gitMap[project.name] = simpleGit();
+            await gitMap[project.name]
+              .clone(
+                `https://github.com/apache/${project.name}.git`,
+                dir,
+                { '--filter': 'blob:none', '--sparse': true },
+              )
+              .cwd(dir)
+              .raw(['sparse-checkout', 'set', 'docs']);
+
+            if (project.name === 'apisix') {
+              await gitMap[project.name]
+                .cwd(dir)
+                .raw(['sparse-checkout', 'add', 'apisix/core', 'autodocs']);
+            }
+          }
         },
       }));
       return new Listr(gitTasks, { concurrent: projects.length });
@@ -77,89 +60,81 @@ const tasks = new Listr([
   {
     title: 'Find project release',
     task: () => {
-      const findReleaseTasks = projects.map((project) => ({
-        title: `Find ${project.name} releases`,
-        task: async () => {
-          const ret = await 
gitMap[project.name].cwd(`${tempPath}/${project.name}/`).branch();
-          if (ret.all) {
-            projectReleases[project.name] = ret.all
-              .filter((release) => release.includes('remotes/origin/release/'))
-              .map((release) => release.replace('remotes/origin/release/', ''))
-              .sort((a, b) => semver.compare(semver.coerce(a).version, 
semver.coerce(b).version));
-          }
-        },
-      }));
+      const findReleaseTasks = projects
+        .filter((p) => p.name !== 'apisix')
+        .map((project) => ({
+          title: `Find ${project.name} releases`,
+          task: async () => {
+            const ret = await 
gitMap[project.name].cwd(`${tempPath}/${project.name}/`).branch();
+            if (ret.all) {
+              projectReleases[project.name] = ret.all
+                .filter((release) => 
release.includes('remotes/origin/release/'))
+                .map((release) => release.replace('remotes/origin/release/', 
''))
+                .sort((a, b) => semver.compare(semver.coerce(a).version, 
semver.coerce(b).version));
+            }
+          },
+        }));
       return new Listr(findReleaseTasks, { concurrent: projects.length });
     },
   },
   {
     title: 'Extract documents',
     task: () => {
-      const extractDocumentTasks = projectPaths.map((project) => ({
-        title: `Extract ${project.name} documents`,
-        task: () => {
-          const extractProjectTasks = project.name === 'apisix'
-            ? versions.map((version) => ({
-              title: `Extract ${project.name} ${version} documents`,
-              task: () => new Listr([
-                ...extractDocsHeadTasks(project, version),
-                {
-                  title: 'Generate API docs for APISIX',
-                  enabled: () => os.platform() === 'linux' && 
isFileExisted(`./${tempPath}/${project.name}/autodocs`),
-                  task: () => generateAPIDocs(project),
-                },
-                ...extractDocsTailTasks(project, version),
-              ]),
-            }))
-            : projectReleases[project.name].map((version) => ({
-              title: `Extract ${project.name} ${version} documents`,
-              task: () => new Listr([
-                ...extractDocsHeadTasks(project, version),
-                ...extractDocsTailTasks(project, version),
-              ]),
-            }));
-          return new Listr(extractProjectTasks);
-        },
-      }));
+      // add apisix versions to release
+      projectReleases.apisix = versions;
 
-      return new Listr(extractDocumentTasks, { concurrent: projects.length });
-    },
-  },
-  {
-    // NOTE: Extract docs from the master branch
-    title: 'Extract next version documents',
-    task: () => {
-      const nextVersionTasks = projectPaths.map((project) => ({
-        title: `Extract ${project.name} next version documents`,
-        task: () => {
-          const steps = [
+      const writeVersion2File = async (target, versions) => {
+        if (versions.length === 0) return Promise.resolve();
+
+        if (await isFileExisted(target)) await fs.rm(target);
+        return fs.writeFile(
+          target,
+          JSON.stringify(versions.reverse(), null, 2),
+        );
+      };
+
+      const extractTasks = projectPaths.map((project) => (
+        {
+          title: `Extract ${project.name}`,
+          task: () => new Listr([
             {
-              title: `Checkout ${project.name} next version`,
-              task: () => 
gitMap[project.name].cwd(`${tempPath}/${project.name}/`).checkout(`remotes/origin/${project.branch}`,
 ['-f']),
+              title: `Create target dir`,
+              task: async () => {
+                const projectName = project.name;
+                const docs = 
`${websitePath}/docs-${projectName}_versioned_docs`;
+                const sidebar = 
`${websitePath}/docs-${projectName}_versioned_sidebars`;
+                const versions = 
`${websitePath}/docs-${projectName}_versions.json`;
+                const i18nDocs = 
`${websitePath}/i18n/zh/docusaurus-plugin-content-docs-docs-${projectName}`;
+
+                await Promise.all([
+                  removeFolder(docs),
+                  removeFolder(sidebar),
+                  removeFolder(i18nDocs),
+                  writeVersion2File(versions, projectReleases[projectName]),
+                ]);
+              },
             },
             {
-              title: 'Replace elements inside MD files',
-              task: async () => {
-                await replaceMDElements(project.name, 
[`${tempPath}/${project.name}/docs`], project.branch);
-                await copyAllDocs(project);
+              title: `Extract ${project.name} release versions documents`,
+              task: () => {
+                const steps = projectReleases[project.name]
+                  .map((version) => ({
+                    title: `Extract ${project.name} ${version} documents`,
+                    task: () => extractDocsVersionTasks(project, version),
+                  }));
+                return new Listr(steps);
               },
             },
             {
-              title: 'Generate API docs for APISIX',
-              enabled: () => os.platform() === 'linux' && project.name === 
'apisix' && isFileExisted(`./${tempPath}/${project.name}/autodocs`),
-              task: () => generateAPIDocs(project),
+              title: `Extract ${project.name} next version documents`,
+              task: () => extractDocsNextVersionTasks(project, project.branch),
             },
-          ];
-          return new Listr(steps);
-        },
-      }));
-      return new Listr(nextVersionTasks, { concurrent: projects.length });
+          ]),
+        }
+      ));
+      return new Listr(extractTasks, { concurrent: projects.length });
     },
   },
-  {
-    title: 'Clean temporary files',
-    task: () => removeFolder(tempPath),
-  },
 ]);
 
 tasks.run()
@@ -251,43 +226,69 @@ async function copyFolder(srcDir, tarDir) {
   }));
 }
 
-async function copyDocs(source, target, projectName, locale) {
-  if (!await isDirExisted(`${source}/${locale}/latest`)) {
-    log(`[${projectName}] can not find ${locale} latest folder, skip.`);
-    return;
+async function copyDocs(source, target) {
+  if (!await isDirExisted(source)) {
+    log(`cannot find ${source}, skip.`);
+    return Promise.reject(new Error(`${source} no exist`));
   }
 
-  log(`[${projectName}] load ${locale} latest docs config.json`);
-  const configLatest = JSON.parse(
-    await fs.readFile(`${source}/${locale}/latest/config.json`),
-  );
+  return copyFolder(source, target);
+}
 
-  log(`[${projectName}] delete ${locale} docs config.json`);
-  log(`[${projectName}] copy latest ${locale} docs to ${target}`);
-  log(`[${projectName}] write sidebar.json`);
-  await Promise.all([
-    fs.unlink(`${source}/${locale}/latest/config.json`),
-    copyFolder(`${source}/${locale}/latest/`, target),
-    fs.writeFile(`${target}/sidebars.json`, JSON.stringify({
-      docs: [...(configLatest.sidebar || [])],
-    }, null, 2)),
-  ]);
+function normalizeSidebar(sidebarList, version) {
+  const arr = sidebarList.map((block) => ({
+    ...block,
+    ...block?.id ? { id: `version-${version}/${block.id}` } : {},
+    ...block?.items?.length > 0
+      ? {
+        collapsible: true,
+        collapsed: true,
+        items: block.items.map((v) => {
+          if (typeof v === 'string') {
+            return {
+              type: 'doc',
+              id: `version-${version}/${v}`,
+            };
+          }
+          return normalizeSidebar([v], version)[`version-${version}/docs`][0];
+        }),
+      }
+      : {},
+  }));
+
+  return {
+    [`version-${version}/docs`]: arr,
+  };
 }
 
-async function copyAllDocs(project) {
-  await Promise.all([
-    copyDocs(
-      `${tempPath}/${project.name}/docs`,
-      project.latestDocs.en,
-      project.name,
-      'en',
-    ),
-    copyDocs(
-      `${tempPath}/${project.name}/docs`,
-      project.latestDocs.zh,
-      project.name,
-      'zh',
-    ),
+async function handleConfig2Sidebar(source, target, version, versionedTarget) {
+  log(`load ${source} latest docs config.json`);
+  const config = JSON.parse(
+    await fs.readFile(`${source}/config.json`),
+  );
+
+  const sidebar = JSON.stringify(
+    { docs: config.sidebar || [] },
+    null,
+    2,
+  );
+
+  const writeVersionedSidebar = async () => {
+    if (typeof version === 'undefined') return Promise.resolve();
+
+    const versionedSidebar = JSON.stringify(
+      normalizeSidebar(config.sidebar, version),
+      null,
+      2,
+    );
+    await fs.mkdir(versionedTarget, { recursive: true });
+    return fs.writeFile(`${versionedTarget}/version-${version}-sidebars.json`, 
versionedSidebar);
+  };
+
+  await Promise.allSettled([
+    fs.unlink(`${source}/config.json`),
+    fs.writeFile(`${target}/sidebars.json`, sidebar),
+    writeVersionedSidebar(),
   ]);
 }
 
@@ -298,22 +299,99 @@ async function copyAllDocs(project) {
  * @param version
  */
 function generateAPIDocs(project) {
+  const dir = `./${tempPath}/${project.name}`;
   return new Listr([
     {
       title: 'Generate markdown files',
       task: () => {
         childProcess.spawnSync(`autodocs/generate.sh`, ['build'], {
-          cwd: `./${tempPath}/${project.name}`,
+          cwd: dir,
         });
       },
     },
     {
       title: 'Copy API docs',
       task: async () => {
-        if (await 
isFileExisted(`./${tempPath}/${project.name}/autodocs/output`)) {
-          await copyFolder(`${tempPath}/${project.name}/autodocs/output`, 
`${project.latestDocs.en}/pdk-docs`);
+        if (
+          await copyDocs(`${dir}/autodocs/output`, `${dir}/pdk-docs`)
+            .then(() => true)
+            .catch(() => false)
+        ) {
+          await fs.rm(`${dir}/autodocs/output`, { recursive: true });
         }
       },
     },
   ]);
 }
+
+function extractDocsVersionTasks(project, version) {
+  const projectPath = `${tempPath}/${project.name}`;
+  return new Listr([
+    {
+      title: `Checkout ${project.name} version: ${version}`,
+      task: () => 
gitMap[project.name].cwd(projectPath).checkout(`remotes/origin/release/${version}`,
 ['-f']),
+    },
+    {
+      title: 'Generate API docs for APISIX',
+      enabled: () => project.name === 'apisix' && os.platform() === 'linux' && 
isFileExisted(`./${tempPath}/${project.name}/autodocs`),
+      task: () => generateAPIDocs(project),
+    },
+    {
+      title: `Copy to target path`,
+      task: async () => {
+        const branchName = `release/${version}`;
+        const projectName = project.name;
+
+        const docsPath = `${projectPath}/docs`;
+        const enSrcDocs = `${docsPath}/en/latest`;
+        const zhSrcDocs = `${docsPath}/zh/latest`;
+        const enTargetDocs = 
`${websitePath}/docs-${projectName}_versioned_docs/version-${version}`;
+        const zhTargetDocs = 
`${websitePath}/i18n/zh/docusaurus-plugin-content-docs-docs-${projectName}/version-${version}`;
+
+        await Promise.all([
+          copyDocs(enSrcDocs, enTargetDocs)
+            .then(() => replaceMDElements(projectName, [enTargetDocs], 
branchName))
+            .then(() => handleConfig2Sidebar(enTargetDocs, enTargetDocs, 
version, `${websitePath}/docs-${project.name}_versioned_sidebars`)),
+          copyDocs(zhSrcDocs, zhTargetDocs)
+            .then(() => replaceMDElements(projectName, [zhTargetDocs], 
branchName)),
+        ]).catch(() => { /* ignore */ });
+      },
+    },
+  ]);
+}
+
+function extractDocsNextVersionTasks(project, version) {
+  const projectPath = `${tempPath}/${project.name}`;
+  return new Listr([
+    {
+      title: `Checkout ${project.name} version: ${version}`,
+      task: () => 
gitMap[project.name].cwd(projectPath).checkout(`remotes/origin/${version}`, 
['-f']),
+    },
+    {
+      title: 'Generate API docs for APISIX',
+      enabled: () => project.name === 'apisix' && os.platform() === 'linux' && 
isFileExisted(`./${projectPath}/autodocs`),
+      task: () => generateAPIDocs(project),
+    },
+    {
+      title: `Copy to target path`,
+      task: async () => {
+        const branchName = project.branch;
+        const projectName = project.name;
+
+        const docsPath = `${projectPath}/docs`;
+        const enSrcDocs = `${docsPath}/en/latest`;
+        const zhSrcDocs = `${docsPath}/zh/latest`;
+        const enTargetDocs = `${websitePath}/docs/${projectName}`;
+        const zhTargetDocs = 
`${websitePath}/i18n/zh/docusaurus-plugin-content-docs-docs-${projectName}/current`;
+
+        await Promise.all([
+          copyDocs(enSrcDocs, enTargetDocs)
+            .then(() => replaceMDElements(projectName, [enTargetDocs], 
branchName))
+            .then(() => handleConfig2Sidebar(enTargetDocs, enTargetDocs)),
+          copyDocs(zhSrcDocs, zhTargetDocs)
+            .then(() => replaceMDElements(projectName, [zhTargetDocs], 
branchName)),
+        ]).catch(() => { /* ignore */ });
+      },
+    },
+  ]);
+}
diff --git a/website/docs/apisix-dashboard/IGNORE_DOC.md 
b/website/docs/apisix-dashboard/IGNORE_DOC.md
deleted file mode 100644
index cb65e3042af..00000000000
--- a/website/docs/apisix-dashboard/IGNORE_DOC.md
+++ /dev/null
@@ -1 +0,0 @@
-# IGNORE_DOC
diff --git a/website/docs/apisix-dashboard/sidebars.json 
b/website/docs/apisix-dashboard/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix-dashboard/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git a/website/docs/apisix-docker/IGNORE_DOC.md 
b/website/docs/apisix-docker/IGNORE_DOC.md
deleted file mode 100644
index cb65e3042af..00000000000
--- a/website/docs/apisix-docker/IGNORE_DOC.md
+++ /dev/null
@@ -1 +0,0 @@
-# IGNORE_DOC
diff --git a/website/docs/apisix-docker/sidebars.json 
b/website/docs/apisix-docker/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix-docker/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git a/website/docs/apisix-go-plugin-runner/IGNORE_DOC.md 
b/website/docs/apisix-go-plugin-runner/IGNORE_DOC.md
deleted file mode 100644
index cb65e3042af..00000000000
--- a/website/docs/apisix-go-plugin-runner/IGNORE_DOC.md
+++ /dev/null
@@ -1 +0,0 @@
-# IGNORE_DOC
diff --git a/website/docs/apisix-go-plugin-runner/sidebars.json 
b/website/docs/apisix-go-plugin-runner/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix-go-plugin-runner/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git a/website/docs/apisix-helm-chart/IGNORE_DOC.md 
b/website/docs/apisix-helm-chart/IGNORE_DOC.md
deleted file mode 100644
index cb65e3042af..00000000000
--- a/website/docs/apisix-helm-chart/IGNORE_DOC.md
+++ /dev/null
@@ -1 +0,0 @@
-# IGNORE_DOC
diff --git a/website/docs/apisix-helm-chart/sidebars.json 
b/website/docs/apisix-helm-chart/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix-helm-chart/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git a/website/docs/apisix-ingress-controller/IGNORE_DOC.md 
b/website/docs/apisix-ingress-controller/IGNORE_DOC.md
deleted file mode 100644
index cb65e3042af..00000000000
--- a/website/docs/apisix-ingress-controller/IGNORE_DOC.md
+++ /dev/null
@@ -1 +0,0 @@
-# IGNORE_DOC
diff --git a/website/docs/apisix-ingress-controller/sidebars.json 
b/website/docs/apisix-ingress-controller/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix-ingress-controller/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git a/website/docs/apisix-java-plugin-runner/IGNORE_DOC.md 
b/website/docs/apisix-java-plugin-runner/IGNORE_DOC.md
deleted file mode 100644
index cb65e3042af..00000000000
--- a/website/docs/apisix-java-plugin-runner/IGNORE_DOC.md
+++ /dev/null
@@ -1 +0,0 @@
-# IGNORE_DOC
diff --git a/website/docs/apisix-java-plugin-runner/sidebars.json 
b/website/docs/apisix-java-plugin-runner/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix-java-plugin-runner/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git a/website/docs/apisix-python-plugin-runner/IGNORE_DOC.md 
b/website/docs/apisix-python-plugin-runner/IGNORE_DOC.md
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/website/docs/apisix-python-plugin-runner/sidebars.json 
b/website/docs/apisix-python-plugin-runner/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix-python-plugin-runner/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git a/website/docs/apisix/IGNORE_DOC.md 
b/website/docs/apisix/IGNORE_DOC.md
deleted file mode 100644
index cb65e3042af..00000000000
--- a/website/docs/apisix/IGNORE_DOC.md
+++ /dev/null
@@ -1 +0,0 @@
-# IGNORE_DOC
diff --git a/website/docs/apisix/sidebars.json 
b/website/docs/apisix/sidebars.json
deleted file mode 100644
index b0cd5aac7d4..00000000000
--- a/website/docs/apisix/sidebars.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "docs": {}
-}
diff --git 
a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix-dashboard/current.json
 
b/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix-dashboard/current.json
deleted file mode 100644
index c94f377964f..00000000000
--- 
a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix-dashboard/current.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "version.label": {
-    "message": "Next",
-    "description": "The label for version current"
-  },
-  "sidebar.docs.category.APISIX®️ Dashboard": {
-    "message": "APISIX®️ Dashboard",
-    "description": "The label for category APISIX®️ Dashboard in sidebar docs"
-  }
-}
diff --git 
a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix-ingress-controller/current.json
 
b/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix-ingress-controller/current.json
deleted file mode 100644
index f1aaa7a28fa..00000000000
--- 
a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix-ingress-controller/current.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "version.label": {
-    "message": "Next",
-    "description": "The label for version current"
-  },
-  "sidebar.docs.category.APISIX®️ Ingress Controller": {
-    "message": "APISIX®️ Ingress Controller",
-    "description": "The label for category APISIX®️ Ingress Controller in 
sidebar docs"
-  }
-}
diff --git 
a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix/current.json 
b/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix/current.json
deleted file mode 100644
index 6386e12e00b..00000000000
--- a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix/current.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "version.label": {
-    "message": "Next",
-    "description": "The label for version current"
-  },
-  "sidebar.docs.category.APISIX®️": {
-    "message": "APISIX®️",
-    "description": "The label for category APISIX®️ in sidebar docs"
-  }
-}
diff --git 
a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix/current/.gitlock 
b/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix/current/.gitlock
deleted file mode 100644
index 23ac7798803..00000000000
--- 
a/website/i18n/zh/docusaurus-plugin-content-docs-docs-apisix/current/.gitlock
+++ /dev/null
@@ -1 +0,0 @@
-# GITLOCK
\ No newline at end of file

Reply via email to