基于Rust与Tauri构建情境感知桌面应用:Workbuddy智能工作伴侣开发实践
1. 项目概述一个“工作伙伴”的诞生最近在折腾一个挺有意思的小项目我把它叫做Workbuddy。这个名字直译过来就是“工作伙伴”但它的野心可不止于此。它的核心口号是 “Not only Work, but also Entertainment” —— 不止于工作更要娱乐。说白了我想做的不是一个冷冰冰的效率工具而是一个能融入你数字生活、既帮你搞定工作又能让你在间隙里喘口气、找点乐子的智能伴侣。这想法是怎么来的呢作为一个长期与代码和Deadline为伍的人我太清楚那种状态了一整天钉在IDE或者设计软件前效率曲线从早上的高峰一路下滑下午三四点就陷入“数字泥沼”脑子转不动但手又停不下来。这时候强行工作产出极低但彻底摆烂刷手机又会有负罪感。我们需要的是一个“软切换”一个能在工作模式和放松模式间无缝衔接的“伙伴”。市面上的工具要么太严肃纯番茄钟、项目管理要么太分散娱乐App和工作App完全割裂。Workbuddy就是想填上这个空它应该像一个懂你的同事在你需要专注时帮你屏蔽干扰在你需要灵感或休息时又能恰到好处地递上一杯“数字咖啡”可能是段有趣的短文、一首契合心境的音乐或者一个简单的脑力游戏。它的目标用户很明确像我一样的知识工作者、远程办公者、学生以及任何需要长时间面对屏幕在高效产出与可持续工作状态之间寻找平衡的人。这个项目不追求功能的庞杂而是追求体验的深度和场景的契合。它不是要取代你的专业软件而是成为你数字桌面上的一个“瑞士军刀”式的智能中枢连接工作与生活的那一小块模糊地带。2. 核心设计理念与架构拆解2.1 “情境感知”与“流状态”支持Workbuddy的设计核心是“情境感知”。它不应该是一个需要你频繁手动切换模式的工具而应该能通过一些简单的信号理解你当前处于何种状态并自动提供相应的服务。我们主要关注两种核心情境“深度工作流”和“间歇恢复期”。在“深度工作流”情境下Workbuddy的角色是“守护者”。它会监测你的活动窗口、系统空闲时间甚至结合简单的本地化处理来分析你的键盘敲击模式注意是匿名且本地的模式识别不涉及内容窃取。当它判断你已进入专注状态例如持续在代码编辑器或文档软件中活跃操作超过15分钟它会自动启用“专注模式”。这个模式不仅仅是屏蔽通知那么简单它可以动态调暗非活动窗口让你视觉焦点更集中。提供极简的白噪音或环境音如咖啡馆背景音、雨声帮助你进入心流。记录“心流片段”默默记录下你这段高效工作的时间长度和对应的应用帮你后期复盘自己的高效时段规律。而当系统监测到你停止活跃比如鼠标键盘长时间无输入或你主动触发休息指令时Workbuddy会平滑过渡到“间歇恢复期”情境。这时它的角色转变为“调剂师”。它不会一股脑地推送爆炸性的娱乐内容而是基于时间、你之前的工作内容仅限应用类型标签如“编程”、“写作”、“设计”以及你的简单偏好设置提供轻量级的娱乐选项。例如刚结束一段高强度的编程工作它可能会推荐一则关于科技冷知识的卡片、一首纯音乐或者一个30秒的视觉解谜小游戏。这些内容的核心原则是短、轻、无负担旨在让大脑换换频道而不是掉入另一个信息深渊。2.2 微服务化架构与本地优先原则为了实现灵活的情境切换和功能组合Workbuddy采用了微服务化架构。整个应用由一系列独立的、功能单一的服务模块构成通过一个轻量级的“主控服务”进行协调。主要模块包括情境感知服务负责收集和分析用户行为数据窗口焦点、输入事件、时间并输出当前的情境状态“深度工作”、“轻度浏览”、“休息中”等。内容管理服务管理本地的娱乐内容库如短文、谜题、音乐链接和规则。内容以离线包形式存在定期安全更新确保无网络时也能使用。界面渲染服务根据主控服务的指令渲染不同的UI界面。专注模式下的极简悬浮窗休息模式下的内容卡片弹窗等。配置与数据服务管理用户的所有偏好设置和工作记录数据。所有数据严格遵守“本地优先”原则核心数据不出设备仅在用户明确同意且需要时进行加密的跨设备同步如通过用户自己控制的WebDAV或iCloud/Drive。“本地优先”原则是Workbuddy的技术与伦理基石。所有敏感的行为分析都在设备本地完成仅生成抽象的“情境标签”和匿名化的统计数据。你的工作内容、浏览历史、娱乐偏好等原始数据永远不会被上传到任何远程服务器。这不仅是隐私的保障也减少了网络依赖让核心体验更迅捷、可靠。2.3 技术栈选型考量在技术选型上我追求的是高性能、跨平台和低资源占用。核心运行时选用Rust来编写情境感知、主控等对性能和稳定性要求高的后端服务。Rust的内存安全和零成本抽象特性非常适合构建长期运行、需要精确控制资源的桌面后台服务能有效避免内存泄漏和崩溃。用户界面使用Tauri框架。Tauri允许我用 Web 技术HTML, CSS, JavaScript构建前端界面但后端核心是 Rust。它生成的应用程序包体积极小相比 Electron启动速度快且系统资源消耗很低完美契合“默默陪伴”不打扰的定位。数据存储使用SQLite作为本地数据库。它轻量、快速、无需单独服务进程非常适合桌面应用。所有配置、内容缓存和工作记录都存储在一个单一的.db文件中便于管理和备份。内容更新设计了一个简单的内容分发系统。应用内置一个基础内容包并可以通过HTTPS定期检查并增量更新一个由项目维护的、经过筛选的“娱乐内容包”。这个内容包是静态的、签名的确保来源安全可靠。注意这里有一个重要的设计取舍。为什么不做成Web应用或浏览器插件因为我们需要深度但安全的系统集成如窗口事件监听需要保证离线可用性并且要提供一个独立、稳定的应用体验。浏览器插件的权限模型和性能隔离有时无法满足低延迟、高可靠性的后台服务需求。3. 核心功能模块深度解析3.1 智能专注模式不只是屏蔽专注模式是Workbuddy的“工作”面。它的实现远比一个简单的“请勿打扰”开关复杂。窗口智能感知与过滤 我们通过系统API在Windows上可能是EnumWindowsmacOS上是CGWindowListCopyWindowInfo来获取当前所有窗口的列表。关键步骤在于窗口分类。我们维护一个可编辑的“工作相关应用”列表用户可自定义例如Visual Studio Code,Figma,Obsidian,Chrome仅限特定工作域名。当用户进入专注模式Workbuddy会标记当前焦点窗口所属的应用。如果该应用在“工作列表”内则启动专注计时并进入“深度守护”状态。对于非工作列表内的窗口如果它们被激活即用户试图切换过去Workbuddy会根据策略进行干预。默认策略是“柔和提醒”非工作窗口会被半透明遮罩覆盖并显示一个温和的提示“还在专注时间内哦”同时提供一个“紧急处理”的按钮。这比直接阻止切换更人性化减少了对抗感。环境音引擎 环境音不是随便播放一个MP3文件。我们实现了一个简单的音频混合引擎。使用rodioRust音频库或类似的Web Audio API可以同时加载多个环境音轨如“键盘声”、“远处谈话”、“雨声”。用户可以调节每个音轨的音量和权重甚至可以根据时间或情境自动淡入淡出。例如进入专注模式10分钟后雨声音量微微提升帮助加深沉浸感。心流片段记录 这个功能的数据结构设计很重要。我们并不记录具体的按键或内容而是记录“事件”。// 简化的数据结构示例 struct FlowSession { start_time: DateTime, // 开始时间 duration_seconds: u32, // 持续时间 primary_app: String, // 主要应用如“Code.exe” app_category: String, // 应用分类如“开发” perceived_focus_level: Optionu8, // 事后用户自评的专注度1-5 }这些数据仅用于在应用内的“数据看板”中以图表形式向用户展示他/她的高效时段分布、不同工作类型的耗时等帮助用户进行自我洞察和习惯优化。3.2 娱乐内容推送系统精准的“数字零食”这是“Entertainment”部分的精髓。内容推送的核心逻辑是基于规则的匹配而非复杂的推荐算法以保持透明和可控。内容库结构 内容以JSON格式打包每个内容条目包含{ id: puzzle_001, type: mini_puzzle, // 类型mini_puzzle, fun_fact, music, breath_exercise title: 视觉逻辑谜题, content: ..., // 可以是文本、图片Base64或资源引用 estimated_time: 30, // 预估耗时秒 tags: [逻辑, 视觉, 短时], // 标签 intensity: low, // 强度low, medium, high context_match: [after_deep_work, mental_fatigue] // 匹配的情境 }推送决策流程触发用户休息指令或系统检测到空闲。收集上下文当前时间、上一个工作会话的app_category如“编程”、用户设置的偏好“我喜欢谜题”、历史内容反馈。规则过滤时间过滤如果是午休可能推送稍长2-3分钟的内容如果是短休息只推送estimated_time 60秒的内容。情境过滤如果app_category是“写作”且会话较长context_match包含after_deep_work和mental_fatigue的内容会被优先考虑。强度过滤通常选择intensity: low的内容避免高强度游戏让大脑更累。去重过滤近期推送过的内容ID会被暂时排除。随机选择从过滤后的候选列表中随机选取一项。随机性在这里很重要它带来惊喜感避免 predictable 的枯燥。呈现以美观的非侵入式卡片形式弹出在屏幕角落。实操心得内容来源与版权这是项目初期最大的坑之一。绝对不能随意爬取网络内容。我们的解决方案是自建种子库初期由开发者手动收集、创作或翻译一批无版权或CC协议允许的优质短内容。用户贡献设计一个安全的“内容投稿”功能允许用户分享自己发现的符合格式的“数字零食”仅文字或链接应用会解析预览投稿内容需经过审核后才进入公共更新包。明确版权标识每个内容都必须清晰标明来源和授权协议。这虽然繁琐但避免了法律风险也是对内容创作者的尊重。4. 开发实操与关键实现细节4.1 使用Tauri搭建跨平台桌面应用Tauri是项目的骨架。创建项目非常简单npm create tauri-applatest在模板选择时我选择了vanilla纯JS/HTML前端因为Workbuddy的UI相对简单不需要React/Vue等框架的复杂度这样可以保持极致的轻量。核心配置tauri.conf.json 这里需要仔细配置权限特别是系统相关的。{ build: { beforeDevCommand: npm run dev, beforeBuildCommand: npm run build, devPath: http://localhost:1420, distDir: ../dist }, package: { productName: Workbuddy, version: 0.1.0 }, tauri: { allowlist: { all: false, window: { all: true }, notification: { all: true // 允许系统通知 }, globalShortcut: { all: true // 允许全局快捷键 } }, bundle: { active: true, targets: [deb, appimage, msi, dmg], // 目标平台 icon: [icons/32x32.png, icons/128x128.png] }, security: { csp: null } } }前端与Rust后端的通信 这是Tauri应用的核心。例如从前端JS请求开始一个专注会话// 前端 import { invoke } from tauri-apps/api/tauri; async function startFocusSession(duration) { try { const result await invoke(start_focus_session, { durationMinutes: duration }); console.log(Session started:, result); } catch (error) { console.error(Failed to start session:, error); } }对应的Rust后端处理函数// src-tauri/src/main.rs 或 commands.rs #[tauri::command] fn start_focus_session(duration_minutes: u32, app_handle: tauri::AppHandle) - ResultString, String { // 1. 记录开始时间 // 2. 通知情境感知服务进入“深度工作”状态 // 3. 启动专注模式的UI通过事件或直接调用前端 app_handle.emit_all(focus_mode_started, duration_minutes).map_err(|e| e.to_string())?; Ok(format!(Focus session started for {} minutes, duration_minutes)) }这种前后端分离的架构让UI逻辑和核心系统逻辑清晰解耦。4.2 Rust后端服务的设计与通信Workbuddy的后端不是单个进程而是多个通过进程间通信IPC或更简单的——内部事件总线协作的模块。我采用了一个基于tokio异步运行时和tokio::sync::broadcast通道的轻量级事件总线。主控服务作为事件中心。// 事件枚举定义系统中所有可能的事件 enum SystemEvent { UserBecameIdle, UserActiveOnWorkApp(String), // 附带应用名 UserActiveOnNonWorkApp(String), FocusTimerElapsed, RestRequested, // ... 其他事件 } // 各个服务如情境感知服务、内容服务克隆这个广播通道的发送端和接收端。 // 情境感知服务检测到用户空闲后 event_sender.send(SystemEvent::UserBecameIdle).unwrap(); // 内容服务监听事件 while let Ok(event) event_receiver.recv().await { match event { SystemEvent::UserBecameIdle { // 触发内容推送逻辑 let suggestion content_engine.suggest_content().await; // 再通过Tauri命令或事件通知前端显示 frontend_notifier.show_content(suggestion).await; } _ {} } }这种基于事件的架构使得系统高度解耦易于扩展新服务或修改现有服务的行为。4.3 数据持久化与隐私保护实现所有数据通过SQLite存储。我们使用rusqlite或sqlx库。表设计包括sessions表存储工作/专注会话记录。user_preferences表存储用户设置。content_cache表缓存下载的娱乐内容。usage_log表匿名化的功能使用日志仅用于分析哪个功能最受欢迎不关联任何个人标识。隐私保护的关键操作数据匿名化在记录任何日志前会移除所有可能识别个人的信息如窗口标题中的具体文件名、文档内容。本地加密如果用户启用跨设备同步同步前会使用用户提供的密码派生的密钥在本地对敏感配置如自定义工作应用列表进行加密。透明的数据视图应用内提供“数据仪表盘”让用户清晰看到Workbuddy收集了哪些数据并允许一键清除所有本地数据。5. 常见问题与调试心得实录在开发和内测过程中遇到了不少典型问题这里记录下排查思路和解决方案。5.1 系统兼容性与权限问题问题表现在macOS上应用无法获取窗口列表或在Windows上无法设置全局快捷键。排查思路检查Tauri配置确认tauri.conf.json中的allowlist已正确开放window和globalShortcut权限。检查操作系统权限特别是macOS从macOS Catalina开始屏幕录制、输入监听等需要明确的用户授权。应用首次调用相关API时系统会弹出权限请求。必须在Info.plist对于Tauri在tauri.conf.json的bundle部分配置中添加对应的用途描述字符串。代码层面使用条件编译来处理平台差异。#[cfg(target_os macos)] fn get_active_window_info_macos() - ResultWindowInfo, Error { // 使用macOS特定的CGWindowList API } #[cfg(target_os windows)] fn get_active_window_info_windows() - ResultWindowInfo, Error { // 使用Windows的user32.dll API }解决方案在文档中明确说明首次启动时需要授权的步骤并在应用内引导用户前往系统设置中开启权限。对于Tauri一些社区插件如tauri-plugin-global-shortcut已经封装了跨平台的API优先使用它们可以减少底层差异。5.2 内容推送时机“不准”或“恼人”问题表现用户刚切出去回个消息娱乐卡片就弹出来了或者用户真的想休息时推送的内容不感兴趣。排查与优化细化空闲判定最初的空闲判定可能太敏感如30秒无操作。我们引入了多级阈值和应用上下文。例如在非工作应用上空闲30秒触发“轻度休息建议”在工作应用上空闲2分钟才触发并且推送的内容强度更低如深呼吸引导。增加“学习”机制记录用户对推送内容的反馈“点赞”、“跳过”、“不再显示此类”。虽然不用复杂算法但可以基于简单计数进行过滤。例如某个标签的内容被连续跳过3次则未来一周内降低该标签内容的权重。提供手动控制增加一个“免打扰”时段设置以及一个临时的“暂停智能推送”按钮把控制权完全交给用户。5.3 应用性能与资源占用问题表现作为常驻后台的应用担心它耗电或占用过多内存。优化措施事件驱动与休眠各个服务模块大部分时间都在监听事件通道没有事件时处于等待状态不进行主动轮询CPU占用几乎为零。Rust的内存优势Rust的零成本抽象和无GC特性使得编译出的原生代码内存占用极小且稳定。一个典型的Workbuddy进程内存占用通常在20-50MB之间。前端优化UI使用原生系统Web视图渲染在非活动时如专注模式下的最小化悬浮窗前端页面可以主动暂停动画或降低更新频率。使用性能分析工具在开发阶段使用flamegraph对Rust代码进行性能剖析找出热点函数进行优化。5.4 内容更新的安全与稳定问题表现如何确保从网络下载的内容包是安全的、完整的且更新过程不影响用户体验解决方案签名验证内容包发布前用项目的私钥对其哈希值进行签名。应用下载内容包和签名文件后用内置的公钥验证签名确保内容未被篡改。增量更新与回滚更新机制支持增量补丁。下载失败或验证失败时自动回退到上一个可用版本。后台静默更新更新检查和新内容下载在后台线程进行仅在下载完成并验证成功后下次启动或空闲时提示用户“有新内容可用”不会打断当前操作。开发Workbuddy的过程是一个不断在“自动化智能”与“用户控制权”、“功能丰富”与“体验简洁”之间寻找平衡点的过程。它不是一个革命性的产品而是希望成为数字生活中一个体贴、安静、有用的伙伴。所有的技术选择——从Rust到Tauri从本地优先到规则推送——都服务于这个最终体验。如果你也在构建类似的工具希望这些踩过的坑和思考能给你带来一些启发。项目的核心价值不在于它用了多酷的技术而在于它是否真的理解并尊重了用户在工作与休息间那份细微而真实的需求。

相关新闻

STM32 HAL库工程构建全解析:从零搭建模块化嵌入式项目框架

STM32 HAL库工程构建全解析:从零搭建模块化嵌入式项目框架

1. 项目概述:为什么需要一个“手把手”的STM32工程? 如果你刚接触STM32,或者从标准库、LL库转向HAL库,打开STM32CubeMX生成的那一堆文件,是不是感觉有点懵?main.c里怎么多了这么多看不懂的初始化函数&#…

2026/10/14 2:55:56 阅读更多 →
深入UEFI底层:用grub-mod-setup_var解锁BIOS隐藏设置

深入UEFI底层:用grub-mod-setup_var解锁BIOS隐藏设置

1. 项目概述:BIOS隐藏设置的“钥匙” 如果你曾经为了给老电脑升级、解锁功耗墙、或者调整一些主板厂商刻意隐藏的高级选项而反复重启、按Del键进入BIOS,却始终找不到那个关键的开关,那么你很可能需要一把“钥匙”。今天要聊的 grub-mod-setu…

2026/10/14 10:45:47 阅读更多 →
从即梦换到知漫剧的真实体验:一站式出片解决角色场景连贯,新手少走弯路

从即梦换到知漫剧的真实体验:一站式出片解决角色场景连贯,新手少走弯路

Meta描述: 从即梦切换到知漫剧的真实使用体验,记录角色漂移、场景穿帮、多软件切换三大痛点的解决过程。一站式出片流程让新手不再走弯路,角色场景配音三连贯的实测对比与避坑建议。 开篇首段 用了三个月即梦做AI漫剧,最大的感受…

2026/10/14 15:42:47 阅读更多 →

最新新闻

华为BFD双向转发检测实战:毫秒级故障检测与调优排错指南

华为BFD双向转发检测实战:毫秒级故障检测与调优排错指南

1. 从一个“链路假死”的经典故障说起如果你做过企业级网络运维,大概率遇到过这种让人后背发凉的情况:核心交换机和上行路由器之间的物理链路指示灯一切正常,端口状态是 UP,光模块收发光功率也在正常范围内,但业务流量…

2026/10/14 23:17:13 阅读更多 →
AI聊天内容一键变正式文档:AI导出鸭完整使用指南

AI聊天内容一键变正式文档:AI导出鸭完整使用指南

每次让AI帮忙写方案、列大纲、整周报,聊天框里看着都挺满意,逻辑清楚、条理分明。可一旦到了交付环节,麻烦就冒出来了:复制到Word里格式全乱,代码块缩进没了,表格挤成一团,甚至AI自己生成的Mark…

2026/10/14 23:17:13 阅读更多 →
SpringBoot+PostGIS构建千里巡检线:空间数据建模与查询实战

SpringBoot+PostGIS构建千里巡检线:空间数据建模与查询实战

第一次在项目原型里看到整条巡检线路铺满地图的时候,我确实被这个项目的工作量震了一下。单条线路分支加主路,横跨一千多公里,穿越好几个生态和地形差异明显的区域,原来零散在各张表里的坐标点,到这里必须变成连续、可…

2026/10/14 23:17:13 阅读更多 →
汇编实验五深度解析:段寄存器与多段程序实战

汇编实验五深度解析:段寄存器与多段程序实战

1. 实验五到底在练什么:先搞懂它的设计意图很多人翻到《汇编语言》王爽这本书的实验五,第一反应是“怎么突然让我写这么多段代码”,第二反应是“这些段和段之间到底什么关系”。我带过不少刚学汇编的朋友,几乎所有人卡在实验五都不…

2026/10/14 23:17:13 阅读更多 →
Python+Django+Vue视频点播系统开发实战:从架构到部署避坑

Python+Django+Vue视频点播系统开发实战:从架构到部署避坑

简介:基于 Python 语言,结合 Django 框架与 Vue.js 前端技术,构建了一套完整的视频点播网站毕业设计项目。系统围绕用户认证、视频分类、在线播放与管理等核心功能展开,涵盖后端逻辑、前端展示、数据库管理和媒体资源存储等关键环…

2026/10/14 23:17:13 阅读更多 →
AI逆向工程实战:31.2K Star开源项目如何用大模型辅助二进制分析

AI逆向工程实战:31.2K Star开源项目如何用大模型辅助二进制分析

1. 当AI把目光投向二进制:逆向工程的门槛正在被重新定义第一次看到“AI开始搞逆向工程”这个说法,我的反应是:终于有人把这件事摆到台面上了。逆向工程这个领域,长期以来都是少数人的游戏——你得懂汇编,得熟悉PE/ELF文…

2026/10/14 23:16:08 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →