资讯详情

资讯详情

Diem 开发者文档站点构建与部署完全指南:基于 Docusaurus 的本地开发、静态构建与发布

Diem 开发者文档站点构建与部署完全指南基于 Docusaurus 的本地开发、静态构建与发布【免费下载链接】diemDiem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.项目地址: https://gitcode.com/gh_mirrors/di/diemDiem 开发者文档网站developers.diem.com是 Diem 区块链项目的官方技术文档门户基于 Docusaurus 静态站点生成器构建。本文以仓库中的 developers.diem.com/src/README.md 为主体结合 developers.diem.com/package.json、developers.diem.com/scripts/build_docs.sh 与 developers.diem.com/docusaurus.config.js 等源码级细节完整讲解如何搭建本地开发环境、启动热更新服务器、自动生成 Rustdoc 与 Python SDK 的 API 参考文档、产出静态构建产物并发布上线。读完本文你将能独立完成 Diem 文档站点的构建、预览与部署全流程。文档站点概览从website到developers.diem.com原 README 中提到的website目录是早期版本的历史路径在当前仓库中该文档站点实际位于 developers.diem.com 目录下。这一点可以从构建脚本得到印证scripts/build_docs.sh 在启动时会强制检查当前目录名是否为developers.diem.com否则直接报错退出。因此本文所有命令均以该目录为基准。站点本身是一个 Docusaurus 项目当前 package.json 声明使用docusaurus/core与docusaurus/preset-classic的^2.0.0-beta.4版本文档内容分布在docs/教程、参考、技术论文、blog/官方技术博客与src/自定义 React 组件与主题中侧边栏结构由 sidebars/index.js 定义。此外站点还集成了 Algolia 站内搜索索引名为diem_developer_website与 Google Analytics相关配置见 docusaurus.config.js。环境准备Node 与 Yarn 版本要求根据 developers.diem.com/src/README.md构建该站点需要满足以下工具链Node.js 8.xDocusaurus 运行时的 JavaScript 运行时Yarn 1.5包管理器用于安装依赖与执行docusaurus相关脚本。需要说明的是这是文档声明的基础版本门槛鉴于项目实际依赖 Docusaurus 2.0 beta 版本见 package.json实践上建议使用更新的 Node.js 长期支持版本以获得最佳兼容性。依赖安装通过yarn install完成仓库根目录已附带 yarn.lock 锁定精确依赖版本保证可复现构建。本地开发启动开发服务器在满足环境要求后进入developers.diem.com目录并启动 Docusaurus 开发服务器cd developers.diem.com yarn startyarn start对应 package.json 中的docusaurus start脚本。启动成功后浏览器会自动打开http://localhost:3000若未自动打开请手动访问该地址开发服务器支持实时热更新任何时候修改页面内容如docs/下的 Markdown 或src/下的组件页面会自动重新编译并刷新无需手动重启这是日常撰写文档、调试组件时最常用的工作流。如果希望启用无障碍Accessibility检查模式package.json中还提供了yarn start-with-ada对应TEST_ADA1 docusaurus start它会结合 axe-core/react 在开发阶段对页面进行可访问性审计适合在提交面向公众的文档改动前使用。生成 API 参考文档Rustdoc 与 Python SDKyarn start只编译 Markdown 文档与网站本身不会重新生成 API 参考页面。API 参考由 Rustdoc 与 Protogen 自动生成原 README 明确说明因此需要额外的构建步骤。仓库中的 scripts/build_docs.sh 提供了完整的自动生成能力其支持的参数如下参数作用-b构建静态版本文档否则启动开发服务器-r构建 Diem Rust crate 的文档Rustdoc-p构建 Diem Python Client SDK 文档-h显示帮助信息运行构建脚本在developers.diem.com目录下执行./scripts/build_docs.sh该脚本的核心逻辑分为三部分安装 Rust 工具链脚本会检查rustup是否可用缺失时通过curl https://sh.rustup.rs -sSf安装默认 stable 工具链build_docs.sh#L21-L29生成 Rustdoc-r脚本切回仓库根目录使用以下命令为整个 workspace 生成 crate 文档RUSTC_BOOTSTRAP1 RUSTDOCFLAGS-Z unstable-options --enable-index-page cargo doc --no-deps --workspace --lib其中RUSTC_BOOTSTRAP与--enable-index-page用于为 workspace 生成index.html着陆页。产物位于target/doc/随后被复制到static/docs/rustdocs/build_docs.sh#L84-L105生成 Python SDK 文档-p脚本要求 Python 3.7创建虚拟环境后安装diem-client-sdk与pdoc3再以pdoc3 diem --html生成文档到static/docs/python-client-sdk-docs/build_docs.sh#L107-L134。完成 API 参考生成后脚本统一执行yarn install并进入下一步构建。生成静态构建产物要将网站构建为可直接部署的静态文件输出到website/build目录使用-b参数./scripts/build_docs.sh -b在-b模式下脚本执行yarn build对应 package.json 中的NODE_ENVproduction docusaurus build生成生产环境优化后的静态站点。值得注意的是仓库中同时提供了 vercel.json为所有页面配置了X-Robots-Tag: noindex响应头——这是 Vercel 预览部署环境下防止文档站点被搜索引擎收录的工程化细节可作为部署配置的参考。另外docusaurus.config.js 中注册了docusaurus/plugin-client-redirects重定向插件任何包含/overview的路径都会被追加生成一条去掉/overview的等价路径用于兼容旧版 URL保证历史链接不失效。部署与分发打包上传与服务器解压开发或预览构建完成后如需在更广范围内进行测试原 README 给出了经典的打包分发流程。首先在仓库根目录或文档站点上级目录将构建产物压缩zip diem.zip -r website/build随后通过scp将压缩包上传到目标服务器scp -r website/build/ userserver:/path在服务器上解压即可完成部署unzip diem.zip这种方式适合临时测试环境或无法直接推送静态文件的场景。需要提醒的是当前仓库中静态构建的实际输出目录以yarn build的 Docusaurus 配置为准baseUrl为/见 docusaurus.config.js实际部署时应以构建后生成的真实目录为准进行打包。发布GitHub Pages 与持续发布原 README 说明网站的正式发布通过 GitHub Pages 承载发布目标为独立网站仓库的gh-pages分支。其流程大致为将静态构建产物提交/推送到gh-pages分支由 GitHub Pages 自动对外提供服务。与此同时docusaurus.config.js 中为文档与博客分别配置了editUrl指向 Diem 主仓库的developers.diem.com/路径这意味着 Docusaurus 会在每个页面上渲染编辑此页链接方便社区读者直接跳转到源码提交文档修改——这是文档站点维护协作的重要入口。此外package.json 还提供了deploy-staging脚本npm run build-staging npx now用于构建 staging 版本并发布到 Vercel 平台进行预发布验证配合上文提到的noindex头使用属于正式发布前的重要质量关卡。总结Diem 开发者文档站点虽然是一个文档项目但其工程化程度与主代码库相当本地开发有热更新、API 参考有自动生成脚本、部署有静态构建与多渠道发布。核心操作路径可归纳为三条日常写作cd developers.diem.com yarn start访问http://localhost:3000实时预览完整构建./scripts/build_docs.sh必要时追加-r/-p生成 API 参考追加-b输出静态产物发布部署将构建产物打包上传解压或通过gh-pages分支 / Vercel staging 渠道发布。掌握以上流程无论是为 Diem 贡献文档、构建本地开发预览还是搭建完整的文档发布管线都能在 developers.diem.com 目录下独立完成。【免费下载链接】diemDiem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.项目地址: https://gitcode.com/gh_mirrors/di/diem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →