如何构建StarRocks官方文档

不知道是网络问题还是官网问题,StarRocks文档经常出现卡顿的情况,曾经构建过Flink文档, 所以也想尝试自己构建一个StarRocks的本地官方文档
断断续续折腾了好几天,就不废话了,直接上实际步骤

1. 环境

1.1 Linux环境 (虚拟机或者wsl都可以,我用的wsl,不要使用cygwin,路径转换有问题)
1.2 nvm、npm、yarn

nvm安装和管理nodejs

2. 直接开始

2.1 git clone doc-build (构建StarRocks文档官方项目)
git clone https://github.com/StarRocks/doc-build.git
2.2 README.md 中有明确的步骤
yarn install --frozen-lockfile
git clone https://gitcode.com/GitHub_Trending/st/starrocks.git temp # 原地址为github,不推荐,建议替换为gitee官方仓库地址加速下载
npm run copy
export DOCUSAURUS_IGNORE_SSG_WARNINGS=true
export NODE_OPTIONS="--max-old-space-size=12192"
yarn clear && yarn build && yarn serve # build 为实际构建静态文档命令,serve 为开启本地web服务
# 在Linux上构建完后可复制构建好的 build 文件夹到任意位置,并在当前位置使用 python -m http.server [port] 开启本地web服务

可以开启两个窗口 同时执行 yarn install 和 git clone

2.3 执行npm run copy前的几个文件修改(可忽略)

本博客构建的文档版本 3.5 3.1 2.5 的中文和英文 文档

  1. doc-build/versions.json 只保留需要的版本
["3.5","3.1","2.5"
]
  1. doc-build/docusaurus.config.js 中需修改的几个位置
  i18n: {defaultLocale: 'en', # 不建议修改为zh,否则搜索跳转功能页面url可能不对,别问我怎么知道的 。。。locales: ['en', 'zh'], # 只保留中英文localeConfigs: {en: {htmlLang: 'en-US',},zh: {htmlLang: 'zh-CN',},},},onlyIncludeVersions: (() => {if (isVersioningDisabled) {return ['current'];} else if (isBuildFast){return [...versions.slice(0, 1)];} else {return ['3.5', '3.1', '2.5']; # 只保留需要的版本}})(),versions: (() => {if (isVersioningDisabled) {return { current: { label: 'current' } };} else {return { # 只保留需要的版本'3.5': { label: 'Latest-3.5', banner: 'none' },'3.1': { label: '3.1', banner: 'none' },'2.5': { label: '2.5', banner: 'none' },};}})(),},
  1. doc-build/src/versions.json 只保留需要的版本(不要删除 main !!!)
[{"branch": "main"},{"branch": "3.5"},{"branch": "3.1"},{"branch": "2.5"}
]
  1. doc-build/src/locales.json
[{"id": "zh-cn","sourceDir": "docs/zh"},{ # 英文文档还是建议保留的,删除用不上的日文文档"id": "en-us","sourceDir": "docs/en"}
]
  1. doc-build/src/config.js
# 将github仓库地址切换为gitee,注意没有.git后缀,多版本构建文档会checkout对应分支
repoUrl: `https://gitcode.com/GitHub_Trending/st/starrocks`
  1. doc-build_IGNORE\cp_common_docs.sh 删除不需要的分支和语言
# 此处贴出我这次修改后的完整内容
#!/bin/bashrm -rf versioned_docs/version-*/release_notes versioned_docs/version-*/developers
rm -rf i18n/zh/docusaurus-plugin-content-docs/version-*/release_notes i18n/zh/docusaurus-plugin-content-docs/version-*/developersmkdir -p releasenotes
mkdir -p commonmkdir -p versioned_docs/version-3.5/_assets/
mkdir -p versioned_docs/version-3.1/_assets/
mkdir -p versioned_docs/version-2.5/_assets/mkdir -p versioned_docs/version-3.5/developers/
mkdir -p versioned_docs/version-3.1/developers/
mkdir -p versioned_docs/version-2.5/developers/mkdir -p i18n/zh/docusaurus-plugin-content-docs/version-3.5/_assets/
mkdir -p i18n/zh/docusaurus-plugin-content-docs/version-3.1/_assets/
mkdir -p i18n/zh/docusaurus-plugin-content-docs/version-2.5/_assets/mkdir -p i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
mkdir -p i18n/zh/docusaurus-plugin-content-docs/version-3.1/developers/
mkdir -p i18n/zh/docusaurus-plugin-content-docs/version-2.5/developers/cp versioned_docs/version-3.5/_assets/visualized_heap_profile.png versioned_docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/visualized_heap_profile.png versioned_docs/version-2.5/_assets/
cp versioned_docs/version-3.5/_assets/visualized_heap_profile.png i18n/zh/docusaurus-plugin-content-docs/version-3.5/_assets/
cp versioned_docs/version-3.5/_assets/visualized_heap_profile.png i18n/zh/docusaurus-plugin-content-docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/visualized_heap_profile.png i18n/zh/docusaurus-plugin-content-docs/version-2.5/_assets/cp versioned_docs/version-3.5/_assets/debug_info.png versioned_docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/debug_info.png versioned_docs/version-2.5/_assets/
cp versioned_docs/version-3.5/_assets/debug_info.png i18n/zh/docusaurus-plugin-content-docs/version-3.5/_assets/
cp versioned_docs/version-3.5/_assets/debug_info.png i18n/zh/docusaurus-plugin-content-docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/debug_info.png i18n/zh/docusaurus-plugin-content-docs/version-2.5/_assets/cp versioned_docs/version-3.5/_assets/*trace*.png versioned_docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/*trace*.png versioned_docs/version-2.5/_assets/cp versioned_docs/version-3.5/_assets/*trace*.png i18n/zh/docusaurus-plugin-content-docs/version-3.5/_assets/
cp versioned_docs/version-3.5/_assets/*trace*.png i18n/zh/docusaurus-plugin-content-docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/*trace*.png i18n/zh/docusaurus-plugin-content-docs/version-2.5/_assets/cp versioned_docs/version-3.5/_assets/IDEA*.png versioned_docs/version-2.5/_assets/
cp versioned_docs/version-3.5/_assets/ide*.png versioned_docs/version-2.5/_assets/cp versioned_docs/version-3.5/_assets/IDEA*.png i18n/zh/docusaurus-plugin-content-docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/ide*.png i18n/zh/docusaurus-plugin-content-docs/version-3.1/_assets/
cp versioned_docs/version-3.5/_assets/IDEA*.png i18n/zh/docusaurus-plugin-content-docs/version-2.5/_assets/
cp versioned_docs/version-3.5/_assets/ide*.png i18n/zh/docusaurus-plugin-content-docs/version-2.5/_assets/mv common/releasenotes/en-us/release*.md releasenotes/
mv common/releasenotes/en-us/*or.md releasenotes/mv common/releasenotes/zh-cn/release*.md i18n/zh/docusaurus-plugin-content-docs-releasenotes/current/
mv common/releasenotes/zh-cn/*or.md i18n/zh/docusaurus-plugin-content-docs-releasenotes/current/cp -r common/releasenotes/en-us/build-starrocks versioned_docs/version-3.5/developers/
cp -r common/releasenotes/en-us/code-style-guides versioned_docs/version-3.5/developers/
cp common/releasenotes/en-us/debuginfo.md versioned_docs/version-3.5/developers/
cp -r common/releasenotes/en-us/development-environment versioned_docs/version-3.5/developers/
cp common/releasenotes/en-us/How_to_Contribute.md versioned_docs/version-3.5/developers/
cp common/releasenotes/en-us/jemalloc_heap_profile.md versioned_docs/version-3.5/developers/
cp -r common/releasenotes/en-us/trace-tools versioned_docs/version-3.5/developers/
cp common/releasenotes/en-us/versions.md versioned_docs/version-3.5/developers/cp -r versioned_docs/version-3.5/developers/* versioned_docs/version-3.1/developers/
cp -r versioned_docs/version-3.5/developers/* versioned_docs/version-2.5/developers/cp -r common/releasenotes/zh-cn/build-starrocks         i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
cp -r common/releasenotes/zh-cn/code-style-guides       i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
cp common/releasenotes/zh-cn/debuginfo.md               i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
cp -r common/releasenotes/zh-cn/development-environment i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
cp common/releasenotes/zh-cn/How_to_Contribute.md       i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
cp common/releasenotes/zh-cn/jemalloc_heap_profile.md   i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
cp -r common/releasenotes/zh-cn/trace-tools             i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/
cp common/releasenotes/zh-cn/versions.md                i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/cp -r i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/* i18n/zh/docusaurus-plugin-content-docs/version-3.1/developers/
cp -r i18n/zh/docusaurus-plugin-content-docs/version-3.5/developers/* i18n/zh/docusaurus-plugin-content-docs/version-2.5/developers/rm versioned_docs/version-3.1/developers/versions.md
rm versioned_docs/version-2.5/developers/versions.md
rm i18n/zh/docusaurus-plugin-content-docs/version-3.1/developers/versions.md
rm i18n/zh/docusaurus-plugin-content-docs/version-2.5/developers/versions.md

3. 构建过程和对应截图

3.1 doc-build clone、yarn install、starrocks clone

仓库克隆和yarn安装组件

3.2 执行 npm run copy、设置参数、yarn clear

从package.json可以看出执行的实际命令是 node cli.js copy,cli.js中定义了根据versions.json和locales.json定义下载指定的分支和语言文档文件的操作,最后会调用doc-build\_IGNORE\cp_common_docs.sh复制上述文档到指定位置用于后续的构建
文档复制

3.3 开始构建文档、开启web服务

构建文档+开启web服务

666 开始访问 localhost:3000

和官网基本看不出差别,左上角的分支切换、语言切换,右上角的搜索功能也都全部支持,开心,祝大家都能构建成功 !!!
非常完美

也可直接cmd切换到doc-build/build并执行python -m http.server,也可正常使用,体验感可能会差点,但胜在方便
python开启web服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95326.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堡垒机(跳板机)入门指南:构建更安全的多服务器运维架构

随着你的业务不断扩张,你云上服务器的数量,是不是也从一台,变成了三台、五台、甚至一个由几十台机器组成的庞大集群?你像一个尽职的“国王”,为你王国的每一座“城池”(每一台服务器)&#xff0…

(链表)Leetcode206链表反转+Leetcode6删除链表的倒数第N个结点+虚拟头节点使用

虚拟头结点的作用是:简化插入/删除逻辑方便返回头节点减少边界错误 Leetcode206链表反转 206. 反转链表 - 力扣(LeetCode) 头插法 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, val0, nextN…

自然语言处理NLP:嵌入层Embedding中input_dim的计算——Tokenizer文本分词和编码

1. 词汇表大小(input_dim)计算方法 嵌入层Embedding中的input_dim是根据数据中所有唯一词(或字)的总数来决定的。可以通过Tokenizer文本分词和编码得到。 简单说,Tokenizer 是一个文本分词和编码器,它主要做…

python中的分代垃圾回收机制的原理【python进阶二、2】

1. 分代设计思想Python 将对象按存活时间分为三代(Generation 0, 1, 2):0代(年轻代):新创建的对象。1代(中年代):经历一次GC扫描后存活的对象。2代(老年代&am…

【后端】云服务器用nginx配置域名访问前后端分离项目

云服务器有多个服务(前端 3000 端口、后端 8288 端口,甚至还有别的服务)。希望用户只输入 域名(比如 https://example.com),而不是 example.com:3000、example.com:8288。本质上是要做 端口隐藏 域名统一入…

软考中级数据库系统工程师学习专篇(67、数据库恢复)

67、数据库恢复数据库故障恢复中基于检查点的事务分类与处理策略在数据库系统发生故障后的恢复过程中,​检查点(Checkpoint)​​ 技术是关键机制,它能有效缩小恢复范围,减少需要扫描的日志量,从而加速恢复进…

SpringBoot 分库分表 - 实现、配置与优化

分库分表(Database Sharding)是一种数据库架构优化技术,通过将数据分散到多个数据库或表中,以应对高并发、大数据量场景,提升系统性能和扩展性。 在 Spring Boot 中,分库分表可以通过框架支持(如…

爬虫代理实操:选择可靠的HTTP(S)代理的方法

在爬虫工作里,选对代理协议(HTTP/HTTPS)只是第一步,更关键的是找到 “可靠” 的代理 —— 哪怕是 HTTPS 代理,若节点不稳定、IP 纯净度低,照样会频繁被封,反而耽误采集进度。这几年踩过不少坑&a…

数据库常见故障类型

数据库常见故障类型数据库系统运行过程中可能发生的故障主要分为以下三类,其破坏性由小到大:故障类型别名根本原因影响范围典型例子​1. 事务故障​逻辑故障事务内部的程序逻辑错误或输入异常。​单个或少量事务。- 输入数据不合法(如除零错误…

【Android】Span富文本简介

一,概述android.text包下span体系类,主要指Spanned、Spannable、ParagraphStyle、CharacterStyle实现类。Android通过Span体系,搭建了富文本API,其中Spanned、Spannable实现了CharSequence接口,旨在映射段落start~end之…

【HTML】draggable 属性:解锁网页交互新维度

一、简介 在Web开发中,用户与内容的交互方式直接影响用户体验的深度。在 HTML 中,draggable 是一个全局属性,通过简单配置即可让任意元素实现拖拽功能。也可通过结合 draggable 属性和 JavaScript 事件,可以实现丰富的拖放交互功能…

如何在Github中创建仓库?如何将本地项目上传到GitHub中?

1.1 点击New repository(这个是创建代码仓库的意思)初次完成后只有一个文件最后:在本地git clone 项目地址然后把项目文件复制到git的文件夹内再提交到远程仓库git add . git commit -m "修改https"git push origin mainmain为分支…

【前端教程】HTML 基础界面开发

一、网站导航栏设计与实现 导航栏是网站的重要组成部分&#xff0c;负责引导用户浏览网站的各个板块。以下是一个实用的导航栏实现方案&#xff1a; 实现代码 HTML 结构&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8" /&…

【学Python自动化】 6. Python 模块系统学习笔记

一、模块基础 什么是模块&#xff1f;包含 Python 定义和语句的 .py 文件解决代码复用和组织问题每个模块有自己的命名空间创建模块示例# fibo.py - 斐波那契模块 def fib(n):"""打印小于n的斐波那契数列"""a, b 0, 1while a < n:print(a, e…

机器学习-时序预测2

门控循环单元GRU 接着机器学习-时序预测1-CSDN博客这个说&#xff0c;GRU是LSTM的一个简化而高效的变体&#xff0c;都使用“门控机制”来控制信息流&#xff0c;但它通过合并一些组件&#xff0c;使结构更简单、参数更少、计算更快&#xff0c;同时在许多任务上性能与 LSTM 相…

数据湖与数据仓库

大数据前沿技术详解 目录 数据湖技术湖仓一体架构数据网格实时流处理技术云原生数据技术数据治理与血缘AI原生数据平台边缘计算与大数据 核心内容包括&#xff1a; 数据湖技术 - 架构模式、技术栈、面临的挑战 湖仓一体架构 - Delta Lake、Iceberg、Hudi等主流实现 数据网格…

Python OpenCV图像处理与深度学习:Python OpenCV入门-图像处理基础

Python OpenCV入门实践&#xff1a;图像处理基础 学习目标 通过本课程&#xff0c;学员们将了解OpenCV的基本概念、安装方法&#xff0c;掌握如何使用Python和OpenCV进行基本的图像处理操作&#xff0c;包括图像的读取、显示、保存以及简单的图像变换。 相关知识点 Python Open…

【lua】Lua 入门教程:从环境搭建到基础编程

Lua 入门教程&#xff1a;从环境搭建到基础编程 Lua 是一种轻量级、可扩展的脚本语言&#xff0c;广泛应用于游戏开发&#xff08;如《魔兽世界》《Roblox》&#xff09;、嵌入式系统、Web 后端等领域。它语法简洁、运行高效&#xff0c;非常适合作为编程入门语言或辅助开发工…

MySQL索引事务(未完成)

索引的相关操作1.查看索引show index from 表名;2.创建索引create index 索引名字 on 表名(列名);创建索引&#xff0c;是一个危险操作创建索引的时候&#xff0c;需要针对现有的数据&#xff0c;进行大规模的重新整理如果当前表是一个空表&#xff0c;或者数据不多&#xff0c…

Docker一键快速部署压测工具,高效测试 API 接口性能

以下是对该压测工具的简单介绍&#xff1a; 这是一个简易的在线压测工具&#xff0c;可以对 API 接口/页面、websocket服务等进行压力测试&#xff0c;检验服务的并发能力使用 thinkphp ant design pro 构建&#xff0c;压测能力驱动基于 wrk 、 php 多进程协程实现支持在线授…