当前位置: 首页 > article >正文

别再数据线了!用FastAPI 分钟搭个局域网文件+剪贴板神器伊

为 HagiCode 添加 GitHub Pages 自动部署支持本项目早期代号为 PCode现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力让内容发布像喝水一样简单。背景/引言在 HagiCode 的开发过程中我们遇到了一个很现实的问题随着文档和提案越来越多如何高效地管理和展示这些内容成了当务之急。我们决定引入 GitHub Pages 来托管我们的静态站点但是手动构建和部署实在是太麻烦了——每次改动都要本地构建、打包然后手动推送到 gh-pages 分支。这不仅效率低下还容易出错。为了解决这个问题主要是为了偷懒我们需要一套自动化的部署流程。本文将详细记录如何为 HagiCode 项目添加 GitHub Actions 自动部署支持让我们只需专注于内容创作剩下的交给自动化流程。关于 HagiCode嘿介绍一下我们正在做的东西我们正在开发 HagiCode——一款 AI 驱动的代码智能助手让开发体验变得更智能、更便捷、更有趣。智能——AI 全程辅助从想法到代码让编码效率提升数倍。便捷——多线程并发操作充分利用资源开发流程顺畅无阻。有趣——游戏化机制和成就系统让编码不再枯燥充满成就感。项目正在快速迭代中如果你对技术写作、知识管理或者 AI 辅助开发感兴趣欢迎来 GitHub 看看目标分析在动手之前我们得先明确这次任务到底要干啥。毕竟磨刀不误砍柴工嘛。核心需求自动化构建当代码推送到 main 分支时自动触发构建流程。自动部署构建成功后自动将生成的静态文件部署到 GitHub Pages。环境一致性确保 CI 环境和本地构建环境一致避免本地能跑线上报错的尴尬。技术选型考虑到 HagiCode 是基于 Docusaurus 构建的一种非常流行的 React 静态站点生成器我们可以利用 GitHub Actions 来实现这一目标。配置 GitHub Actions 工作流GitHub Actions 是 GitHub 提供的 CI/CD 服务。通过在代码仓库中定义 YAML 格式的工作流文件我们可以定制各种自动化任务。创建工作流文件我们需要在项目根目录下的 .github/workflows 文件夹中创建一个新的配置文件比如叫 deploy.yml。如果文件夹不存在记得先手动创建一下。这个配置文件的核心逻辑如下触发条件监听 main 分支的 push 事件。运行环境最新版的 Ubuntu。构建步骤检出代码安装 Node.js安装依赖 (npm install)构建静态文件 (npm run build)部署步骤使用官方提供的 action-gh-pages 将构建产物推送到 gh-pages 分支。关键配置代码以下是我们最终采用的配置模板name: Deploy to GitHub Pages# 触发条件当推送到 main 分支时on:push:branches:- main# 可以根据需要添加路径过滤比如只有文档变动才构建# paths:# - docs/**# - package.json# 设置权限这对于部署到 GitHub Pages 很重要permissions:contents: readpages: writeid-token: write# 并发控制取消同一分支的旧构建concurrency:group: pagescancel-in-progress: falsejobs:build:runs-on: ubuntu-lateststeps:- name: Checkoutuses: actions/checkoutv4# 注意必须设置 fetch-depth: 0否则可能导致构建版本号不准确with:fetch-depth: 0- name: Setup Nodeuses: actions/setup-nodev4with:node-version: 20 # 建议与本地开发环境保持一致cache: npm # 启用缓存可以加速构建过程- name: Install dependenciesrun: npm ci# 使用 npm ci 而不是 npm install因为它更快、更严格适合 CI 环境- name: Build websiterun: npm run buildenv:# 如果你的站点构建需要环境变量在这里配置# NODE_ENV: production# PUBLIC_URL: /your-repo-name- name: Upload artifactuses: actions/upload-pages-artifactv3with:path: ./build # Docusaurus 默认输出目录deploy:environment:name: github-pagesurl: ${{ steps.deployment.outputs.page_url }}runs-on: ubuntu-latestneeds: buildsteps:- name: Deploy to GitHub Pagesid: deploymentuses: actions/deploy-pagesv4实施过程中的坑点在实际操作中我们遇到了一些问题这里分享出来希望大家能避开或者提前准备好解决方案。1. GitHub Token 权限问题最开始配置的时候部署总是报错 403 (Forbidden)。查了好久才发现是因为 GitHub 默认的 GITHUB_TOKEN 并没有写入 Pages 的权限。解决方案在仓库的 Settings - Actions - General - Workflow permissions 中务必选择 Read and write permissions。2. 构建目录路径错误Docusaurus 默认把构建好的静态文件放在 build 目录。但是有些项目比如 Create React App 默认是 buildVite 默认是 dist可能配置不一样。如果在 Actions 中报错找不到文件记得去 docusaurus.config.js 里检查一下输出路径配置。3. 子路径问题如果你的仓库不是用户主页即不是 username.github.io而是项目主页比如 username.github.io/project-name你需要配置 baseUrl。在 docusaurus.config.js 中module.exports {// ...url: https://HagiCode-org.github.io, // 你的 GitHub URLbaseUrl: /site/, // 如果你的仓库叫 site这里就填 /site/// ...};这一点很容易被忽略配置不对会导致页面打开全是白屏因为资源路径加载不到。验证成果配置完所有东西并推送代码后我们就可以去 GitHub 仓库的 Actions 标签页看戏了。你会看到黄色的圆圈工作流正在运行变绿就代表成功啦如果变红了点击进去查看日志通常都能排查出问题大部分时候是拼写错误或者路径配置不对。构建成功后访问 https://你的用户名.github.io/仓库名/ 就能看到崭新的站点了。总结通过引入 GitHub Actions我们成功实现了 HagiCode 文档站的自动化部署。这不仅节省了手动操作的时间更重要的是保证了发布流程的标准化。现在不管是哪位小伙伴更新了文档只要合并到 main 分支几分钟后就能在线上看到最新的内容。核心收益效率提升从手动打包、手动上传变成代码即发布。降低错误消除了人为操作失误的可能性。体验优化让开发者更专注于内容质量而不是被繁琐的部署流程困扰。诘链衬俣

相关文章:

别再数据线了!用FastAPI 分钟搭个局域网文件+剪贴板神器伊

为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode,现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力,让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中,我们遇到了一个很现实的问…...

简单三步:用Win11Debloat一键清理Windows系统,让你的电脑运行速度提升50%

简单三步:用Win11Debloat一键清理Windows系统,让你的电脑运行速度提升50% 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various othe…...

突破抖音内容采集瓶颈:开源工具如何实现高效批量下载

突破抖音内容采集瓶颈:开源工具如何实现高效批量下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...

最新短网址系统源码 分用户链接

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示一、详细介绍 最新短网址系统源码 分用户链接 简单介绍一下这个短链接源码,这个是我根据自己需要自建的,偏向于个人需求的完成 说一下特点吧,短链接格式如同https://域名/0810a7/t…...

解锁嵌入式视觉开发:ESP32-OpenCV实现低功耗边缘计算方案

解锁嵌入式视觉开发:ESP32-OpenCV实现低功耗边缘计算方案 【免费下载链接】esp32-opencv Shrinked OpenCV for ESP32 项目地址: https://gitcode.com/gh_mirrors/es/esp32-opencv 在物联网设备日益普及的今天,嵌入式视觉技术正面临着"算力需…...

最新多模式防红系统源码+对接易支付

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示一、详细介绍 最新多模式防红系统源码对接易支付 支持直链/跳转/短链接,使用本系统红了的域名可在微信和QQ直接打开, 系统带访问记录列表,可查看访问者ip和访问方式,带…...

最新付费进群系统源码 V4.1全开源版本源码 附教程

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示一、详细介绍 最新付费进群系统源码 V4.1全开源版本源码 附教程 亲测可用 付费进群系统是一种基于互联网的社群管理工具,用户通过支付一定费用后获得加入特定群组的权限。这种系统通常用于知识分享、资源下…...

从PDM到PCM:解码数字音频的底层转换逻辑

1. 为什么需要从PDM转换到PCM? 当你拆开一个智能音箱或者蓝牙耳机,里面那个指甲盖大小的数字麦克风,十有八九输出的是PDM信号。这种用"脉冲密度"表示声音强度的编码方式,就像用摩斯电码记录交响乐——虽然硬件实现简单&…...

告别代码阅读疲劳:Source Code Pro编程字体让你的编程体验提升50%

告别代码阅读疲劳:Source Code Pro编程字体让你的编程体验提升50% 【免费下载链接】source-code-pro Monospaced font family for user interface and coding environments 项目地址: https://gitcode.com/gh_mirrors/so/source-code-pro 还在为代码阅读时眼…...

SecGPT-14B入门必看:安全研究员如何定制system prompt提升漏洞分析深度

SecGPT-14B入门必看:安全研究员如何定制system prompt提升漏洞分析深度 作为一名在安全领域摸爬滚打多年的老兵,我深知漏洞分析工作的痛点:面对海量的日志、复杂的攻击链和模糊的威胁情报,如何快速、准确地定位问题核心&#xff…...

原神桌面工具Snap.Hutao:数据管理与资源规划全方案

原神桌面工具Snap.Hutao:数据管理与资源规划全方案 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …...

如何用GHelper替代Armoury Crate:华硕笔记本轻量级控制工具完整指南

如何用GHelper替代Armoury Crate:华硕笔记本轻量级控制工具完整指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, T…...

如何用CustomTkinter解决Python桌面应用界面过时问题:3个关键技巧

如何用CustomTkinter解决Python桌面应用界面过时问题:3个关键技巧 【免费下载链接】CustomTkinter A modern and customizable python UI-library based on Tkinter 项目地址: https://gitcode.com/gh_mirrors/cu/CustomTkinter 你是否曾为Python桌面应用界面…...

轴向柱塞泵泵体加工生产线专机及主辅助设备(车基准机床及双头镗床液压系统设计)

轴向柱塞泵作为液压系统的核心动力元件,其泵体加工质量直接影响整机性能。在泵体制造过程中,车基准工序与双头镗孔工序的精度控制尤为关键。车基准机床通过高刚性主轴与精密导轨配合,确保泵体两端面平行度及基准孔的位置精度,为后…...

OpenStego:专业隐写术工具实现安全数据隐藏与版权保护

OpenStego:专业隐写术工具实现安全数据隐藏与版权保护 【免费下载链接】openstego OpenStego is a steganography application that provides two functionalities: a) Data Hiding: It can hide any data within an image file. b) Watermarking: Watermarking ima…...

泛微E9流程优化:动态生成自定义标题的实现技巧

1. 为什么需要动态生成流程标题? 在泛微E9的日常使用中,我们经常会遇到这样的场景:同一个流程模板需要处理多种相似的业务场景。比如"物品申请"流程,可能既包含办公用品申请,又包含设备采购申请。如果所有申…...

OpenHand:自适应抓取技术的开源硬件革新

OpenHand:自适应抓取技术的开源硬件革新 【免费下载链接】openhand-hardware CAD files for the OpenHand hand designs 项目地址: https://gitcode.com/gh_mirrors/op/openhand-hardware 在工业自动化与协作机器人领域,传统抓取系统面临着适应性…...

第2篇 | 分层架构的真相:为什么AUTOSAR不是“标准答案”,而是“解题框架”?

初学者常问:“AUTOSAR的分层架构是不是最优的?”这个问题的陷阱在于——它把架构当成了答案,而不是解题的框架。 分层解耦的代价:一个性能开销的真实案例 某动力总成项目中,工程师需要在两个SWC之间传递一个32字节的扭…...

终极指南:用Mesa轻松构建智能Agent仿真模型,快速探索复杂系统

终极指南:用Mesa轻松构建智能Agent仿真模型,快速探索复杂系统 【免费下载链接】mesa Mesa is an open-source Python library for agent-based modeling, ideal for simulating complex systems and exploring emergent behaviors. 项目地址: https://…...

DankDroneDownloader终极指南:无人机固件逆向工程与版本控制深度解析

DankDroneDownloader终极指南:无人机固件逆向工程与版本控制深度解析 【免费下载链接】DankDroneDownloader A Custom Firmware Download Tool for DJI Drones Written in C# 项目地址: https://gitcode.com/gh_mirrors/da/DankDroneDownloader DankDroneDow…...

专业做佛山市办公家具工厂的服务商

在竞争激烈的商业世界中,办公家具的选择对于企业来说至关重要。它不仅关乎员工的工作舒适度和效率,更体现着企业的形象和品味。今天,就为大家介绍一家专业做佛山市办公家具的工厂服务商——佛山市豪亿办公家具。一、直击用户痛点,…...

跨平台BongoCat桌面宠物开发实战:从零构建互动猫咪应用

跨平台BongoCat桌面宠物开发实战:从零构建互动猫咪应用 【免费下载链接】BongoCat 🐱 跨平台互动桌宠 BongoCat,为桌面增添乐趣! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat BongoCat是一款基于Tauri框架的跨…...

2026 企业办公家具采购指南:如何成为高端定制首选?

企业办公环境不仅是工作场所,更是公司的“第一面片”。对于行政采购人员而言,如何在预算范围内选择既有质感又靠谱的厂家?本文以佛山知名定制厂家——佛山市豪亿家具(Hooye) 为例,为您梳理采购避坑指南。一…...

OpenClaw简介|OpenClaw衍生产品|OpenClaw辅助工具

OpenClaw简介OpenClaw是一个开源的多功能机器人爪手设计项目,专注于提供低成本、模块化的机械爪解决方案,适用于科研、教育及工业自动化场景。其设计强调灵活性和可定制性,支持3D打印制造,便于用户根据需求调整结构和功能。核心特…...

GHelper终极指南:轻量级华硕笔记本控制工具全面解析

GHelper终极指南:轻量级华硕笔记本控制工具全面解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar…...

打破Visio格式壁垒:drawio-desktop跨平台解决方案全解析

打破Visio格式壁垒:drawio-desktop跨平台解决方案全解析 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 当团队协作中Windows用户发送的VSDX文件在macOS或Linux系统…...

Win11Debloat深度解析:专业级Windows系统优化与性能提升方案

Win11Debloat深度解析:专业级Windows系统优化与性能提升方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

什么是静态测试?

静态测试是软件测试中的一种重要方法,它不实际运行被测试的软件系统,而是通过对软件的需求文档、设计文档、代码等进行分析、检查和评审,来发现软件中潜在的缺陷和问题。以下从多个方面详细介绍静态测试:1. 静态测试的对象文档&am…...

Axure RP本地化指南:从零开始的界面优化与效率提升方案

Axure RP本地化指南:从零开始的界面优化与效率提升方案 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 作为产品设计…...

FanControl中文界面解决方案:从问题诊断到高效应用的实战指南

FanControl中文界面解决方案:从问题诊断到高效应用的实战指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…...