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

jeffreyh pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/doris-website.git


The following commit(s) were added to refs/heads/develop by this push:
     new 92d98020ee Modify article style (#1443)
92d98020ee is described below

commit 92d98020ee1a6b32512810bf00c60f9bd369008e
Author: yangon <2689991...@qq.com>
AuthorDate: Tue Dec 3 17:08:37 2024 +0800

    Modify article style (#1443)
    
    Co-authored-by: liyang <liy...@selectdb.com>
---
 package.json                                       |   2 +-
 sidebarsCommunity.json                             |   5 -
 src/hooks/use-is-doc.ts                            |  14 +
 src/scss/_variables.scss                           |   4 -
 src/scss/components/markdown.scss                  | 140 ++++++----
 src/scss/components/navbar.scss                    |  35 +--
 src/scss/custom.scss                               |  21 +-
 src/theme/DocSidebarItem/Category/index.tsx        |  16 +-
 src/theme/DocSidebarItem/Category/style.scss       |   4 +
 src/theme/Layout/index.tsx                         |  86 +++---
 src/theme/Navbar/Layout/index.tsx                  |   7 +-
 .../{compilation-arm.md => compilation-arm.mdx}    | 301 ++++++++++-----------
 .../compilation-with-ldb-toolchain.md              |  16 +-
 13 files changed, 358 insertions(+), 293 deletions(-)

diff --git a/package.json b/package.json
index 41de552938..ef741f5171 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
         "docusaurus": "docusaurus",
         "start": "docusaurus start",
         "start:zh-CN": "docusaurus start --locale zh-CN",
-        "build": "TEST_ENV_URL='http://localhost:3000' 
NODE_OPTIONS=--max_old_space_size=8192 
PWA_SERVICE_WORKER_URL=https://doris.apache.org/sw.js docusaurus build",
+        "build": "NODE_OPTIONS=--max_old_space_size=8192 
PWA_SERVICE_WORKER_URL=https://doris.apache.org/sw.js docusaurus build",
         "build:version": "docusaurus set-versions && docusaurus build",
         "swizzle": "docusaurus swizzle",
         "deploy": "docusaurus deploy",
diff --git a/sidebarsCommunity.json b/sidebarsCommunity.json
index 5b45deb721..480333d4f7 100644
--- a/sidebarsCommunity.json
+++ b/sidebarsCommunity.json
@@ -7,7 +7,6 @@
         {
             "type": "category",
             "label": "How to Contribute",
-            "collapsed": false,
             "items": [
                 "how-to-contribute/how-to-contribute",
                 "how-to-contribute/contributor-guide",
@@ -24,7 +23,6 @@
         {
             "type": "category",
             "label": "Release Process & Verification",
-            "collapsed": false,
             "items": [
                 "release-and-verify/release-prepare",
                 "release-and-verify/release-doris-core",
@@ -39,7 +37,6 @@
         {
             "type": "category",
             "label": "Design Documents",
-            "collapsed": false,
             "items": [
                 "design/doris_storage_optimization",
                 "design/grouping_sets_design",
@@ -50,7 +47,6 @@
         {
             "type": "category",
             "label": "Developer Guide",
-            "collapsed": false,
             "items": [
                 "developer-guide/debug-tool",
                 "developer-guide/docker-dev",
@@ -88,7 +84,6 @@
         {
             "type": "category",
             "label": "Announcements",
-            "collapsed": false,
             "items": ["doris-announcement/announcement-2401"]
         }
     ]
diff --git a/src/hooks/use-is-doc.ts b/src/hooks/use-is-doc.ts
new file mode 100644
index 0000000000..38268f1c61
--- /dev/null
+++ b/src/hooks/use-is-doc.ts
@@ -0,0 +1,14 @@
+import { useState, useEffect } from 'react';
+
+export default function useIsDocPage(defaultValue: boolean) {
+    const [isDocsPage, setIsDocsPage] = useState(defaultValue);
+    useEffect(() => {
+        if (typeof window !== 'undefined') {
+            const pathname = location.pathname.split('/')[1];
+            const docsPage = pathname === 'docs' || 
location.pathname.includes('zh-CN/docs');
+            setIsDocsPage(docsPage);
+        }
+    }, [typeof window !== 'undefined' && location.pathname]);
+
+    return [isDocsPage, setIsDocsPage];
+}
diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss
index 6b5874a9aa..bd4837b3d9 100644
--- a/src/scss/_variables.scss
+++ b/src/scss/_variables.scss
@@ -16,14 +16,10 @@ html[lang='en-US'] {
     --ifm-color-primary-light: #5c65de;
     --ifm-color-primary-lighter: #6870e0;
     --ifm-color-primary-lightest: #8b92e7;
-    --ifm-h1-font-size: 2rem;
-    --ifm-h2-font-size: 1.5rem;
-    --ifm-h3-font-size: 1rem;
     --ifm-navbar-search-input-icon: url('data:image/svg+xml;utf8,<svg 
fill="currentColor" xmlns="http://www.w3.org/2000/svg"; width="24px" 
height="24px" viewBox="0 0 24 24"><path d="M11 2.5C15.6945 2.5 19.5 6.3055 19.5 
11C19.5 13.0175 18.797 14.871 17.623 16.3285C17.7199 16.3471 17.8089 16.3945 
17.8785 16.4645L21.0605 19.6465C21.1542 19.7403 21.2069 19.8674 21.2069 
20C21.2069 20.1326 21.1542 20.2597 21.0605 20.3535L20.3535 21.0605C20.2597 
21.1542 20.1326 21.2069 20 21.2069C19.8674 21.2069 [...]
     --ifm-navbar-item-padding-vertical: 0.4rem;
     --ifm-navbar-height: 5rem;
     --ifm-menu-color-background-active: #e4e8ee;
-    --ifm-leading: 1.2;
     --ifm-blockquote-color: #63646d;
 
     --global-gutter: 1.5625rem;
diff --git a/src/scss/components/markdown.scss 
b/src/scss/components/markdown.scss
index 7926b5f428..27421976a1 100644
--- a/src/scss/components/markdown.scss
+++ b/src/scss/components/markdown.scss
@@ -1,3 +1,19 @@
+:root {
+    --custom-h1-font-size: 2.25rem;
+    --custom-h2-font-size: 1.625rem;
+    --custom-h3-font-size: 1.25rem;
+    --custom-h4-font-size: 1.125rem;
+    --custom-leading: 1rem;
+    --custom-heading-rhythm-bottom: 1.25;
+    --custom-heading-rhythm-top: 2.5;
+    --custom-tabs-rhythm-top: 1.25;
+    --custom-list-rhythm-bottom: 0.625;
+    --custom-h4-rhythm-bottom: 2;
+    --custom-other-rhythm-margin: 1.25; // table code tip details img
+    --custom-text-rhythm-bottom: 0.75;
+    --custom-text-line-height: 1.625rem;
+}
+
 .markdown {
     color: #4c576c;
     padding-left: 1rem;
@@ -18,54 +34,80 @@
         color: #1d1d1d;
     }
 
-    h1,
-    h1:first-child {
-        margin-bottom: 1.5rem;
-        margin-top: 0;
-        font-size: 2.25rem;
-        font-weight: 700;
-    }
+    // h1,
+    // h1:first-child {
+    //     font-size: 2.25rem;
+    // }
 
-    h2 {
-        font-size: 1.625rem;
-        line-height: 2.625rem;
+    h1,
+    h2,
+    h3 {
         font-weight: 700;
-        // margin-bottom: 1.25rem;
-        // margin-top: 1.25rem;
-        // padding-top: 1.25rem;
-        margin-top: calc(var(--ifm-h2-font-size) * var(--ifm-leading));
     }
 
-    h3 {
-        font-size: 1.25rem;
-        font-weight: 700;
-        line-height: 2rem;
-        margin-bottom: 1.25rem;
-        margin-top: 1.25rem;
+    p,
+    li {
+        margin-bottom: calc(var(--custom-leading) * 
var(--custom-text-rhythm-bottom));
+        font-size: 1rem;
+        font-weight: 400;
+        line-height: var(--custom-text-line-height);
+        margin-top: 0 !important;
     }
 
+    h1,
+    h2,
+    h3,
     h4 {
-        font-size: 1.125rem;
-        font-weight: 400;
-        line-height: 1.75rem;
-        margin-top: 1.25rem;
-        margin-bottom: 1.25rem;
+        margin-bottom: calc(var(--custom-leading) * 
var(--custom-heading-rhythm-bottom));
     }
 
-    p {
-        line-height: 1.625rem;
-        font-size: 1rem;
-        font-weight: 400;
-        margin-top: 0;
-        margin-bottom: 0.75rem;
+    ol,
+    ul,
+    li {
+        margin-bottom: calc(var(--custom-leading) * 
var(--custom-list-rhythm-bottom));
     }
 
     .theme-code-block,
-    img,
     table,
+    .theme-admonition-tip,
+    details,
+    img {
+        margin-bottom: calc(var(--custom-leading) * 
var(--custom-other-rhythm-margin));
+        margin-top: calc(var(--custom-leading) * 
var(--custom-other-rhythm-margin));
+    }
+
     .theme-admonition-tip {
-        margin-top: 0.625rem;
-        margin-bottom: 1.25rem;
+        padding: calc(var(--custom-leading) * 2);
+    }
+
+    h2,
+    h3 {
+        margin-top: calc(var(--custom-leading) * 
var(--custom-heading-rhythm-top));
+    }
+
+    h4 {
+        margin-top: calc(var(--custom-leading) * 
var(--custom-h4-rhythm-bottom));
+    }
+
+    h1 {
+        font-size: var(--custom-h1-font-size);
+    }
+
+    h2 {
+        font-size: var(--custom-h2-font-size);
+    }
+
+    h3 {
+        font-size: var(--custom-h3-font-size);
+    }
+
+    h4 {
+        font-size: var(--custom-h4-font-size);
+    }
+
+    .tabs {
+        margin-bottom: var(--custom-leading);
+        margin-top: calc(var(--custom-leading) * 
var(--custom-tabs-rhythm-top));
     }
 
     code {
@@ -114,21 +156,23 @@
     a {
         color: var(--ifm-color-primary);
     }
-    ul {
-        margin: 16px 0;
-        padding-left: 20px;
-        li {
-            margin-top: 4px;
-            position: relative;
-            list-style: initial;
-        }
-    }
+
+    ul,
     ol {
-        margin: 16px 0;
-        padding-left: 20px;
-        li {
-            list-style: decimal;
-        }
+        list-style-type: disc;
+        padding-left: 1.625rem;
+    }
+    ul ul {
+        list-style-type: circle;
+    }
+    ul ul ul {
+        list-style-type: square;
+    }
+    ol ul {
+        list-style-type: circle;
+    }
+    ol ul ul {
+        list-style-type: square;
     }
 }
 
diff --git a/src/scss/components/navbar.scss b/src/scss/components/navbar.scss
index 7758f70e5c..42924464ec 100644
--- a/src/scss/components/navbar.scss
+++ b/src/scss/components/navbar.scss
@@ -23,26 +23,27 @@
 
             .navbar__search > :last-child {
                 position: absolute;
-                right: 20px;
-                top: 21px;
+                right: 10x;
+                top: 50%;
                 transform: translateY(-50%);
-                // display: flex !important;
-                // align-items: center;
-                // justify-content: center;
+                display: flex !important;
+                align-items: center;
+                justify-content: center;
                 pointer-events: none;
-                border: 1px solid #edf2fa;
                 padding: 5px 7px;
-                background-color: #ffffff;
+                background-color: #fff;
+                border: none;
                 gap: 2px;
-                .searchHint {
-                    color: #8592a6;
-                    background-color: #ffffff;
-                    border: none;
-                    border-radius: none;
-                    box-shadow: none;
-                    font-size: 12px;
-                    padding: 0;
-                }
+                height: auto;
+            }
+            .navbar__search kbd {
+                color: #8592a6 !important;
+                background-color: #ffffff !important;
+                border: none !important;
+                border-radius: none !important;
+                box-shadow: none !important;
+                font-size: 12px !important;
+                padding: 0 !important;
             }
             .navbar__search > span {
                 width: 100% !important;
@@ -54,7 +55,7 @@
                 margin-top: 8px;
                 width: var(--search-local-modal-width, 560px);
                 position: relative;
-                padding: var(--search-local-spacing, 12px);
+                padding: 0 !important;
             }
             .navbar__search input {
                 width: 100% !important;
diff --git a/src/scss/custom.scss b/src/scss/custom.scss
index 8a6ecc65a5..4fe89aae35 100644
--- a/src/scss/custom.scss
+++ b/src/scss/custom.scss
@@ -1,4 +1,4 @@
-@use "sass:meta";
+@use 'sass:meta';
 /**
  * Any CSS included here will be global. The classic template
  * bundles Infima by default. Infima is a CSS framework designed to
@@ -38,18 +38,33 @@
     color: white;
 }
 
-:root {
-    --font-family-base: 'SF Pro Display', 'SF Pro Icons', 'Helvetica Neue', 
Helvetica, Arial, sans-serif;
+html[lang='zh-Hans-CN'] {
+    --font-family-base: 'MiSans';
+    font-family: 'MiSans', 'Source Sans Pro', 'Helvetica Neue', Helvetica, 
Arial, sans-serif;
 }
+
+html[lang='en-US'] {
+    --font-family-base: 'Inter';
+    font-family: 'Inter', 'MiSans Latin', 'Source Sans Pro', 'Helvetica Neue', 
Helvetica, Arial, sans-serif;
+}
+
+// :root {
+//     --font-family-base: 'SF Pro Display', 'SF Pro Icons', 'Helvetica Neue', 
Helvetica, Arial, sans-serif;
+// }
 .markdown :where(p, h1, h2, h3, h4, h5, h6, li, blockquote) {
     font-family: var(--font-family-base);
     color: #2a2f34;
 }
+
+body {
+    font-family: var(--font-family-base);
+}
 // body, .markdown {
 //     font-family: var(--font-family-base);
 //     font-weight: 400 !important;
 //     color: #2a2f34
 // }
+
 .navbar__link {
     font-family: var(--font-family-base);
     font-weight: 400 !important;
diff --git a/src/theme/DocSidebarItem/Category/index.tsx 
b/src/theme/DocSidebarItem/Category/index.tsx
index 8df61ce952..3c01d8caa1 100644
--- a/src/theme/DocSidebarItem/Category/index.tsx
+++ b/src/theme/DocSidebarItem/Category/index.tsx
@@ -12,9 +12,14 @@ import { translate } from '@docusaurus/Translate';
 import useIsBrowser from '@docusaurus/useIsBrowser';
 import DocSidebarItems from '@theme/DocSidebarItems';
 import type { Props } from '@theme/DocSidebarItem/Category';
+import useIsDocPage from '../../../hooks/use-is-doc';
 
 import './style.scss';
 
+interface DocSidebarItemCategoryProps extends Props {
+    length: number;
+}
+
 // If we navigate to a category and it becomes active, it should automatically
 // expand itself
 function useAutoExpandActiveCategory({
@@ -104,7 +109,8 @@ export default function DocSidebarItemCategory({
     index,
     length,
     ...props
-}: Props): JSX.Element {
+}: DocSidebarItemCategoryProps): JSX.Element {
+    const [isDocsPage] = useIsDocPage(false);
     const { items, label, collapsible, className, href } = item;
     const {
         docs: {
@@ -139,7 +145,7 @@ export default function DocSidebarItemCategory({
             setCollapsed(true);
         }
     }, [collapsible, expandedItem, index, setCollapsed, 
autoCollapseCategories]);
-    
+
     return (
         <li
             className={clsx(
@@ -157,7 +163,7 @@ export default function DocSidebarItemCategory({
                     'menu__list-item-collapsible--active': isCurrentPage,
                 })}
             >
-                {level === 1 ? (
+                {level === 1 && isDocsPage ? (
                     <p className={clsx('title_level_1')}>{label}</p>
                 ) : (
                     <>
@@ -207,7 +213,7 @@ export default function DocSidebarItemCategory({
             <Collapsible
                 lazy
                 as="ul"
-                className={`menu__list ${level === 1 ? 'menu__list_level_2' : 
''}`}
+                className={`menu__list ${level === 1 ? 'menu__list_level_2' : 
''} ${level === 1 && !isDocsPage ? 'community_level_2' : ''} `}
                 collapsed={collapsed}
             >
                 <DocSidebarItems
@@ -218,7 +224,7 @@ export default function DocSidebarItemCategory({
                     level={level + 1}
                 />
             </Collapsible>
-            {level === 1 && index !== length - 1 ? <div 
className='divider'></div> : null}
+            {level === 1 && index !== length - 1 && isDocsPage ? <div 
className="divider"></div> : null}
         </li>
     );
 }
diff --git a/src/theme/DocSidebarItem/Category/style.scss 
b/src/theme/DocSidebarItem/Category/style.scss
index 7c05fe86b2..ca974f2b6a 100644
--- a/src/theme/DocSidebarItem/Category/style.scss
+++ b/src/theme/DocSidebarItem/Category/style.scss
@@ -52,9 +52,13 @@
         gap: 4px;
         align-self: stretch;
     }
+
     .menu__list_level_2 {
         padding-left: 0 !important;
     }
+    .community_level_2 {
+        padding-left: 0.75rem !important;
+    }
 
     .divider {
         width: calc(100% - 0.625rem);
diff --git a/src/theme/Layout/index.tsx b/src/theme/Layout/index.tsx
index ed9f468e54..b2bb9dd830 100644
--- a/src/theme/Layout/index.tsx
+++ b/src/theme/Layout/index.tsx
@@ -1,56 +1,56 @@
 import React, { useEffect } from 'react';
 import clsx from 'clsx';
 import ErrorBoundary from '@docusaurus/ErrorBoundary';
-import {
-  PageMetadata,
-  SkipToContentFallbackId,
-  ThemeClassNames,
-} from '@docusaurus/theme-common';
-import {useKeyboardNavigation} from '@docusaurus/theme-common/internal';
+import { PageMetadata, SkipToContentFallbackId, ThemeClassNames } from 
'@docusaurus/theme-common';
+import { useKeyboardNavigation } from '@docusaurus/theme-common/internal';
 import SkipToContent from '@theme/SkipToContent';
 import AnnouncementBar from '@theme/AnnouncementBar';
 import Navbar from '@theme/Navbar';
 import Footer from '@theme/Footer';
 import LayoutProvider from '@theme/Layout/Provider';
 import ErrorPageContent from '@theme/ErrorPageContent';
-import type {Props} from '@theme/Layout';
+import type { Props } from '@theme/Layout';
 import styles from './styles.module.css';
+import { useHistory } from '@docusaurus/router';
 
 export default function Layout(props: Props): JSX.Element {
-  const {
-    children,
-    noFooter,
-    wrapperClassName,
-    // Not really layout-related, but kept for convenience/retro-compatibility
-    title,
-    description,
-  } = props;
-
-  useKeyboardNavigation();
-
-  return (
-    <LayoutProvider>
-      <PageMetadata title={title} description={description} />
-
-      <SkipToContent />
-
-      <AnnouncementBar />
-
-      <Navbar />
-
-      <div
-        id={SkipToContentFallbackId}
-        className={clsx(
-          ThemeClassNames.wrapper.main,
-          styles.mainWrapper,
-          wrapperClassName,
-        )}>
-        <ErrorBoundary fallback={(params) => <ErrorPageContent {...params} />}>
-          {children}
-        </ErrorBoundary>
-      </div>
-
-      {!noFooter && <Footer />}
-    </LayoutProvider>
-  );
+    const {
+        children,
+        noFooter,
+        wrapperClassName,
+        // Not really layout-related, but kept for 
convenience/retro-compatibility
+        title,
+        description,
+    } = props;
+    const history = useHistory();
+    useKeyboardNavigation();
+
+    useEffect(() => {
+        if (
+            history.location.pathname?.length > 1 &&
+            history.location.pathname[history.location.pathname.length - 1] 
=== '/'
+        )
+            history.replace(history.location.pathname.slice(0, -1));
+    }, []);
+
+    return (
+        <LayoutProvider>
+            <PageMetadata title={title} description={description} />
+
+            <SkipToContent />
+
+            <AnnouncementBar />
+
+            <Navbar />
+
+            <div
+                id={SkipToContentFallbackId}
+                className={clsx(ThemeClassNames.wrapper.main, 
styles.mainWrapper, wrapperClassName)}
+            >
+                <ErrorBoundary fallback={params => <ErrorPageContent 
{...params} />}>{children}</ErrorBoundary>
+            </div>
+
+            {!noFooter && <Footer />}
+        </LayoutProvider>
+    );
 }
diff --git a/src/theme/Navbar/Layout/index.tsx 
b/src/theme/Navbar/Layout/index.tsx
index 3de1bfc7d4..cac5c65760 100644
--- a/src/theme/Navbar/Layout/index.tsx
+++ b/src/theme/Navbar/Layout/index.tsx
@@ -5,7 +5,7 @@ import { useHideableNavbar, useNavbarMobileSidebar } from 
'@docusaurus/theme-com
 import { translate } from '@docusaurus/Translate';
 import NavbarMobileSidebar from '@theme/Navbar/MobileSidebar';
 import type { Props } from '@theme/Navbar/Layout';
-
+import useIsDocPage from '@site/src/hooks/use-is-doc';
 import styles from './styles.module.css';
 
 function NavbarBackdrop(props: ComponentProps<'div'>) {
@@ -17,8 +17,7 @@ export default function NavbarLayout({ children }: Props): 
JSX.Element {
         navbar: { hideOnScroll, style },
     } = useThemeConfig();
     const mobileSidebar = useNavbarMobileSidebar();
-
-    const [isDocsPage, setIsDocsPage] = useState(false);
+    const [isDocsPage] = useIsDocPage(false);
     const [isCommunity, setIsCommunity] = useState(false);
     const [withoutDoc, setWithoutDoc] = useState(false);
     const { navbarRef, isNavbarVisible } = useHideableNavbar(hideOnScroll);
@@ -28,8 +27,6 @@ export default function NavbarLayout({ children }: Props): 
JSX.Element {
             const tempPath = ['get-starting', 'benchmark', 'ecosystems', 
'faq', 'releasenotes'];
             const isDocsPage =
                 tempPath.includes(pathname) || tempPath.some(path => 
location.pathname.includes(`zh-CN/${path}`));
-            const docsPage = pathname === 'docs' || 
location.pathname.includes('zh-CN/docs');
-            setIsDocsPage(docsPage);
             setWithoutDoc(isDocsPage);
         }
 
diff --git 
a/versioned_docs/version-2.1/install/source-install/compilation-arm.md 
b/versioned_docs/version-2.1/install/source-install/compilation-arm.mdx
similarity index 75%
rename from versioned_docs/version-2.1/install/source-install/compilation-arm.md
rename to versioned_docs/version-2.1/install/source-install/compilation-arm.mdx
index 6310b03be8..b6f28572ff 100644
--- a/versioned_docs/version-2.1/install/source-install/compilation-arm.md
+++ b/versioned_docs/version-2.1/install/source-install/compilation-arm.mdx
@@ -4,8 +4,7 @@
 "language": "en"
 }
 ---
-
-<!-- 
+{/* 
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -21,13 +20,12 @@ software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
-under the License.
--->
+under the License. */}
+
 
 import Tabs from '@theme/Tabs';
 import TabItem from '@theme/TabItem';
 
-# Compile with ARM
 
 This topic is about how to compile Doris on the ARM64 platform.
 
@@ -37,29 +35,29 @@ Note that this document is intended as a guide only. Other 
errors may occur when
 
 1. KylinOS:
 
-```shell
-$> cat /etc/.kyinfo
-name=Kylin-Server
-milestone=10-SP1-Release-Build04-20200711
-arch=arm64
-beta=False
-time=2020-07-11 17:16:54
-dist_id=Kylin-Server-10-SP1-Release-Build04-20200711-arm64-2020-07-11 17:16:54
-
-$> cat /proc/cpuinfo
-model name  : Phytium,FT-2000+/64
-```
+  ```shell
+  $> cat /etc/.kyinfo
+  name=Kylin-Server
+  milestone=10-SP1-Release-Build04-20200711
+  arch=arm64
+  beta=False
+  time=2020-07-11 17:16:54
+  dist_id=Kylin-Server-10-SP1-Release-Build04-20200711-arm64-2020-07-11 
17:16:54
+
+  $> cat /proc/cpuinfo
+  model name  : Phytium,FT-2000+/64
+  ```
 
 2. CentOS 7.9 or higher
 
-```shell
-$> lsb_release -a
-LSB Version:   :core-4.1-aarch64:core-4.1-noarch
-Distributor ID:        CentOS
-Description:   CentOS Linux release 7.9.2009 (AltArch)
-Release:       7.9.2009
-Codename:      AltArch
-```
+  ```shell
+  $> lsb_release -a
+  LSB Version: :core-4.1-aarch64:core-4.1-noarch
+  Distributor ID:      CentOS
+  Description: CentOS Linux release 7.9.2009 (AltArch)
+  Release:     7.9.2009
+  Codename:    AltArch
+  ```
 
 ## Software Environment
 
@@ -84,12 +82,12 @@ Codename:   AltArch
 
 1. Create root directories for pacakges
 
-```shell
-# Create root directory for software download and installation packages
-mkdir /opt/tools
-# Create root directory for software installation
-mkdir /opt/software
-```
+  ```shell
+  # Create root directory for software download and installation packages
+  mkdir /opt/tools
+  # Create root directory for software installation
+  mkdir /opt/software
+  ```
   </p>
     <p>
 
@@ -97,98 +95,94 @@ mkdir /opt/software
 
   - Git
 
-```shell
-  # yum install (save the trouble of compilation)
-  yum install -y git
-```
-
-- JDK8 (2 methods)
-
-```shell
-  # 1. yum install, which can avoid additional download and configuration. 
Installing the devel package is to get tools such as the jps command.
-  yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
-  
-  # 2. Download the installation package of the arm64 architecture, decompress 
it, and configure the environment variables.
-  cd /opt/tools
-  wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/jdk-8u291-linux-aarch64.tar.gz
 && \
-  tar -zxvf jdk-8u291-linux-aarch64.tar.gz && \
-  mv jdk1.8.0_291 /opt/software/jdk8
-```
+    ```shell
+      # yum install (save the trouble of compilation)
+      yum install -y git
+    ```
+
+  - JDK8 (2 methods)
+    ```shell
+      # 1. yum install, which can avoid additional download and configuration. 
Installing the devel package is to get tools such as the jps command.
+      yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
+      
+      # 2. Download the installation package of the arm64 architecture, 
decompress it, and configure the environment variables.
+      cd /opt/tools
+      wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/jdk-8u291-linux-aarch64.tar.gz
 && \
+      tar -zxvf jdk-8u291-linux-aarch64.tar.gz && \
+      mv jdk1.8.0_291 /opt/software/jdk8
+    ```
 
   - Maven
-
-```shell
-  cd /opt/tools
-  # Download the wget tool, decompress it, and configure the environment 
variables.
-  wget 
https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
 && \
-    tar -zxvf apache-maven-3.6.3-bin.tar.gz && \
-    mv apache-maven-3.6.3 /opt/software/maven
-```
+    ```shell
+      cd /opt/tools
+      # Download the wget tool, decompress it, and configure the environment 
variables.
+      wget 
https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
 && \
+        tar -zxvf apache-maven-3.6.3-bin.tar.gz && \
+        mv apache-maven-3.6.3 /opt/software/maven
+    ```
 
   - NodeJS
-
-```shell
-  cd /opt/tools
-  # Download the installation package of the arm64 architecture
-  wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/node-v16.3.0-linux-arm64.tar.xz
 && \
-    tar -xvf node-v16.3.0-linux-arm64.tar.xz && \
-    mv node-v16.3.0-linux-arm64 /opt/software/nodejs
-```
+    ```shell
+      cd /opt/tools
+      # Download the installation package of the arm64 architecture
+      wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/node-v16.3.0-linux-arm64.tar.xz
 && \
+        tar -xvf node-v16.3.0-linux-arm64.tar.xz && \
+        mv node-v16.3.0-linux-arm64 /opt/software/nodejs
+    ```
 
   - LDB-Toolchain
-
-```shell
-  cd /opt/tools
-  # Download LDB-Toolchain ARM version
-  wget 
https://github.com/amosbird/ldb_toolchain_gen/releases/download/v0.9.1/ldb_toolchain_gen.aarch64.sh
 && \
-    sh ldb_toolchain_gen.aarch64.sh /opt/software/ldb_toolchain/
-```
+    ```shell
+      cd /opt/tools
+      # Download LDB-Toolchain ARM version
+      wget 
https://github.com/amosbird/ldb_toolchain_gen/releases/download/v0.9.1/ldb_toolchain_gen.aarch64.sh
 && \
+        sh ldb_toolchain_gen.aarch64.sh /opt/software/ldb_toolchain/
+    ```
   </p>
     <p>
 
 3. Configure environment variables
 
-```shell
-# Configure environment variables
-vim /etc/profile.d/doris.sh
-export JAVA_HOME=/opt/software/jdk8
-export MAVEN_HOME=/opt/software/maven
-export NODE_JS_HOME=/opt/software/nodejs
-export LDB_HOME=/opt/software/ldb_toolchain
-export 
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_JS_HOME/bin:$LDB_HOME/bin:$PATH
-
-# Save, exit, and refresh environment variables
-source /etc/profile.d/doris.sh
-
-# Test
-java -version
-> java version "1.8.0_291"
-mvn -version
-> Apache Maven 3.6.3
-node --version
-> v16.3.0
-gcc --version
-> gcc-11
-```
+  ```shell
+  # Configure environment variables
+  vim /etc/profile.d/doris.sh
+  export JAVA_HOME=/opt/software/jdk8
+  export MAVEN_HOME=/opt/software/maven
+  export NODE_JS_HOME=/opt/software/nodejs
+  export LDB_HOME=/opt/software/ldb_toolchain
+  export 
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_JS_HOME/bin:$LDB_HOME/bin:$PATH
+
+  # Save, exit, and refresh environment variables
+  source /etc/profile.d/doris.sh
+
+  # Test
+  java -version
+  > java version "1.8.0_291"
+  mvn -version
+  > Apache Maven 3.6.3
+  node --version
+  > v16.3.0
+  gcc --version
+  > gcc-11
+  ```
   </p>
     <p>
 
 4. Install other environments and components
 
-```shell
-# Install required system packages
-sudo yum install -y byacc patch automake libtool make which file ncurses-devel 
gettext-devel unzip bzip2 bison zip util-linux wget git python2
+  ```shell
+  # Install required system packages
+  sudo yum install -y byacc patch automake libtool make which file 
ncurses-devel gettext-devel unzip bzip2 bison zip util-linux wget git python2
 
-# Install autoconf-2.69
-cd /opt/tools
-wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
-    tar zxf autoconf-2.69.tar.gz && \
-    mv autoconf-2.69 /opt/software/autoconf && \
-    cd /opt/software/autoconf && \
-    ./configure && \
-    make && \
-    make install
-```
+  # Install autoconf-2.69
+  cd /opt/tools
+  wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
+      tar zxf autoconf-2.69.tar.gz && \
+      mv autoconf-2.69 /opt/software/autoconf && \
+      cd /opt/software/autoconf && \
+      ./configure && \
+      make && \
+      make install
+  ```
   </p>
   </TabItem>
   <TabItem value="Ubuntu 20.04" label="Ubuntu 20.04">
@@ -196,9 +190,9 @@ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz 
&& \
 
 1. Update apt-get repository
 
-```shell
-apt-get update
-```
+  ```shell
+  apt-get update
+  ```
   </p>
     <p>
 
@@ -206,15 +200,15 @@ apt-get update
 
   The Ubuntu shell installs dash instead of bash by default. It needs to be 
switched to bash for proper execution. Run the following command to view the 
details of sh and confirm which program corresponds to the shell:
 
-```shell
-ls -al /bin/sh
-```
+  ```shell
+  ls -al /bin/sh
+  ```
 
   The shell can be switched back to dash by:
 
-```shell
-sudo dpkg-reconfigure dash
-```
+  ```shell
+  sudo dpkg-reconfigure dash
+  ```
 
   Then select no to confirm. After these steps, dash will no longer be the 
default shell tool.
   </p>
@@ -222,61 +216,60 @@ sudo dpkg-reconfigure dash
 
 3. Create root directories for packages
 
-```shell
-  # Create root directory for software download and installation packages
-  mkdir /opt/tools
-  # Create root directory for software installation
-  mkdir /opt/software
-```
+  ```shell
+    # Create root directory for software download and installation packages
+    mkdir /opt/tools
+    # Create root directory for software installation
+    mkdir /opt/software
+  ```
   </p>
     <p>
 
 4. Installing dependencies
   - Git
-
-```shell
-  # apt-get install, which can save the trouble of compilation
-  apt-get -y install git
-```
+  ```shell
+    # apt-get install, which can save the trouble of compilation
+    apt-get -y install git
+  ```
 
   - JDK8
 
-```shell
-  # Download the installation package of the ARM64 architecture, decompress 
it, and configure environment variables.
-  cd /opt/tools
-  wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/jdk-8u291-linux-aarch64.tar.gz
 && \
-    tar -zxvf jdk-8u291-linux-aarch64.tar.gz && \
-    mv jdk1.8.0_291 /opt/software/jdk8
-```
+  ```shell
+    # Download the installation package of the ARM64 architecture, decompress 
it, and configure environment variables.
+    cd /opt/tools
+    wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/jdk-8u291-linux-aarch64.tar.gz
 && \
+      tar -zxvf jdk-8u291-linux-aarch64.tar.gz && \
+      mv jdk1.8.0_291 /opt/software/jdk8
+  ```
 
   - Maven
 
-```shell
-  cd /opt/tools
-  # Download the wget tool, decompress it, and configure the environment 
variables.
-  wget 
https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
 && \
-    tar -zxvf apache-maven-3.6.3-bin.tar.gz && \
-    mv apache-maven-3.6.3 /opt/software/maven
-```
+  ```shell
+    cd /opt/tools
+    # Download the wget tool, decompress it, and configure the environment 
variables.
+    wget 
https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
 && \
+      tar -zxvf apache-maven-3.6.3-bin.tar.gz && \
+      mv apache-maven-3.6.3 /opt/software/maven
+  ```
 
   - NodeJS
 
-```shell
-  cd /opt/tools
-  # Download the installation package of ARM64 architecture.
-  wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/node-v16.3.0-linux-arm64.tar.xz
 && \
-    tar -xvf node-v16.3.0-linux-arm64.tar.xz && \
-    mv node-v16.3.0-linux-arm64 /opt/software/nodejs
-```
+  ```shell
+    cd /opt/tools
+    # Download the installation package of ARM64 architecture.
+    wget 
https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/node-v16.3.0-linux-arm64.tar.xz
 && \
+      tar -xvf node-v16.3.0-linux-arm64.tar.xz && \
+      mv node-v16.3.0-linux-arm64 /opt/software/nodejs
+  ```
 
   - ldb-toolchain
 
-```shell
-  cd /opt/tools
-  # Download ldb-toolchain ARM version
-  wget 
https://github.com/amosbird/ldb_toolchain_gen/releases/download/v0.9.1/ldb_toolchain_gen.aarch64.sh
 && \
-    sh ldb_toolchain_gen.aarch64.sh /opt/software/ldb_toolchain/
-```
+  ```shell
+    cd /opt/tools
+    # Download ldb-toolchain ARM version
+    wget 
https://github.com/amosbird/ldb_toolchain_gen/releases/download/v0.9.1/ldb_toolchain_gen.aarch64.sh
 && \
+      sh ldb_toolchain_gen.aarch64.sh /opt/software/ldb_toolchain/
+  ```
   </p>
     <p>
 
@@ -514,7 +507,7 @@ If you still encounter problems when compiling or starting, 
please consult the [
 
        > fatal error: curl/curl.h: No such file or directory
        >
-       >  2 |     #include <curl/curl.h>
+       >  2 |     #include &lt;curl/curl.h>
        >
        > compilation terminated.
        >
diff --git 
a/versioned_docs/version-2.1/install/source-install/compilation-with-ldb-toolchain.md
 
b/versioned_docs/version-2.1/install/source-install/compilation-with-ldb-toolchain.md
index bf99e93047..e0eec7d349 100644
--- 
a/versioned_docs/version-2.1/install/source-install/compilation-with-ldb-toolchain.md
+++ 
b/versioned_docs/version-2.1/install/source-install/compilation-with-ldb-toolchain.md
@@ -39,18 +39,18 @@ Special thanks to [Amos Bird](https://github.com/amosbird) 
for the contribution.
 This method applies to most Linux distributions (CentOS, Ubuntu, etc.).
 
 1. **Download** **`ldb_toolchain_gen.sh`**
+    
+    Download the latest `ldb_toolchain_gen.sh` from 
[here](https://github.com/amosbird/ldb_toolchain_gen/releases). This script is 
used to generate ldb toolchain.
 
-Download the latest `ldb_toolchain_gen.sh` from 
[here](https://github.com/amosbird/ldb_toolchain_gen/releases). This script is 
used to generate ldb toolchain.
-
-:::tip 
-For more information, please visit 
https://github.com/amosbird/ldb_toolchain_gen 
-:::
+    :::tip 
+    For more information, please visit 
https://github.com/amosbird/ldb_toolchain_gen 
+    :::
 
 2. **Execute the following command to generate ldb toolchain.**
 
-```Plain
-sh ldb_toolchain_gen.sh /path/to/ldb_toolchain/
-```
+    ```Plain
+    sh ldb_toolchain_gen.sh /path/to/ldb_toolchain/
+    ```
 
 `/path/to/ldb_toolchain/` is the installation directory for the toolchain. 
After successful execution, the following directory structure will be generated 
under `/path/to/ldb_toolchain/`:
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org


Reply via email to