深入解析 Serde 序列化框架:核心设计与 farm 仓库的 crates.io 补丁兼容方案
前端构建构建工具开发工具【免费下载链接】farmExtremely fast Vite-compatible web build tool written in Rust项目地址https://gitcode.com/gh_mirrors/fa/farm点击查看免费下载本篇文章以本仓库 patches/serde/crates-io.mdSerde 发布到 crates.io 时渲染的官方文档为骨架系统讲解 Rust 生态最核心的序列化/反序列化框架 Serde 的设计思想、依赖配置与实战用法并结合仓库内的 patches/serde 源码分支说明 farm 项目为何以[patch.crates-io]方式维护一份本地 Serde 分支、以及该分支如何解决历史依赖链中的__private模块重命名兼容问题。读完本文你将掌握 Serde 的选型配置、derive 派生用法、核心 trait 体系以及大型 Rust 工作区依赖补丁的完整落地经验。一、Serde 是什么高效且通用的 Rust 序列化框架Serde is a framework forserializing anddeserializing Rust data structures efficiently and generically.这是 crates-io.md 开篇的定论Serde 是一套让 Rust 数据结构能够高效efficiently、通用generically地进行序列化与反序列化的框架。这里的通用指的是它与具体数据格式解耦——同一份数据结构可以自由地在 JSON、TOML、YAML、CBOR、MessagePack 等任意格式之间切换。设计哲学基于 trait 系统而非运行时反射许多语言依赖运行时反射runtime reflection完成数据序列化而 Serde 完全构建在 Rust 强大的 trait 系统之上见 src/lib.rs 的 Design 章节一个数据结构只要实现了Serialize与Deserializetrait或通过#[derive(Serialize, Deserialize)]在编译期自动生成实现就知道如何序列化/反序列化自身一个数据格式只要实现了Serializer与Deserializertrait就知道如何与其他数据交互Serde 充当这两层之间的桥接层让任何受支持的数据结构 × 任何受支持的数据格式自由组合。由于没有运行时类型信息runtime type information的开销在多数场景下数据结构与数据格式之间的交互可以被编译器完全优化掉最终性能可媲美针对特定结构 格式组合手写的序列化器。数据格式生态一览Serde 本身不绑定格式社区为它实现了大量数据格式。在 src/lib.rs 的 Data formats 章节中列出了部分实现数据格式定位JSON被大量 HTTP API 使用的通用文本格式serde_jsonPostcard面向no_std与嵌入式系统的紧凑二进制格式CBOR无需版本协商、追求小消息体积的二进制格式YAML自称 human-friendly 的配置语言MessagePack类似紧凑 JSON 的高效二进制格式TOMLCargo 使用的极简配置格式PicklePython 世界常见的格式RONRust 风格的记号Rusty Object NotationBSONMongoDB 的数据存储与网络传输格式AvroApache Hadoop 中使用、支持 schema 定义的二进制格式JSON5JSON 的超集吸收部分 ES5 语法URL query stringsx-www-form-urlencoded 格式仅序列化StarlarkBazel/Buck 构建系统描述目标所用的格式仅序列化Envy / Envy Store从环境变量 / AWS Parameter Store 反序列化到结构体仅反序列化S-expressionsLisp 语言家族的代码与数据文本表示CSV逗号分隔的表格文本格式这些格式中与 farm 项目最直接相关的是 JSON——farm 的 Rust 核心farmfe_core正是依赖serdeserde_json来完成配置解析与数据交换的。二、快速上手Cargo 依赖配置与 feature 开关使用 Serde 的第一步是在Cargo.toml中声明依赖。crates-io.md 与 README.md 给出了标准配置[dependencies] # The core APIs, including the Serialize and Deserialize traits. Always # required when using Serde. The derive feature is only required when # using #[derive(Serialize, Deserialize)] to make Serde work with structs # and enums defined in your crate. serde { version 1.0, features [derive] } # Each data format lives in its own crate; the sample code below uses JSON # but you may be using a different one. serde_json 1.0要点说明serde提供Serialize/Deserializetrait 等核心 API始终必须引入features [derive]仅在你需要对自己定义的 struct / enum使用#[derive(Serialize, Deserialize)]时才需要开启它会在编译期生成宏展开代码每种数据格式是独立 crateserde_json只是示例可按需替换。feature 开关完整清单从补丁分支的 Cargo.toml.orig 可以读到该版本1.0.228完整的 feature 定义feature默认作用std✅default提供VecT、HashMapK, V等标准库类型的实现依赖 Rust 标准库derive❌提供#[derive(Serialize, Deserialize)]宏依赖serde_derivealloc❌提供String、BoxT、VecT、CowT等core分配/集合类型的实现是std的子集可在不依赖全部std的情况下开启rc❌提供RcT与ArcT的实现注意序列化/反序列化不保持同一性同一份数据可能产生多份拷贝unstable❌提供需要 unstable 功能如never_type的类型实现serde库本体通过#![cfg_attr(not(feature std), no_std)]见 src/lib.rs支持在无标准库环境中使用allocfeature 进一步支持仅依赖alloc的中间场景这正是嵌入式与no_std项目能使用它的原因。在 farm 工作区中的实际依赖形态farm 的核心 crate crates/core/Cargo.toml 第 19 行声明serde { version 1.0, features [derive, rc] }即在开启derive宏的同时还开启了rc因为 farm 的模块图缓存等数据结构需要序列化包含RcT引用的类型。同时它配套使用serde_json { version 1.0, features [preserve_order] }保持字段顺序与serde_regex 1.1.0说明 farm 把 Serde 作为配置层与缓存层的统一序列化底座。三、Serde in action完整可运行的序列化实战crates-io.md 的核心代码示例在 README.md 中同样出现并附有 Rust Playground 运行入口展示了从结构体 → JSON → 结构体的完整闭环use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug)] struct Point { x: i32, y: i32, } fn main() { let point Point { x: 1, y: 2 }; // Convert the Point to a JSON string. let serialized serde_json::to_string(point).unwrap(); // Prints serialized {x:1,y:2} println!(serialized {}, serialized); // Convert the JSON string back to a Point. let deserialized: Point serde_json::from_str(serialized).unwrap(); // Prints deserialized Point { x: 1, y: 2 } println!(deserialized {:?}, deserialized); }逐行拆解#[derive(Serialize, Deserialize, Debug)]在编译期为Point自动生成两个 trait 的实现。注意这里的Serialize/Deserialize来自serde::路径derivefeature 通过pub use serde_derive::{Deserialize, Serialize};重导出见 src/lib.rs 第 276-279 行serde_json::to_string(point)走Serialize侧。point调用自身的serialize方法把字段逐层交给serde_json的Serializer渲染成 JSON 文本serde_json::from_str::Point(serialized)走Deserialize侧。serde_json的Deserializer解析文本调用目标类型Point的deserialize方法按字段填充输出serialized {x:1,y:2}与deserialized Point { x: 1, y: 2 }完整还原。这个派生宏 格式 crate的最小组合就是 Serde 生态的全部日常用法你几乎不需要手写任何序列化逻辑。底层 trait 契约从 src/core/de/mod.rs 与 src/core/ser/mod.rs 的文档可以确认 Serde 的分工模型实现了Serialize的类型 一个数据结构可以向任何受支持的格式序列化自身实现了Serializer的类型 一种数据格式可以序列化任何受支持的数据结构实现了Deserialize的类型 一个数据结构可以从任何受支持的格式反序列化实现了Deserializer的类型 一种数据格式可以反序列化任何受支持的数据结构。Serialize侧的 impl 覆盖 bool、i8~i128、u8~u128、f32/f64、char、[T; 0]~[T; 32]、不超过 16 元组的 tuple、String、OptionT、ResultT, E、BoxT等大量内建类型Deserialize侧略有差异例如OsStr可以序列化但不可反序列化。这种取舍通过de/impls.rs与ser/impls.rs两个文件分别组织。farm 中的真实用法印证farm 核心配置模块大量使用 Serde 派生宏。例如 crates/core/src/config/asset.rsuse serde::{Deserialize, Serialize}; #[derive(Debug, Copy, Clone, Serialize, Deserialize)] #[serde(rename_all camelCase)] pub enum AssetFormatMode { Node, Browser, } #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all camelCase, default)] pub struct AssetsConfig { pub include: VecString, /// Used internally, this option will be not exposed to user. pub public_dir: OptionString, pub mode: OptionAssetFormatMode, }这里展示了两个高频派生属性#[serde(rename_all camelCase)]让 Rust 的snake_case字段与 JS 侧习惯的camelCase配置键互相映射#[serde(default)]让缺失字段回落到Default实现。同样的模式遍布crates/core/src/config/下的css.rs、html.rs、minify.rs、output.rs、partial_bundling.rs等配置模块它们共同支撑 farm 对farm.config.ts等配置文件的解析与校验。四、本仓库 patches/serde 分支源码结构纵览本仓库的 patches/serde 目录完整保存了一份 serde 1.0.228 的源码分支目录结构如下patches/serde/ ├── Cargo.toml # Cargo 自动归一化后的清单发布到 crates.io 时的形态 ├── Cargo.toml.orig # 原始清单作者维护的形态 ├── build.rs # 生成 __private 兼容模块的构建脚本 ├── crates-io.md # 发布到 crates.io 时渲染的 README本文主题文档 ├── README.md # 仓库内完整的 README └── src/ ├── lib.rs # 库入口trait 重导出、derive 宏重导出、no_std 支持 ├── integer128.rs # i128/u128 序列化支持 ├── core/ # serde_core 逻辑docsrs 下内联进 serde │ ├── crate_root.rs │ ├── de/ # Deserialize / Deserializer 侧实现 │ ├── ser/ # Serialize / Serializer 侧实现 │ ├── private/ # 派生代码所需的内部工具 │ ├── format.rs │ └── std_error.rs └── private/ # 补丁分支新增的 __private 兼容层de.rs / ser.rs / mod.rs几个值得注意的实现细节serde_core 分层serde 1.0.228 把 trait 与核心实现下沉到了独立的serde_corecrate在 Cargo.toml.orig 中为serde_core { version 1.0.228, ... }。但在docs.rs文档构建场景下#[cfg(docsrs)]serde 通过#[path core/crate_root.rs]把serde_core的内容内联进 serde 自身见 src/lib.rs 第 168-186 行以绕开 rustdoc 跨 crate 重导出的一系列缺陷tri!宏优化在非 docsrs 构建下src/lib.rs 内部定义了简化版tri!宏代替标准库try!/?源码注释称相比标准try!有约 5.5% 的编译时间提升、相比?有约 9% 的提升——这是 serde 对编译期开销精细化控制的一个佐证构建脚本探测编译器build.rs 会解析rustc --version根据小版本号设置no_serde_deriveRust 1.61与no_diagnostic_namespaceRust 1.78等 cfg保证在较老编译器上也能降级编译Cargo.toml.orig中声明的 MSRV 为 Rust 1.56。五、核心谜底crates-io.md 与[patch.crates-io]补丁的来龙去脉crates-io.md 是什么在 Cargo.toml.orig 第 13 行有readme crates-io.md。这意味着crates-io.md 不是一份普通文档而是 serde 发布到 crates.io 注册表时在 crate 主页上渲染展示的 README。它刻意保持精简一段定义、一组导航入口、一个可运行示例、一段社区求助指引——这是为了在 crates.io 页面上一眼讲清楚Serde 是什么、怎么开始用。crates-io.md 开头的 You may be looking for 段落指向的官方资源Serde 概览、数据格式清单、derive 配置指南、示例集合、API 文档、版本发布说明在本仓库中的对应物就是 README.md 与 src/lib.rs 的文档注释读者可以直接在本仓库内查阅同等内容。为什么 farm 需要维护一份 serde 分支答案写在 Cargo.toml 第 70-79 行的工作区级注释与[patch.crates-io]段中# Patch serde to provide backward-compatible __private module alias. # Some transitive deps still reference serde::__private (renamed to # serde::__privateversion in serde 1.0.218): # * mdxjs 1.0.4 → swc_core 27.0.6 → swc_common 12.0.1 # * fervid → swc_core 35.0.0 → swc_common 14.0.4 # Once those upstream crates update to a version of swc_common that does # not use serde::__private, this patch (and the patches/serde fork) # can be removed. [patch.crates-io] serde { path patches/serde }背景链条是farm 依赖 swc 生态swc_ecma_ast、swc_common等见 Cargo.toml 的[workspace.dependencies]来完成 JS/TS 的解析与转换而这些 swc crate 通过serde派生宏生成代码serde 从 1.0.218 起把内部__private模块重命名为带版本号的__privateversion形态如__private228以支持多个 serde 版本共存但 swc 生态中仍存在老版本的mdxjs 1.0.4 → swc_core 27.0.6 → swc_common 12.0.1与fervid → swc_core 35.0.0 → swc_common 14.0.4两条依赖链它们生成的代码仍引用serde::__private这个已不存在的路径导致编译失败上游 crate 短期无法升级于是 farm 在工作区级[patch.crates-io]把serde指到本地 patches/serde 分支用补丁维持向后兼容。build.rs 如何实现兼容别名兼容的核心机制在 build.rs构建时把补丁版本号CARGO_PKG_VERSION_PATCH即 228写入生成文件const PRIVATE: str \ #[doc(hidden)] pub mod __private$$ { #[doc(hidden)] pub use crate::private::*; } #[doc(hidden)] pub mod __private { #[doc(hidden)] pub use crate::private::*; } use serde_core::__private$$ as serde_core_private; ;生成的模块被include!(concat!(env!(OUT_DIR), /private.rs))合入 crate见 src/lib.rs 第 260 行。这样一来crate 根部同时存在serde::__private——为仍引用旧路径的 swc 派生代码提供的兼容别名serde::__private228——新版 serde 自身的带版本号模块。两条代码路径都能解析成功从底层打通了新版 serde 旧版 swc 依赖链的编译死结。Cargo.lock 中的落点证据在 Cargo.lock 第 6545-6550 行的serde条目中version 1.0.228且没有source registry...字段这正是本地路径补丁的典型特征而它依赖的serde_core第 6573 行则明确标注source registry...证明补丁只替换了 serde 本体的包serde_core/serde_derive 仍从 crates.io 拉取。这说明 farm 的补丁策略是最小侵入仅修改 serde 入口 crate保留其内部依赖原样。这个补丁什么时候可以移除按 Cargo.toml 注释的约定只要上游swc_common升级到不再引用serde::__private的版本届时 mdxjs/fervid 依赖链全部更新这份补丁与patches/serde分支即可整体删除[patch.crates-io]段也随之移除。这种临时补丁 明确移除条件的做法是大型 Rust 工作区处理上游依赖断层的典型工程实践。六、遇到问题去哪里求助crates-io.md 的 Getting help 章节指出Serde 是 Rust 生态中应用最广泛的库之一因此任何 Rust 开发者聚集的社区都能提供帮助——包括社区 Discord 的#rust-questions/#rust-beginners频道、官方 Rust Discord 的#rust-usage/#beginners频道、Zulip 的#general流、StackOverflow 的[rust]标签、/r/rust 子论坛的每周新手答疑帖以及 Rust Discourse 论坛也可以在仓库中提交支持 issue但通常获得响应的速度不如上述社区。就 farm 项目自身而言如果你在使用本文涉及的 Serde 补丁或 farm 的 Rust 核心时遇到问题可参考仓库的 CONTRIBUTING.md另有 CONTRIBUTING.zh-CN.md 中文版了解参与方式与沟通渠道若怀疑问题出在 swc 依赖链本身可以先核对 Cargo.toml 中[patch.crates-io]的注释确认补丁的适用边界与移除条件是否已满足。总结本文围绕 crates-io.md 这条被发布到 crates.io 的 Serde 官方文档展开其一厘清了 Serde基于 trait 系统、数据结构与数据格式解耦的设计哲学并通过完整可运行的Point示例与 farm 的AssetsConfig真实配置演示了#[derive(Serialize, Deserialize)]的日常用法其二结合 build.rs 与 Cargo.toml 的注释与[patch.crates-io]段还原了 farm 维护patches/serde分支的完整动因——为serde::__private重命名提供向后兼容别名打通新 serde 与旧 swc 依赖链的编译冲突并明确了补丁的移除条件。无论是想快速上手 Serde还是想理解大型 Rust 工作区的依赖补丁工程本文都给出了可在仓库内直接验证的源码依据。赞分享前端构建构建工具开发工具【免费下载链接】farmExtremely fast Vite-compatible web build tool written in Rust项目地址https://gitcode.com/gh_mirrors/fa/farm点击查看免费下载相关推荐深入解析SerdeRust序列化框架的核心架构深入解析SerdeRust序列化框架的核心架构 Serde作为Rust生态中最成功的序列化框架其设计理念体现了Rust语言的核心哲学零成本抽象、编译时安全序列化一条命令拉起魔兽世界私服AzerothCore-WoTLK Docker 容器化完整指南一条命令拉起魔兽世界私服AzerothCore WoTLK Docker 容器化完整指南 敲下 docker compose up d 回车魔兽世界私服 D游戏开发后端深入解析滴滴Mpx小程序框架的核心设计与实现深入解析滴滴Mpx小程序框架的核心设计与实现 引言小程序开发的痛点与Mpx的解决方案 你是否还在为小程序开发中的这些问题而烦恼 原生开发体验落后缺乏现代前前端跨平台小程序移动开发上一篇八大网盘直链解析工具彻底告别下载限速的终极解决方案下一篇expo-router 中的 react-helmet-async服务端渲染与 SEO 元标签管理的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Lambda架构性能测试实战:批处理、实时链路与服务层的压测方法

Lambda架构性能测试实战:批处理、实时链路与服务层的压测方法

1. 为什么Lambda架构需要一套独立的性能测试方法做大数据系统的人,对Lambda架构应该都不陌生——批处理层负责全量数据的离线计算,速度层负责实时数据的增量计算,服务层再把两层结果合并起来对外提供统一查询。这套架构把“准确”和“低延迟”…

2026/10/13 7:58:24 阅读更多 →
手把手教你实现自己的“Manus”:基于容器隔离的多用户Agent应用搭建指南

手把手教你实现自己的“Manus”:基于容器隔离的多用户Agent应用搭建指南

/* 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 7:58:24 阅读更多 →
Litellm:大模型调用的统一抽象层与生产级路由网关

Litellm:大模型调用的统一抽象层与生产级路由网关

1. 为什么“litellm”突然在开发者圈里刷屏?它到底不是个新模型,而是一把万能钥匙最近两周,好几个不同技术栈的同行在群里发截图:有人在用 Python 调通了本地运行的 Qwen3,有人把公司私有部署的 DeepSeek-R1 接进了旧版…

2026/10/13 7:57:23 阅读更多 →

最新新闻

LiteLLM实战:统一大模型API网关的部署、路由与预算控制

LiteLLM实战:统一大模型API网关的部署、路由与预算控制

做AI应用这一年多,我最大的感受是:模型本身其实不是瓶颈,真正让人头大的是怎么把一堆杂七杂八的模型接入、路由、计费、限流这些东西收拾利索。LiteLLM这个开源项目,说白了就是帮你把这件事打包干完——它把市面上主流的大模型API…

2026/10/13 8:38:54 阅读更多 →
大模型Agent技能库设计:从工具调用到编排的工程实践

大模型Agent技能库设计:从工具调用到编排的工程实践

接手 agent-skills 这个选题时,我脑子里马上浮现出前段时间做某客服智能体项目时被技能设计折磨的经历。agent-skills,说白了就是给大模型 Agent 配备的"能力工具箱",让它能按需调用搜索、计算、查库存、发消息这些具体动作。它不是…

2026/10/13 8:38:54 阅读更多 →
CFCA精品可可认证:证书之外,校友网络才是真正的行业入场券

CFCA精品可可认证:证书之外,校友网络才是真正的行业入场券

我见过太多人冲着“证书”去报名,却忽略了证书背后那张真正值钱的关系网。CFCA,一个在精品可可行当里低调但口碑很硬的专业认证项目,它的校友网络是我近几年见过最典型的“证书圈子”组合。精品可可这行,技术固然重要,…

2026/10/13 8:38:54 阅读更多 →
ClickHouse性能调优实战:从system库到工具组合的全链路指南

ClickHouse性能调优实战:从system库到工具组合的全链路指南

1. 调优第一步:把ClickHouse自带的system库当成第一套性能工具箱 接手ClickHouse集群运维的第一年,我踩得最深的一个坑就是:服务变慢之后不知道从哪儿下手抓原因。那时候我习惯先看机器CPU和内存,再翻日志,折腾半小时还…

2026/10/13 8:38:54 阅读更多 →
AI编码工具冲击下,程序员真正的护城河到底是什么?

AI编码工具冲击下,程序员真正的护城河到底是什么?

大约是半年前,我接到一个订单中心模块的重构任务,顺手把一部分“状态流转”的代码丢给了某主流AI编码工具。 当时的心态其实是试探性的,觉得它能生成一个骨架就算成功,毕竟这个模块牵扯到订单取消、超时关单、支付回调、幂等控制…

2026/10/13 8:38:54 阅读更多 →
基于PaddleOCR与PyQt5的GUI车票识别系统设计与实现

基于PaddleOCR与PyQt5的GUI车票识别系统设计与实现

简介:这是一套基于GUI的OCR车票识别完整毕业设计项目,面向计算机视觉、机器学习方向的本科生及入门开发者,重点解决车票日期、车次、座位号等关键信息的自动提取与可视化操作问题。压缩包共82个文件,整体约4.01MB,包含…

2026/10/13 8:37:52 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →