<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>React on 撷时录</title>
		<link>http://localhost:1313/project-tags/react/</link>
		<description>Recent content in React on 撷时录</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Thu, 01 Oct 2026 00:00:00 +0800</lastBuildDate>
		
			<atom:link href="http://localhost:1313/project-tags/react/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>M3U8 Downloader</title>
				<link>http://localhost:1313/projects/m3u8-downloader/</link>
				<pubDate>Fri, 18 Sep 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/projects/m3u8-downloader/</guid>
				<description>&lt;p&gt;&lt;strong&gt;M3U8 Downloader&lt;/strong&gt; 是面向 HLS 的跨平台桌面下载器：解析 master / media playlist，并发拉取 TS 分片，ffmpeg &lt;code&gt;-c copy&lt;/code&gt; remux 为 MP4。引擎在 Rust，界面 React，壳层 Tauri 2，覆盖 Windows、macOS、Linux。当前版本 &lt;code&gt;0.1.1&lt;/code&gt;，MIT。&lt;/p&gt;&#xA;&lt;p&gt;相对「脚本拼接分片」，清晰度选择、AES-128、代理与自定义请求、任务/分片控制、断点续传和边下边播放进同一任务模型。安装包见 &lt;a href=&#34;https://github.com/jiangbyte/M3u8Downloader/releases&#34;&gt;Releases&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;flowchart LR&#xA;  url[&amp;#34;m3u8 URL&amp;#34;]&#xA;  parse[&amp;#34;解析 playlist&amp;#34;]&#xA;  variant[&amp;#34;选择变体&amp;#34;]&#xA;  pool[&amp;#34;并发分片&amp;#34;]&#xA;  dec[&amp;#34;AES-128&amp;#34;]&#xA;  hls[&amp;#34;边下边播 HLS&amp;#34;]&#xA;  mp4[&amp;#34;ffmpeg remux MP4&amp;#34;]&#xA;  url --&amp;gt; parse --&amp;gt; variant --&amp;gt; pool&#xA;  pool --&amp;gt; dec --&amp;gt; mp4&#xA;  pool --&amp;gt; hls&lt;/div&gt;&#xA;&lt;h2 id=&#34;特性&#34;&gt;特性&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;清单与变体&lt;/strong&gt;：master playlist，下载前选择清晰度&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;加密分片&lt;/strong&gt;：明文 HLS 与 &lt;code&gt;#EXT-X-KEY&lt;/code&gt; AES-128-CBC&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;传输控制&lt;/strong&gt;：Headers、Cookie、Referer、HTTP(S) 代理、并发度、输出路径&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;任务队列&lt;/strong&gt;：暂停 / 继续 / 取消 / 删除；按已落盘分片续传&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;分片粒度&lt;/strong&gt;：详情内单独开始、停止、重试；任务级操作中断在途请求&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;边下边播&lt;/strong&gt;：本地 HLS 播放已连续分片；完成后打开 MP4&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;封装输出&lt;/strong&gt;：ffmpeg remux；可选清理临时分片&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;技术栈&#34;&gt;技术栈&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;桌面壳：Tauri 2&lt;/li&gt;&#xA;&lt;li&gt;下载引擎：Rust · Tokio · reqwest&lt;/li&gt;&#xA;&lt;li&gt;界面：React 19 · TypeScript · Vite · Ant Design&lt;/li&gt;&#xA;&lt;li&gt;封装：ffmpeg（打包 binaries）&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Startpage</title>
				<link>http://localhost:1313/projects/startpage/</link>
				<pubDate>Sun, 06 Sep 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/projects/startpage/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Startpage&lt;/strong&gt; 是静态托管的个人书签导航起始页：无后端、无数据库，书签写在源码。&lt;code&gt;url&lt;/code&gt; 必填，&lt;code&gt;title&lt;/code&gt; / &lt;code&gt;description&lt;/code&gt; 可手写覆盖；未手写则 Microlink 拉元数据，失败回退 hostname。在线：&lt;a href=&#34;https://jiangbyte.github.io/startpage/&#34;&gt;jiangbyte.github.io/startpage&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;浏览器默认页 + 分类书签 + 多搜索引擎，不引入账号或同步服务。&lt;code&gt;main&lt;/code&gt; 推送后 Actions 构建 &lt;code&gt;dist/&lt;/code&gt; 部署 Pages。&lt;/p&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;flowchart TB&#xA;  data[&amp;#34;bookmarks.ts&amp;#34;]&#xA;  page[&amp;#34;起始页&amp;#34;]&#xA;  meta[&amp;#34;Microlink 元数据&amp;#34;]&#xA;  ico[&amp;#34;站点 favicon&amp;#34;]&#xA;  cache[&amp;#34;localStorage 缓存&amp;#34;]&#xA;  search[&amp;#34;searchEngines Tab&amp;#34;]&#xA;  data --&amp;gt; page&#xA;  page --&amp;gt; meta --&amp;gt; cache&#xA;  page --&amp;gt; ico --&amp;gt; cache&#xA;  page --&amp;gt; search&lt;/div&gt;&#xA;&lt;h2 id=&#34;特性&#34;&gt;特性&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;数据即代码&lt;/strong&gt;：分类与条目在 &lt;code&gt;src/data/bookmarks.ts&lt;/code&gt;；字符串简写等价于只填 &lt;code&gt;url&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;元数据&lt;/strong&gt;：双写 title / description 则不请求外部接口；缓存 2 小时硬过期，超过 1 小时后台刷新&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;图标&lt;/strong&gt;：解析站点自身 favicon；失败用字母头像&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;搜索&lt;/strong&gt;：&lt;code&gt;searchEngines&lt;/code&gt; 切换后回车，新标签打开，查询词 &lt;code&gt;%s&lt;/code&gt; 占位&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;发布&lt;/strong&gt;：GitHub Actions → GitHub Pages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;技术栈&#34;&gt;技术栈&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;构建：Vite&lt;/li&gt;&#xA;&lt;li&gt;界面：React · TypeScript&lt;/li&gt;&#xA;&lt;li&gt;托管：GitHub Pages&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>ResumeFloat</title>
				<link>http://localhost:1313/projects/resumefloat/</link>
				<pubDate>Fri, 18 Sep 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/projects/resumefloat/</guid>
				<description>&lt;p&gt;&lt;strong&gt;ResumeFloat&lt;/strong&gt; 是跨平台置顶悬浮简历速拷工具：默认 Compact 为「标签 + 一键复制」，可切入编辑。条目由可组合块构成（纯文本 / Markdown / 富文本 / 图片），数据落 SQLite，支持整库导出导入。当前版本 &lt;code&gt;0.1.1&lt;/code&gt;，MIT。&lt;/p&gt;&#xA;&lt;p&gt;面试、网申、即时通讯反复粘贴自我介绍、项目要点、联系方式时，置顶窗口减少在文档与聊天之间切换。&lt;code&gt;v*&lt;/code&gt; 标签触发 Actions 构建三端安装包，见 &lt;a href=&#34;https://github.com/jiangbyte/ResumeFloat/releases&#34;&gt;Releases&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;flowchart LR&#xA;  db[&amp;#34;SQLite items / blocks&amp;#34;]&#xA;  compact[&amp;#34;Compact 列表&amp;#34;]&#xA;  clip[&amp;#34;剪贴板&amp;#34;]&#xA;  edit[&amp;#34;块编辑&amp;#34;]&#xA;  db --&amp;gt; compact --&amp;gt; clip&#xA;  db --&amp;gt; edit --&amp;gt; db&lt;/div&gt;&#xA;&lt;h2 id=&#34;特性&#34;&gt;特性&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;置顶悬浮&lt;/strong&gt;：无边框 always-on-top，标题栏拖拽；钉住与下拉菜单&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Compact 速拷&lt;/strong&gt;：标签 + 预览（超长省略）；按块顺序拼装剪贴板&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;主题&lt;/strong&gt;：深色 / 浅色，本地记住&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;块编辑&lt;/strong&gt;：增删条目；块类型动态添加、排序、删除&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;内容类型&lt;/strong&gt;：纯文本 · Markdown（编辑 / 预览）· 富文本（TipTap）· 图片&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;持久化&lt;/strong&gt;：&lt;code&gt;items&lt;/code&gt; / &lt;code&gt;blocks&lt;/code&gt;；图片在配置目录 &lt;code&gt;assets/&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;导出 / 导入&lt;/strong&gt;：&lt;code&gt;resume.db&lt;/code&gt; + &lt;code&gt;assets/&lt;/code&gt;；导入前确认覆盖&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;flowchart TB&#xA;  item[&amp;#34;简历条目&amp;#34;]&#xA;  t[&amp;#34;纯文本&amp;#34;]&#xA;  md[&amp;#34;Markdown&amp;#34;]&#xA;  rich[&amp;#34;富文本&amp;#34;]&#xA;  img[&amp;#34;图片&amp;#34;]&#xA;  item --&amp;gt; t&#xA;  item --&amp;gt; md&#xA;  item --&amp;gt; rich&#xA;  item --&amp;gt; img&lt;/div&gt;&#xA;&lt;h2 id=&#34;技术栈&#34;&gt;技术栈&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;桌面壳：Tauri 2&lt;/li&gt;&#xA;&lt;li&gt;界面：React 19 · TypeScript · Vite · Ant Design&lt;/li&gt;&#xA;&lt;li&gt;内容：TipTap · react-markdown · marked&lt;/li&gt;&#xA;&lt;li&gt;存储：&lt;code&gt;@tauri-apps/plugin-sql&lt;/code&gt; · clipboard-manager · dialog · fs&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Voxel</title>
				<link>http://localhost:1313/projects/voxel/</link>
				<pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/projects/voxel/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Voxel&lt;/strong&gt; 是一组按同一领域分层重建的全栈脚手架系列：&lt;strong&gt;Portal 与 Admin 独立后端、独立前端&lt;/strong&gt;，目录、坐标与包名统一为 &lt;code&gt;voxel-*&lt;/code&gt; / &lt;code&gt;io.github.jiangbyte.voxel&lt;/code&gt;。后端对齐 Java（Spring Boot）、Python（FastAPI）、Go（Gin）；前端对齐 Vue 3 管理端、React 门户与 uni-app。另有七层纯骨架与带账户竖切的充实模板，供对照学习，不作业务拷贝范本。协议 Apache License 2.0。&lt;/p&gt;&#xA;&lt;p&gt;相对「一份单体里切 admin/portal」，端隔离：Admin 只挂管理 API，Portal 只挂门户 API，前端互不引用对方源码。相对单语言脚手架，同一七层在三种运行时对齐。&lt;/p&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;flowchart TB&#xA;  subgraph fronts [&amp;#34;前端&amp;#34;]&#xA;    vue[&amp;#34;voxel-admin Vue3&amp;#34;]&#xA;    react[&amp;#34;voxel-portal React&amp;#34;]&#xA;    uniA[&amp;#34;admin-uniapp&amp;#34;]&#xA;    uniP[&amp;#34;portal-uniapp&amp;#34;]&#xA;  end&#xA;  subgraph backends [&amp;#34;后端 · Admin / Portal&amp;#34;]&#xA;    ja[&amp;#34;Java 8000 / 8001&amp;#34;]&#xA;    py[&amp;#34;FastAPI 8100 / 8101&amp;#34;]&#xA;    go[&amp;#34;Gin 8200 / 8201&amp;#34;]&#xA;  end&#xA;  subgraph tpls [&amp;#34;模板&amp;#34;]&#xA;    skel[&amp;#34;ddd-lite-strcut&amp;#34;]&#xA;    lite[&amp;#34;ddd-lite&amp;#34;]&#xA;  end&#xA;  vue --&amp;gt; ja&#xA;  react --&amp;gt; ja&#xA;  uniA --&amp;gt; ja&#xA;  uniP --&amp;gt; ja&#xA;  vue --&amp;gt; py&#xA;  react --&amp;gt; py&#xA;  vue --&amp;gt; go&#xA;  react --&amp;gt; go&#xA;  lite -.-&amp;gt; ja&#xA;  skel -.-&amp;gt; lite&lt;/div&gt;&#xA;&lt;h2 id=&#34;特性&#34;&gt;特性&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;端分离&lt;/strong&gt;：Admin / Portal 各仓各端口&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DDD 七层&lt;/strong&gt;：&lt;code&gt;types&lt;/code&gt; · &lt;code&gt;api&lt;/code&gt; · &lt;code&gt;domain&lt;/code&gt; · &lt;code&gt;infrastructure&lt;/code&gt; · &lt;code&gt;case&lt;/code&gt;/&lt;code&gt;cases&lt;/code&gt; · &lt;code&gt;trigger&lt;/code&gt; · &lt;code&gt;app&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;依赖方向&lt;/strong&gt;：Trigger → API → Case → Domain ← Infrastructure&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Java&lt;/strong&gt;：Maven 多模块 &lt;code&gt;{project}-types&lt;/code&gt; … &lt;code&gt;-app&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;FastAPI&lt;/strong&gt;：仓库根扁平包，无 &lt;code&gt;src/&lt;/code&gt; 包装层&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gin&lt;/strong&gt;：&lt;code&gt;internal/{types,api,domain,infrastructure,cases,trigger}&lt;/code&gt; + &lt;code&gt;cmd/app&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Web / 移动&lt;/strong&gt;：Vue 3、React 19、uni-app 双端&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;模板仓&lt;/strong&gt;：骨架默认注释中间件；充实模板含账户竖切，S3 / Milvus / Spring AI / MCP 注释接入（原 &lt;code&gt;voxel-ddd-ai-lite&lt;/code&gt; 已合并）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;flowchart TB&#xA;  trigger[&amp;#34;trigger&amp;#34;]&#xA;  api[&amp;#34;api&amp;#34;]&#xA;  cases[&amp;#34;case&amp;#34;]&#xA;  domain[&amp;#34;domain&amp;#34;]&#xA;  infra[&amp;#34;infrastructure&amp;#34;]&#xA;  types[&amp;#34;types&amp;#34;]&#xA;  app[&amp;#34;app&amp;#34;]&#xA;  trigger --&amp;gt; api --&amp;gt; cases --&amp;gt; domain&#xA;  infra --&amp;gt; domain&#xA;  app --&amp;gt; trigger&#xA;  app --&amp;gt; infra&#xA;  types -.-&amp;gt; trigger&lt;/div&gt;&#xA;&lt;h2 id=&#34;技术栈&#34;&gt;技术栈&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;后端：JDK 21 · Python 3.11+ · Go 1.25+&lt;/li&gt;&#xA;&lt;li&gt;前端：Vue 3 · React 19 · uni-app&lt;/li&gt;&#xA;&lt;li&gt;协议：OpenAPI / Apifox（&lt;code&gt;docs/api/openapi&lt;/code&gt;）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;系列仓库&#34;&gt;系列仓库&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;后端&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>ACOJ</title>
				<link>http://localhost:1313/projects/acoj/</link>
				<pubDate>Mon, 31 Aug 2026 00:00:00 +0800</pubDate>
				<guid>http://localhost:1313/projects/acoj/</guid>
				<description>&lt;p&gt;&lt;strong&gt;ACOJ&lt;/strong&gt; 是在线评测（OJ）monorepo：在 HEI 脚手架上扩展题库、提交判题与多执行机调度，提供 &lt;strong&gt;Admin&lt;/strong&gt;（Vue 3）、&lt;strong&gt;Portal&lt;/strong&gt;（React 19）与统一 Spring Boot API。判题执行依赖 &lt;a href=&#34;https://github.com/jiangbyte/SparkSandbox&#34;&gt;SparkSandbox&lt;/a&gt;：&lt;strong&gt;沙箱只编译与限资源运行，AC / WA 在 ACOJ 裁决&lt;/strong&gt;。Apache License 2.0。&lt;/p&gt;&#xA;&lt;p&gt;相对「沙箱内直接出最终结果」的一体化 OJ，隔离执行与题目语义拆开：执行机加权调度、熔断、排水、租约换机；平台保留测例版本、标签、发布校验与做题统计。&lt;code&gt;modules/oj&lt;/code&gt; 叠在脚手架之上，而不是从零拼一套账号与存储。&lt;/p&gt;&#xA;&lt;div class=&#34;solitude-tag tag-mermaid mermaid&#34;&gt;flowchart LR&#xA;  portal[&amp;#34;Portal&amp;#34;]&#xA;  admin[&amp;#34;Admin&amp;#34;]&#xA;  api[&amp;#34;Spring Boot API&amp;#34;]&#xA;  mq[&amp;#34;RabbitMQ&amp;#34;]&#xA;  sched[&amp;#34;调度 / 熔断 / 换机&amp;#34;]&#xA;  spark[&amp;#34;SparkSandbox&amp;#34;]&#xA;  portal --&amp;gt; api&#xA;  admin --&amp;gt; api&#xA;  api --&amp;gt; mq --&amp;gt; sched --&amp;gt; spark&#xA;  spark --&amp;gt;|&amp;#34;stdout / 状态&amp;#34;| api&#xA;  api --&amp;gt;|&amp;#34;AC / WA&amp;#34;| portal&lt;/div&gt;&#xA;&lt;h2 id=&#34;特性&#34;&gt;特性&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;双端账号&lt;/strong&gt;：ADMIN / PORTAL 独立会话（Sa-Token）；密码 RSA、验证码、失败锁定与限流；JustAuth（可配置）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RBAC&lt;/strong&gt;：账号 / 角色 / 部门 / 用户组 / 岗位；菜单、按钮与 API 授权；会话踢出&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;系统管理&lt;/strong&gt;：字典、动态配置（敏感项加密）、Banner、公告、反馈、弱口令库&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;对象存储&lt;/strong&gt;：S3 兼容（MinIO / RustFS / OSS），直链或预签名&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;运维&lt;/strong&gt;：审计与告警、登录日志、运营工作台、&lt;code&gt;sys_job&lt;/code&gt; / Lock4j&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;题库&lt;/strong&gt;：CRUD、测例 INLINE / OBJECT、标签、参考答案、试跑与发布校验&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;提交与判题&lt;/strong&gt;：多语言入队；RabbitMQ；加权调度、熔断 / 排水 / 租约换机；业务侧裁决&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;判题节点&lt;/strong&gt;：&lt;code&gt;oj_judge_node&lt;/code&gt; 登记沙箱；心跳探活；&lt;code&gt;oj_judge_dispatch&lt;/code&gt; 派发审计&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;个人中心&lt;/strong&gt;：公开资料、安全设置、实名认证；做题统计&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;API 前缀 &lt;code&gt;/api/v1/admin/*&lt;/code&gt; 与 &lt;code&gt;/api/v1/portal/*&lt;/code&gt;。子工程：&lt;code&gt;admin&lt;/code&gt; · &lt;code&gt;portal&lt;/code&gt; · &lt;code&gt;server&lt;/code&gt;。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
