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 ebde4294ebb fix: modify sync doc script to adapt to branches' name of 
apisix-ingress (#1228)
ebde4294ebb is described below

commit ebde4294ebbf0a13baa40f37ac4eeb21502f849c
Author: Young <[email protected]>
AuthorDate: Fri Jul 22 12:03:58 2022 +0800

    fix: modify sync doc script to adapt to branches' name of apisix-ingress 
(#1228)
---
 scripts/sync-docs.js | 65 +++++++++++++++++++++-------------------------------
 1 file changed, 26 insertions(+), 39 deletions(-)

diff --git a/scripts/sync-docs.js b/scripts/sync-docs.js
index f7df6685027..f5e328c5371 100644
--- a/scripts/sync-docs.js
+++ b/scripts/sync-docs.js
@@ -1,3 +1,4 @@
+/* eslint-disable max-len */
 const childProcess = require('child_process');
 const fs = require('fs/promises');
 const path = require('path');
@@ -66,17 +67,17 @@ const tasks = new Listr([
         .map((project) => ({
           title: `Find ${project.name} releases`,
           task: async () => {
-            const ret = await gitMap[project.name]
-              .cwd(`${tempPath}/${project.name}/`)
-              .branch();
+            const ret = await 
gitMap[project.name].cwd(`${tempPath}/${project.name}/`).branch();
             if (ret.all) {
+              const isIngressController = project.name === 
'apisix-ingress-controller';
               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,
-                ));
+                .filter((release) => (isIngressController
+                  ? release.includes('remotes/origin/v') && 
semver.gt(release.replace('remotes/origin/v', ''), '0.3.0')
+                  : release.includes('remotes/origin/release/')))
+                .map((release) => (isIngressController
+                  ? release.replace('remotes/origin/v', '')
+                  : release.replace('remotes/origin/release/', '')))
+                .sort((a, b) => semver.compare(semver.coerce(a).version, 
semver.coerce(b).version));
             }
           },
         }));
@@ -93,10 +94,7 @@ const tasks = new Listr([
         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),
-        );
+        return fs.writeFile(target, JSON.stringify(versions.reverse(), null, 
2));
       };
 
       const extractTasks = projectPaths.map((project) => ({
@@ -175,10 +173,7 @@ async function replaceMDElements(project, path, branch = 
'master') {
   // replace the markdown urls inside markdown files
   const markdownOptions = {
     files: allMDFilePaths,
-    from: RegExp(
-      `\\[.*\\]\\((\\.\\.\\/)*(${languages.join('|')})\\/.*\\.md\\)`,
-      'g',
-    ),
+    from: 
RegExp(`\\[.*\\]\\((\\.\\.\\/)*(${languages.join('|')})\\/.*\\.md\\)`, 'g'),
     to: (match) => {
       const markdownPath = match.replace(/\(|\)|\.\.\/*|\[.*\]|\.\//g, ''); // 
"en/latest/discovery/dns.md"
       const lang = markdownPath.split('/')[0];
@@ -222,10 +217,7 @@ async function removeFolder(tarDir) {
 }
 
 async function copyFolder(srcDir, tarDir) {
-  const [files] = await Promise.all([
-    fs.readdir(srcDir),
-    fs.mkdir(tarDir, { recursive: true }),
-  ]);
+  const [files] = await Promise.all([fs.readdir(srcDir), fs.mkdir(tarDir, { 
recursive: true })]);
 
   return Promise.allSettled(
     files.map(async (file) => {
@@ -287,16 +279,9 @@ async function handleConfig2Sidebar(source, target, 
version, versionedTarget) {
   const writeVersionedSidebar = async () => {
     if (typeof version === 'undefined') return Promise.resolve();
 
-    const versionedSidebar = JSON.stringify(
-      normalizeSidebar(config.sidebar, version),
-      null,
-      2,
-    );
+    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,
-    );
+    return fs.writeFile(`${versionedTarget}/version-${version}-sidebars.json`, 
versionedSidebar);
   };
 
   await Promise.allSettled([
@@ -340,12 +325,18 @@ function generateAPIDocs(project) {
 
 function extractDocsVersionTasks(project, version) {
   const projectPath = `${tempPath}/${project.name}`;
+  const isIngressController = project.name === 'apisix-ingress-controller';
   return new Listr([
     {
       title: `Checkout ${project.name} version: ${version}`,
       task: () => gitMap[project.name]
         .cwd(projectPath)
-        .checkout(`remotes/origin/release/${version}`, ['-f']),
+        .checkout(
+          isIngressController
+            ? `remotes/origin/v${version}`
+            : `remotes/origin/release/${version}`,
+          ['-f'],
+        ),
     },
     {
       title: 'Generate API docs for APISIX',
@@ -357,7 +348,7 @@ function extractDocsVersionTasks(project, version) {
     {
       title: `Copy to target path`,
       task: async () => {
-        const branchName = `release/${version}`;
+        const branchName = isIngressController ? `v${version}` : 
`release/${version}`;
         const projectName = project.name;
 
         const docsPath = `${projectPath}/docs`;
@@ -375,8 +366,7 @@ function extractDocsVersionTasks(project, version) {
               version,
               `${websitePath}/docs-${project.name}_versioned_sidebars`,
             )),
-          copyDocs(zhSrcDocs, zhTargetDocs)
-            .then(() => replaceMDElements(projectName, [zhTargetDocs], 
branchName)),
+          copyDocs(zhSrcDocs, zhTargetDocs).then(() => 
replaceMDElements(projectName, [zhTargetDocs], branchName)),
         ]).catch(() => {
           /* ignore */
         });
@@ -390,9 +380,7 @@ function extractDocsNextVersionTasks(project, version) {
   return new Listr([
     {
       title: `Checkout ${project.name} version: ${version}`,
-      task: () => gitMap[project.name]
-        .cwd(projectPath)
-        .checkout(`remotes/origin/${version}`, ['-f']),
+      task: () => 
gitMap[project.name].cwd(projectPath).checkout(`remotes/origin/${version}`, 
['-f']),
     },
     {
       title: 'Generate API docs for APISIX',
@@ -417,8 +405,7 @@ function extractDocsNextVersionTasks(project, version) {
           copyDocs(enSrcDocs, enTargetDocs)
             .then(() => replaceMDElements(projectName, [enTargetDocs], 
branchName))
             .then(() => handleConfig2Sidebar(enTargetDocs, enTargetDocs)),
-          copyDocs(zhSrcDocs, zhTargetDocs)
-            .then(() => replaceMDElements(projectName, [zhTargetDocs], 
branchName)),
+          copyDocs(zhSrcDocs, zhTargetDocs).then(() => 
replaceMDElements(projectName, [zhTargetDocs], branchName)),
         ]).catch(() => {
           /* ignore */
         });

Reply via email to