Linux From Scratch 宣布停止开发 System V 版本一、新闻概述1. 标题Linux From Scratch 宣布停止开发 System V 版本，未来将仅支持 systemd2. 发布时间2026 年 2 月 1 日3. 来源Linux From Scratch 官方公告邮件列表二、核心内容1. 事件摘要A. 主要内容Linux From Scratch（LFS）项目官方宣布，将停止开发 System V 版本的图书。这是一个重大的架构决策变更，意味着未来的 LFS 和 BLFS 将仅支持 systemd 初始化系统。B. 核心亮点停止 System V 版本的持续开发维护LFS/BLFS 12.4 System V 版本将作为最后版本继续可用下一版本 13.0 将仅支持 systemd目标发布日期为 2026 年 3 月 1 日2. 关键信息A. 涉及版本LFS/BLFS 12.4 System V：最后维护版本LFS/BLFS 13.0：首个仅支持 systemd 的版本B. 重要数据LFS 包含 88 个软件包BLFS 包含超过 1000 个软件包本发布周期（9 月 1 日至今）已有 70 次 LFS 提交、1155 次 BLFS 提交systemd 约 1678 个 C 文件System V 仅 22 个 C 文件加约 50 个简短的 bash 脚本C. 涉及产品LFS（Linux From Scratch）主书籍BLFS（Beyond Linux From Scratch）扩展书籍3. 背景介绍A. 项目历史Linux From Scratch 是一个著名的 Linux 发行版构建指南项目，帮助用户从源代码构建自定义 Linux 系统。项目长期以来同时支持 System V 和 systemd 两种初始化系统。B. 技术背景System V 和 systemd 是两种不同的 Linux 初始化系统。System V 是传统的 init 系统，代码简洁但功能有限；systemd 是现代化的 init 系统，功能强大但代码复杂。三、详细报道1. 决策原因A. 工作负载压力LFS 项目完全依靠志愿者维护，没有付费开发人员。当前的维护工作量已经超过团队能力：graph LR A[LFS/BLFS 项目] --> B{工作负载压力} A --> C{上游依赖} B --> D[88 个 LFS 包] B --> E[1000+ 个 BLFS 包] C --> F[GNOME/KDE Plasma] F --> G[需要 systemd 特性] G --> H[System V 不支持] D --> I[双重维护负担] E --> I I --> J[决定：放弃 System V]每个软件包更新需要检查 System V 和 systemd 两种配置发布准备时需要为每个 init 系统检查所有软件包本周期已有 70 次 LFS 提交和 1155 次 BLFS 提交B. 上游软件依赖现代桌面环境如 GNOME 和即将推出的 KDE Plasma 正在构建需要 systemd 特性的依赖，这些特性在 System V 中不可用。C. 技术可行性考虑虽然理论上可以使用 OpenRC 等其他 init 系统作为过渡，但这无法解决持续的工作负载问题。2. 技术对比A. 代码复杂度特性System VsystemdC 文件数量22 个1678 个脚本数量约 50 个 bash 脚本大量数据文件总体复杂度简洁易理解复杂但功能丰富学习价值高，便于理解启动过程低，黑盒化程度高B. 功能特性System V：传统初始化，依赖脚本，功能基础systemd：现代化初始化，并行启动，功能丰富C. 生态系统System V：逐渐被上游项目放弃systemd：成为主流发行版标准3. 未来计划A. 版本发布计划12.4 System V 版本：继续可用，但不再更新13.0 版本：仅支持 systemd，目标发布日期 2026 年 3 月 1 日B. 兼容性说明12.4 System V 书籍中的大部分说明仍可用于构建较新版本的软件包但这些软件包将不再经过 LFS 编辑团队测试4. 项目负责人观点Bruce Dubbs 在公告中表达了个人看法："对我个人而言，我不喜欢这个决定。LFS 的核心在于学习系统如何工作。理解启动过程是其中的重要部分。systemd 约 1678 个 C 文件加上许多数据文件。System V 是 22 个 C 文件加上约 50 个简短的 bash 脚本和数据文件。是的，systemd 提供了很多功能，但我们将失去一些我认为重要的东西。"这反映了项目创始理念（教育性和可理解性）与现实约束（维护工作量）之间的矛盾。四、影响分析1. 行业影响A. Linux 发行版生态反映了 System V init 系统在 Linux 生态中的边缘化趋势systemd 已成为事实上的行业标准B. 教育领域传统 Linux 系统学习路径受到影响System V 简洁的代码结构曾是理解 Linux 启动过程的优秀教材2. 用户影响A. 现有用户已使用 System V 版本的用户：现有版本仍可使用，但新软件包未经测试计划学习 LFS 的用户：将只能通过 systemd 版本学习，难以深入了解传统启动流程B. 迁移建议需要 System V 兼容性的用户：继续使用 LFS/BLFS 12.4 System V 版本追求最新软件版本的用户：使用未来的 13.0 systemd 版本3. 技术趋势A. 初始化系统统一化systemd 在 Linux 发行版中的统治地位进一步巩固System V 逐渐成为历史遗产B. 教育与实用的权衡开源教育项目面临理想与现实的双重压力志愿者维护模式在应对快速变化的上游项目时显得力不从心五、各方反应1. 官方立场项目负责人承认这是一个艰难的决定强调这是工作负载和上游依赖共同作用的结果保留了 System V 版本的可用性，供有需要的用户使用2. 社区预期A. 支持意见认可维护团队的工作压力，理解放弃双重维护的必要性接受 systemd 成为行业标准的现实B. 保留意见担心 LFS 的教育价值降低认为复杂化的 systemd 不利于初学者理解 Linux 系统本质C. 替代方案讨论社区可能出现基于 OpenRC 或其他 init 系统的分支项目Gentoo 等仍支持多种 init 系统的发行版可能成为相关学习资源六、相关链接1. 官方资源LFS 官方网站LFS 邮件列表归档2. 相关项目BLFS（Beyond Linux From Scratch）CLFS（Cross Linux From Scratch）HLFS（Hardened Linux From Scratch）3. 技术参考systemd 官方文档System V init 历史资料参考资料lfs-announce 邮件列表 - Future direction for LinuxFromScratch
Docsify 零构建文档站点生成器技术分析一、项目概述1. 项目背景Docsify 是一个神奇的文档站点生成器，由 docsifyjs 团队开发和维护。该项目在 GitHub 上拥有超过 30,000 星标和 5,800+ 复刻，被 8,800+ 项目使用，是技术文档领域的重要开源工具。2. 核心特点A. 无需构建过程不同于 Hexo、Jekyll 等静态站点生成器，Docsify 不需要生成静态 HTML 文件。它直接在浏览器中解析和渲染 Markdown 文件。B. 轻量简洁核心库体积小，加载速度快，适合快速搭建文档站点。C. 插件生态提供丰富的插件系统，包括全文搜索、代码高亮、复制代码、表情支持等。3. 技术数据Star 数量：30,900+Fork 数量：5,800+贡献者：180 人使用项目：8,800+主要语言：JavaScript (86.8%)、CSS (12.5%)二、核心架构1. 工作原理graph TB subgraph 服务端 A[Markdown 文件] --> B[静态文件服务器] end subgraph 浏览器端 C[用户访问] --> D[加载 index.html] D --> E[加载 docsify.js] E --> F[解析 Markdown] F --> G[渲染 DOM] G --> H[显示文档] end B --> C E --> I[加载插件] I --> F2. 核心组件A. 渲染引擎使用 Vue.js 构建 UI使用 marked 解析 Markdown使用 Prism.js 实现代码高亮B. 路由系统基于 hash 路由实现单页应用效果，支持多级目录导航。C. 插件系统提供钩子函数机制，允许开发者扩展功能。三、快速开始1. 最小化配置创建 index.html 文件： 文档标题 2. 目录结构. ├── index.html # 入口文件 ├── README.md # 首页内容 ├── _sidebar.md # 侧边栏配置（可选） └── docs/ # 文档目录 ├── guide/ # 指南目录 │ └── README.md └── api/ # API 目录 └── README.md3. 部署方式A. GitHub Pages直接将仓库推送到 GitHub，启用 Pages 功能即可。B. Vercel / Netlify连接 Git 仓库，自动部署。C. 静态文件服务器使用 Nginx、Apache 等直接托管。四、核心功能1. 全文搜索graph LR A[用户输入] --> B[搜索引擎] B --> C[索引文档] C --> D[匹配关键词] D --> E[返回结果]内置智能全文搜索插件，支持中文搜索，无需额外配置。2. 多主题支持window.$docsify = { themeColor: '#3F51B5' // 自定义主题色 }提供官方主题：Vue、Buble、Dark、Pure 等。3. 代码高亮支持超过 100 种编程语言的语法高亮，基于 Prism.js。4. Emoji 支持直接在 Markdown 中使用 :emoji: 语法。5. 自定义插件window.$docsify = { plugins: [ function(hook, vm) { hook.beforeEach(function(content) { // 在每个页面加载前执行 return content }) } ] }五、高级特性1. 嵌套文档支持多级目录结构，自动生成导航树。2. 封面页面window.$docsify = { coverpage: true, onlyCover: true }3. 自定义侧边栏通过 _sidebar.md 自定义侧边栏结构。4. 目录生成自动生成当前页面的目录（TOC）。六、项目生态1. 官方插件插件名称功能docsify-copy-code复制代码按钮docsify-pagination分页导航docsify-tabs标签页docsify-sidebar-collapse侧边栏折叠2. CLI 工具docsify-cli 提供命令行工具，方便本地预览和初始化：npm i docsify-cli -g docsify init . docsify serve .3. 社区资源Awesome Docsify：精选插件和主题列表Discord 社区：用户交流和技术支持Showcase：优秀项目展示七、技术优势与限制1. 优势A. 零构建无需编译过程修改文档立即生效降低部署复杂度B. 易于集成可嵌入现有项目支持 CDN 加速配置简单C. SEO 友好支持 SSR（通过插件）可自定义 meta 标签2. 限制A. 首屏加载需要加载核心库大文档初始化较慢B. 浏览器兼容依赖现代浏览器特性IE 支持需要 polyfillC. 动态功能复杂交互需要自定义插件后端集成受限八、适用场景1. 推荐场景项目文档站点API 接口文档技术博客知识库产品手册2. 不推荐场景需要复杂交互的网站电商类网站新闻门户社交网络九、项目现状1. 版本信息最新稳定版：v4.13.1（2023 年 6 月）开发分支：develop（活跃维护中）版本 5.0.0-rc：候选发布版2. 开发状态活跃维护：每周有多次提交问题响应：79 个开放问题Pull Request：25 个待合并社区活跃：Discord 服务器持续增长3. 近期更新升级 ESLint 到 v9更新 Prettier 到 v3改进 TypeScript 类型定义优化依赖管理十、技术选型建议1. 与其他方案对比特性DocsifyVuePressVitePressDocusaurus构建方式零构建静态生成静态生成静态生成首屏速度中快快快配置难度低中中高插件生态丰富丰富发展中丰富学习曲线平缓中等中等陡峭2. 选择建议选择 Docsify 的情况需要快速搭建文档不想处理构建配置文档更新频繁团队技术基础较弱选择其他方案的情况需要最佳 SEO 表现追求极致首屏速度需要复杂交互功能有充足的构建时间十一、总结Docsify 作为零构建文档站点生成器，以其简洁、轻量、易用的特点，成为技术文档领域的热门选择。对于需要快速搭建文档站点的项目，Docsify 是理想的选择。其丰富的插件生态和活跃的社区支持，确保了项目的持续发展和完善。参考资料Docsify 官方文档Docsify GitHub 仓库Docsify CLIAwesome Docsify
LandingAI 发布免费 Document AI 课程：从 OCR 到智能体文档提取的技术进化
LandingAI 发布免费 Document AI 课程：从 OCR 到智能体文档提取的技术进化一、新闻概述1. 标题LandingAI 推出免费 Document AI 课程：Agentic Document Extraction（ADE）技术解析2. 发布时间2025 年 1 月 19 日3. 来源Sumanth (@Sumanth_077) 在 X 平台发布的技术动态二、核心内容1. 事件摘要A. 主要内容LandingAI 正式发布免费的 Document AI 在线课程，教授如何构建端到端的文档处理流水线，核心采用 Agentic Document Extraction（ADE）技术。B. 核心亮点完全免费的 3 小时在线课程6 个实战代码示例从传统 OCR 到 ADE 的技术演进教学覆盖 PDF 解析、RAG 管道、AWS 部署等完整工作流2. 关键信息A. 发布内容Document AI 免费课程，专注于 Agentic Document Extraction（ADE）技术B. 技术覆盖文本、表格、图表、表单提取布局保持（Layout Preservation）Markdown 和 JSON 输出格式向量数据库集成AWS 事件驱动架构C. 涉及产品/技术LandingAI Document AI、ADE、向量数据库、AWS3. 背景介绍A. 技术背景传统 OCR 技术在处理复杂文档时存在固有限制：提取纯文本但丢失关键的布局和结构信息。B. 行业痛点表格合并单元格结构丢失图表与标题关联关系断裂多栏文档阅读顺序混乱三、详细报道1. 主要内容A. 技术对比：传统 OCR vs ADE传统 OCR 的局限性：问题描述影响布局丢失仅提取纯文本，忽略空间位置信息文档结构无法重建表格结构破坏合并单元格、跨行跨列信息丢失数据提取准确性下降多栏顺序错误多栏布局的阅读顺序混乱内容语义理解困难图文关系断裂图表与其标题/注释分离上下文信息缺失ADE 技术优势：保留完整布局上下文（Layout Context）智能阅读顺序检测结构化输出（Markdown/JSON）模拟人类文档处理流程B. 课程核心内容1. 传统 OCR 的局限性分析复杂文档场景下的失败案例布局信息丢失的后果结构保持的重要性2. 布局检测与阅读顺序页面布局分析技术自然阅读顺序重建多栏、表格、图表区域识别3. ADE 文档解析PDF 转 Markdown（保持布局）PDF 转 JSON 结构化输出表格、图表、表单的智能提取4. RAG 管道构建ADE 与向量数据库集成文档检索增强生成（RAG）语义搜索与上下文保持5. AWS 部署实战事件驱动架构设计无服务器文档处理工作流生产环境最佳实践C. 课程特色实战导向：6 个代码示例覆盖完整工作流技术深度：从原理到实现的完整讲解生产就绪：包含 AWS 云端部署方案完全免费：无门槛获取专业知识2. 技术细节A. ADE 工作原理graph TD A[输入 PDF 文档] --> B[布局分析] B --> C[区域检测] C --> D1[文本区域] C --> D2[表格区域] C --> D3[图表区域] C --> D4[表单区域] D1 --> E[阅读顺序重建] D2 --> E D3 --> E D4 --> E E --> F[结构化输出] F --> G1[Markdown] F --> G2[JSON]B. RAG 管道架构graph LR A[PDF 文档] --> B[ADE 解析] B --> C[文本分块] C --> D[向量嵌入] D --> E[向量数据库] E --> F[语义检索] F --> G[LLM 生成答案]C. 技术指标课程时长：3 小时代码示例：6 个输出格式：Markdown、JSON部署平台：AWS3. 数据与事实A. 课程数据观看量：32.5K Views（发布初期）时长：3 小时实战案例：6 个代码示例B. 技术生态兼容向量数据库（用于 RAG）支持云原生部署（AWS）四、影响分析1. 行业影响A. 技术趋势从 OCR 到 ADE：文档处理从"文本提取"进化到"语义理解"智能体工作流：Agentic AI 范式在文档处理领域的落地端到端自动化：从文档接收到结构化数据的完整流水线B. 竞争格局LandingAI 通过免费课程扩大 ADE 技术影响力与传统 OCR 供应商（如 Tesseract、Adobe PDF Services）形成差异化竞争推动 Document AI 领域向"结构保持"方向发展2. 用户影响A. 潜在用户企业文档处理团队：需要自动化处理发票、合同、报告等结构化文档AI 开发者：构建 RAG 应用需要高质量文档解析数据工程师：需要将非结构化 PDF 转换为结构化数据B. 获取价值免费学习 ADE 核心技术掌握生产级文档处理流水线构建提升文档 AI 项目开发效率C. 学习成本3 小时课程，时间投入可控6 个实战示例，即学即用无需付费即可获取完整内容3. 技术趋势A. ADE 技术方向布局保持：从纯文本提取到结构保留智能体范式：模拟人类文档处理流程多模态融合：文本、图像、表格联合理解B. 生态影响推动 RAG 应用向高质量文档解析发展促进文档处理工作流标准化加速 Document AI 技术普及五、各方反应1. 官方信息LandingAI 官方发布免费课程，降低 Document AI 学习门槛。2. 社区反馈A. 关注点ADE 技术相比传统 OCR 的显著优势免费高质量技术资源的价值实战代码示例的实用性B. 早期数据发布初期获得 32.5K 观看量，显示开发者社区对 Document AI 技术的强烈需求。3. 技术评价A. 技术价值ADE 解决了传统 OCR 在复杂文档场景下的核心痛点布局保持是文档 AI 从"提取"到"理解"的关键跃升B. 行业意义免费课程有助于加速 ADE 技术普及推动文档处理从"人工操作"向"智能自动化"转型六、相关链接1. 官方资源LandingAI Document AI 课程（待补充具体链接）2. 技术延伸Agentic Document Extraction（ADE）技术白皮书RAG 架构最佳实践AWS 文档处理服务七、总结LandingAI 发布的免费 Document AI 课程聚焦于 Agentic Document Extraction（ADE）技术，通过 3 小时课程和 6 个实战示例，教授如何构建保持布局上下文的文档处理流水线。核心价值：解决传统 OCR 在复杂文档中的布局丢失问题提供从 PDF 解析到 RAG 部署的完整技术路径免费高质量资源降低技术学习门槛行业影响：推动 Document AI 从"文本提取"向"语义理解"进化加速 ADE 技术在企业的落地应用促进文档处理自动化标准建立参考资料Sumanth on X: LandingAI Document AI Course
Trzsz-ssh ( tssh ) 增强型 SSH 客户端技术分析一、概述1. 简介A. 是什么trzsz-ssh（简称 tssh）是一个 ssh 客户端的直接替代品，提供与 openssh 完全兼容的基础功能，同时实现多种实用的扩展功能。它由 lonnywong 开发，采用 MIT 许可证开源。B. 为什么使用解决服务器管理中记忆大量别名的困扰提供交互式登录界面，支持搜索和批量选择内置 trzsz 文件传输功能，无需额外开启窗口支持批量登录多台服务器并执行预设命令支持记住密码和自动交互，提升登录效率与 tsshd 配合使用，适用于弱网环境，保持会话不中断C. 核心特性兼容 openssh 配置和基础功能内置 TUI 登录界面，支持搜索和多选集成 trzsz 和 zmodem 文件传输支持记住密码、记住答案（键盘交互认证）支持 UDP 模式，适合高延迟弱网环境支持批量登录并执行预设命令支持自动交互（类似 expect 功能）二、安装方法1. 系统要求支持 Windows、macOS、Linux、ChromeOS 等多种平台Go 版安装需要 go 1.20 以上版本2. 安装方式A. Windows 系统# 使用 scoop 安装 scoop install tssh # 使用 winget 安装 winget install tssh # 使用 Chocolatey 安装 choco install tsshB. macOS 系统# 使用 Homebrew 安装 brew install trzsz-sshC. Linux 系统# Ubuntu/Debian 系统 sudo apt install tssh # 使用 yum 安装 sudo yum install tssh # ArchLinux 系统 yay -S tssh # ChromeOS 系统 crew install tsshD. 使用 Go 安装# 直接安装最新版本 go install github.com/trzsz/trzsz-ssh/cmd/tssh@latest # 或从源码编译安装 git clone https://github.com/trzsz/trzsz-ssh.git cd trzsz-ssh sudo make installE. 从发布包安装可从 GitHub Releases 下载预编译版本，国内用户可从 Gitee 发行版下载。三、工作原理1. 基本架构graph TB A[tssh 客户端] --> B[SSH 协议层] B --> C{连接模式} C -->|TCP 模式| D[标准 SSH 连接] C -->|UDP 模式| E[tsshd 服务端] D --> F[远程服务器] E --> F A --> G[TUI 登录界面] A --> H[trzsz 传输层] A --> I[自动交互模块] A --> J[批量登录模块]2. 核心模块SSH 协议层：兼容 openssh 的 SSH 协议实现TUI 界面：交互式终端用户界面，支持搜索和多选文件传输层：集成 trzsz 和 zmodem 协议认证模块：支持密码、公钥、键盘交互等多种认证方式UDP 模块：与 tsshd 配合，实现 UDP 传输模式3. 配置文件结构tssh 使用标准的 openssh 配置文件格式，并进行了扩展：主配置文件：~/.ssh/config扩展配置文件：~/.ssh/passwordtssh 专属配置：~/.tssh.conf 或 $XDG_CONFIG_HOME/tssh/tssh.conf四、核心功能1. 登录界面A. 启动方式# 直接运行 tssh 命令 tssh # 或者有除目标机器外的其他参数 tssh -o ServerAliveInterval=60B. 配置要求使用前需要配置好 ~/.ssh/config 文件：# 基本配置示例 Host server1 HostName 192.168.1.100 User admin Port 22 IdentityFile ~/.ssh/id_rsa Host server2 HostName 192.168.1.101 User rootC. 快捷键支持操作全局快捷键非搜索快捷键描述确认登录Enter-确认并登录选中的服务器退出Ctrl+C / Ctrl+Qq / Q取消并退出登录界面上移Ctrl+K / Shift+Tab / ↑k / K往上移动光标下移Ctrl+J / Tab / ↓j / J往下移动光标上翻页Ctrl+H / Ctrl+U / Ctrl+B / PageUp / ←h / H / u / U / b / B往上翻一页下翻页Ctrl+L / Ctrl+D / Ctrl+F / PageDown / →l / L / d / D / f / F往下翻一页跳到首页Homeg跳到第一行跳到尾页EndG跳到最尾行擦除搜索Ctrl+Ee / E擦除搜索关键字切换搜索/-切换搜索功能切换帮助?-切换帮助信息切换选中Ctrl+X / Ctrl+Space / Alt+SpaceSpace / x / X切换当前项的选中状态全选Ctrl+Aa / A全选当前页反选Ctrl+Oo / O反选当前页新窗口批量登录Ctrl+Ww / W以新窗口方式批量登录新 Tab 批量登录Ctrl+Tt / T以新 Tab 方式批量登录分屏批量登录Ctrl+Pp / P以分屏方式批量登录2. 批量登录A. 基本用法支持在 iTerm2、tmux 和 Windows Terminal 中一次选择多台服务器进行批量登录。B. 批量执行命令# 批量执行命令后进入交互式 shell tssh -t -o RemoteCommand='ping -c3 trzsz.github.io ; bash -l' # Windows Terminal 中（不支持分号） tssh -t -o RemoteCommand="ping -c3 trzsz.github.io |cat&& bash -l"C. 分组标签配置当服务器数量较多时，可以使用 GroupLabels 进行分组：# 配置示例 Host test* #!! GroupLabels group1 group2 Host testAA #!! GroupLabels label3 label4 group5按 / 键输入分组标签后，可以快速筛选目标服务器。3. 文件传输A. 支持 trzsztrzsz 是一个兼容 tmux 的文件传输工具，类似 lrzsz（rz / sz），但支持进度条和目录传输。服务器端安装：# 推荐 Go 版 go install github.com/trzsz/trzsz-go/cmd/trz@latest go install github.com/trzsz/trzsz-go/cmd/tsz@latest # 或使用 tssh 自动安装 tssh --install-trzsz server_name客户端配置：Host server1 #!! EnableDragFile Yes #!! DragFileUploadCommand trz -y使用方式：拖拽文件到终端自动上传（需要启用 EnableDragFile）使用命令行参数上传：tssh --upload-file /path/to/file1 --upload-file /path/to/dir2 server_nameB. 支持 zmodem对于传统的 rz / sz 工具，tssh 也提供了支持。配置启用：Host server1 #!! EnableZmodem Yes #!! DragFileUploadCommand rz本地安装 lrzsz：# Windows scoop install lrzsz choco install lrzsz winget install lrzsz # Linux sudo apt install lrzsz # Ubuntu/Debian sudo yum install lrzsz # CentOS/RHELC. 文件下载使用 trzsz 下载：tssh -t --client --download-path /tmp/ server_name 'tsz -d /path/to/file1 /path/to/dir2'使用 zmodem 下载：tssh -t --client --zmodem --download-path /tmp/ server_name 'sz /path/to/file1 /path/to/file2'4. 记住密码A. 密码加密tssh 提供了简单的密码加密功能，防止密码明文存储：# 生成加密密码 tssh --enc-secret # 输入密码后得到密文串B. 配置方式在 ~/.ssh/config 中配置（使用 #!! 前缀兼容标准 ssh）：Host test1 #!! encPassword 756b17766f45bdc44c37f811db9990b0880318d5f00f6531b15e068ef1fde2666550在 ~/.ssh/password 中配置（无需前缀）：Host test2 encPassword 051a2f0fdc7d0d40794b845967df4c2d05b5eb0f25339021dc4e02a9d7620070654bC. 通配符配置# test1 和 test2 使用特定密码 Host test1 #!! encPassword xxx1 Host test2 encPassword xxx2 # 其他 test* 使用通用密码 Host test* Password 111111D. 私钥 PassphraseHost server1 IdentityFile /path/to/id_rsa #!! encPassphrase 6f419911555b0cdc84549ae791ef69f654118d734bb4351de7e83163726ef46d176a5. 自动交互类似于 expect 的自动交互功能，在登录服务器后自动匹配输出并输入。A. 基本配置Host auto #!! ExpectCount 2 #!! ExpectTimeout 30 #!! ExpectPattern1 *assword #!! ExpectSendPass1 d7983b4a8ac204bd073ed04741913befd4fbf813ad405d7404cb7d779536f8b87e71106d7780b2 #!! ExpectPattern2 hostname*$ #!! ExpectSendText2 echo tssh expect\rB. 条件交互在匹配到指定输出前，如果遇到可选匹配则自动输入：Host case #!! ExpectCount 1 #!! ExpectPattern1 hostname*$ #!! ExpectSendText1 ssh xxx\r #!! ExpectCaseSendText1 yes/no y\r #!! ExpectCaseSendText1 y/n yes\rC. TOTP 双因子认证Host totp #!! ExpectCount 2 #!! ExpectPattern1 token: #!! ExpectSendTotp1 xxxxx #!! ExpectPattern2 token: #!! ExpectSendEncTotp2 821fe830270201c36cd1a869876a24453014ac2f1d2d3b056f3601ce9cc9a87023D. 动态密码命令Host otp #!! ExpectCount 2 #!! ExpectPattern1 token: #!! ExpectSendOtp1 oathtool --totp -b xxxxx #!! ExpectPattern2 token: #!! ExpectSendEncOtp2 77b4ce85d087b39909e563efb165659b22b9ea700a537f1258bdf56ce6fdd6ea70bc7591ea5c01918537a65433133bc0bd5ed3e46. UDP 模式与 tsshd 配合使用，适用于高延迟的弱网连接。A. 安装 tsshd# 使用 tssh 自动安装 tssh --install-tsshd server_name # 或手动安装 go install github.com/trzsz/tsshd/cmd/tsshd@latestB. 配置启用Host xxx #!! UdpMode Yes #!! TsshdPath ~/go/bin/tsshdC. 使用方式# 命令行指定 tssh --udp server_name tssh --kcp server_name # 使用 KCP 协议D. 工作原理sequenceDiagram participant C as tssh 客户端 participant S as SSH 服务器 participant T as tsshd 进程 C->>S: 正常 SSH 登录 S->>T: 启动 tsshd 进程 T->>T: 随机监听 UDP 端口(61001-61999) T->>C: 返回端口和密钥 C->>S: 关闭 SSH 连接 C->>T: 建立 UDP 连接 Note over C,T: 后续通讯走 UDP 通道E. UDP 配置项配置项说明默认值UdpModeUDP 模式：No/Yes/QUIC/KCPNoTsshdPorttsshd 监听端口范围61001-61999TsshdPathtsshd 程序路径$PATH 中查找UdpAliveTimeout断开连接超时退出时间86400 秒UdpHeartbeatTimeout断开连接重连尝试时间3 秒UdpReconnectTimeout显示失去连接通知时间15 秒ShowNotificationOnTop是否在顶部显示通知yesShowFullNotifications是否显示完整通知yesUdpProxyModeUDP 代理模式：UDP/TCPUDP五、高级功能1. 主题风格tssh 支持多种主题风格，可在配置文件中自定义。A. 配置位置$XDG_CONFIG_HOME/tssh/tssh.conf 或 ~/.tssh.confB. 主题类型tiny 小巧风：PromptThemeLayout = tinysimple 简约风：PromptThemeLayout = simpletable 表格风：PromptThemeLayout = tableC. 自定义颜色PromptThemeColors = { "active_host": "magenta|bold", "inactive_host": "magenta" }2. 其他集成功能A. Wayland 集成Host xxx #!! EnableWaypipe Yes #!! WaypipeClientPath /usr/bin/waypipe #!! WaypipeServerPath /usr/bin/waypipe #!! WaypipeClientOption -c lz4 #!! WaypipeServerOption -c lz4B. 剪贴板集成Host * #!! EnableOSC52 YesLinux 系统需要安装 xclip 或 xsel：sudo apt install xclip # Ubuntu/Debian sudo yum install xclip # CentOS/RHELC. scp/sftp 支持# 使用 tssh 的功能 scp -S tssh file server:/path/ sftp -S tssh server # 或配置 alias alias tscp='scp -S tssh' alias tsftp='sftp -S tssh'3. SSH 控制台类似 OpenSSH escape sequences 的功能。A. 支持的操作发送转义字符 ~暂停当前 SSH 进程（^Z，相当于 Ctrl+Z）退出当前 SSH 会话（.，相当于 Exit/Kill）B. 配置Host xxx EscapeChar ~ #!! ConsoleEscapeTime 1 # 设置为 0 可禁用控制台六、个性配置在 ~/.tssh.conf 中可配置以下内容：# SSH 配置路径 ConfigPath = ~/.ssh/config # 扩展配置路径 ExConfigPath = ~/.ssh/password # trz 上传时对话框打开的路径 DefaultUploadPath = ~/Downloads # tsz 下载时自动保存的路径 DefaultDownloadPath = ~/Downloads # 全局拖拽文件上传命令 DragFileUploadCommand = trz -y # trzsz 进度条颜色 ProgressColorPair = B14FFF 00FFA3 # 登录界面主题风格 PromptThemeLayout = simple PromptThemeColors = {"active_host": "magenta|bold", "inactive_host": "magenta"} # 每页显示记录数 PromptPageSize = 10 # 默认进入搜索模式 PromptDefaultMode = search # 详情中显示的配置列表 PromptDetailItems = Alias Host Port User GroupLabels IdentityFile ProxyCommand ProxyJump RemoteCommand UdpMode TsshdPath # 自定义光标和选中图标 PromptCursorIcon = [*] PromptSelectedIcon = [x] # 登录后自动设置终端标题 SetTerminalTitle = Yes七、故障排除1. Warp 终端问题旧版本 Warp 终端需要特殊配置：A. 创建软链接sudo ln -sv $(which tssh) /usr/local/bin/sshB. 创建 shell 函数在 ~/.bash_profile 或 ~/.zshrc 中添加：tssh() { if [ $# -eq 0 ]; then ssh FAKE_DEST_IN_WARP else ssh "$@" fi }C. 拖拽问题在 Warp 终端拖拽文件后可能需要多按一次回车键才会上传。2. Windows 7 兼容性从 v0.1.21 起，默认 Windows 版本不再支持 Windows 7。需要从 GitHub Releases 下载带有 win7 关键字的版本。3. 配置兼容性如果标准 ssh 报错 Bad configuration option，可以在 tssh 特有配置项前加上 #!! 前缀：Host server1 #!! EnableDragFile Yes # tssh 特有配置 Port 22 # 标准 ssh 配置八、使用场景1. 运维管理管理大量服务器，通过搜索快速定位批量登录多台服务器执行相同操作分组管理不同环境的服务器2. 弱网环境使用 UDP 模式应对高延迟网络网络切换、休眠唤醒后自动重连与 tsshd 配合实现稳定的远程连接3. 文件传输拖拽上传文件，无需额外开启终端支持 trzsz 和 zmodem 两种传输方式进度条显示，传输状态清晰可见4. 自动化运维自动输入密码和验证码支持 TOTP 双因子认证批量执行预设命令九、最佳实践1. 配置管理使用 #!! 前缀保持与标准 ssh 的兼容性合理使用通配符配置简化管理使用加密密码保护敏感信息2. 安全建议优先使用公钥认证而非密码设置配置文件权限：chmod 600 ~/.ssh/password定期更新 tssh 到最新版本3. 效率提升使用分组标签快速定位服务器配置 DefaultDownloadPath 避免重复选择使用批量登录功能提高运维效率十、参考资料Trzsz-ssh ( tssh ) 中文文档trzsz-ssh GitHub 仓库tsshd GitHub 仓库trzsz Go 版文档
Pix2Text：截图自动转 Markdown 和 LaTeX 开源工具技术分析
Pix2Text：截图自动转 Markdown 和 LaTeX 开源工具技术分析一、新闻概述1. 标题Pix2Text：将任意截图转换为干净的 Markdown 和 LaTeX 代码2. 发布时间2026 年 1 月 24 日3. 来源Open-source Projects二、核心内容1. 事件摘要A. 主要内容Pix2Text 是一个开源 Python 工具，能够自动将截图、文档照片或图表转换为结构化的 Markdown 和 LaTeX 代码，特别擅长处理包含数学公式的图像。B. 核心亮点智能布局分析，自动识别图像中的不同区域多模型协同处理，文本和数学公式分别使用专用识别模型支持 80 多种语言的文本识别提供在线 Web 演示和 Python 工具包C. 关键信息开源协议：开源项目开发语言：PythonGitHub 仓库：breezedeus/Pix2Text在线演示：p2t.behye.com2. 背景介绍A. 前置版本/历史这是 Mathpix 的免费开源替代方案。Mathpix 是一款商业截图公式识别工具，Pix2Text 提供了类似功能但完全免费。B. 相关上下文随着 OCR 技术的发展，从图像中提取结构化内容成为可能。Pix2Text 的创新之处在于结合布局分析和多模型识别，特别针对技术文档中常见的混合内容（文本 + 公式）进行了优化。三、详细报道1. 主要内容A. 功能特性核心功能布局分析：自动识别图像中的不同区域类型（文本段落、数学公式、代码片段等）多模型处理：针对不同类型的内容使用最优识别模型结构化输出：将识别结果整合为格式良好的 Markdown 文档LaTeX 公式：数学表达式自动转换为 LaTeX 格式支持的内容类型普通文本（80+ 语言）数学公式（LaTeX 输出）代码片段表格复杂布局B. 技术架构graph LR A[输入图像] --> B[布局分析] B --> C{区域分类} C -->|文本| D[OCR 引擎] C -->|公式| E[数学公式识别模型] C -->|代码| F[代码识别模型] D --> G[Markdown 生成器] E --> G F --> G G --> H[结构化输出]工作流程详解图像输入：支持多种格式的图像文件布局分析：智能识别图像结构，划分不同内容区域区域分类：判断每个区域的内容类型模型调用：根据区域类型选择合适的识别模型结果整合：将各区域识别结果拼接为完整文档C. 安装与使用在线演示（推荐入门方式）访问 https://p2t.behye.com，直接拖放图像即可获取转换结果。Python 安装pip install pix2text命令行使用p2t predict /path/to/your/image.jpgPython 代码调用from pix2text import Pix2Text img_fp = '/path/to/your/image.jpg' p2t = Pix2Text() text = p2t(img_fp) print(text)D. 技术细节核心技术优势布局分析：不是简单的 OCR，而是理解图像结构自动区分文本、公式、代码等不同内容类型处理复杂排版和混合内容多模型协同：避免单一模型处理所有类型的局限性针对特定任务使用专用模型，提高准确率特别擅长处理复杂矩阵和行内公式性能特点使用小型模型（SMALL models），降低资源需求适合本地部署，保护隐私支持批量处理2. 数据与事实A. 支持语言80+ 种语言的文本识别B. GitHub 项目仓库：breezedeus/Pix2Text许可证：开源社区活跃度：持续更新中四、影响分析1. 行业影响A. 技术趋势展示了开源 OCR 工具在垂直领域的创新能力多模型协同成为处理复杂内容的有效方案本地化 AI 工具需求增长B. 竞争格局Mathpix：商业工具，功能强大但需付费Pix2Text：免费开源替代，降低使用门槛填补了开源领域的技术文档处理空白2. 用户影响A. 目标用户群体学生和研究人员：快速数字化课堂笔记和论文中的公式开发者：将 UI 截图或错误信息转换为可编辑文本技术写作者：将旧文档截图转换为 MarkdownB. 实际应用场景学习与研究课堂笔记数字化论文公式提取教材内容整理文档处理将旧文档截图转换为可编辑 Markdown版本控制的文档迁移技术文档现代化可访问性为图像内容创建文本表示帮助视障用户获取图像中的信息提升内容的可搜索性开发工作流从截图中提取代码片段错误消息文本化处理界面文档自动化生成3. 技术趋势A. 发展方向本地化 AI 工具需求增长（隐私保护）专业化 OCR 模型持续优化多模态内容理解能力提升B. 生态影响降低技术文档处理门槛促进开源工具在教育领域的应用推动类似工具的开发五、各方反应1. 业内评价A. 优势完全免费开源支持本地部署，保护数据隐私多语言支持数学公式识别能力强B. 局限作为新兴项目，生态和文档仍在完善与商业工具相比，可能存在识别精度差异2. 用户反馈A. 正面评价解决了手动转录的痛点特别适合处理包含公式的技术文档安装简单，使用方便B. 改进建议希望支持更多图像格式提高复杂布局的识别准确率增加批量处理功能六、相关链接1. 项目链接GitHub 仓库：https://github.com/breezedeus/Pix2Text在线演示：https://p2t.behye.com2. 技术文档PyPI 安装：pip install pix2text项目 README 包含详细配置说明参考资料Pix2Text - Open-source ProjectsPix2Text GitHub RepositoryPix2Text Online Demo
VitePress 新一代静态站点生成器技术深度分析
VitePress 新一代静态站点生成器技术深度分析一、概述1. 技术背景A. 项目起源VitePress 由 Vue.js 作者尤雨溪创建，是 VuePress 的下一代继任者。作为基于 Vite 构建的静态站点生成器，VitePress 专注于为技术文档、博客等内容型网站提供极快的开发体验和构建速度。B. 核心定位VitePress 定位为轻量级、高性能的文档站点生成工具，通过精简设计理念，将扩展性委托给 Vite 和 Vue 生态系统，核心仅保留文档生成必需的功能。C. 技术意义VitePress 代表了静态站点生成器的发展方向：利用现代构建工具的按需编译能力，实现秒级开发体验，同时保持生产环境的静态输出优势。2. 技术栈A. 核心技术构建工具：Vite（替代 Webpack）前端框架：Vue 3内容格式：Markdown输出格式：静态 HTML + SPA 运行时B. 依赖生态完全兼容 Vite 插件生态支持 Vue 组件开发利用 Shiki 实现代码高亮二、核心架构与工作原理1. 系统架构VitePress 采用极简架构设计，核心层专注于内容处理，扩展层依赖 Vite 和 Vue 生态系统。graph TB subgraph 输入 MD[Markdown 源文件] end subgraph VitePress 构建流程 A[Markdown 解析器] B[Vue 组件转换] C[静态 HTML 生成] D[Vite 开发服务器] end subgraph 输出 HTML[静态 HTML 页面] SPA[单页应用运行时] end MD --> A A --> B B -->|构建时| C B -->|开发时| D C --> HTML HTML --> SPA D -->|热更新| B2. 工作流程A. 开发模式开发模式下，VitePress 利用 Vite 的按需编译特性，仅编译当前访问页面所需的代码，实现毫秒级热更新。B. 生产构建构建模式下，VitePress 执行完整构建流程，生成静态 HTML 文件，同时保留 SPA 运行时以实现页面切换的流畅体验。graph LR subgraph 开发模式 Dev[Markdown 文件] -->|按需编译| ViteDev[Vite Dev Server] ViteDev -->|HMR| Browser[浏览器实时预览] end subgraph 生产构建 Build[Markdown 文件] -->|完整构建| ViteBuild[Vite Build] ViteBuild -->|静态生成| Static[静态 HTML 文件] end subgraph 运行时 User[用户访问] --> HTML[预渲染 HTML] HTML -->|SPA 水合| Runtime[Vue Runtime] end3. 核心模块A. 内容加载器（Content Loader）负责从文件系统加载 Markdown 文件，支持文件路由映射，自动生成页面层级结构。B. Markdown 到 Vue 转换器将 Markdown 内容转换为 Vue 组件，支持在 Markdown 中直接使用 Vue 组件语法，实现文档的交互性和扩展性。C. 插件系统VitePress 没有独立的插件系统，而是通过 Vite 插件机制实现扩展，这意味着所有 Vite 插件都可以在 VitePress 中使用。三、与 VuePress 的对比分析1. 架构差异对比维度VuePressVitePress构建工具WebpackVite设计理念功能丰富、高度可定制轻量级、专注文档配置复杂度较复杂更简洁插件生态独立插件系统复用 Vite 插件2. 性能对比根据 2025 年实测数据，VitePress 在构建速度和开发体验方面具有显著优势。graph TB subgraph 传统 VuePress WP1[Webpack 打包] -->|完整编译| WP2[等待 30-50 秒] end subgraph VitePress VP1[Vite 按需编译] -->|仅编译当前页面| VP2[秒级启动] end VP1 -->|5-7x 性能提升| WP1关键性能指标：VuePress 构建时间：30-50 秒VitePress 构建时间：6-7 秒性能提升约 5-7 倍3. 功能特性对比A. VitePress 优势极速开发服务器启动：利用 Vite 的原生 ESM 支持即时热更新：仅重新编译修改的模块更简洁的配置：核心功能精简，扩展性通过 Vite 实现更现代化的开发体验：符合前端工具链最新发展趋势B. VuePress 优势更成熟的插件生态：独立插件系统，插件种类丰富更高的灵活性：支持复杂的定制需求更完善的文档：经过多年发展，文档和社区资源更丰富更广泛的采用：大量现有项目基于 VuePress 构建4. 选型建议选择 VitePress 的场景：需要快速搭建文档站点重视开发体验和构建速度项目需求相对简单，不需要复杂定制追求现代化的开发工具链新启动的文档项目选择 VuePress 的场景：需要高度定制化的功能依赖丰富的插件生态项目已经使用 VuePress需要更多灵活性和扩展性复杂的企业级文档站点四、核心功能与特性1. 文件路由系统VitePress 采用基于文件系统的路由，自动将 Markdown 文件映射为页面路由。默认源码目录为 docs，输出目录为 .vitepress/dist。2. Markdown 增强A. Vue 组件支持可以在 Markdown 中直接使用 Vue 组件语法，实现文档的交互性和扩展性。B. 代码块功能专为技术文档设计的代码块特性，包括行高亮、代码分组、导入代码片段等。C. 前置元数据支持 YAML 格式的 frontmatter，用于配置页面标题、描述、分类等元信息。3. 默认主题VitePress 提供开箱即用的默认主题，包含：响应式导航栏侧边栏自动生成搜索功能（基于 minisearch 的全文搜索）深色模式支持上次更新时间显示编辑链接4. 搜索功能内置本地搜索功能，使用 minisearch 实现浏览器端索引，支持模糊搜索和全文检索。五、部署方案与最佳实践1. 部署平台A. GitHub Pages配置步骤：在仓库设置中选择 GitHub Actions 作为构建源创建 .github/workflows/deploy.yml 工作流文件配置 base 路径为 /仓库名/推送代码自动触发部署B. Vercel配置参数：构建命令：npm run docs:build输出目录：docs/.vitepress/dist安装命令：npm installC. Netlify配置参数：构建命令：npm run docs:build发布目录：docs/.vitepress/dist支持持续部署D. 其他平台由于输出为纯静态文件，可部署到任何静态托管服务，如 Cloudflare Pages、AWS S3 + CloudFront 等。2. 最佳实践A. 内容组织使用清晰的目录结构合理划分文档层级使用 frontmatter 管理元数据B. 性能优化图片资源优化和压缩代码分割和懒加载启用构建缓存C. SEO 优化配置页面标题和描述生成 sitemap.xml配置 robots.txt六、生态与扩展1. 插件生态VitePress 通过 Vite 插件机制实现扩展，所有 Vite 插件都可以使用。社区已开发的功能插件包括：公告插件评论系统集成代码演示增强图片缩放和预览PWA 支持2. 主题生态虽然默认主题已满足大部分需求，但社区也提供了多个第三方主题：简洁风格主题博客专用主题组件库文档主题3. 与其他框架对比框架技术栈构建速度碳排放等级适用场景VitePressVue 3 + Vite极快AVue 项目、文档站点DocusaurusReact较慢B大型文档、React 项目MkDocsPython快APython 项目、API 文档Astro StarlightAstro极快A+追求性能和 SEOGitBook托管平台N/AF快速启动、非技术用户七、版本动态与发展趋势1. 当前版本稳定版：v1.6.4（2025 年 10 月发布）Alpha 版：v2.0.0-alpha.15（2025 年 11 月发布）2. V2.0 主要更新基于 Vite 6 构建从 shikiji 迁移到 shiki性能和开发体验进一步优化3. 发展趋势Vue 3 生态已完全成熟，VitePress 配套生态稳定性能和开发体验持续优化与 Vite 生态深度整合环保和性能成为重要考量因素八、总结VitePress 作为新一代静态站点生成器，通过利用 Vite 的按需编译能力，实现了传统工具无法比拟的开发体验和构建速度。其极简的设计理念、与 Vite 和 Vue 生态的无缝整合，使其成为 Vue 项目文档站点的首选方案。对于追求开发效率和构建速度的新项目，VitePress 是理想选择。对于需要复杂定制和丰富插件的企业级项目，VuePress 仍然具有优势。随着 Vue 3 生态的成熟和 Vite 2.0 的普及，VitePress 将在文档站点生成器领域占据更重要地位。参考资料VitePress 官方文档VitePress 是什么？与 VuePress 的区别VuePress 与 VitePress 深度对比VitePress 架构原理VitePress 核心模块解析部署 VitePress 站点VitePress vs Docusaurus vs MkDocsVitePress GitHub ReleasesVitePress CHANGELOG
Tangled 使用 Pandoc 构建静态文档网站技术分析一、概述1. 背景Tangled 团队最近重新组织了文档，并将其发布到 https://docs.tangled.org，仅使用 Pandoc 工具实现。对于小型项目，使用 Pandoc 自建静态网站完全足够。2. 核心诉求A. 代码库集成文档必须存在于 monorepo 中B. 无 JavaScript 依赖纯文本页面不需要 JavaScript 即可浏览C. 可搜索性自带的搜索引擎效果较差，倾向于使用 Ctrl+F 或真实搜索引擎D. 低复杂度构建、测试、部署应当简单E. 易于样式化能够灵活定制外观二、生态系统评估1. 评估对象作者对多个文档引擎进行了评估：A. Mintlify特点：商业文档平台问题：官网显示正在进行 AI 转型，存在方向不明确的风险B. Docusaurus特点：生成精美的文档网站问题：将页面作为完整 React SPA 提供的价值存疑C. MkDocs优点：禁用 JS 后工作良好问题：需要通过 mkdocs.yml 维护目录结构，较为繁琐D. MdBook问题：需要 SUMMARY.md 文件控制目录2. 评估结论MkDocs 和 MdBook 仍在考虑范围内，以备将来需要更多功能时使用。三、Pandoc 方案1. Pandoc 介绍Pandoc 是一个高度可定制的标记转换工具，提供了 chunkedhtml 输出格式，非常适合生成文档网站。A. 默认特性基于文档布局自动生成目录（TOC）每个章节转换为独立页面2. 定制过程A. 合并文档将所有独立的 Markdown 文件合并为一个大的 DOCS.md 文件B. 模板修改修改默认模板，使 TOC 出现在每个页面上，形成侧边栏样式C. 样式统一插入 Tailwind prose 类，确保 Markdown 内容在 tangled.org 和 docs.tangled.org 之间渲染一致3. 生成命令pandoc docs/DOCS.md \ -o out/ \ -t chunkedhtml \ --variable toc \ --toc-depth=2 \ --css=docs/stylesheet.css \ --chunk-template="%i.html" \ --highlight-style=docs/highlight.theme \ --template=docs/template.html★ Insight ─────────────────────────────────────Pandoc 的 chunkedhtml 格式自动将单一大文档拆分为多个 HTML 页面，同时保持导航结构完整通过模板定制实现侧边栏 TOC，避免了复杂 JavaScript 代码的依赖─────────────────────────────────────────────────四、避免使用 JavaScript1. 移动端侧边栏侧边栏式目录需要在移动设备上折叠。大多数评估的文档引擎需要 JavaScript 来折叠和展开侧边栏，只有 MkDocs 使用 checkbox 的 :checked 伪类技巧来避免 JavaScript。2. 实现方案对比A. details/summary 方案优点：可实现折叠功能缺点：点击外部无法折叠，是明显的 hack 方案说明：Ctrl+F 或页面内查找仍然有效B. Popover API 方案（最终采用）优点：非常适合侧边栏组件实现：使用 HTML 原生 popover API触发按钮： Table of Contents 固定定位容器： Quick Start ... ... ... C. 方案特点TOC 可独立滚动点击侧边栏外部任何位置即可折叠页面内查找无法显示 popover 中的内容仅在小视口上可折叠，大视口上始终显示★ Insight ─────────────────────────────────────Popover API 是现代 HTML 原生功能，无需 JavaScript 即可实现复杂的交互效果通过 CSS 媒体查询实现响应式设计，小屏幕自动切换为折叠式侧边栏─────────────────────────────────────────────────五、搜索功能1. 搜索策略网站目前没有原生搜索功能。参考 htmx.org 的搜索栏，搜索栏直接重定向到 Google： ... 2. 单页版本考虑到 Ctrl+F 通常比 Docusaurus 提供的搜索引擎更好用，相同文档也导出为单页格式：pandoc docs/DOCS.md \ -o out/ \ --variable toc \ --toc-depth=2 \ --css=docs/stylesheet.css \ --highlight-style=docs/highlight.theme \ --template=docs/template.htmlA. 单页版本优势所有内容在一个页面上浏览器搜索功能可轻松遍历整个网站B. 未来考虑如果文档规模超出此方案支持范围，会考虑其他选项。六、构建与部署1. 技术栈Nix：包管理和构建工具Colmena：NixOS 部署工具2. Nix Derivation使用 runCommandLocal 辅助函数编写文档站点的 Nix derivation：runCommandLocal "docs" {} '' ... ${pandoc}/bin/pandoc ${src}/docs/DOCS.md ... ... ''3. Nginx 配置NixOS 机器配置为通过 nginx 提供站点：services.nginx = { enable = true; virtualHosts = { "docs.tangled.org" = { root = "${tangled-pkgs.docs}"; locations."/" = { tryFiles = "$uri $uri/ =404"; index = "index.html"; }; }; }; };4. 部署流程使用 Colmena 部署：nix run nixpkgs#colmena -- apply5. 更新流程更新站点时，首先运行：nix flake update tangled此命令会更新 tangled flake 输入，从而更新 tangled-pkgs.docs，然后通过 Colmena 应用更改。七、方案架构graph TB subgraph 源文件 A1[Markdown 文件] A2[样式表 CSS] A3[模板 HTML] A4[高亮主题] end subgraph Pandoc 构建 B1[合并文档] B2[chunkedhtml 输出] B3[TOC 生成] end subgraph 输出目录 C1[index.html] C2[页面 1.html] C3[页面 2.html] C4[单页版本.html] end subgraph NixOS 部署 D1[Nix Derivation] D2[Nginx 服务器] D3[Colmena 部署] end A1 --> B1 A2 --> B2 A3 --> B2 A4 --> B2 B1 --> B2 B2 --> B3 B2 --> C1 B2 --> C2 B2 --> C3 B2 --> C4 C1 --> D1 C2 --> D1 C3 --> D1 C4 --> D1 D1 --> D2 D2 --> D3八、工作流程图graph LR A[编写 Markdown] --> B[合并到 DOCS.md] B --> C[Pandoc 构建] C --> D[chunkedhtml 输出] C --> E[单页版本] D --> F[Nix 打包] E --> F F --> G[Colmena 部署] G --> H[Nginx 托管] H --> I[用户访问]★ Insight ─────────────────────────────────────Nix + Colmena 组合实现了声明式部署，确保构建环境可重现Pandoc 的多种输出格式能力允许同时生成分页和单页版本，满足不同使用场景─────────────────────────────────────────────────九、技术对比1. 方案对比表特性PandocDocusaurusMkDocsMdBook无 JS 依赖是否是是构建复杂度低高中中样式定制灵活有限中等中等目录维护自动自动mkdocs.ymlSUMMARY.md输出格式多种HTMLHTMLHTML学习曲线低高中中2. 核心差异A. JavaScript 依赖Pandoc/MkDocs/MdBook：支持无 JS 浏览Docusaurus：需要 React 运行时B. 目录结构Pandoc：基于 Markdown 标题自动生成其他：需要配置文件维护十、总结与展望1. 方案优势A. 简单性构建命令简洁部署流程清晰无需复杂依赖B. 灵活性模板可定制多种输出格式样式完全可控C. 性能静态 HTML无 JavaScript 开销浏览器缓存友好2. 当前局限A. 渲染差异Pandoc 的 Markdown 渲染与 Goldmark（Tangled 主站使用）仍存在一些差异B. 功能限制暂无原生搜索依赖外部搜索引擎3. 未来计划如果文档规模持续增长，可能会考虑：开发自己的 SSG（代号 TigerStyle）重新评估 MkDocs/MdBook参考资料we rolled our own documentation site - Tangled Blogdocs.tangled.orgPandoc - Universal markup converter
程序员英语学习指南技术分析一、概述1. 项目简介A. 是什么A Programmer's Guide to English 是一个专为程序员编写的英语学习指南，由开发者 yujiangshui 创建。该项目在 GitHub 上获得了 16.2k stars 和 1.5k forks，是程序员英语学习领域的热门开源项目。B. 为什么值得关注针对性极强：专门针对程序员群体的英语学习痛点实战验证：作者从英语四级 442 分提升到 PTE 63 分（雅思 6.5 水平）方法论导向：不仅提供方法，更注重教授语言学习的本质原理持续更新：项目仍在维护中，作者不断优化内容C. 学完能获得什么理解语言学习的底层原理和机制掌握适合程序员的学习方法论获得从零基础到中级英语水平的完整路径学会自主设计适合自己的训练方法2. 项目背景A. 作者背景作者大学四级考试得分 442 分，属于典型的英语基础薄弱群体。由于留学需求，需要在短时间内将英语水平提升到雅思 6.5 分。B. 学习成果四个月断续学习两个月全职突击备考PTE 考试 63 分（对应雅思 6.5 中上）满足大部分学校留学要求和技术移民要求C. 项目特点本指南深挖语言学习的本质用程序员易于理解的方式讲解提供基于本质推演的训练方法强调根据本质自主设计训练方法二、内容架构1. 核心模块项目包含以下主要模块：mindmap root((程序员英语指南)) 本质分析 语言学习原理 输入输出机制 记忆规律 程序构建 听力训练 口语训练 阅读训练 写作训练 训练方法 单词记忆 语法掌握 发音纠正 实战练习 常见问题 学习误区 时间管理 资料选择 扩展资源 工具推荐 参考书籍 在线资源2. 模块说明A. 语言学习的本质浅析（essence）深入剖析语言学习的底层机制，包括：语言输入与输出的原理大脑记忆的规律语言习得的关键因素用中文类比帮助理解B. 如何构建一个识别英语的程序（make-a-program）将英语学习比作编程过程：听力训练 = 数据输入口语训练 = 数据输出阅读训练 = 代码解析写作训练 = 代码生成语法掌握 = 语法规则单词记忆 = 变量和常量C. 我的训练方法（training）作者的实际训练方法：单词记忆技巧语法掌握路径听力训练方案口语突破方法阅读提升策略写作实战练习D. 常见问题 QA（qa）学习常见误区时间管理建议学习资料筛选阶段性目标设定E. 资料、工具推荐和扩展阅读（resources）推荐学习工具参考书籍清单在线学习资源扩展阅读材料三、核心观点1. 语言学习的本质A. 没有捷径语言学习周期以月或年计算越早明白没有技巧，走越少弯路警惕《21 天掌握英语》之类的速成资料B. 本质驱动深挖语言学习的本质原理根据本质推演训练方法自主设计适合自己的方法甄别网上学习方法的有效性C. 水平匹配注意查看符合自己水平的经验英语渣需要针对性方法高水平者的建议不一定适用2. 学习路径graph TD A[英语基础薄弱] --> B[理解语言学习本质] B --> C[构建学习程序] C --> D[输入训练 听力+阅读] C --> E[输出训练 口语+写作] D --> F[实战练习] E --> F F --> G[持续迭代优化] G --> H[达到目标水平]四、项目价值分析1. 对程序员的价值A. 思维方式契合将语言学习类比为编程过程用系统思维理解语言输入输出用模块化思维分解学习任务用迭代思维持续优化方法B. 学习方法科学基于认知科学原理符合大脑记忆规律注重输入输出平衡强调实战应用C. 实战验证有效作者亲身实践验证从四级 442 到雅思 6.5短时间内大幅提升方法可复制2. 与其他教程的区别维度普通教程程序员英语指南目标人群泛化程序员专属方法论经验总结本质原理思维方式语言思维编程思维学习路径标准化自主设计实战验证缺乏作者亲身验证五、使用建议1. 学习策略A. 时间投入建议周六上午整块时间阅读下午制定学习策略周日开始实践B. 学习方式一次性读完建立整体认知理解语言学习本质根据本质设计自己的方法持续实践和迭代C. 注意事项语言学习没有速成周期以月或年计算需要坚持和耐心避免频繁更换方法2. 适用人群A. 最适合英语基础薄弱的程序员有出国留学或移民需求希望系统提升英语能力愿意花时间真正掌握英语B. 不适合寻找速成方法的人期望 21 天掌握英语不愿意投入时间精力只想要技巧不想理解本质六、项目影响1. 社区反响GitHub：16.2k stars，1.5k forks947 用户关注更新4 位贡献者参与维护持续更新完善中2. 技术影响为程序员英语学习提供方法论推广本质驱动的学习理念倡导科学的学习路径激励更多英语薄弱者3. 生态建设在线阅读版本GitBook 格式支持持续内容更新社区贡献机制七、技术亮点1. 文档组织GitBook 格式清晰的模块划分逻辑递进的内容结构便于在线阅读和本地查阅2. 内容呈现Markdown 格式丰富的代码示例（如有）中英文对照讲解实战经验分享3. 持续维护最后更新：2019-2020 年版本迭代：v1.2Issue 社区讨论欢迎建议和反馈八、关键启示1. 对语言学习的启示本质比技巧更重要方法需要因人而异实践验证是关键持续迭代才能进步2. 对技能学习的启示理解底层原理建立系统思维设计适合的方法坚持长期实践3. 对知识分享的启示实战经验最有价值开源分享利他利己持续迭代完善建立社区共识参考资料GitHub 仓库 - A Programmer's Guide to English在线阅读版本
Linux 打开编辑 Apple iWork 文件实用指南一、概述1. 背景Apple iWork 是苹果公司的办公应用套件，类似于 Microsoft Office 或 Google Docs，包含文档、电子表格和演示文稿三个主要应用。iWork 文件使用专有格式（.pages、.numbers 和 .keynote），主要为 Apple 生态系统设计，因此在 Linux 系统上打开这些文件具有一定挑战性。2. 核心问题A. 格式兼容性iWork 文件采用专有格式，Linux 上的默认办公套件无法直接识别。B. 生态系统限制iWork 应用仅在 Apple 设备上原生运行，Linux 用户无法直接使用。3. 解决方案概述本文介绍四种在 Linux 上处理 iWork 文件的方法，涵盖在线访问、格式转换、本地软件安装和文件预览。graph TD A[iWork 文件] --> B{选择处理方式} B -->|有 Apple ID| C[iCloud 在线] B -->|非机密文件| D[在线转换工具] B -->|需要本地编辑| E[ONLYOFFICE] B -->|仅需预览| F[ZIP 解压] C --> G[浏览器编辑] D --> H[下载通用格式] E --> I[本地编辑保存] F --> J[查看预览图]二、方法一：iCloud 在线访问1. 适用场景已有 Apple ID需要在线协作对网络依赖可接受2. 操作步骤A. 访问 iCloud前往 https://www.icloud.com/ 并使用 Apple ID 登录。B. 选择应用登录后可使用以下三个在线应用：Pages：处理文档Numbers：处理电子表格Keynote：处理演示文稿C. 打开文件直接在浏览器中上传或打开现有的 iWork 文件，即可进行查看和编辑。3. 优缺点分析优点缺点完全兼容 iWork 格式需要 Apple ID无需安装软件依赖网络连接支持实时协作数据存储在云端三、方法二：在线转换工具1. 适用场景无 Apple ID非机密文件一次性处理需求2. 主流工具A. CloudConvert支持多种文件格式转换，界面友好。B. Zamzar老牌在线转换服务，支持批量转换。C. FreeConvert提供免费和付费选项，转换速度较快。3. 转换目标格式根据文件类型选择合适的目标格式：原格式推荐目标格式备选格式.pagesODTDOCX.numbersODSXLSX.keynoteODPPPTX4. 操作流程访问在线转换网站上传 iWork 文件选择目标格式下载转换后的文件使用 Linux 办公套件打开5. 安全注意事项在线转换工具会接收用户文件，因此：仅适用于非敏感文件避免包含个人隐私或商业机密的内容转换完成后及时删除本地副本四、方法三：ONLYOFFICE 套件1. 适用场景需要本地编辑频繁处理 iWork 文件对数据隐私有要求2. ONLYOFFICE 产品线A. ONLYOFFICE Docs在线协作办公套件，可集成到：NextcloudWordPressOdooMoodleB. ONLYOFFICE DocSpace基于房间的文档协作平台，支持：文档存储和管理灵活的访问权限用户角色管理C. ONLYOFFICE Desktop Editors跨平台桌面办公套件，特点：支持 Linux、Windows、macOS兼容主流发行版本地安装运行3. 格式支持ONLYOFFICE 编辑器支持：Pages 文档Numbers 电子表格Keynote 演示文稿并提供与 Excel、Word、PowerPoint 的最高兼容性。4. 编辑行为打开 iWork 文件时：可直接查看原始内容编辑时自动转换为 OOXML 格式文档保存为 DOCX演示文稿保存为 PPTX电子表格保存为 XLSXsequenceDiagram participant U as 用户 participant O as ONLYOFFICE participant F as iWork 文件 U->>O: 打开 iWork 文件 O->>F: 读取原始内容 F-->>O: 返回内容 O-->>U: 显示原始格式 U->>O: 编辑文件 O->>O: 转换为 OOXML O-->>U: 保存为 DOCX/XLSX/PPTX五、方法四：ZIP 解压预览1. 原理说明iWork 文件本质上是 ZIP 压缩包，包含：PDF 预览图原始文档数据媒体资源2. 操作步骤A. 重命名文件将文件扩展名改为 .zip：mv document.pages document.zip mv presentation.keynote presentation.zip mv spreadsheet.numbers spreadsheet.zipB. 解压文件unzip document.zip -d document_extractedC. 查找预览图解压后的目录中包含 PDF 或图片预览，可直接查看。3. 优缺点分析优点缺点无需额外工具无法编辑内容操作简单快速可能丢失格式信息完全离线仅适合预览需求六、方案对比与选择1. 功能对比方案需要安装需要网络可编辑隐私安全iCloud否是是中在线转换否是否（转换后可）低ONLYOFFICE是否是高ZIP 解压否否否高2. 选择建议graph TD A[需要处理 iWork 文件] --> B{是否需要编辑} B -->|否| C[ZIP 解压预览] B -->|是| D{是否在意隐私} D -->|是| E{是否频繁使用} D -->|否| F{是否有 Apple ID} E -->|是| G[ONLYOFFICE 本地安装] E -->|否| H[iCloud 或在线转换] F -->|有| I[iCloud 在线] F -->|无| J[在线转换工具]A. 日常办公推荐ONLYOFFICE Desktop Editors 是最佳选择，提供完整的本地编辑能力。B. 偶尔使用推荐iCloud 在线访问或在线转换工具，按需选择。C. 仅需查看ZIP 解压方法最简单快捷。七、常见问题1. 格式丢失问题A. 现象转换后格式与原文档不完全一致。B. 原因iWork 专有格式特性在转换过程中无法完全保留。C. 解决方案使用 ONLYOFFICE 打开原始文件或通过 iCloud 查看原始格式2. 兼容性问题A. 现象某些高级功能无法正常显示。B. 原因Linux 办公软件对 iWork 专有特性的支持有限。C. 解决方案尽量使用标准格式功能复杂文档建议通过 iCloud 处理3. 字体问题A. 现象文档字体显示不正确。B. 原因系统缺少 Apple 专用字体。C. 解决方案安装开源替代字体手动指定相似字体八、最佳实践1. 文件交换建议A. 发送方导出为通用格式（PDF、DOCX）提前说明使用的特殊格式B. 接收方确认所需处理方式选择合适的工具打开2. 工作流程优化A. 批量处理使用在线转换工具的批量功能提高效率。B. 版本控制保留原始 iWork 文件，编辑副本以避免数据丢失。C. 备份策略重要文件转换后进行备份，确保数据安全。九、总结处理 Apple iWork 文件在 Linux 上虽然存在一定挑战，但通过合适的工具和方法可以顺利完成。选择何种方案取决于具体需求：需要编辑、仅查看、是否在意隐私以及使用频率等因素都应纳入考虑。★ Insight ─────────────────────────────────────iWork 文件本质是 ZIP 压缩包，这一特性为无需工具的快速预览提供了可能性ONLYOFFICE 提供了最完整的本地解决方案，自动转换机制简化了跨格式编辑在线工具虽然便捷，但隐私风险限制了其在敏感场景下的应用─────────────────────────────────────────────────参考资料How to Open and Edit Apple iWork Files on Linux
Claude Code Workflow Studio 技术分析一、概述1. 简介Claude Code Workflow Studio 是一个 VSCode 扩展，为 Claude Code 提供可视化工作流编辑器。通过拖拽式界面设计复杂的 AI Agent 工作流，支持条件分支和子 Agent 编排，无需编写代码即可导出为 .claude 格式直接执行。2. 核心特性可视化工作流编辑器：通过拖拽节点设计 AI 自动化流程AI 辅助优化：通过对话式 AI 迭代改进工作流一键导出：生成 .claude/agents/ 和 .claude/commands/ 文件Slack 工作流共享：支持团队协作与工作流分享丰富的节点类型：Prompt、Sub-Agent、Skill、MCP、条件分支、用户决策3. 技术架构graph TB subgraph 前端 A[VSCode 扩展] --> B[React Flow 画布] B --> C[节点面板] B --> D[属性配置] end subgraph 导出格式 E[.claude/agents/*.md] F[.claude/commands/*.md] end subgraph Claude Code G[Claude Code CLI] end A --> E A --> F E --> G F --> G4. 项目信息仓库地址：https://github.com/0xSojalSec/cc-wf-studio原始项目：breaking-brake/cc-wf-studio许可证：AGPL-3.0主要语言：TypeScript（96.4%）Stars：88Forks：14二、核心功能分析1. 可视化工作流编辑A. 节点类型基础节点：Prompt：定义可复用的提示模板，支持 {{variableName}} 语法Sub-Agent：配置自主 AI Agent，支持自定义系统提示、工具权限、模型选择控制流节点：IfElse：二元条件分支（True/False）Switch：多路条件分支（2-N 个分支）AskUserQuestion：用户决策节点（2-4 个选项）集成节点：Skill：集成 Claude Code SkillsMCP Tool：集成 MCP 协议工具B. 工作流设计流程graph LR A[选择节点] --> B[配置属性] B --> C[连接节点] C --> D[保存工作流] D --> E[导出 Claude 文件]2. AI 辅助工作流优化A. 工作原理通过对话式 AI 迭代改进工作流：点击 Edit with AI 按钮（ sparkle 图标）输入自然语言请求（最多 2000 字符）AI 处理请求并更新工作流支持多轮对话，保持上下文记忆B. 最佳实践具体：明确指定节点类型和连接关系逐步：每次请求小而专注的更改迭代：从简单开始，通过迭代增加复杂性C. 错误处理错误码含义解决方案COMMAND_NOT_FOUNDClaude Code CLI 未安装安装 Claude Code CLITIMEOUT请求超时简化请求或增加超时时间PARSE_ERRORAI 输出无法解析重新表述请求VALIDATION_ERROR超过 50 个节点限制减少节点或复杂度3. 一键导出功能A. 导出格式生成两类文件：.claude/agents/*.md：Sub-Agent 定义.claude/commands/*.md：SlashCommand 执行文件B. 国际化支持自动适配 VSCode 显示语言设置，支持：English（默认）日本語한국어简体中文（zh-CN）繁體中文（zh-TW/zh-HK）4. Skill 节点集成A. Skill 类型Personal Skills：~/.claude/skills/ 个人使用Project Skills：.claude/skills/ 团队共享B. 创建新 Skill通过可视化编辑器创建：Name：小写、支持连字符（如 pdf-analyzer）Description：技能功能描述Instructions：Markdown 格式的完整指令Allowed Tools：可选的工具限制Scope：Personal 或 Project5. MCP Tool 节点集成A. MCP 协议MCP（Model Context Protocol）是 Claude Code 的扩展系统，支持集成外部工具和服务。B. 功能特性MCP Server 发现：浏览已配置的 MCP 服务器工具选择：搜索和过滤 MCP 工具参数配置：基于工具架构动态生成表单实时验证：自动参数验证和错误提示C. 网络依赖本地 MCP 服务器（如文件系统工具）：无需外部网络远程 MCP 服务器（如云 API）：需要外部网络连接三、使用场景分析1. 数据分析管道graph TD A[Collect Data Sub-Agent] --> B{Ask User} B -->|Statistical| C[Statistical Analysis Sub-Agent] B -->|Visual| D[Data Visualization Sub-Agent] C --> E[Generate Report Sub-Agent] D --> E2. 代码审查工作流graph TD A[Code Scanner Sub-Agent] --> B{Priority Level?} B -->|Critical Only| C[Filter Results Sub-Agent] B -->|All Issues| C C --> D[Generate Fix Suggestions Sub-Agent]3. 文档处理流程graph TD A[Upload Document Prompt] --> B[PDF Extractor Skill] B --> C{Processing Type?} C -->|Summarize| D[Document Processor Skill] C -->|Translate| D C -->|Analyze| D D --> E[Format Results Sub-Agent]4. Web 自动化流程graph TD A[Input URL Prompt] --> B[Playwright Navigate MCP] B --> C{Action Type?} C -->|Screenshot| D[Playwright Action MCP] C -->|Extract Text| D C -->|Click Element| D D --> E[Process Results Sub-Agent]四、技术实现分析1. 技术栈前端框架：React可视化库：React Flow开发语言：TypeScript构建工具：Vite扩展平台：VSCode Extension API2. 项目结构cc-wf-studio/ ├── .claude/commands/ # Claude Code 命令定义 ├── .github/ # GitHub Actions 配置 ├── .specify/ # 规格定义 ├── .vscode/ # VSCode 配置 ├── contracts/ # 类型契约 ├── docs/ # 文档 ├── resources/ # 资源文件（GIF 演示） ├── scripts/ # 构建脚本 ├── specs/ # 规格说明 └── src/ # 源代码 ├── webview/ # WebView 前端 └── extension/ # VSCode 扩展3. 依赖关系graph TB A[cc-wf-studio] --> B[React Flow] A --> C[VSCode API] A --> D[Claude Code CLI] D --> E[MCP Servers] D --> F[Skills]五、安装与使用1. 安装方式A. 从源码安装# 克隆仓库 git clone https://github.com/breaking-brake/cc-wf-studio.git cd cc-wf-studio # 安装依赖 npm install cd src/webview && npm install && cd ../.. # 构建扩展 npm run build # 打包扩展 npx vsce package # 安装 .vsix 文件 # 在 VSCode 中: Extensions > ... > Install from VSIXB. 从 VSCode Marketplace（即将推出）打开 VSCode Extensions（Ctrl+Shift+X / Cmd+Shift+X）搜索 Claude Code Workflow Studio点击 Install2. 快速开始A. 打开编辑器按 Ctrl+Shift+P / Cmd+Shift+P输入 Claude Code Workflow Studio: Open Editor按 EnterB. 交互式教程首次启动时会自动开始交互式入门教程，支持多语言。C. 创建工作流添加节点：从左侧面板选择节点类型配置节点：点击节点在右侧面板编辑属性连接节点：从输出端口拖拽到输入端口D. 保存与导出输入工作流名称点击 Save 保存为 JSON 到 .vscode/workflows/点击 Export 生成 .claude 文件六、限制与注意事项1. 功能限制每个工作流最多 50 个节点AI 处理超时（默认 90 秒，可配置 30 秒-5 分钟）请求限制 2000 字符对话历史仅在活动会话期间保存2. 前置要求Claude Code CLI 必须已安装并可访问MCP 服务器需要先在 Claude Code 中配置3. 网络依赖扩展本身完全在本地运行MCP Tool 节点可能需要网络连接，取决于具体 MCP 服务器配置七、许可证说明1. 许可证类型GNU Affero General Public License v3.0（AGPL-3.0-or-later）2. 许可证含义可以使用、修改和分发本软件如果修改并部署本软件（包括作为网络服务），必须：在 AGPL-3.0 下公开修改后的源代码为与服务交互的用户提供源代码访问权限允许商业使用，但不允许专有修改八、相关资源1. 官方资源Claude Code：https://claude.com/claude-codeReact Flow：https://reactflow.dev/Dify（灵感来源）：https://dify.ai/2. 社区GitHub Stars：88Forks：14Watchers：2参考资料GitHub - 0xSojalSec/cc-wf-studiobreaking-brake/cc-wf-studio 原始仓库Claude Code 官方文档React Flow 官方网站