# Billy 的博客 > 记录编程开发、系统运维与工具实践。 This file lists Markdown versions of every page for AI/LLM consumption. ## Posts - [AI 绘图风格怎么定?从内容分类与标签到提示词](https://www.iowill.com/blog/2026/11/ai-image-style-prompts/index.md): 选择AI绘图风格,可以从内容分类和标签出发,再用图片用途确定主体、构图和材质。 分类说明主题范围,标签补充对象与关系;封面与正文插图分别确定任务,再将需求写成可见的画面。 这套思路适用于社交媒体配图、演示文稿、课程材料、技术文档和产品概念图… - [Chrome WebRTC 防泄露测试:用本地 STUN 验证网络策略](https://www.iowill.com/blog/2026/11/chrome-webrtc-stun-policy-validation/index.md): 验证 WebRTC 网络策略,需要让页面具备创建连接的能力,再同时观察 STUN 服务端收到的数据报与页面产生的 ICE 候选。 如果先把 RTCPeerConnection 禁用了,之后没有数据包,只能说明没有发生这次连接,不能据此证明底… - [Python 配置管理实践:原子写入、并发冲突与运行快照](https://www.iowill.com/blog/2026/11/python-config-atomic-conflicts-snapshots/index.md): 原子替换可以避免读者看到一份写到一半的配置,却不能阻止旧草稿完整地覆盖新配置。 解决丢失更新,需要把读取最新值、比较基线、合并修改与写入作为一个受协调的过程。配置保存成功后,运行中的任务是否采用新值,则是另一项需要明确设计的行为。 桌面程序… - [HTTP、HTTPS 与 SOCKS5 代理有什么区别?隧道与 DNS 解析详解](https://www.iowill.com/blog/2026/11/http-https-socks5-proxy-differences/index.md): HTTP、HTTPS 和 SOCKS5 代理的区别,首先在于客户端如何与代理通信,而不是目标网站地址里有没有 https:// 。 HTTP 代理可以承载到 HTTPS 网站的隧道;HTTPS 代理给客户端到代理的连接增加 TLS;SOCK… - [Playwright 如何按域名分流?代理规则与浏览器配置实践](https://www.iowill.com/blog/2026/11/playwright-domain-proxy-routing/index.md): Playwright 按域名分流,可以让浏览器连接一个固定代理入口,再由入口根据目标主机选择直连或不同上游。 简单场景也可以使用浏览器已有的代理和绕过配置;只有需要多组规则、明确的匹配顺序与失败策略时,才值得增加应用自己的路由层。 多个账号… - [AI Agent UI/UX 设计指南:视觉审美、交互体验与设计规范](https://www.iowill.com/blog/2026/11/ai-agent-ui-ux-design/index.md): AI Agent 可以生成界面代码,也可以参与布局、组件和交互方案的设计。要让这些产物适合实际使用,需要把用户任务、视觉方向、操作状态和项目规范一起交给它,并检查最终实现是否兑现了这些要求。 用 AI Agent 做 UI/UX… - [AI Agent 改完代码后,如何做回归测试?从缺陷复现到行为评估](https://www.iowill.com/blog/2026/11/regression-testing-ai-agents/index.md): AI Agent 改完代码后,回归测试用于确认: 这次修改满足新要求的同时,已有的关键行为仍然符合约定。 新增搜索功能能够找到结果,还需要检查原有筛选、默认参数、排序和数据处理是否保持正常。 IBM 对回归测试的介绍 强调了代码修改后检查已… - [CDN 会误拦 AI Search 吗?从 WAF 规则到抓取日志排查](https://www.iowill.com/blog/2026/10/cdn-ai-search-blocking/index.md): 会发生与站长期望不一致的拦截,但“AI 没有引用我的网站”不足以证明 CDN 误拦。 需要确认请求是否真的发出、是谁发出的、命中了哪条规则,以及返回的是正文还是验证页面。 CDN 负责分发内容,WAF 与机器人防护负责按规则处理请求。同一平… - [Git 什么时候应该创建新分支?从功能开发、Bug 修复到版本维护](https://www.iowill.com/blog/2026/10/when-to-create-git-branch/index.md): 新功能、Bug修复和文档修改是否需要新分支,取决于任务边界、验收要求和仓库工作流。 新分支更适合对应一个需要独立开发、审查和集成的任务,而不是对应一轮对话、一个文件或一次提交。 对个人项目和AI辅助开发,我推荐的默认做法是:独立功能或修复在… - [AI Code Review 与人工代码审查:区别、边界与协作流程](https://www.iowill.com/blog/2026/10/ai-code-review-vs-human-code-review/index.md): 提交一个改动后,AI很快写出了几条审查意见:这里可能空值异常,那里建议重构,还补了一段修改代码。看起来已经有人替我们检查过了,但接下来仍有几个问题:这些问题真的存在吗?修改会不会改变需求?没有评论的地方,是否就没有风险? Code Revi… - [快手 Web Cookie 与会话管理实践:跨页面登录状态异常排查](https://www.iowill.com/blog/2026/10/kuaishou-web-cookie-session-management/index.md): 最初,这看起来只是一个 Cookie 导入问题:浏览器正常打开,文本没有解析报错,页面却仍然显示未登录。更换为主站登录后的 Cookie,账号能够进入;但在多账号切换、直播访问和跨页面任务中,登录状态又出现了不一致。 Cookie 导入成功… - [DeepInfer 是什么?DeepSeek 如何优化大模型推理效率](https://www.iowill.com/blog/2026/10/deepinfer-deepseek-inference-efficiency/index.md): 向大模型发送一个问题,等待通常分成两段:先等它开始输出,再等它把回答生成完。遇到长文档、长回答或高峰期,这两段等待还可能以不同方式变长。 DeepInfer关注的正是这些计算背后的执行效率。 它是DeepSeek开源的推理框架:围绕模型执行… - [Python 为什么适合 AI Agent?从工具调用到工作流编排](https://www.iowill.com/blog/2026/10/why-python-for-ai/index.md): Python 在 AI Agent 中负责什么?本文从模型与程序的分工出发,解释工具调用、参数校验、异步 I/O、任务状态、工作流与 MCP,并用可运行的离线示例展示工具执行闭环,讨论选型、重试和执行边界。 - [GEO 信源生态与集中度:AI 搜索引用有多集中?](https://www.iowill.com/blog/2026/10/geo-source-ecosystem-concentration/index.md): AI 搜索究竟引用谁?做 GEO(生成式引擎优化)时,这个问题比“文章里放几个关键词”更接近实际:内容需要被发现,也需要在具体问题下成为回答可采用的材料。 本文选取 CN-GEO 多维数据分析报告第三章 的信源数据,重点看两件事:不同类型的… - [Linux 服务器空间不足排查:磁盘容量、inode 与文件占用](https://www.iowill.com/blog/2026/10/linux-server-disk-full-troubleshooting/index.md): Linux 线上服务器报 No space left on device 时,如何区分容量与 inode 耗尽,定位目录和大文件,解释 df 与 du 不一致、删除后空间不释放,排查日志、Docker 与数据库占用,并完成恢复验证、事后复盘… - [php2shell:PHP 两个 9.2 分 RCE 漏洞,站长如何排查与修复?](https://www.iowill.com/blog/2026/10/php2shell-php-rce-security-update/index.md): 根据PHP官方公告与安全通告,解释php2shell两个CVSS v4.0 9.2漏洞、受影响运行时与修复版本,说明CLI和Web PHP区别、发行版补丁回移、FPM及容器更新验收,以及临时缓解措施的限制。 - [eMudhra 中间 CA 弱密钥事件:Firefox 为什么紧急更新?](https://www.iowill.com/blog/2026/10/emudhra-intermediate-ca-weak-keys/index.md): 根据 Mozilla、Google、CERT-In 和 eMudhra 的公开资料,梳理2026年10月八个中间CA弱密钥事件,解释MFSA 2026-111、OneCRL紧急封禁、根证书失信与普通用户和站长的处置方法,并区分已确认事实、厂… - [复制文章时自动带上来源:给 Hexo 博客加一行版权声明](https://www.iowill.com/blog/2026/10/hexo-butterfly-copy-source-attribution/index.md): 给 Hexo Butterfly 博客开启复制来源标识,将默认声明改成来源、原文链接和转载提示的一行文字。结合本站实际改动,说明150字符阈值、正文选区判断、代码复制排除、canonical地址、浏览器剪贴板测试及发布后的缓存核验。 - [llms.txt 是什么?博客要不要加,它和 robots.txt 有什么区别?](https://www.iowill.com/blog/2026/10/llms-txt-for-hexo-blog/index.md): llms.txt 为网站提供面向 AI 工具的内容导览,但不等于爬虫权限、搜索收录或引用保证。结合提案、文档平台现有做法和 Hexo 博客结构,说明它与 robots.txt、sitemap.xml 的区别,怎样编写、部署、自动维护及验证实… - [快手与抖音 Cookie 获取和使用差异:导入成功,为什么还没登录?](https://www.iowill.com/blog/2026/10/kuaishou-douyin-cookie-login-differences/index.md): 将抖音账号管理适配到快手时,Cookie 已解析并注入,主站却仍显示立即登录。结合失败样本、主站登录反馈及两个项目的代码,说明如何核对 Cookie 来源、获取目标请求、验证当前账号,并区分凭据快照与浏览器会话复用。 - [帝国 CMS 已完赛的赛程还在首页?MySQL 与 PHP 时区排查记录](https://www.iowill.com/blog/2026/10/empire-cms-schedule-mysql-timezone/index.md): 帝国 CMS 首页仍展示早上已结束的比赛,既有三小时查询与两小时状态判断的冲突,也涉及 MySQL 和 PHP 对日期的时区解释差异。结合页面样本、排查记录与修正版模板,说明如何核对会话时区、统一筛选并验证静态首页。 - [3x-ui 面板入站与客户端配置详解](https://www.iowill.com/blog/2026/10/3x-ui-inbound-protocol-configuration/index.md): 从 3x-ui 面板的添加入站开始,逐项讲解全部可新建协议的字段、认证、传输与安全设置,覆盖 VLESS、VMess、Trojan、Shadowsocks、Hysteria2 和各类隧道,说明客户端对应、证书配置、保存验证及常见错误。 - [3x-ui 面板正常但节点不可用的排查方法](https://www.iowill.com/blog/2026/10/3x-ui-panel-works-node-unusable/index.md): 3x-ui 后台可以登录,节点却超时、握手失败,或显示连接但网页打不开。按 Xray 与入站状态、节点端口、REALITY 参数、DNS 和出站、客户端版本与订阅格式逐层检查,结合两端日志定位故障并复测修复结果。 - [3x-ui 安装与首次连接](https://www.iowill.com/blog/2026/10/3x-ui-installation-first-connection/index.md): 以 Debian 12 和官方脚本为例安装 3x-ui,区分面板端口与节点端口,创建 VLESS 与 REALITY 入站并导入客户端。通过监听检查、端口探测和真实代理请求,确认首次连接是否可用,并说明连接失败时的排查入口。 - [宝塔和 1Panel 有什么区别?建站与自托管该怎么选](https://www.iowill.com/blog/2026/10/baota-vs-1panel/index.md): 宝塔和 1Panel 都能管理网站、数据库和 Docker,区别不能只看有没有容器。结合 PHP 建站、自托管应用、备份恢复与迁移,比较两者的管理方式、免费与付费功能,以及已有网站是否值得换面板。 - [更新日志怎么写?从一次 Bug 修复开始维护 CHANGELOG](https://www.iowill.com/blog/2026/10/maintaining-a-changelog/index.md): 更新日志只写修复 Bug,用户很难判断是否需要升级。用文章列表工具的版本变化,说明 CHANGELOG 应记录什么、怎样维护 Unreleased、发布时如何整理,以及它与 Git 提交记录和 GitHub Releases 的关系。 - [反向代理和重定向有什么区别?网站迁移时怎样减少排名波动](https://www.iowill.com/blog/2026/10/reverse-proxy-vs-redirect/index.md): 反向代理与重定向都能把访问引向另一台服务器,但浏览器地址、请求过程和搜索引擎收到的信号并不相同。结合 Nginx 配置,说明 301、302、307、308 的区别,以及换域名时如何处理旧链接、规范网址和抓取验证。 - [用了代理,为什么还会暴露真实 IP?WebRTC 泄漏排查与防护](https://www.iowill.com/blog/2026/10/webrtc-ip-leak/index.md): 浏览器已经使用代理,为什么 WebRTC 检测仍可能出现本地公网 IP?本文从网页请求与 STUN 请求的不同路径入手,区分 DNS 泄漏、DoH 和 WebRTC 地址暴露,结合配置实例说明浏览器限制、TUN 接管及断网保护的作用与验证方… - [网页 class 变了,自动化脚本怎么定位元素?](https://www.iowill.com/blog/2026/10/dynamic-class-locators/index.md): 网页类名变化后,原本能用的自动化脚本可能找不到元素。本文用匿名评论区示例,介绍 Playwright 中的语义定位、data 属性与相对结构定位,并说明如何区分加载延迟、隐藏节点和选择器失效,以及验证定位结果的方法。 - [版本号怎么定?从 1.0.0 理解语义化版本](https://www.iowill.com/blog/2026/10/semantic-versioning/index.md): 软件修复 Bug、增加功能或调整接口后,版本号该怎么升?本文用一个文章列表组件的变化解释语义化版本,介绍主版本号、次版本号、修订号,以及预发布版本和 npm 依赖范围,帮助判断升级影响。 - [网页里的 class 为什么像乱码?用一个榜单理解生成类名](https://www.iowill.com/blog/2026/10/generated-class-names/index.md): 网页里的 class 是谁生成的,为什么变化后样式仍能对应?本文用虚构榜单解释类名映射与 CSS Modules,结合匿名评论区的两次加载观察和实际定位代码,区分生成类名、动态改名与加密,并说明固定选择器的维护风险。 - [Docker 部署 WebDAV:用 hacdias/webdav 搭建个人文件共享服务](https://www.iowill.com/blog/2026/10/docker-webdav-file-sharing/index.md): 使用 Docker Compose 部署 hacdias/webdav,从目录挂载、账号权限和本机读写验证开始,再配置服务自带的 HTTPS。附上传下载、复制改名命令,以及连接失败、无法写入和证书错误的排查方法。 - [从 Vibe Coding 到 Spec Coding:让 AI 写得快,也改得稳](https://www.iowill.com/blog/2026/09/from-vibe-coding-to-spec-coding/index.md): 从博客卡片、分页和发布同步的实际问题出发,理解 Vibe Coding 与规范驱动开发的区别,用轻量 Spec 把需求、实现和验收连接起来。 - [Debian多网卡Docker-MySQL回程路由排查](https://www.iowill.com/blog/2026/09/debian-docker-mysql-multi-nic-routing/index.md): Debian 多网卡环境下,Docker MySQL 只有 eth0 的公网 IP 能连接。通过抓包定位回程出口错误,并使用连接跟踪、MARK 和策略路由修复。 - [TigerVNC 锁屏问题解决方案](https://www.iowill.com/blog/2026/09/tigervnc-lock-screen-fix/index.md): 记录 TigerVNC 连接后黑屏等问题与会话锁定状态有关时的排查思路,涵盖 loginctl 状态检查、会话解锁、桌面自动锁屏设置及 VNC 服务启动状态与配置检查。 - [Ubuntu GNOME 桌面安装和配置 TigerVNC,包含服务设置、桌面环境适配和防火墙配置](https://www.iowill.com/blog/2026/09/ubuntu-gnome-tigervnc-setup/index.md): 记录 Ubuntu 上安装和配置 TigerVNC 的过程,涵盖 VNC 密码、GNOME 等桌面环境的启动文件、systemd 服务、客户端连接,以及黑屏、分辨率与 SSH 隧道相关设置。 - [linuxQQ安装后双击启动无响应,提示追踪与中断点陷阱 (核心已转储)](https://www.iowill.com/blog/2026/09/linuxqq-wont-start-core-dump/index.md): 记录 Linux QQ 双击无响应、终端提示核心已转储时的一类排查过程,重点说明以 root 启动触发 Electron 沙箱限制的报错,以及普通用户运行、启动器配置和日志检查。 - [GEO 是什么?它真的能让大模型‘愿意推荐你’吗?](https://www.iowill.com/blog/2026/08/what-is-geo/index.md): GEO 关注内容在生成式答案中的可见性。本文从 SEO 与 GEO 的差异、相关论文的评价指标、预训练知识与检索信息的关系出发,讨论内容结构、来源和时效性的作用,以及研究结果不能直接转化为效果保证的原因。 - [如何做好 GEO 优化](https://www.iowill.com/blog/2026/08/geo-optimization-practice/index.md): 做好 GEO 优化,需要把用户问题、可信内容、可检索页面与效果观察联系起来。本文整理 E-E-A-T 内容检查思路、GEO 研究方法、监测维度和三十天工作安排,区分平台自定义指标与通用原则,避免把引用率和见效时间当作保证。 - [云服务器Debian12根分区扩容记录](https://www.iowill.com/blog/2025/04/cloud-debian12-root-resize/index.md): 记录 Debian 12 云服务器将根目录迁移到新磁盘 LVM 逻辑卷并扩容的过程,涵盖物理卷、卷组、文件系统、fstab、chroot 和引导更新,以及迁移后的检查与历史报错处理。 - [20240411-Rust-07-引用与借用](https://www.iowill.com/blog/2024/09/rust-07-references-and-borrowing/index.md): 介绍 Rust 引用与借用如何在不转移所有权的情况下访问数据,结合函数示例说明共享引用、可变引用、借用限制及悬垂引用问题,整理使用引用时需要遵守的规则,并对照示例理解这些约束。 - [20240411-Rust-08-切片](https://www.iowill.com/blog/2024/09/rust-08-slices/index.md): 另一个没有所有权的数据类型是 slice。slice 允许你引用集合中一段连续的元素序列,而不用引用整个集合。 - [20240413-Rust-09-结构体](https://www.iowill.com/blog/2024/09/rust-09-structs/index.md): 整理 Rust 结构体的定义、实例化与字段访问,介绍字段初始化简写、结构体更新语法、元组结构体和类单元结构体,并结合示例讨论结构体数据的所有权,便于区分几种结构体写法。 - [20240414-C++-Concepts](https://www.iowill.com/blog/2024/09/cpp-concepts/index.md): 介绍 C++20 Concepts 如何为模板参数表达约束,通过概念定义、约束使用和代码示例梳理其基本写法,帮助理解模板要求、接口表达与代码可读性之间的关系,便于对照示例学习。 - [20240627-WebServer-0](https://www.iowill.com/blog/2024/09/webserver-0-introduction/index.md): 在设计一个WebServer时,选择线程池还是协程取决于你的具体需求、预期的并发量、以及你对编程模型的偏好。下面我将从几个方面分析线程池和协程的优缺点,以帮助你做出决策。 - [LeetCode-189.轮转数组](https://www.iowill.com/blog/2024/09/leetcode-189-rotate-array/index.md): 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 - [LeetCode-80.删除有序数组中的重复项II](https://www.iowill.com/blog/2024/09/leetcode-80-remove-duplicates-ii/index.md): 整理 LeetCode 第 80 题删除有序数组重复项的题目要求与解法:在原数组上保留每个值至多两次,返回处理后的长度,并结合代码理解读写位置与重复次数的控制。 - [20240409-Rust-03-数据类型](https://www.iowill.com/blog/2024/09/rust-03-data-types/index.md): Rust 的每个值都有确切的数据类型(data type),该类型告诉 Rust 数据是被指定成哪类数据,从而让 Rust 知道如何使用该数据。在本节中,我们将介绍两种数据类型:标量类型和复合类型。 - [20240410-Rust-00-前言](https://www.iowill.com/blog/2024/09/rust-00-introduction/index.md): Rust 学习系列的趣味前言,以游戏文案风格串起零开销抽象、RAII、drop、生命周期与内存安全等关键词,并用 Rustacean 与 Servo 等名字组织这段开场文字,作为后续语言学习笔记的引子。 - [20240410-Rust-04-语句与表达式与函数](https://www.iowill.com/blog/2024/09/rust-04-statements-expressions-functions/index.md): 梳理 Rust 函数的定义与命名、参数和返回值,结合代码区分语句与表达式,说明函数体末尾表达式和分号的关系,帮助初学者对照函数示例阅读,为理解后续所有权与控制流打下基础。 - [20240410-Rust-05-控制流](https://www.iowill.com/blog/2024/09/rust-05-control-flow/index.md): 根据条件是否为真来决定是否执行某些代码,或根据条件是否为真来重复运行一段代码,是大部分编程语言的基本组成部分。Rust 代码中最常见的用来控制执行流的结构是 if 表达式和循环。 - [20240411-Rust-06-所有权](https://www.iowill.com/blog/2024/09/rust-06-ownership/index.md): 梳理 Rust 所有权的基本规则,结合栈与堆、变量作用域和 String 示例,区分移动、克隆与复制,并说明函数传参、返回值和资源释放之间的关系,帮助理解数据何时被移动或释放。 - [20240320-配置GitHub-SSH默认使用443端口](https://www.iowill.com/blog/2024/09/github-ssh-port-443/index.md): 当 GitHub 的 SSH 22 端口连接受限时,可测试 ssh.github.com 的 443 端口,并在用户 SSH 配置中设置主机别名。本文介绍连接验证、认证成功提示、主机指纹核对和适用范围。 - [20240327-LeetCode-15.三数之和](https://www.iowill.com/blog/2024/09/leetcode-15-3sum/index.md): 整理 LeetCode 第 15 题三数之和的题目要求与解题代码:从整数数组中寻找元素和为零的三元组,关注下标不能重复、结果去重以及解法中的边界处理,附题目示例与对应的实现代码。 - [20240408-Rust-01-猜数字游戏](https://www.iowill.com/blog/2024/09/rust-01-guessing-game/index.md): Rust 入门第一个实战项目:猜数字游戏。使用 rand 生成随机数,通过循环与 match 处理用户输入并比较大小。 - [20240409-Rust-02-变量与可变性](https://www.iowill.com/blog/2024/09/rust-02-variables-and-mutability/index.md): 讲解 Rust 的变量与可变性:变量默认不可变、mut 关键字的用法,以及常量与变量遮蔽(shadowing)的区别。 - [Linux内核态赋予进程root权限](https://www.iowill.com/blog/2024/09/linux-kernel-root-privilege/index.md): 梳理 Linux 进程用户 ID、组 ID 与权限凭据的关系,记录通过进程号查找 struct pid、task_struct 并修改凭据的内核学习示例,涉及 Linux 4.19 中的相关结构与函数。 - [20240326-Typora激活教程](https://www.iowill.com/blog/2024/09/typora-activation/index.md): 保留的 Typora 激活相关历史记录,涉及软件安装步骤、Rust 编译环境与项目构建过程。文章反映写作时的流程,不代表适用于当前版本;使用软件应遵守其许可条款。 - [BMP图片格式](https://www.iowill.com/blog/2024/09/bmp-image-format/index.md): 以 24 位未压缩 BMP 为例,说明文件头、信息头与像素数据的布局,解释小端存储、BGR 顺序、四字节行对齐及图像方向,并用尺寸计算示例帮助检查偏移和文件大小。 - [1Panel面板容器无法使用localhost、127.0.0.1配置链接的问题说明及解决办法](https://www.iowill.com/blog/2024/09/1panel-container-localhost-connection-fix/index.md): 记录 1Panel 容器应用连接数据库时出现 Connection refused 的排查思路,说明容器内 localhost 与宿主机地址的区别,以及按容器网络选择数据库连接地址的方法。 - [ROCO乐园宠获取方式一览](https://www.iowill.com/blog/2024/09/roco-park-pets-guide/index.md): 整理洛克王国乐园宠物的历史获取记录,按宠物列出诱捕道具、道具来源与羁绊宠物,方便按条目查询和对照乐园探险、乐园商店和农场种植等信息;具体获取条件以游戏内显示为准。 - [操作系统知识梳理](https://www.iowill.com/blog/2024/09/operating-systems-overview/index.md): 按章节整理操作系统学习笔记,覆盖系统概念、进程与线程、处理机调度、同步互斥、死锁、内存管理、文件系统、磁盘调度和 I/O 管理,保留原有例子与知识点,便于按目录回顾。 - [安装x11vnc远程桌面](https://www.iowill.com/blog/2024/09/install-x11vnc-remote-desktop/index.md): 记录 x11vnc 的安装、密码文件配置和 systemd 服务设置,整理服务启动失败时的终端检查步骤,以及登录状态、文件权限和服务配置相关的排查记录,便于逐项核对服务状态。 - [ubuntu20.04 update to 22.04](https://www.iowill.com/blog/2024/07/ubuntu-20-04-to-22-04-upgrade/index.md): 说明 Ubuntu 20.04 LTS 升级到 22.04 LTS 的适用路径,依次检查备份、软件包状态和 LTS 提示设置,再使用 do-release-upgrade 升级,并整理无可用版本时的排查与升级后验证。 - [Markdown Editor](https://www.iowill.com/blog/2024/07/markdown-editor/index.md): 整理 Editor.md 的功能与 Markdown 展示示例,包含标题、引用、链接、代码、图片、列表和表格,以及公式、流程图和时序图等扩展语法,方便对照原有编辑器演示内容。