<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>ZeroAnon</title>
    <link>https://zeroanon.com</link>
    <description>博客订阅</description>
    <language>zh-CN</language>
    <lastBuildDate>Tue, 09 Jun 2026 09:00:03 GMT</lastBuildDate>
    <atom:link href="https://zeroanon.com/rss.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title><![CDATA[Projects]]></title>
      <link>https://zeroanon.com/projects</link>
      <guid isPermaLink="true">https://zeroanon.com/projects</guid>
      <pubDate>Tue, 09 Jun 2026 09:00:03 GMT</pubDate>
      <description><![CDATA[]]></description>
    </item>
    <item>
      <title><![CDATA[code-review Skill 使用说明]]></title>
      <link>https://zeroanon.com/others/code-review-help</link>
      <guid isPermaLink="true">https://zeroanon.com/others/code-review-help</guid>
      <pubDate>Mon, 08 Jun 2026 08:00:00 GMT</pubDate>
      <description><![CDATA[
## 项目简介

**code-review** 是前端组内部使用的 **Agent Skill**，面向 Cursor、Claude Code、Codex 等支持 Skills 的 AI 编程助手。

- 按 **10 步标准流程** 系统性审查前端代码变更
- 用 🔴 / 🟡 / 🟢 三级标注问题严重程度
- 自动生成交互式 **HTML 报告** 与 **Markdown 备份**
- 通过 **archive 知识库** 沉淀团队易错模式，下次 CR 自动做回归检查

- **GitHub**: [zeroanonx/code-review](https://github.com/zeroanonx/code-review)
- **skills.sh**: [zeroanonx/code-review/code-review](https://skills.sh/zeroanonx/code-review/code-review)

## 如何安装

<!-- ::start:steps -->

:::step 安装 Skill
推荐全局安装，所有项目可用：

``]]></description>
    </item>
    <item>
      <title><![CDATA[MDX 作者使用说明]]></title>
      <link>https://zeroanon.com/others/mdx-showcase</link>
      <guid isPermaLink="true">https://zeroanon.com/others/mdx-showcase</guid>
      <pubDate>Tue, 02 Jun 2026 10:00:00 GMT</pubDate>
      <description><![CDATA[
本站文章由 **MDX + 自定义组件** 渲染，写法对齐 [TanStack docs-info](https://github.com/TanStack/tanstack.com/blob/main/docs-info.md)。本文即完整作者指南，可在站内直接预览效果。

## 1. 单文件代码块

围栏第一行写语言，可选 `title` 作为顶栏文件名（有 title 只显示文件名，无 title 显示语言名）：

```tsx title="Button.tsx"
export function Button({ label }: { label: string }) {
  return <button>{label}</button>;
}
```

## 2. 多 Tab 代码（`::start:tabs`）

**不要**手写 `<CodeGroup>`。用注释块书写，构建时自动展开为 Tab 代码 UI。

### 2.1 多文件（`variant="files"`）

<!-- ::start:tabs variant="files" -->

```ts tit]]></description>
    </item>
    <item>
      <title><![CDATA[zero-tui 产品介绍与使用帮助]]></title>
      <link>https://zeroanon.com/others/zero-tui-help</link>
      <guid isPermaLink="true">https://zeroanon.com/others/zero-tui-help</guid>
      <pubDate>Tue, 12 May 2026 16:00:00 GMT</pubDate>
      <description><![CDATA[
## 项目简介

**zero-tui** 是一款运行在终端里的 **TUI**（文本用户界面）工具，用来把分散在各 AI CLI / Agent 里的 **skills** 做一次「集中安放」：**安装、浏览、详情、配置软链目标、和本机其它工具目录对齐**。它不替代 Claude / Cursor / Codex 等客户端本身，而是给你一条从终端进入的、可键盘操作的管理入口。

## 如何开始使用

<!-- ::start:steps -->

:::step 安装
全局安装包名为 **`zero-tui`**：

```bash title="安装"
npm install --global zero-tui
```

:::

:::step 启动
安装后在终端执行：

```bash title="启动"
zero
```

:::

<!-- ::end:steps -->

## Slash 命令一览

以下为当前版本的命令触发与简要说明（具体用法以终端内 `/help` 为准）。

> [!tip] 在 TUI 里输入
> 下列 `/skill` 等命令请在终端运行 ]]></description>
    </item>
    <item>
      <title><![CDATA[z-code-tools 使用说明]]></title>
      <link>https://zeroanon.com/others/z-code-tools-help</link>
      <guid isPermaLink="true">https://zeroanon.com/others/z-code-tools-help</guid>
      <pubDate>Sat, 18 Apr 2026 18:00:00 GMT</pubDate>
      <description><![CDATA[
## 项目简介

**z-code-tools** 是一款面向 VS Code 的结构化编码辅助插件，主要围绕两类高频工作展开：

- 给大型代码文件建立清晰、可折叠、可视化的区块结构
- 把 JSON / JavaScript 对象快速转换成 TypeScript 类型定义

它不是一个追求功能堆叠的“大工具箱”，而是把你在日常编码里会反复遇到、又很容易打断节奏的几个动作收敛成一套更顺手的工作流。

如果你经常维护大文件、拆分逻辑区块、整理组件结构、处理接口返回值或补全类型定义，z-code-tools 会是一个非常直接的增强层。

## 视频演示

### 1. 代码片段演示

<VideoEmbed
  src="https://www.youtube.com/embed/yYZk0mtUNOw"
  title="z-code-tools 代码片段演示"
  fallbackHref="https://player.bilibili.com/player.html?bvid=BV1rPoVBjEms&page=1"
/>

### 2. 快捷键生成演示

<VideoEmbe]]></description>
    </item>
    <item>
      <title><![CDATA[Horizon-Hop 使用帮助]]></title>
      <link>https://zeroanon.com/others/horizon-hop-help</link>
      <guid isPermaLink="true">https://zeroanon.com/others/horizon-hop-help</guid>
      <pubDate>Thu, 16 Apr 2026 16:00:00 GMT</pubDate>
      <description><![CDATA[
## 视频演示

<VideoEmbed
  src="https://www.youtube.com/embed/Tj6HyKCkVSo"
  title="Horizon Hop 视频演示"
  fallbackHref="https://player.bilibili.com/player.html?bvid=BV1SUoGB4ETh&page=1"
/>

## 项目简介

**Horizon-Hop** 是一款轻量、克制、但非常实用的浏览器效率插件。

我们希望把那些你在浏览器里会高频用到的小能力，认真做成一个顺手、好看、打开就能用的工具集合。它不是一个什么都想做的大而全平台，而是一套更聚焦的浏览器工作台，帮你把二维码生成、JSON 处理、图片压缩、变量命名、表格结构整理这些常见操作，留在当前浏览器里完成。

如果你经常在网页、文档、接口数据、临时素材和开发辅助工具之间来回切换，Horizon-Hop 会是一个刚刚好的补充层。

## 现在的 Horizon-Hop 能做什么

目前插件主要围绕以下几类场景展开：

- **当前网页二维码生成**：打开首页即可为当前网页生成]]></description>
    </item>
    <item>
      <title><![CDATA[关于Mysql的一些笔记]]></title>
      <link>https://zeroanon.com/blog/mysql</link>
      <guid isPermaLink="true">https://zeroanon.com/blog/mysql</guid>
      <pubDate>Thu, 02 Apr 2026 10:26:00 GMT</pubDate>
      <description><![CDATA[
> [!note] 学习背景
> 最近在写个人站后端，从零补 PHP、ThinkPHP、PhpStorm 与 MySQL，本文是笔记整理。

# 关于SQL语句的分类

> [!tip] 记忆方式
> SQL 语句较多，按 DQL / DML / DDL / DCL 分类更容易记。

```sql title="DQL"
DQL:
 数据查询语言 (凡是带有select关键字的都是查询语句) selsect...
```

```sql title="DML 增删改"
DML:
数据操作语言 (凡是对表当中的数据进行增删改的都是DML)
    insert 增
    delete 删
    updata 改
```

```sql title="DDL"
DML:
数据操作语言 (DDL主要操作的是表的结构，不是表的数据，例如删除列)
    create 新建 等同于增
    drop   删除
    alter  修改
```

```sql title="TCL"
TCL:
事务控制语言
    事务提交： commit
    事务回滚： rollback
```
]]></description>
    </item>
    <item>
      <title><![CDATA[你始终要有一颗属于自己的心和精神世界不受影响]]></title>
      <link>https://zeroanon.com/myself/forget-the-past</link>
      <guid isPermaLink="true">https://zeroanon.com/myself/forget-the-past</guid>
      <pubDate>Mon, 09 Mar 2026 14:23:00 GMT</pubDate>
      <description><![CDATA[
新的一年转眼就开始了，在家的日子，总觉得过的很快！

躺在床上的时间，老是想起以前。

武汉满街的樱花和石楠，花香交杂柔和，一种说不出喜欢还是不喜欢的味道。起风时的东湖，那天我站在岸边望了很久，那是我第一次见那么大的一片湖，激动的以为这就是海！夜半的滑翔伞基地，下山的路灯把树影连同人拉得老长。还有疫情时难眠的夜，痛到骨里的疼，和握在手里的温热的橘子罐头。黄鹤楼景区昏黄的灯，绿得发黑的水，两根打卡的黄鹤楼雪糕，和那条永远在修的路。

南昌顶楼的出租屋里房东烧的鱼总是很咸，那只总是躲在车底下的猫和几颗滚落在路边的柚子依偎在一起，当然还有辣到嘴肿的老三样！烫得人发晕的滕王阁的马路。

杭州的小巴黎铁塔广场永远热闹得像假的，骑车在旁边的湖边绕湖而行，风是那么惬意舒适。西溪园区三月的桃花具像化了「心中若有桃花源，何处不是云水间」。习惯了的去西湖边放空，回去的梧桐路上落叶铺满了地，踩上去沙沙作响。

一边回忆一边遗忘，疯狂的相互交织！

一个人要有韧性，在那些难熬的日子不低头，在那些腐烂的日子不自弃，去支撑你在那些时间里低头赶路。每次想放弃的时候，停下来，松口气，收拾行李继续出发。

掉了一地的]]></description>
    </item>
    <item>
      <title><![CDATA[使用 giscus 为静态博客添加轻量评论系统]]></title>
      <link>https://zeroanon.com/blog/use-giscus</link>
      <guid isPermaLink="true">https://zeroanon.com/blog/use-giscus</guid>
      <pubDate>Tue, 20 Jan 2026 10:00:00 GMT</pubDate>
      <description><![CDATA[
近期我的博客基础功能已基本完成，但一直希望添加评论互动功能。最初考虑过基于 Next.js 编写完整的评论 API，但这会带来不小的开发负担：

- 需要搭建数据库存储评论
- 设计评论前后端交互逻辑
- 处理用户身份验证与垃圾评论防范
- 长期维护服务器成本

由于我的网站是静态生成，本身不具备服务器和数据库，因此我开始寻找更轻量、免后端方案。最终发现了 [giscus](https://giscus.app/zh-CN)

一个基于 GitHub Discussions 构建的开源评论系统，让访客能直接通过 GitHub 账户在网站上留言互动。

### 🌟 为什么选择 giscus？

- 开源。🌏
- 无跟踪，无广告，永久免费。📡 🚫
- 无需数据库。所有数据均储存在 GitHub Discussions 中。:octocat:
- 支持[自定义主题](https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#data-theme)！🌗
- 支持多种[语言](https://github.com/gis]]></description>
    </item>
    <item>
      <title><![CDATA[add me]]></title>
      <link>https://zeroanon.com/others/wechat</link>
      <guid isPermaLink="true">https://zeroanon.com/others/wechat</guid>
      <pubDate>Sat, 20 Dec 2025 10:26:00 GMT</pubDate>
      <description><![CDATA[
this is my wechat, Scan the QR code below to add me！

<Image src="/assets/images/me/my_wechat.jpg" style={{ width: "300px" }} />
]]></description>
    </item>
    <item>
      <title><![CDATA[Horizon Hop 隐私政策]]></title>
      <link>https://zeroanon.com/others/horizon-hop</link>
      <guid isPermaLink="true">https://zeroanon.com/others/horizon-hop</guid>
      <pubDate>Tue, 03 Jun 2025 16:00:00 GMT</pubDate>
      <description><![CDATA[
### 生效日期：2025 年 06 月 03 日

引言：
本隐私政策（以下简称“本政策”）详细说明了 Horizon Hop（以下简称“我们”、“我们的”或“Horizon Hop”）如何处理和保护您在使用我们的浏览器扩展时提供的数据。我们尊重您的隐私，并致力于保护您的个人信息。

## 1. 信息收集：

个人身份信息（PII）： 我们不收集任何个人身份信息。Horizon Hop 不需要注册或登录，因此我们不会收集您的姓名、地址、电子邮件地址、电话号码或其他可以直接识别您个人身份的信息。
非个人身份信息（Non-PII）： 为了提供我们的服务，我们可能会收集一些非个人身份信息，例如您的浏览器类型、操作系统、访问时间、搜索历史、使用功能等。这些信息无法直接识别您个人身份。

## 2. 信息使用：

我们使用非个人身份信息来改善用户体验、分析使用趋势、监控服务质量，并为您提供更好的服务。
我们不会将您的非个人身份信息与任何个人身份信息结合，以识别您的身份。

## 3. 信息披露：

我们不会与任何第三方分享、出售或出租您的个人身份信息。
我们可能会与第三方服务提供商共享非个人]]></description>
    </item>
    <item>
      <title><![CDATA[plasmo - 浏览器插件框架]]></title>
      <link>https://zeroanon.com/blog/plasmo</link>
      <guid isPermaLink="true">https://zeroanon.com/blog/plasmo</guid>
      <pubDate>Mon, 14 Apr 2025 18:26:00 GMT</pubDate>
      <description><![CDATA[
## 一、什么是浏览器插件？

浏览器插件是一种能够增强和定制浏览器功能的软件组件。
浏览器插件可通过自定义界面、观察浏览器事件和修改网络来提升浏览体验。

## 二、浏览器插件是如何构建的？

使用 Web 技术开构建插件：`HTML`、`CSS`、`JS`。

## 三、浏览器插件可以做什么？

### - 设计界面

大多数扩展程序都需要某种类型的用户互动才能正常运行。扩展程序平台提供了多种方式来向您的扩展程序添加互动。这些方法包括从工具栏、侧边栏、上下文菜单等触发的弹出式窗口：

- 侧边栏（`Side panel`）
- 操作项（`Action`）
- 菜单项（`Menus`）

### 2.控制浏览器

借助的扩展程序 API，可以改变浏览器的工作方式：

- 覆盖页面和设置项：`Manifest.json` 配置 `chrome_settings_overrides`
- 扩展开发者工具：`Manifest.json` 配置 `devtools_page`
- 显示通知：`chrome.notifications` API
- 管理历史记录：`chrome.histor]]></description>
    </item>
    <item>
      <title><![CDATA[svg按钮hover线条动画]]></title>
      <link>https://zeroanon.com/interesting/svg-button-hover</link>
      <guid isPermaLink="true">https://zeroanon.com/interesting/svg-button-hover</guid>
      <pubDate>Mon, 17 Mar 2025 10:30:00 GMT</pubDate>
      <description><![CDATA[
<SvgHover />

SVG 按钮 hover 线条动画。

使用了  `stroke-dasharray`  和  `stroke-dashoffset`  控制线条动画。

具体的可以看看这篇文章：

[【Web 动画】SVG 线条动画入门](https://www.cnblogs.com/coco1s/p/6225973.html)

```html title="index.html"
<div className="svg-hover-demo">
  <a className="container">
    <svg height="100%" width="100%" xmlns="http://www.w3.org/2000/svg">
      <rect className="outline" height="100%" width="100%" />
    </svg>
    <div className="text">hover</div>
  </a>

  <a className="container2">
    <svg height=]]></description>
    </item>
    <item>
      <title><![CDATA[retina屏下的1px线的实现]]></title>
      <link>https://zeroanon.com/interesting/retina-line-1px</link>
      <guid isPermaLink="true">https://zeroanon.com/interesting/retina-line-1px</guid>
      <pubDate>Mon, 17 Mar 2025 09:30:00 GMT</pubDate>
      <description><![CDATA[
<RetinaLine />

retina 屏下的 1px 线的实现，适用于 dpr：2 的情况。

- 法一：使用渐变实现，使用两种颜色填充 1px 宽内容
- 法二：使用缩放实现，对 1px 高度线条进行 0.5 倍缩放
- 法三：base64 编码实现

```html title="index.html"
<div class="line-container">
  <div class="border_normal line-div">
    正常使用1px border效果（本DEMO请在移动端环境下查看）
  </div>
  <div class="border_gradient line-div">
    法一：使用渐变实现，使用两种颜色填充 1px 宽内容
  </div>
  <div class="border_scale line-div">
    法二：使用缩放实现，对 1px 高度线条进行0.5倍缩放
  </div>
  <div class="border_base64 line-div">法三：base64 编码实现</div>
</div]]></description>
    </item>
    <item>
      <title><![CDATA[使用drop-shadow配合clip-path生成规则阴影]]></title>
      <link>https://zeroanon.com/interesting/rule-shadow</link>
      <guid isPermaLink="true">https://zeroanon.com/interesting/rule-shadow</guid>
      <pubDate>Fri, 14 Mar 2025 19:30:00 GMT</pubDate>
      <description><![CDATA[
<RuleDropShadow />

使用 drop-shadow 配合 clip-path 生成规则阴影。

使用 clip-path 可以很好的使用 SVG 的一些属性，绘制各种图形。绘制出来的图形如果希望带阴影，`box-shadow`  肯定是不行的，这个时候，`drop-shadow()`  则非常好用。

```html title="index.html"
<div class="btn-wrap">
  <div class="btn">领取红包</div>
</div>
```

```scss
.btn-wrap {
  margin: auto;
  filter: drop-shadow(2px 4px 3px rgba(50, 50, 0, 0.5));
}

.btn {
  content: "";
  width: 200px;
  height: 64px;
  line-height: 64px;
  text-align: center;
  background: linear-gradient(#f5e5bf, #fbe8c8, #f5e5]]></description>
    </item>
    <item>
      <title><![CDATA[单标签纯css实现幽灵动画]]></title>
      <link>https://zeroanon.com/interesting/ghost</link>
      <guid isPermaLink="true">https://zeroanon.com/interesting/ghost</guid>
      <pubDate>Fri, 14 Mar 2025 17:30:00 GMT</pubDate>
      <description><![CDATA[
<GhostAnimation />

单标签纯 CSS 实现幽灵动画。

- filter: blur() | filter: contrast() 的配合使用
- 单标签的限制，所以多重渐变也发挥了很重要的作用

```html title="index.html"
<div></div>
```

```css title="styles.css"
html,
body {
  width: 100%;
  height: 100%;
  display: flex;
  background: #000;
  filter: blur(3px) contrast(10);

div {
  position: relative;
  width: 80px;
  height: 120px;
  background:
    radial-gradient(circle at 60px 40px, #000, #000 7px, transparent 7px),
    radial-gradient(circle at 40px 40px, #000, #000 7px]]></description>
    </item>
    <item>
      <title><![CDATA[小球穿梭放大loading动画]]></title>
      <link>https://zeroanon.com/interesting/ball-loading</link>
      <guid isPermaLink="true">https://zeroanon.com/interesting/ball-loading</guid>
      <pubDate>Fri, 14 Mar 2025 16:30:00 GMT</pubDate>
      <description><![CDATA[
<BallBlurLoading />

小球穿梭放大 loading 动画。

主要使用了 blur、contrast 两个滤镜，它们的作用分别是：

- filter: blur()： 给图像设置高斯模糊效果。
- filter: contrast()： 调整图像的对比度。

但是，当他们“合体”的时候，产生了奇妙的融合现象，通过对比度滤镜把高斯模糊的模糊边缘给干掉，利用高斯模糊实现融合效果。

```html title="index.html"
<div class="g-container">
  <div class="g-first"></div>
  <div class="g-ball"></div>
  <div class="g-ball"></div>
  <div class="g-ball"></div>
  <div class="g-ball"></div>
  <div class="g-ball"></div>
  <div class="g-ball"></div>
  <div class="g-ball"></div>
</div>
```
]]></description>
    </item>
    <item>
      <title><![CDATA[box-shadow实现圆环进度条动画]]></title>
      <link>https://zeroanon.com/interesting/circle-loading</link>
      <guid isPermaLink="true">https://zeroanon.com/interesting/circle-loading</guid>
      <pubDate>Fri, 14 Mar 2025 16:30:00 GMT</pubDate>
      <description><![CDATA[
<CircleShadowLoading />

Box-shadow 实现圆环进度条动画。这个真的算是奇技淫巧。

- 圆环进度条的移动本质上是阴影顺序延时移动的结果。

```html title="index.html"
<div class="container">
  <div class="shadow">Hover Me</div>
</div>
```

```css title="styles.css"
:root {
  --color: #e91e63;
}

body {
  background: #000;
}

.container {
  position: relative;
  overflow: hidden;
  width: 124px;
  height: 124px;
  overflow: hidden;
  margin: 100px auto;
  border-radius: 50%;
}

.shadow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: ]]></description>
    </item>
    <item>
      <title><![CDATA[关于TypeScript]]></title>
      <link>https://zeroanon.com/blog/about-typescript</link>
      <guid isPermaLink="true">https://zeroanon.com/blog/about-typescript</guid>
      <pubDate>Fri, 14 Mar 2025 10:26:00 GMT</pubDate>
      <description><![CDATA[
## 一、提高开发效率的几个 TS 工具类型

### 一、类型别名

TypeScript 提供了为类型注解设置别名的便捷语法，可以使用 type SomeName = someValidTypeAnnotation 来创建别名，比如：

```ts
type Pet = "cat" | "dog";
let pet: Pet;

pet = "cat"; // Ok
pet = "dog"; // Ok
pet = "zebra"; // Compiler error
```

### 二、基础知识

先介绍一下相关的一些基础知识。

#### 2.1 typeof

在 TypeScript 中，`typeof` 操作符可以用来获取一个变量声明或对象的类型。

```ts
interface Person {
  name: string;
  age: number;
}

const sem: Person = { name: "semlinker", age: 30 };
type Sem = typeof sem; // type Sem = Person
```

在]]></description>
    </item>
    <item>
      <title><![CDATA[动画svg徽标]]></title>
      <link>https://zeroanon.com/blog/animated-svg-logo</link>
      <guid isPermaLink="true">https://zeroanon.com/blog/animated-svg-logo</guid>
      <pubDate>Mon, 10 Mar 2025 10:00:00 GMT</pubDate>
      <description><![CDATA[
最近，我为网站左上角的徽标进行了一次改版，用动画 SVG 替换了原来的静态图标：

<div className="flex items-center justify-center">
  <Logo layout="default" />
</div>

## 灵感来源

一切要从 [antfu](https://antfu.me/posts/animated-svg-logo "--accent-pink") 的个人网站说起。第一次访问他的网站时，我被深深吸引了：「这才是我理想中的个人网站！」

特别是他那个充满设计感的签名体 logo，看过他的实现教程后，我也跃跃欲试。虽然尝试了很多次，但总是差强人意。

直到遇见了 [lxchapu](https://www.lxchapu.com/posts/make-a-beautify-animated-signature/) 的这篇文章，如获至宝！
它完美解答了我的所有困惑。在此特别感谢这两位开发者的分享 🙏

## 实现步骤

<!-- ::start:steps -->

:::step 选择字体
首先访问 [Google Fo]]></description>
    </item>
  </channel>
</rss>