<?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>SHAIFX的技术博客</title>
    <link>/</link>
    <description>Recent content on SHAIFX的技术博客</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Tue, 11 Aug 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Wireshark 抓包入门：从安装到实战排障</title>
      <link>/posts/wireshark-%E6%8A%93%E5%8C%85%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/</link>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate>
      <guid>/posts/wireshark-%E6%8A%93%E5%8C%85%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/</guid>
      <description>Wireshark 的基础使用、常用过滤器速查，以及一个真实的网络排障案例</description>
    </item>
    <item>
      <title>n8n 自托管：搭建你的工作流自动化中心</title>
      <link>/posts/n8n-self-host/</link>
      <pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/n8n-self-host/</guid>
      <description>用 Docker 部署开源工作流自动化平台 n8n，并实战一个 RSS 推送到 Telegram 的自动化流程</description>
    </item>
    <item>
      <title>ExifTool 完整使用指南</title>
      <link>/posts/exiftool-guide-hugo/</link>
      <pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/exiftool-guide-hugo/</guid>
      <description>读取、修改、批量重命名、按时间归档照片元数据的完整命令参考</description>
    </item>
    <item>
      <title>小企鹅的二十年</title>
      <link>/posts/fcitx-story-hugo/</link>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/fcitx-story-hugo/</guid>
      <description>从一个五笔用户的私人项目，到 Linux 中文输入法的事实标准，再到落地 Android——Fcitx 二十年的跌宕起伏。</description>
    </item>
    <item>
      <title>MarkItDown：微软开源的万能文档转 Markdown 工具</title>
      <link>/posts/markitdown-blog/</link>
      <pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/markitdown-blog/</guid>
      <description>将 PDF、Word、PPT、Excel、图片、音频批量转成 Markdown，专为 LLM / RAG 场景设计。附 Windows 实战踩坑记录。</description>
    </item>
    <item>
      <title>WinUtil：Windows 一键优化工具</title>
      <link>/posts/winutil/</link>
      <pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/winutil/</guid>
      <description>Chris Titus 出品的 Windows 系统优化工具，软件安装、系统调整、隐私清理一站搞定，一条命令启动，30 million&#43; 次运行验证。</description>
    </item>
    <item>
      <title>把网站提交给搜索引擎</title>
      <link>/posts/search-engine-submission/</link>
      <pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/search-engine-submission/</guid>
      <description>Google Search Console、Bing Webmaster Tools、百度搜索资源平台的完整提交流程，以及 sitemap 和 IndexNow 的基本原理。</description>
    </item>
    <item>
      <title>ShareX 完全指南：截图、录屏与自动上传 Cloudflare R2</title>
      <link>/posts/sharex-guide-blog/</link>
      <pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/sharex-guide-blog/</guid>
      <description>深度挖掘 ShareX 20.2 的所有核心功能，从截图模式、标注编辑、工作流自动化，到配置 Cloudflare R2 作为私有图床。</description>
    </item>
    <item>
      <title>自建私有云笔记：Syncthing &#43; Tailscale &#43; Joplin 全平台同步</title>
      <link>/posts/syncthing-tailscale-joplin/</link>
      <pubDate>Mon, 22 Jun 2026 10:00:00 +0800</pubDate>
      <guid>/posts/syncthing-tailscale-joplin/</guid>
      <description>完全免费、无云商、端到端可控的笔记同步方案实战记录。</description>
    </item>
    <item>
      <title>WSL2 跑 Docker，顺手装了 Immich</title>
      <link>/posts/wsl2-docker-immich/</link>
      <pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/wsl2-docker-immich/</guid>
      <description>在 Windows 上用 WSL2 跑 Docker：无桌面端安装 Immich 私有相册全记录</description>
    </item>
    <item>
      <title>40k Stars 开源工具 LosslessCut：把 FFmpeg 的能力装进 GUI</title>
      <link>/posts/losslesscut-%E6%97%A0%E6%8D%9F%E8%A7%86%E9%A2%91%E5%89%AA%E8%BE%91/</link>
      <pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/losslesscut-%E6%97%A0%E6%8D%9F%E8%A7%86%E9%A2%91%E5%89%AA%E8%BE%91/</guid>
      <description>&lt;p&gt;剪视频，不用重新编码。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;用 Premiere 或剪映剪掉几段素材，等待导出的时间总让人抓狂——几分钟的片段，渲染半小时，画质还损失一代。这叫 generation loss，每次重新编码都会叠加损耗。其实大多数情况下你根本不需要重新编码，只是想掐头去尾、提取一段、拼几个片段而已。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/mifi/lossless-cut&#34;&gt;LosslessCut&lt;/a&gt;&lt;/strong&gt; 就是为这个场景生的。它调用捆绑的 FFmpeg，用 stream copy 模式直接复制数据流，不解码不重编，几秒钟处理几 GB 的文件，零质量损失。GitHub 上 40.9k+ Stars，挪威开发者 Mikael Finstad 独立维护，被 Hacker News、Wikipedia、YouTube 大 V 多次推荐。定位介于 Avidemux 和专业 NLE 之间——比前者强大，比后者轻快。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The swiss army knife of lossless video/audio editing&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GitHub 版本永久免费开源，这是项目的核心理念。&lt;/p&gt;
&lt;h2 id=&#34;关于作者&#34;&gt;关于作者&lt;/h2&gt;
&lt;p&gt;Mikael Finstad，挪威独立开发者，网站 &lt;a href=&#34;https://mifi.no/&#34;&gt;mifi.no&lt;/a&gt;，GitHub &lt;a href=&#34;https://github.com/mifi&#34;&gt;@mifi&lt;/a&gt;，2k+ followers。全职 freelance，技术栈以 JavaScript 为主：React、React Native、Node.js、Electron。他曾担任 SwimClips.com 的 CTO，2009 年成立了自己的软件公司 Yankee Software，主要以承接开发外包为生。&lt;/p&gt;
&lt;p&gt;除了 LosslessCut（2016 年首发，持续维护至今），他还做了不少值得一提的开源项目：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/mifi/editly&#34;&gt;Editly&lt;/a&gt;&lt;/strong&gt;（5.3k Stars）：和 LosslessCut 定位互补，后者负责无损剪切，前者负责&amp;quot;用代码剪视频&amp;quot;——基于 Node.js + FFmpeg 的声明式视频编辑工具，写一个 JSON5 配置文件就能自动合成带转场、字幕、背景音乐的视频。支持 GL shader 转场效果、Canvas/Fabric.js 自定义层、Ken Burns 效果，也可以直接当 CLI 或 npm 库用。适合批量生成视频或自动化视频制作流程。&lt;/p&gt;</description>
    </item>
    <item>
      <title>mpv：一个播放器的极简哲学</title>
      <link>/posts/mpv-the-media-player/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/mpv-the-media-player/</guid>
      <description>Windows 纯绿色便携版完整教程，官方右键注册、全套推荐脚本、画质着色器一步到位</description>
    </item>
    <item>
      <title>Voicebox：把 ElevenLabs 和 WisprFlow 装进本地</title>
      <link>/posts/voicebox-%E6%9C%AC%E5%9C%B0%E5%BC%80%E6%BA%90%E8%AF%AD%E9%9F%B3%E5%B7%A5%E4%BD%9C%E5%AE%A4/</link>
      <pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/voicebox-%E6%9C%AC%E5%9C%B0%E5%BC%80%E6%BA%90%E8%AF%AD%E9%9F%B3%E5%B7%A5%E4%BD%9C%E5%AE%A4/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;一个开源本地语音工作室——声音克隆、全局听写、TTS 生成，数据不离本机。&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;目录&#34;&gt;目录&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%AE%83%E8%A7%A3%E5%86%B3%E4%BA%86%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98&#34;&gt;它解决了什么问题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%BD%9C%E8%80%85%E4%B8%8E%E5%9B%A2%E9%98%9F&#34;&gt;作者与团队&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E7%9B%AE%E5%89%8D%E6%B0%B4%E5%B9%B3%E5%A6%82%E4%BD%95&#34;&gt;目前水平如何&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%A0%B8%E5%BF%83%E5%8A%9F%E8%83%BD&#34;&gt;核心功能&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%BC%95%E6%93%8E%E6%80%8E%E4%B9%88%E9%80%89&#34;&gt;引擎怎么选&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%B8%8E%E7%AB%9E%E5%93%81%E5%AF%B9%E6%AF%94&#34;&gt;与竞品对比&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%BC%98%E5%8A%BF%E4%B8%8E%E4%B8%8D%E8%B6%B3&#34;&gt;优势与不足&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#windows-%E5%AE%89%E8%A3%85&#34;&gt;Windows 安装&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7%E4%B8%8E%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9&#34;&gt;使用技巧与注意事项&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%8E%A5%E5%85%A5-claude-desktop&#34;&gt;接入 Claude Desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E9%80%82%E5%90%88%E8%B0%81%E7%94%A8&#34;&gt;适合谁用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%B0%8F%E7%BB%93&#34;&gt;小结&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;它解决了什么问题&#34;&gt;它解决了什么问题&lt;/h2&gt;
&lt;p&gt;想在本地跑语音合成，选项不少，但都有明显缺口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ElevenLabs&lt;/strong&gt;：效果好、声音克隆强，但每个字都在别人服务器上处理，免费额度用完就要订阅&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WisprFlow&lt;/strong&gt;：全局听写体验一流，但 macOS 独占，Windows 用户没得用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure TTS / Google TTS&lt;/strong&gt;：API 成熟，但要联网、要计费、要信任云厂商&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Voicebox 的出发点很直接：&lt;strong&gt;把这两件事合进一个应用，跑在你自己的机器上，一条数据不上传。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;作者与团队&#34;&gt;作者与团队&lt;/h2&gt;
&lt;p&gt;Voicebox 由加拿大开发者 &lt;strong&gt;Jamie Pine&lt;/strong&gt; 独立开发，同时担任 &lt;strong&gt;Spacedrive Technology Inc.&lt;/strong&gt; 的 CEO。&lt;/p&gt;
&lt;p&gt;他不是第一次做这种事。之前的代表作 &lt;a href=&#34;https://github.com/spacedriveapp/spacedrive&#34;&gt;Spacedrive&lt;/a&gt; 是一个用 Rust 构建的开源跨平台文件管理器，38k Star，走的是同一套路线：Tauri + Rust 技术栈、本地优先、审美在线。&lt;/p&gt;
&lt;p&gt;GitHub 签名三个字概括了他的风格：&lt;strong&gt;rust, ai and nice ui&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;他每天公开直播写代码，Voicebox 的很多功能都是在直播里边做边聊出来的，社区参与度很高，Issues 和 PR 回复也比较及时。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;目前水平如何&#34;&gt;目前水平如何&lt;/h2&gt;
&lt;p&gt;Voicebox 在 2025 年初开源，截至 2026 年 6 月已发布 v0.5.0，GitHub Star 28k+，在本地 TTS 工具里属于第一梯队。&lt;/p&gt;</description>
    </item>
    <item>
      <title>只改一个文件，README 自动同步——用 GitHub Actions 告别手动维护</title>
      <link>/posts/auto-readme-github-actions/</link>
      <pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/auto-readme-github-actions/</guid>
      <description>&lt;p&gt;维护开源项目或工具清单时，经常会遇到一个问题：数据文件改了，README 忘记同步。时间一长，两边对不上，要么手动逐条复制，要么干脆摆烂。&lt;/p&gt;
&lt;p&gt;这篇文章用一个真实场景——书签工具清单——来演示怎么用 GitHub Actions + Python 脚本，实现「只改 &lt;code&gt;bookmarks.yaml&lt;/code&gt;，README 自动更新」的工作流。&lt;/p&gt;
&lt;h2 id=&#34;思路&#34;&gt;思路&lt;/h2&gt;
&lt;p&gt;整个方案分两部分：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Python 脚本&lt;/strong&gt;：读取 &lt;code&gt;bookmarks.yaml&lt;/code&gt;，按固定格式生成 &lt;code&gt;README.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Actions&lt;/strong&gt;：监听 &lt;code&gt;bookmarks.yaml&lt;/code&gt; 的变动，自动触发脚本并提交结果&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;改动 &lt;code&gt;bookmarks.yaml&lt;/code&gt; 之后，不管是本地 push 还是直接在 GitHub 网页上编辑，都会自动触发，不需要手动运行任何命令。&lt;/p&gt;
&lt;h2 id=&#34;数据文件结构&#34;&gt;数据文件结构&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;bookmarks.yaml&lt;/code&gt; 的结构很简单，每个分类包含图标、名称和工具列表：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;category&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;编程工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;icon&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;🛠️&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;items&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Zed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;url&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://zed.dev/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;desc&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;轻量极速的现代代码编辑器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;opensource&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;WezTerm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;url&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://wezfurlong.org/wezterm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;desc&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;高性能跨平台终端模拟器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;opensource&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;opensource: true&lt;/code&gt; 是可选字段，没有这个字段默认视为非开源。&lt;/p&gt;
&lt;h2 id=&#34;python-脚本&#34;&gt;Python 脚本&lt;/h2&gt;
&lt;p&gt;新建 &lt;code&gt;gen_readme.py&lt;/code&gt;，放在仓库根目录：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/usr/bin/env python3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;HEADER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;# 🛠️ tools
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;gt; 精选隐私友好、开源优先的实用工具清单。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;gt; A curated list of privacy-friendly, open-source tools I actually use.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;🔓 = 开源 / Open Source
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;FOOTER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;欢迎提 Issue 或 PR 推荐新工具。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;generate_readme&lt;/span&gt;(yaml_path&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;bookmarks.yaml&amp;#34;&lt;/span&gt;, output_path&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;README.md&amp;#34;&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;with&lt;/span&gt; open(yaml_path, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;r&amp;#34;&lt;/span&gt;, encoding&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; f:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        data &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; yaml&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;safe_load(f)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    lines &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [HEADER]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; category &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; data:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        icon &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; category&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;icon&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; category&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;category&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        items &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; category&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;items&amp;#34;&lt;/span&gt;, [])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;## &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;icon&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;| 工具 | 描述 | 开源 |&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;|------|------|------|&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; item &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; items:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            tool_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; item&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            url &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; item&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            desc &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; item&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;desc&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            opensource &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;🔓&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; item&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;opensource&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;| [&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;tool_name&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;](&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;url&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;) | &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;desc&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; | &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;opensource&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; |&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(FOOTER&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;strip())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;with&lt;/span&gt; open(output_path, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;w&amp;#34;&lt;/span&gt;, encoding&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; f:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        f&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;write(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join(lines))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;✅ README.md 已生成，共 &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;len(data)&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; 个分类&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    generate_readme()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;几个关键点：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tolaria：为 AI 时代而生的本地笔记软件</title>
      <link>/posts/tolaria%E4%BB%8B%E7%BB%8D/</link>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/tolaria%E4%BB%8B%E7%BB%8D/</guid>
      <description>&lt;h1 id=&#34;tolaria为-ai-时代而生的本地笔记软件&#34;&gt;Tolaria：为 AI 时代而生的本地笔记软件&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;一个真正属于你的第二大脑——数据在本地，版本在 Git，AI 随时可调。&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;目录&#34;&gt;目录&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%AE%83%E8%A7%A3%E5%86%B3%E4%BA%86%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98&#34;&gt;它解决了什么问题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%A0%B8%E5%BF%83%E8%AE%BE%E8%AE%A1%E7%90%86%E5%BF%B5&#34;&gt;核心设计理念&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3&#34;&gt;功能详解&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%B8%8E%E4%B8%BB%E6%B5%81%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94&#34;&gt;与主流工具对比&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#ai-%E9%9B%86%E6%88%90%E6%96%B9%E6%A1%88&#34;&gt;AI 集成方案&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E9%80%82%E5%90%88%E8%B0%81%E7%94%A8&#34;&gt;适合谁用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%A6%82%E4%BD%95%E5%BC%80%E5%A7%8B&#34;&gt;如何开始&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;它解决了什么问题&#34;&gt;它解决了什么问题&lt;/h2&gt;
&lt;p&gt;用了多年笔记软件，很多人都卡在同一个问题上：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Notion&lt;/strong&gt;：界面漂亮、协作强，但数据在服务器上，断网就瘫，免费版有限制&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Obsidian&lt;/strong&gt;：本地存储、插件丰富，但编辑体验原始，上手门槛不低&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evernote / Bear&lt;/strong&gt;：易用，但格式私有，迁移麻烦，长期订阅费用累积可观&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tolaria 的出发点很简单：&lt;strong&gt;把 Obsidian 的数据主权 + Notion 的编辑体验 + AI 原生集成，合三为一。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;核心设计理念&#34;&gt;核心设计理念&lt;/h2&gt;
&lt;h3 id=&#34;-文件优先不是数据库&#34;&gt;🗂 文件优先，不是数据库&lt;/h3&gt;
&lt;p&gt;每一条笔记都是一个 &lt;code&gt;.md&lt;/code&gt; 文件，存在你的硬盘上。没有私有数据库，没有加密格式，任何文本编辑器都能打开。即使 Tolaria 明天停止开发，你的笔记也完好无损。&lt;/p&gt;
&lt;h3 id=&#34;-git-就是你的同步和备份&#34;&gt;🔁 Git 就是你的同步和备份&lt;/h3&gt;
&lt;p&gt;每个笔记库（vault）本身就是一个 Git 仓库。你可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把它推送到 GitHub / Gitea 私有仓库免费同步&lt;/li&gt;
&lt;li&gt;查看任意一条笔记的完整修改历史&lt;/li&gt;
&lt;li&gt;随时回滚到任意历史版本&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不需要订阅 Tolaria 的云服务，不需要相信任何第三方。&lt;/p&gt;
&lt;h3 id=&#34;-ai-不是插件是基础设施&#34;&gt;🤖 AI 不是插件，是基础设施&lt;/h3&gt;
&lt;p&gt;Tolaria 从设计之初就把 AI 集成作为核心功能，而不是事后加上去的插件。它内置了 MCP（Model Context Protocol）服务器，让 AI 工具可以像操作文件系统一样读写你的笔记。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;功能详解&#34;&gt;功能详解&lt;/h2&gt;
&lt;h3 id=&#34;编辑器&#34;&gt;编辑器&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;功能&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;块编辑&lt;/td&gt;
          &lt;td&gt;类 Notion 的斜杠命令，输入 &lt;code&gt;/&lt;/code&gt; 插入标题、列表、代码块等&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;双向链接&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;[[笔记名]]&lt;/code&gt; 语法，自动补全，构建知识网络&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;拖拽图片&lt;/td&gt;
          &lt;td&gt;直接拖入图片，自动保存到 vault 目录&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;键盘优先&lt;/td&gt;
          &lt;td&gt;大量快捷键，重度用户几乎不需要鼠标&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;所见即所得&lt;/td&gt;
          &lt;td&gt;Markdown 实时渲染，不用在源码和预览间切换&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;笔记组织&#34;&gt;笔记组织&lt;/h3&gt;
&lt;p&gt;Tolaria 用**类型（Type）**作为笔记的分类维度，类似轻量级数据库的&amp;quot;表&amp;quot;概念，但更灵活——类型只是导航标签，不强制校验字段。&lt;/p&gt;</description>
    </item>
    <item>
      <title>国内使用 Scoop？把 main bucket 换成 scoop-cn 就够了</title>
      <link>/posts/%E5%9B%BD%E5%86%85%E4%BD%BF%E7%94%A8-scoop%E6%8A%8A-main-bucket-%E6%8D%A2%E6%88%90-scoop-cn-%E5%B0%B1%E5%A4%9F%E4%BA%86/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/%E5%9B%BD%E5%86%85%E4%BD%BF%E7%94%A8-scoop%E6%8A%8A-main-bucket-%E6%8D%A2%E6%88%90-scoop-cn-%E5%B0%B1%E5%A4%9F%E4%BA%86/</guid>
      <description>scoop-cn 是专为国内用户维护的 Scoop 镜像库，合并了官方全部十个 bucket，并把下载地址替换为国内可访问的镜像。本文记录完整切换过程。</description>
    </item>
    <item>
      <title>用 Scoop 管理 Windows 软件，从此告别手动安装</title>
      <link>/posts/%E7%94%A8scoop%E7%AE%A1%E7%90%86windows%E8%BD%AF%E4%BB%B6/</link>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
      <guid>/posts/%E7%94%A8scoop%E7%AE%A1%E7%90%86windows%E8%BD%AF%E4%BB%B6/</guid>
      <description>Scoop 是 Windows 上的命令行包管理器，一条命令安装软件、指定路径、一键更新，换电脑也能秒速还原所有工具。</description>
    </item>
    <item>
      <title>Windows 安装包不让选路径？三招装到任意盘</title>
      <link>/posts/windows-%E5%AE%89%E8%A3%85%E5%8C%85%E4%B8%8D%E8%AE%A9%E9%80%89%E8%B7%AF%E5%BE%84%E4%B8%89%E6%8B%9B%E8%A3%85%E5%88%B0%E4%BB%BB%E6%84%8F%E7%9B%98/</link>
      <pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/windows-%E5%AE%89%E8%A3%85%E5%8C%85%E4%B8%8D%E8%AE%A9%E9%80%89%E8%B7%AF%E5%BE%84%E4%B8%89%E6%8B%9B%E8%A3%85%E5%88%B0%E4%BB%BB%E6%84%8F%E7%9B%98/</guid>
      <description>&lt;p&gt;有些 Windows 安装包，打开直接就装了，连个路径选择都没有，默认往 C 盘塞。
下面三种方法，从简单到彻底，总有一个适合你。&lt;/p&gt;
&lt;p&gt;以 ABDownloadManager 为例，其他类似的安装包思路完全一样。&lt;/p&gt;
&lt;h2 id=&#34;方法一命令行-d-参数&#34;&gt;方法一：命令行 &lt;code&gt;/D&lt;/code&gt; 参数&lt;/h2&gt;
&lt;p&gt;很多安装包底层用的是 NSIS 打包工具，支持用命令行参数指定安装路径。&lt;/p&gt;
&lt;p&gt;在安装包所在文件夹，按住 &lt;code&gt;Shift&lt;/code&gt; 右键空白处，选&lt;strong&gt;在此处打开 PowerShell 窗口&lt;/strong&gt;（或终端窗口），然后执行：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.\ABDownloadManager_1.8.8_windows_x64.exe /D=D:\ABDownloadManager
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意事项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/D=&lt;/code&gt; 后面&lt;strong&gt;不要加引号&lt;/strong&gt;，即使路径有空格也不加&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/D=...&lt;/code&gt; 必须放在命令的最后&lt;/li&gt;
&lt;li&gt;路径必须是绝对路径&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;如果安装包文件名本身有空格&lt;/strong&gt;，直接执行会报错：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.\Anytype: The term &amp;#39;.\Anytype&amp;#39; is not recognized...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这是因为 PowerShell 会把空格当作参数分隔符，把文件名截断了。解决方法是用引号包住文件名，并在前面加调用运算符 &lt;code&gt;&amp;amp;&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;amp; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.\Anytype Setup 0.55.4.exe&amp;#34;&lt;/span&gt; /D=D:\anytype
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;amp;&lt;/code&gt; 是 PowerShell 的调用运算符，专门用来执行路径中含空格的程序&lt;/li&gt;
&lt;li&gt;引号只包文件名，&lt;code&gt;/D=...&lt;/code&gt; 参数放在引号外面，保持原样&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果安装包正常弹出安装向导，安装完成后就会出现在 D 盘指定目录。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这个方法不是百分百有效——部分安装包会忽略 &lt;code&gt;/D&lt;/code&gt; 参数，强制装到 C 盘。遇到这种情况，用下面的方法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;方法二安装后迁移&#34;&gt;方法二：安装后迁移&lt;/h2&gt;
&lt;p&gt;先默认装完，再把程序整体搬到 D 盘。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;按默认流程安装完成&lt;/li&gt;
&lt;li&gt;确保程序已完全退出（任务管理器确认没有相关进程）&lt;/li&gt;
&lt;li&gt;把安装目录整个文件夹&lt;strong&gt;剪切&lt;/strong&gt;到 D 盘目标位置&lt;/li&gt;
&lt;li&gt;右键桌面快捷方式 → 属性 → 修改&lt;strong&gt;目标&lt;/strong&gt;路径指向新位置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;大部分非系统级程序直接搬就能正常运行，不需要重装。&lt;/p&gt;</description>
    </item>
    <item>
      <title>用 Hermes Agent 免费跑 AI：OpenRouter / Gemini / Groq 配置指南</title>
      <link>/posts/%E7%94%A8-hermes-agent-%E5%85%8D%E8%B4%B9%E8%B7%91-aiopenrouter--gemini--groq-%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/%E7%94%A8-hermes-agent-%E5%85%8D%E8%B4%B9%E8%B7%91-aiopenrouter--gemini--groq-%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97/</guid>
      <description>从零安装 Hermes Agent，配置三种免费 API 方案，本地跑 AI Agent 不花一分钱。</description>
    </item>
    <item>
      <title>美化你的终端：字体、主题、提示符一次搞定</title>
      <link>/posts/%E7%BE%8E%E5%8C%96%E4%BD%A0%E7%9A%84%E7%BB%88%E7%AB%AF%E5%AD%97%E4%BD%93%E4%B8%BB%E9%A2%98%E6%8F%90%E7%A4%BA%E7%AC%A6%E4%B8%80%E6%AC%A1%E6%90%9E%E5%AE%9A/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/%E7%BE%8E%E5%8C%96%E4%BD%A0%E7%9A%84%E7%BB%88%E7%AB%AF%E5%AD%97%E4%BD%93%E4%B8%BB%E9%A2%98%E6%8F%90%E7%A4%BA%E7%AC%A6%E4%B8%80%E6%AC%A1%E6%90%9E%E5%AE%9A/</guid>
      <description>升级 PowerShell、安装 Nerd Font、配置 Oh My Posh / Oh My Zsh，把默认黑框变成好看又好用的工作界面。</description>
    </item>
    <item>
      <title>Lazygit 使用指南：告别复杂的 Git 命令</title>
      <link>/posts/lazygit-%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97%E5%91%8A%E5%88%AB%E5%A4%8D%E6%9D%82%E7%9A%84-git-%E5%91%BD%E4%BB%A4/</link>
      <pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/lazygit-%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97%E5%91%8A%E5%88%AB%E5%A4%8D%E6%9D%82%E7%9A%84-git-%E5%91%BD%E4%BB%A4/</guid>
      <description>用 Lazygit 可视化管理 Git，暂存、提交、推送全程键盘操作，再也不用记复杂命令。</description>
    </item>
    <item>
      <title>多台电脑协作开发：GitHub 同步工作流指南</title>
      <link>/posts/%E5%A4%9A%E5%8F%B0%E7%94%B5%E8%84%91%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91github-%E5%90%8C%E6%AD%A5%E5%B7%A5%E4%BD%9C%E6%B5%81%E6%8C%87%E5%8D%97/</link>
      <pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/%E5%A4%9A%E5%8F%B0%E7%94%B5%E8%84%91%E5%8D%8F%E4%BD%9C%E5%BC%80%E5%8F%91github-%E5%90%8C%E6%AD%A5%E5%B7%A5%E4%BD%9C%E6%B5%81%E6%8C%87%E5%8D%97/</guid>
      <description>如何在多台电脑间同步代码，以及控制 Cloudflare Pages 自动部署的实用技巧。</description>
    </item>
    <item>
      <title>为博客添加评论区：Giscus</title>
      <link>/posts/%E4%B8%BA%E5%8D%9A%E5%AE%A2%E6%B7%BB%E5%8A%A0%E8%AF%84%E8%AE%BA%E5%8C%BA-giscus/</link>
      <pubDate>Sat, 23 May 2026 10:00:00 +0800</pubDate>
      <guid>/posts/%E4%B8%BA%E5%8D%9A%E5%AE%A2%E6%B7%BB%E5%8A%A0%E8%AF%84%E8%AE%BA%E5%8C%BA-giscus/</guid>
      <description>基于 GitHub Discussions 的免费评论系统，数据在自己手里，零成本接入 Hugo PaperMod。</description>
    </item>
    <item>
      <title>为博客添加访问统计：Umami &#43; 不蒜子</title>
      <link>/posts/umami-busuanzi-analytics/</link>
      <pubDate>Thu, 21 May 2026 11:00:00 +0800</pubDate>
      <guid>/posts/umami-busuanzi-analytics/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;一套给自己看，一套给访客看。用 Umami + 不蒜子为博客添加完整的访问统计。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;工具介绍&#34;&gt;工具介绍&lt;/h2&gt;
&lt;h3 id=&#34;umami&#34;&gt;Umami&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://umami.is&#34;&gt;Umami&lt;/a&gt; 是一款开源的网站统计工具，定位是 Google Analytics 的隐私友好替代品。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;开源&lt;/strong&gt;：代码完全公开，可自部署&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隐私友好&lt;/strong&gt;：不使用 Cookie，不追踪个人信息，符合 GDPR&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据详细&lt;/strong&gt;：访客来源、设备类型、浏览器、停留时长、实时在线人数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;免费版&lt;/strong&gt;：Umami Cloud 每月 10 万次页面浏览，个人博客完全够用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据归属&lt;/strong&gt;：显示在后台，只有博主自己能看&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;适合用来了解博客的真实流量情况。&lt;/p&gt;
&lt;h3 id=&#34;不蒜子&#34;&gt;不蒜子&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://busuanzi.ibruce.info&#34;&gt;不蒜子&lt;/a&gt; 是一个极简的页面计数器，由国内开发者维护。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;接入极简&lt;/strong&gt;：两行代码搞定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;免费无限制&lt;/strong&gt;：没有用量上限&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双维度统计&lt;/strong&gt;：网站总访问量 + 单篇文章浏览量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据公开&lt;/strong&gt;：数字直接显示在博客页面上，访客可见&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：不开源，数据存在作者服务器，部分广告拦截插件（如 Brave）会屏蔽&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;适合在博客页面直接展示浏览数字。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;两者的区别&#34;&gt;两者的区别&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;Umami&lt;/th&gt;
          &lt;th&gt;不蒜子&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;数据可见性&lt;/td&gt;
          &lt;td&gt;仅博主后台&lt;/td&gt;
          &lt;td&gt;页面公开显示&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;统计维度&lt;/td&gt;
          &lt;td&gt;详细（来源、设备等）&lt;/td&gt;
          &lt;td&gt;仅浏览次数&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;隐私&lt;/td&gt;
          &lt;td&gt;极佳&lt;/td&gt;
          &lt;td&gt;一般&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;接入难度&lt;/td&gt;
          &lt;td&gt;中&lt;/td&gt;
          &lt;td&gt;极简&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;开源&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;❌&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;两者互补，同时使用效果最好。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一接入-umami-cloud&#34;&gt;一、接入 Umami Cloud&lt;/h2&gt;
&lt;h3 id=&#34;1-注册账号&#34;&gt;1. 注册账号&lt;/h3&gt;
&lt;p&gt;打开 &lt;a href=&#34;https://umami.is&#34;&gt;umami.is&lt;/a&gt;，点 &lt;strong&gt;Sign up&lt;/strong&gt; 注册，选择数据存储地区（推荐 United States）。&lt;/p&gt;
&lt;h3 id=&#34;2-添加网站&#34;&gt;2. 添加网站&lt;/h3&gt;
&lt;p&gt;登录后进入 &lt;strong&gt;Settings&lt;/strong&gt; → &lt;strong&gt;Websites&lt;/strong&gt; → &lt;strong&gt;Add website&lt;/strong&gt;：&lt;/p&gt;</description>
    </item>
    <item>
      <title>用 Hugo &#43; Cloudflare Pages 搭建个人博客</title>
      <link>/posts/%E7%94%A8-hugo-&#43;-cloudflare-pages-%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/</link>
      <pubDate>Thu, 21 May 2026 10:39:29 +0800</pubDate>
      <guid>/posts/%E7%94%A8-hugo-&#43;-cloudflare-pages-%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;零成本、全静态、自动部署。用 Hugo 搭建个人博客并托管到 Cloudflare Pages 的完整流程。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;准备工作&#34;&gt;准备工作&lt;/h2&gt;
&lt;p&gt;安装以下工具，并注册好账号：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://git-scm.com/downloads&#34;&gt;Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gohugo.io/installation/&#34;&gt;Hugo&lt;/a&gt;（Windows 用 &lt;code&gt;winget install Hugo.Hugo.Extended&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com&#34;&gt;GitHub&lt;/a&gt; 账号&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://cloudflare.com&#34;&gt;Cloudflare&lt;/a&gt; 账号&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一创建站点&#34;&gt;一、创建站点&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo new site myblog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd myblog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;二安装-papermod-主题&#34;&gt;二、安装 PaperMod 主题&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git submodule add https://github.com/adityatelange/hugo-PaperMod themes/PaperMod
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;三配置-hugotoml&#34;&gt;三、配置 hugo.toml&lt;/h2&gt;
&lt;p&gt;用以下内容替换根目录的 &lt;code&gt;hugo.toml&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;baseURL&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;locale&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;zh-CN&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;title&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;我的博客&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;theme&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;PaperMod&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;params&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;homeInfoParams&lt;/span&gt; = {&lt;span style=&#34;color:#a6e22e&#34;&gt;Title&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;你好 👋&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;Content&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;欢迎来到我的博客&amp;#34;&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;defaultTheme&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;auto&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;ShowReadingTime&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;ShowPostNavLinks&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;ShowBreadCrumbs&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;ShowCodeCopyButtons&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;ShowToc&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;menu&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [[&lt;span style=&#34;color:#a6e22e&#34;&gt;menu&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;name&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;文章&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;url&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/posts/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;weight&lt;/span&gt; = &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [[&lt;span style=&#34;color:#a6e22e&#34;&gt;menu&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;name&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;标签&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;url&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/tags/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;weight&lt;/span&gt; = &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  [[&lt;span style=&#34;color:#a6e22e&#34;&gt;menu&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;name&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;归档&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;url&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/archives/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;weight&lt;/span&gt; = &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;outputs&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;home&lt;/span&gt; = [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;HTML&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;RSS&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;JSON&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;四创建归档页&#34;&gt;四、创建归档页&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo new content archives.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;打开文件，内容替换为：&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/about/</guid>
      <description>关于 SHAIFX：写代码、做游戏、搞 AI、拥抱开源。</description>
    </item>
    <item>
      <title>书签</title>
      <link>/bookmark/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/bookmark/</guid>
      <description></description>
    </item>
  </channel>
</rss>
