<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>笔记 on yuehai</title>
    <link>https://yuehai.space/posts/</link>
    <description>Recent content in 笔记 on yuehai</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 13 Oct 2026 10:56:00 +0800</lastBuildDate>
    <atom:link href="https://yuehai.space/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>微信公众号文章转载工作流</title>
      <link>https://yuehai.space/posts/wechat-ai-workflow/</link>
      <pubDate>Tue, 13 Oct 2026 10:56:00 +0800</pubDate>
      <guid>https://yuehai.space/posts/wechat-ai-workflow/</guid>
      <description>&lt;h4 id=&#34;具体流程&#34;&gt;具体流程：&lt;/h4&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://yuehai.space/images/uploads/image2.png&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;细节&#34;&gt;细节：&lt;/h4&gt;
&lt;p&gt;由于不能直接原文转载，会触发原创校验，导致发表方式变为分享。所以要对文章轻微改写，改写后由于文章差异无法将图片按照原文进行定位，所以将图片全部放到文章底部，需要运营人员重新将图片进行排版；&lt;/p&gt;
&lt;p&gt;dify通过Tavily Extract抓取链接原文，llm改写成md并通过JSON POST发送至中转服务器，服务器先校验X-Relay-Token，然后WeMD将md转换成html，以及#js_content 补图，最后调微信 draft/add 写入草稿箱&lt;/p&gt;
&lt;p&gt;Tavily 检索 vs Tavily Extract&lt;/p&gt;
&lt;p&gt;Tavily 检索：输入：关键字 作用：搜索引擎，在网上找相关页面，返回标题、摘要、链接列表&lt;/p&gt;
&lt;p&gt;Tavily Extract：输入：url 作用：打开你给的那几个 URL，抽出该页正文&lt;/p&gt;
&lt;h4 id=&#34;思路&#34;&gt;思路：&lt;/h4&gt;
&lt;p&gt;飞书-dify-微信公众号后台草稿&lt;/p&gt;
&lt;p&gt;飞书与dify通过langbot cloud连接&lt;/p&gt;
&lt;p&gt;dify与微信公众号后台通过服务器发送post请求（没有使用dify中微信公众号插件原因：不知道dify cloud的ip，无法在微信公众号后台添加白名单）&lt;/p&gt;</description>
    </item>
    <item>
      <title>常用skills</title>
      <link>https://yuehai.space/posts/skills/</link>
      <pubDate>Wed, 23 Sep 2026 14:28:00 +0800</pubDate>
      <guid>https://yuehai.space/posts/skills/</guid>
      <description>&lt;h6 id=&#34;superpowers-skill使用&#34;&gt;superpowers-skill使用：&lt;/h6&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://yuehai.space/images/uploads/pasted-image-1790144432676.png&#34;&gt;&lt;/p&gt;
&lt;h6 id=&#34;anthropics-frontend-desgin-skill&#34;&gt;anthropics frontend-desgin skill:&lt;/h6&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://yuehai.space/images/uploads/pasted-image-1790144482234.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://yuehai.space/images/uploads/pasted-image-1790144491931.png&#34;&gt;&lt;/p&gt;
&lt;h6 id=&#34;按场景推荐的impeccable命令流&#34;&gt;按场景推荐的impeccable命令流&lt;/h6&gt;
&lt;p&gt;下面是可直接套用的流程，按你现在这种前端页面迭代场景来排。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;新页面从 0 到 1（需求到落地）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;teach（仅首次或上下文缺失时）&lt;/p&gt;
&lt;p&gt;shape [feature/page]（先定结构、信息层级、交互）&lt;/p&gt;
&lt;p&gt;craft [feature/page]（按方案实现）&lt;/p&gt;
&lt;p&gt;harden [target]（补错误态、空态、i18n、边界）&lt;/p&gt;
&lt;p&gt;polish [target]（视觉和交互收口）&lt;/p&gt;
&lt;p&gt;适用：新功能页、新活动页、新模块首版。&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;旧页面提质（你现在最常用）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;critique [target]（先找问题并排序）&lt;/p&gt;
&lt;p&gt;layout [target]（先把结构和节奏理顺）&lt;/p&gt;
&lt;p&gt;typeset [target]（提升可读性和层级）&lt;/p&gt;
&lt;p&gt;clarify [target]（修正文案、按钮、提示语）&lt;/p&gt;
&lt;p&gt;polish [target]（最后统一细节）&lt;/p&gt;
&lt;p&gt;适用：已有页面“能用但不高级/不清晰”。&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;页面太素、缺品牌感&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;bolder [target]（提升视觉张力）&lt;/p&gt;
&lt;p&gt;colorize [target]（建立更明确的配色策略）&lt;/p&gt;
&lt;p&gt;delight [target]（加入记忆点）&lt;/p&gt;
&lt;p&gt;polish [target]（防止“花但乱”）&lt;/p&gt;
&lt;p&gt;适用：看起来“模板味重”、缺识别度。&lt;/p&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;页面太吵、信息过载&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;quieter [target]（先降噪）&lt;/p&gt;
&lt;p&gt;distill [target]（只保留核心表达）&lt;/p&gt;
&lt;p&gt;layout [target]（重建阅读路径）&lt;/p&gt;
&lt;p&gt;typeset [target]（降低认知负担）&lt;/p&gt;
&lt;p&gt;polish [target]&lt;/p&gt;
&lt;p&gt;适用：视觉冲突多、用户不知道先看哪里。&lt;/p&gt;
&lt;ol start=&#34;5&#34;&gt;
&lt;li&gt;上线前质量闸门（发布前必过）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;audit [target]（a11y / 响应式 / 性能）&lt;/p&gt;
&lt;p&gt;optimize [target]（修关键性能瓶颈）&lt;/p&gt;
&lt;p&gt;adapt [target]（多端收口）&lt;/p&gt;
&lt;p&gt;harden [target]（边界和异常补齐）&lt;/p&gt;</description>
    </item>
    <item>
      <title>赞比亚-TCP转发</title>
      <link>https://yuehai.space/posts/zambia-tcp/</link>
      <pubDate>Wed, 23 Sep 2026 14:17:00 +0800</pubDate>
      <guid>https://yuehai.space/posts/zambia-tcp/</guid>
      <description>&lt;h1 id=&#34;将赞比亚公司电脑设置成节点做-tcp-转发&#34;&gt;将赞比亚公司电脑设置成节点，做 TCP 转发&lt;/h1&gt;
&lt;h1 id=&#34;赞比亚星链出口国内-linux-中转&#34;&gt;赞比亚星链出口：国内 Linux 中转&lt;/h1&gt;
&lt;p&gt;Starlink 无法公网入站、软路由装不了 Tailscale 时，用国内 Linux 做 &lt;strong&gt;单端口 TCP 转发&lt;/strong&gt;：PassWall → Linux:20152 → Tailscale → 赞比亚 Xray → 星链出口。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;中转 192.168.0.108端口 20152不改默认路由 / DNS / 财务
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;1方案&#34;&gt;1方案&lt;/h2&gt;
&lt;p&gt;国内 Linux（同时跑财务）只充当 &lt;strong&gt;Tailscale 客户端 + socat 端口转发&lt;/strong&gt;， 把软路由打来的 Shadowsocks TCP 流量转到赞比亚 Windows 上的 Xray； 全程旁路，禁止 Exit Node / 子网路由 / DNS 接管。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;允许做的只有三件事：&lt;/strong&gt; ① 安装 Tailscale（关 DNS/路由）　 ② 新增专用端口转发（如 20152）　 ③ 防火墙仅放行软路由 &lt;code&gt;192.168.0.100&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;2流量路径&#34;&gt;2流量路径&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[办公设备]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ↓ 网关 192.168.10.1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[软路由 PassWall]  ──TCP──→  192.168.0.108:20152
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  WAN: 192.168.0.100              ↑
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                           [国内 Linux 中转]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                           · 财务系统（不动）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                           · Tailscale + socat
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                      ↓ Tailscale
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                           [赞比亚 Windows]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                           · Xray SS :20152
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                      ↓ Starlink
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                           互联网（ZM IP）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;3关键速查&#34;&gt;3关键速查&lt;/h2&gt;
&lt;p&gt;国内 Linux&lt;/p&gt;</description>
    </item>
    <item>
      <title>工具-收藏链接</title>
      <link>https://yuehai.space/posts/tools-bookmarks/</link>
      <pubDate>Wed, 23 Sep 2026 14:12:00 +0800</pubDate>
      <guid>https://yuehai.space/posts/tools-bookmarks/</guid>
      <description>&lt;h2 id=&#34;开发工具&#34;&gt;开发工具&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;github 开源项目（ossnav）&lt;/strong&gt;：&lt;a href=&#34;https://github.com/maxiaobang7/ossnav?tab=readme-ov-file#%E5%8A%9E%E5%85%AC%E8%BD%AF%E4%BB%B6&#34;&gt;https://github.com/maxiaobang7/ossnav?tab=readme-ov-file#%E5%8A%9E%E5%85%AC%E8%BD%AF%E4%BB%B6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;验证是否为人类&lt;/strong&gt;：&lt;a href=&#34;https://github.com/mortspace/playcaptcha&#34;&gt;https://github.com/mortspace/playcaptcha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工具网站&lt;/strong&gt;：&lt;a href=&#34;https://fmhy.net/system-tools#remote-desktop&#34;&gt;https://fmhy.net/system-tools#remote-desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前端文件预览&lt;/strong&gt;：&lt;a href=&#34;https://github.com/flyfish-dev/file-viewer&#34;&gt;https://github.com/flyfish-dev/file-viewer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;该网站可以上传 CSV 数据文件，自动生成可视化图形&lt;/strong&gt;：&lt;a href=&#34;https://visprex.com/#datasets&#34;&gt;https://visprex.com/#datasets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;markdown 转 html&lt;/strong&gt;：&lt;a href=&#34;https://github.com/bruits/satteri&#34;&gt;https://github.com/bruits/satteri&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第三方授权登录&lt;/strong&gt;：&lt;a href=&#34;https://github.com/apache/casbin&#34;&gt;https://github.com/apache/casbin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;c++ 性能单元测试框架&lt;/strong&gt;：&lt;a href=&#34;https://github.com/google/benchmark&#34;&gt;https://github.com/google/benchmark&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;web 前端浏览 office 文件，支持浏览器，vscode，agent 读取 office 文件&lt;/strong&gt;：&lt;a href=&#34;https://github.com/yukiyokotani/office-open-xml-viewer&#34;&gt;https://github.com/yukiyokotani/office-open-xml-viewer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隐私政策生成器&lt;/strong&gt;：&lt;a href=&#34;https://www.freeprivacypolicy.com/free-privacy-policy-generator/&#34;&gt;https://www.freeprivacypolicy.com/free-privacy-policy-generator/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;通过声音（喇叭和麦克风），发送和接收数据的一个开源工具&lt;/strong&gt;：&lt;a href=&#34;https://github.com/solst-ice/chirp&#34;&gt;https://github.com/solst-ice/chirp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多协议下载器&lt;/strong&gt;：&lt;a href=&#34;https://github.com/zerx-lab/FluxDown&#34;&gt;https://github.com/zerx-lab/FluxDown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个轻量级的数据库迁移工具，支持各种主流数据库&lt;/strong&gt;：&lt;a href=&#34;https://github.com/amacneil/dbmate&#34;&gt;https://github.com/amacneil/dbmate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个测试邮件发送功能的应用程序，嵌入你的应用，用它测试应用的邮件发送功能，自带 Web 后台&lt;/strong&gt;：&lt;a href=&#34;https://inbucket.org/&#34;&gt;https://inbucket.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码对比工具&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2026/png/57443523/1781487764244-e4d60c44-028a-47cb-8920-be295263faae.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;浏览器分签页管理&lt;/strong&gt;：&lt;a href=&#34;https://github.com/zarazhangrui/tab-out&#34;&gt;https://github.com/zarazhangrui/tab-out&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署在 Cloudflare 的免费图片/文字中转池，方便在不同设备之间分享内&lt;/strong&gt;：&lt;a href=&#34;https://github.com/Defiabell/shotsync&#34;&gt;https://github.com/Defiabell/shotsync&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;区分扫描二维码手机是安卓还是苹果，然后重定向到各自的应用商店&lt;/strong&gt;&lt;a href=&#34;https://matthuggins.com/blog/posts/qr-codes-that-route-to-the-appropriate-app-store&#34;&gt;https://matthuggins.com/blog/posts/qr-codes-that-route-to-the-appropriate-app-store&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个服务器体检脚本，检查硬件、性能、IP 质量、网络质量等：&lt;/strong&gt;&lt;a href=&#34;https://github.com/CleanIP/sh.cd&#34;&gt;https://github.com/CleanIP/sh.cd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跑大模型工具：&lt;/strong&gt;&lt;a href=&#34;https://github.com/ggml-org/llama.cpp&#34;&gt;https://github.com/ggml-org/llama.cpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;微信公众号文章排版工具：&lt;/strong&gt;&lt;a href=&#34;https://github.com/tenngoxars/WeMD&#34;&gt;https://github.com/tenngoxars/WeMD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;谷歌官方推出的 AI 识别工具：&lt;/strong&gt;&lt;a href=&#34;https://synthid.com/&#34;&gt;https://synthid.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一款开源的、可选择使用不同 AI 模型的图像超分辨率（放大）工具，最高可将图片放大4倍。所有处理均在浏览器本地完成：&lt;/strong&gt;&lt;a href=&#34;https://github.com/isixe/bg2x&#34;&gt;https://github.com/isixe/bg2x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个开源的安卓 App，手机安装后，扫码与电脑配对，电脑就可以编写脚本用来操作手机。手机端不用开 USB 调试，也不用 root：&lt;/strong&gt;&lt;a href=&#34;https://github.com/KnifeLemon/Droidline&#34;&gt;https://github.com/KnifeLemon/Droidline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个 macOS 开源软件，在 Claude Code、Codex 等 AI 编程代理工作时阻止 Mac 休眠，支持合盖保持唤醒、过热暂停、低电量退出：&lt;/strong&gt;&lt;a href=&#34;https://github.com/s3onghyun/bulchimbeon&#34;&gt;https://github.com/s3onghyun/bulchimbeon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;这个网站可以检查你的浏览器指纹，泄漏了多少个人信息，给出有问题的地方：&lt;/strong&gt;&lt;a href=&#34;https://envtrace.net/zh&#34;&gt;https://envtrace.net/zh&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;前端与设计&#34;&gt;前端与设计&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;苹果商城截图生成器&lt;/strong&gt;：&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.appshots.top/&#34;&gt;https://www.appshots.top/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tool.tushuoit.com/screenshot&#34;&gt;https://tool.tushuoit.com/screenshot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pretext 是一个 npm 上的 JavaScript/TypeScript 库：在不用 DOM 测量（getBoundingClientRect 等）的情况下，快速、准确地计算多行文本的高度和换行&lt;/strong&gt;：&lt;a href=&#34;https://github.com/chenglou/pretext&#34;&gt;https://github.com/chenglou/pretext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;css 组件&lt;/strong&gt;：&lt;a href=&#34;https://www.beercss.com/&#34;&gt;https://www.beercss.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tailwindcss&lt;/strong&gt;：&lt;a href=&#34;https://github.com/tailwindlabs/tailwindcss&#34;&gt;https://github.com/tailwindlabs/tailwindcss&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个开源的设计工具将可视化的布局设计转为 CSS + HTML 代码&lt;/strong&gt;：&lt;a href=&#34;https://github.com/penpot/penpot&#34;&gt;https://github.com/penpot/penpot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图标&lt;/strong&gt;：&lt;a href=&#34;https://www.flaticon.com/search?word=procurement&#34;&gt;https://www.flaticon.com/search?word=procurement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图标&lt;/strong&gt;：&lt;a href=&#34;https://reicon.dev/&#34;&gt;https://reicon.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;轻量，0 依赖滚动条&lt;/strong&gt;：&lt;a href=&#34;https://github.com/wurencaideli/dumogu-scrollbar/blob/master/docs/README.zh-CN.md&#34;&gt;https://github.com/wurencaideli/dumogu-scrollbar/blob/master/docs/README.zh-CN.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;这个网站收集各种网页滚动的动画效果，使用 Web Animations API (WAAPI) 和 CSS Animations API 实现&lt;/strong&gt;：&lt;a href=&#34;https://scroll-driven-animations.style/&#34;&gt;https://scroll-driven-animations.style/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;手绘风格svg：&lt;/strong&gt;&lt;a href=&#34;https://github.com/guokaigdg/naive-icons&#34;&gt;https://github.com/guokaigdg/naive-icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个基于 Tailwind 的 UI 组件库：&lt;/strong&gt;&lt;a href=&#34;https://github.com/thedevdojo/pines&#34;&gt;https://github.com/thedevdojo/pines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前端的远程页面调试工具。在页面插入一个脚本，就可以远程打开该网页的控制台，查看各种信息，接收实时报错，适合调试手机端页面：&lt;/strong&gt;&lt;a href=&#34;https://github.com/2234839/silkpulse&#34;&gt;https://github.com/2234839/silkpulse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个把 HTML 网页动画逐帧渲染成 MP4 视频的命令行工具：&lt;/strong&gt;&lt;a href=&#34;https://github.com/wx4766/html-to-video&#34;&gt;https://github.com/wx4766/html-to-video&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ai与agent&#34;&gt;AI与Agent&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;mattpocock/skills：一个类似于 caveman 的 skill&lt;/strong&gt;：&lt;a href=&#34;https://github.com/mattpocock/skills&#34;&gt;https://github.com/mattpocock/skills&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图片翻译&lt;/strong&gt;：&lt;a href=&#34;https://otranslator.com/zh&#34;&gt;https://otranslator.com/zh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提示词优化器&lt;/strong&gt;：&lt;a href=&#34;https://prompt.always200.com/#/basic/system&#34;&gt;https://prompt.always200.com/#/basic/system&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存储清理 skill&lt;/strong&gt;：&lt;a href=&#34;https://github.com/KKKKhazix/khazix-skills&#34;&gt;https://github.com/KKKKhazix/khazix-skills&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;根据视频的语音生成 SRT 字幕，并把字幕翻译成其他语言&lt;/strong&gt;：&lt;a href=&#34;https://github.com/Blue-B/WhisperSubTranslate&#34;&gt;https://github.com/Blue-B/WhisperSubTranslate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生成代码图，方便 ai 读取 mcp&lt;/strong&gt;：&lt;a href=&#34;https://github.com/colbymchenry/codegraph&#34;&gt;https://github.com/colbymchenry/codegraph&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开源密码管理，协助 agent 使用密码避免泄漏问题&lt;/strong&gt;：&lt;a href=&#34;https://github.com/oomol-lab/open-connector&#34;&gt;https://github.com/oomol-lab/open-connector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开源的 Windows 磁盘清理工具，用 AI 分析垃圾文件&lt;/strong&gt;：&lt;a href=&#34;https://github.com/vudsen/ai-disk-cleaner&#34;&gt;https://github.com/vudsen/ai-disk-cleaner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个 MCP 服务器，让 Claude Code、Cursor、Codex 等 AI 代理直接操作 Figma，能读设计稿也能画设计稿&lt;/strong&gt;：&lt;a href=&#34;https://github.com/awdr74100/figwright&#34;&gt;https://github.com/awdr74100/figwright&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基于 codex 的代码漏洞扫描&lt;/strong&gt;：&lt;a href=&#34;https://github.com/openai/codex-security&#34;&gt;https://github.com/openai/codex-security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;讲解代码变化并出题测试&lt;/strong&gt;：&lt;a href=&#34;https://gist.github.com/geoffreylitt/a29df1b5f9865506e8952488eac3d524&#34;&gt;https://gist.github.com/geoffreylitt/a29df1b5f9865506e8952488eac3d524&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优化版本：&lt;a href=&#34;https://gist.github.com/ankitg12/8e808d387799de4e9839bc393f8e6405&#34;&gt;https://gist.github.com/ankitg12/8e808d387799de4e9839bc393f8e6405&lt;/a&gt;（正确答案随机不再是最长的那个；不需要生成重复的 css,js,页面骨架）&lt;/p&gt;</description>
    </item>
    <item>
      <title>项目知识库</title>
      <link>https://yuehai.space/posts/vue-component-visibility/</link>
      <pubDate>Sat, 19 Sep 2026 00:00:00 +0800</pubDate>
      <guid>https://yuehai.space/posts/vue-component-visibility/</guid>
      <description>&lt;h2 id=&#34;vue-组件封装与可见性&#34;&gt;Vue 组件封装与可见性&lt;/h2&gt;
&lt;h3 id=&#34;组件封装sync--visible--v-if&#34;&gt;组件封装：.sync / visible / v-if&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt; 弹窗/抽屉子组件在父组件数据未就绪时提前初始化，导致 props 监听失效；关闭后可见状态与父组件不同步。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原因：&lt;/strong&gt; 仅用父组件一个 &lt;code&gt;visible&lt;/code&gt; 不够稳；子组件内部 Drawer 的 &lt;code&gt;update:visible&lt;/code&gt; 需要回写父级；&lt;code&gt;data&lt;/code&gt; 与 &lt;code&gt;computed&lt;/code&gt; 不能同名，否则计算属性失效。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;做法：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;从 HTML 梳理功能所需数据/方法/子组件，写入 props；父组件不需要的删掉。&lt;/li&gt;
&lt;li&gt;父传 &lt;code&gt;:dshow.sync=&amp;quot;dshow&amp;quot;&lt;/code&gt;，子内用内部变量接 &lt;code&gt;:visible.sync=&amp;quot;detailShow&amp;quot;&lt;/code&gt;，再 watch &lt;code&gt;dshow&lt;/code&gt;/&lt;code&gt;detailShow&lt;/code&gt; 双向同步。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.sync&lt;/code&gt; 等价于 &lt;code&gt;:visible&lt;/code&gt; + &lt;code&gt;@update:visible&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;或用 computed getter/setter 兼监听与回写。&lt;/li&gt;
&lt;li&gt;两种稳妥模式：① &lt;code&gt;visible&lt;/code&gt; + &lt;code&gt;v-if&lt;/code&gt;（子组件不必自己控显隐）；② 双 &lt;code&gt;visible&lt;/code&gt;（父属性名与子 props 名对齐）。本质都是「两个可见状态」：仅打开时才创建子组件，父数据就绪后再挂载。&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847140-7be85776-0603-495c-9627-0a7ab86adbd6.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847094-ea6ce963-a64e-4105-9ad9-53d37f885082.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847133-00864cb3-ebb8-4ec1-8252-51bba77dc81a.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847124-61a5b7f0-83d8-4477-b71e-37ded19e41a9.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847954-a2ccc0a8-e572-4ccf-aa76-2416052bbdc5.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847714-e0bc35af-dc2c-4c19-b7a1-30a5bade42f4.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847762-9dd65096-3129-4c49-aa8e-da87a9ea8aa3.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847893-3c4968c9-2391-4f45-92e9-8c1b33730cc6.png&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;父组件调用子组件函数&#34;&gt;父组件调用子组件函数&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt; 父组件需要直接调用子组件方法。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;做法：&lt;/strong&gt; 通过 &lt;code&gt;$refs&lt;/code&gt; 拿到子实例后调用其方法（见截图）。&lt;img loading=&#34;lazy&#34; src=&#34;https://cdn.nlark.com/yuque/0/2025/png/57443523/1764811847153-01f94237-9916-4c3c-b735-66fafc916e09.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;mounted--watch-获取父组件数据&#34;&gt;mounted + watch 获取父组件数据&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt; 子组件既要处理首次打开/刷新时已有数据，也要处理后续动态点开详情时数据变化。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原因：&lt;/strong&gt; 仅 &lt;code&gt;mounted&lt;/code&gt; 或仅 &lt;code&gt;watch&lt;/code&gt; 都会漏场景。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;做法：&lt;/strong&gt; &lt;code&gt;mounted&lt;/code&gt; 处理首次已有数据；&lt;code&gt;watch&lt;/code&gt; 处理动态变更。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
