<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/scripts/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:h="http://www.w3.org/TR/html4/"><channel><title>bth95147</title><description>BtH</description><link>https://bth95147.github.io</link><item><title>macOS 27 + Python 3.14 运行 ComfyUI 报 psutil 崩溃错误记录</title><link>https://bth95147.github.io/blog/comfy-in-macos27</link><guid isPermaLink="true">https://bth95147.github.io/blog/comfy-in-macos27</guid><description>可恶的版本问题和依赖问题</description><pubDate>Tue, 23 Jun 2026 17:10:00 GMT</pubDate><content:encoded>&lt;h2&gt;问题&lt;/h2&gt;
&lt;p&gt;在 ComfyUI 成功加载完模型、准备分配内存并执行工作流时，后台线程突然抛出 &lt;code&gt;RuntimeError&lt;/code&gt;，核心报错信息如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;File &quot;/.../site-packages/psutil/_psosx.py&quot;, line 93, in virtual_memory
    total, active, inactive, wired, free, speculative = cext.virtual_mem()
RuntimeError: host_statistics64(HOST_VM_INFO64) syscall failed: (ipc/mig) array not large enough
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个报错的罪魁祸首是 &lt;strong&gt;&lt;code&gt;psutil&lt;/code&gt;&lt;/strong&gt; 这个用于监控系统资源的底层库。&lt;/p&gt;
&lt;p&gt;因为 macOS 最新的系统底层对内存统计机制做了一些调整，而 Python 3.14 又非常新，旧版本的 &lt;code&gt;psutil&lt;/code&gt; 编译包（Wheel）在调用 macOS 的 C 语言底层接口（&lt;code&gt;host_statistics64&lt;/code&gt;）时，由于内部数组大小不匹配，直接导致了内存溢出或调用失败。&lt;/p&gt;
&lt;h2&gt;解决方案&lt;/h2&gt;
&lt;p&gt;经过实测，通过以下两种方法可以完美解决该问题：&lt;/p&gt;
&lt;h3&gt;升级并强制本地重新编译 &lt;code&gt;psutil&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;既然是旧版本的二进制包不兼容，最直接的办法就是让 &lt;code&gt;psutil&lt;/code&gt; 获取到你当前系统的最新适配，或者直接在本地根据当前的系统环境重新编译安装。&lt;/p&gt;
&lt;p&gt;打开终端，激活你的 ComfyUI 虚拟环境，依次运行以下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install --upgrade psutil
or
pip install --no-binary :all: --force-reinstall psutil
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;降级到稳定的 Python 版本&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
&lt;/code&gt;&lt;/pre&gt;</content:encoded><h:img src="/_astro/thumbnail.C4DXPEMj.png"/><enclosure url="/_astro/thumbnail.C4DXPEMj.png"/></item><item><title>Remotion 在 macOS 27 上报错  spawn Unknown system error -88 记录</title><link>https://bth95147.github.io/blog/remotion-macos27-dev</link><guid isPermaLink="true">https://bth95147.github.io/blog/remotion-macos27-dev</guid><description>Remotion 版本问题</description><pubDate>Sat, 20 Jun 2026 20:45:00 GMT</pubDate><content:encoded>&lt;p&gt;最近在用 Remotion 制作视频时，遇到了一个奇怪的问题。&lt;/p&gt;
&lt;h2&gt;问题现象&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;&gt; test@1.0.0 dev
&gt; npx remotion studio

Server ready - Local: http://localhost:3001

Error: spawn Unknown system error -88
    at ChildProcess.spawn
    at makeBrowserRunner
    at HeadlessBrowser.create
    at launchChrome
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx remotion compositions
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Error: spawn Unknown system error -88
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;说明问题甚至发生在读取 Composition 之前。&lt;/p&gt;
&lt;h2&gt;环境信息&lt;/h2&gt;
&lt;p&gt;最初环境：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;macOS 27.0
Apple Silicon (arm64)

Node.js v26.3.0

Google Chrome 149.0.7827.115

Remotion 4.0.242
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h2&gt;Node 版本太高？&lt;/h2&gt;
&lt;p&gt;由于使用的是较新的 Node 26，于是首先怀疑兼容性问题。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;brew install node@22
brew unlink node
brew link --overwrite --force node@22
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;node -v
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;v22.23.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题依旧，排除 Node 版本导致的问题。&lt;/p&gt;
&lt;h2&gt;Chrome 的问题？&lt;/h2&gt;
&lt;p&gt;验证 Chrome 是否正常：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;&quot;/Applications/Google Chrome.app/Contents/MacOS/Google Chrome&quot; --version
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Google Chrome 149.0.7827.115
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证 Node 是否能够启动 Chrome：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;node -e &quot;require(&apos;child_process&apos;).spawn(&apos;/Applications/Google Chrome.app/Contents/MacOS/Google Chrome&apos;,[&apos;--version&apos;],{stdio:&apos;inherit&apos;})&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Google Chrome 149.0.7827.115
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Chrome 安装正常&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Node 可以正常 spawn Chrome&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;系统权限没有问题&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Remotion 的问题？&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx remotion compositions
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Bundled code
↓
启动浏览器
↓
崩溃
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题明确发生在：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;launchChrome()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看版本：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm list remotion
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;remotion@4.0.242
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;属于较旧版本，升级：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install remotion@latest \
@remotion/cli@latest \
@remotion/renderer@latest
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;升级后：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;@remotion/cli 4.0.481
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再次执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx remotion compositions
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;出现：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;This version of Remotion uses Chrome version 149.0.7790.0,
but the installed one differs.

Re-downloading.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;喵喵喵&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;rm -rf ~/.cache/remotion
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;写在最后&lt;/h2&gt;
&lt;p&gt;当 Remotion 报浏览器相关错误时，不一定是代码问题。很多时候是 Remotion 自带的浏览器组件与当前系统或 Chrome 版本不匹配。先升级 Remotion，再让它重新下载 Headless Chrome，往往比反复修改代码更有效。&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.B3TJJmdP.webp"/><enclosure url="/_astro/thumbnail.B3TJJmdP.webp"/></item><item><title>如何求球的表面积</title><link>https://bth95147.github.io/blog/sphere-area</link><guid isPermaLink="true">https://bth95147.github.io/blog/sphere-area</guid><description>不简单喵</description><pubDate>Fri, 20 Feb 2026 15:15:00 GMT</pubDate><content:encoded>&lt;h2&gt;问题&lt;/h2&gt;
&lt;p&gt;计算半径为 $R$ 的球的表面积&lt;/p&gt;
&lt;h2&gt;错误想法&lt;/h2&gt;
&lt;p&gt;最初尝试把 $\frac18$ 球面“拉平”，认为可以用&lt;/p&gt;
&lt;p&gt;$$
\text{面积} = (\text{一条方向的弧长}) \times (\text{另一方向长度})
$$&lt;/p&gt;
&lt;p&gt;以为可以这样算&lt;/p&gt;
&lt;p&gt;$$
\int \frac{\pi}{2} \sqrt{R^2 - x^2} , dx
$$&lt;/p&gt;
&lt;p&gt;但是不对，因为球的高斯曲率不为零，不能直接展开w&lt;/p&gt;
&lt;h2&gt;正确方法&lt;/h2&gt;
&lt;p&gt;想到祖暅原理&lt;/p&gt;
&lt;p&gt;注意到&lt;/p&gt;
&lt;p&gt;$$
V = \int_{-R}^{R} \pi (R^2 - x^2), dx
$$&lt;/p&gt;
&lt;p&gt;得&lt;/p&gt;
&lt;p&gt;$$
V = \frac{4}{3}\pi R^3
$$&lt;/p&gt;
&lt;p&gt;对半径求导得&lt;/p&gt;
&lt;p&gt;$$
\frac{dV}{dR} = 4\pi R^2
$$&lt;/p&gt;
&lt;p&gt;当然还有其他方法，后续会补充的。&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.EjjL5nac.jpg"/><enclosure url="/_astro/thumbnail.EjjL5nac.jpg"/></item><item><title>使用Termux部署Memos</title><link>https://bth95147.github.io/blog/memos-in-termux</link><guid isPermaLink="true">https://bth95147.github.io/blog/memos-in-termux</guid><description>Memos是一款有趣的开源软件喵</description><pubDate>Wed, 11 Feb 2026 15:47:00 GMT</pubDate><content:encoded>&lt;h2&gt;脚本一键部署&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/ac227/memos-in-termux/main/zh/install.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其实看到这里就可以了，下面是摸索的过程。&lt;/p&gt;
&lt;h2&gt;部署旧版 memos&lt;/h2&gt;
&lt;p&gt;一开始是想从源码编译的，因为在 termux 里使用 docker 几乎不太可能，但是出现了很多至今未解决的问题，所以就去看了一下官方的 release ，发现 &lt;code&gt;memos v0.24.0&lt;/code&gt; 提供了二进制文件，这下就好办了。部署源码的过程放在最后了。&lt;/p&gt;
&lt;p&gt;先下载解压&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;wget https://github.com/usememos/memos/releases/download/v0.24.0/memos_v0.24.0_linux_arm64.tar.gz
tar zxvf memos_v0.24.0_linux_arm64.tar.gz
rm memos_v0.24.0_linux_arm64.tar.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;直接运行就搞定了&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./memos
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;连接 TGBot&lt;/h2&gt;
&lt;p&gt;发现 &lt;code&gt;memos v0.24.0&lt;/code&gt; 没有 TGBot 的设置选项，经过一番资料查询，原来是 TGBot 被分出来成为一个单独的项目了（&lt;a href=&quot;https://github.com/usememos/telegram-integration&quot;&gt;usememos/telegram-integration&lt;/a&gt;）。这里面也有好多坑，首先不要使用最新版 release （验证 access token 时会有问题），建议使用 &lt;code&gt;memogram v0.2.0&lt;/code&gt; 。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;wget https://github.com/usememos/telegram-integration/releases/download/v0.2.0/memogram_v0.2.0_linux_arm64.tar.gz
tar zxvf memogram_v0.2.0_linux_arm64.tar.gz
rm memogram_v0.2.0_linux_arm64.tar.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;需要在同一目录写一个 &lt;code&gt;.env&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SERVER_ADDR=localhost:&amp;#x3C;memos_port&gt;
BOT_TOKEN=&amp;#x3C;your_telegram_bot_token&gt;
BOT_PROXY_ADDR=https://api.telegram.org
ALLOWED_USERNAMES=&amp;#x3C;tg_user_name_1&gt;,&amp;#x3C;tg_user_name_2&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;直接运行&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./memogram
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;初始报错&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dial tcp: lookup api.telegram.org on [::1]:53: read udp [::1]:38087-&gt;[::1]:53: read: connection refused
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;解析请求指向 IPv6 本地回环地址 &lt;code&gt;::1&lt;/code&gt; ？？？&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;go version -m $(which ./memogram) | grep -i netgo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;空返回&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cgo&lt;/code&gt; 和 &lt;code&gt;netgo&lt;/code&gt; 两种方式都会依赖 DNS 服务器配置，只是读取和解析的实现方式不同。 &lt;code&gt;cgo&lt;/code&gt; 会经过系统网络栈（可能被 Android/VPN 劫持），而 &lt;code&gt;netgo&lt;/code&gt; 完全绕开 &lt;code&gt;libc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;先尝试修复一下&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export GODEBUG=netdns=cgo
echo &quot;nameserver 8.8.8.8&quot; &gt; $PREFIX/etc/resolv.conf
echo &quot;nameserver 1.1.1.1&quot; &gt;&gt; $PREFIX/etc/resolv.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果使用 HTTP/Sock5 代理的话会出现 tls 问题：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export GODEBUG=netdns=cgo
export http_proxy=&quot;http://127.0.0.1:7890&quot;
export https_proxy=&quot;http://127.0.0.1:7890&quot;

./memogram
panic: failed to create bot: error call getMe, error do request for method getMe, Post &quot;https://api.telegram.org/token/getMe&quot;: tls: failed to verify certificate: x509: certificate signed by unknown authority
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后还是使用 &lt;code&gt;proot&lt;/code&gt; 绑定 &lt;code&gt;resolv.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;proot -b $PREFIX/etc/resolv.conf:/etc/resolv.conf \
      -b $PREFIX/etc/tls:/etc/ssl \
      ./memogram
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完美运行&lt;/p&gt;
&lt;h2&gt;从最新memos源码构建&lt;/h2&gt;
&lt;p&gt;还没成功喵，只是先记录一下，以后有时间再折腾&lt;/p&gt;
&lt;p&gt;根据&lt;a href=&quot;https://usememos.com/docs/deploy/development&quot;&gt;官网的教程&lt;/a&gt;，就是先克隆，再 run&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;1. Clone the repo
git clone https://github.com/usememos/memos.git
cd memos

2. Run the backend
go run ./cmd/memos --port 8081

3. Open the app
Visit http://localhost:8081 in your browser.
For frontend development, see the web/ directory in the Memos repository.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其实坑一堆，前端没有构建，需要自行构建一下&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd memos/web
npm run build
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Termux 一般会提示内存不足，需要增加一下 Node 堆内存&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;NODE_OPTIONS=&quot;--max-old-space-size=2048&quot; npm run build
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;需要先清空旧的 dist ，避免奇奇怪怪的问题&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;到这里应该已经得到了 memos 二进制文件，直接运行没什么问题，但是网页显示&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;No embeddable frontend found
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;找了很久问题依旧没啥进展，那个，也欢迎来讨论。&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.B-nCGKuU.png"/><enclosure url="/_astro/thumbnail.B-nCGKuU.png"/></item><item><title>Markdown语法</title><link>https://bth95147.github.io/blog/markdown-zh</link><guid isPermaLink="true">https://bth95147.github.io/blog/markdown-zh</guid><description>Markdown 是一种轻量级的「标记语言」。</description><pubDate>Fri, 01 Jan 2021 08:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;基本语法&lt;/h2&gt;
&lt;p&gt;Markdown 是一种轻量级且易于使用的语法，用于为您的写作设计风格。&lt;/p&gt;
&lt;h3&gt;标题&lt;/h3&gt;
&lt;p&gt;文章内容较多时，可以用标题分段：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;# 标题 1

## 标题 2

## 大标题

### 小标题
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;标题预览会打乱文章的结构，所以在此不展示。&lt;/p&gt;
&lt;h3&gt;粗斜体&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;_斜体文本_

**粗体文本**

**_粗斜体文本_**
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;&lt;em&gt;斜体文本&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;粗体文本&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;粗斜体文本&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;链接&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;文字链接 [链接名称](http://链接网址)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;文字链接 &lt;a href=&quot;https://google.com&quot;&gt;google&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;行内代码&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;这是一条 `单行代码`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;这是一条 &lt;code&gt;行内代码&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;代码块&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;```js
// calculate fibonacci
function fibonacci(n) {
  if (n &amp;#x3C;= 1) return 1
  return fibonacci(n - 1) + fibonacci(n - 2)
}
```
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// calculate fibonacci
function fibonacci(n) {
  if (n &amp;#x3C;= 1) return 1
  return fibonacci(n - 1) + fibonacci(n - 2)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当前使用 shiki 作为代码高亮插件，支持的语言请参考 &lt;a href=&quot;https://shiki.matsu.io/languages.html&quot;&gt;shiki / languages&lt;/a&gt;。&lt;/p&gt;
&lt;h3&gt;行内公式&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;这是一条行内公式 $e^{i\pi} + 1 = 0$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;这是一条行内公式 $e^{i\pi} + 1 = 0$&lt;/p&gt;
&lt;h3&gt;公式块&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;$$
\hat{f}(\xi) = \int_{-\infty}^{\infty} f(x) e^{-2\pi i x \xi} \, dx
$$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;$$
\hat{f}(\xi) = \int_{-\infty}^{\infty} f(x) e^{-2\pi i x \xi} , dx
$$&lt;/p&gt;
&lt;p&gt;当前使用 KaTeX 作为数学公式插件，支持的语法请参考 &lt;a href=&quot;https://katex.org/docs/supported.html&quot;&gt;KaTeX Supported Functions&lt;/a&gt;。&lt;/p&gt;
&lt;h4&gt;图片&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;![name](https://)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;删除线&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;~~删除线~~
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;~~删除线~~&lt;/p&gt;
&lt;h3&gt;列表&lt;/h3&gt;
&lt;p&gt;普通无序列表&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;- 1
- 2
- 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1&lt;/li&gt;
&lt;li&gt;2&lt;/li&gt;
&lt;li&gt;3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;普通有序列表&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;1. GPT-4
2. Claude Opus
3. LLaMa
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;GPT-4&lt;/li&gt;
&lt;li&gt;Claude Opus&lt;/li&gt;
&lt;li&gt;LLaMa&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;列表里可以继续嵌套语法&lt;/p&gt;
&lt;h3&gt;引用&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;&gt; 枪响，雷鸣，剑起。繁花血景。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;枪响，雷鸣，剑起。繁花血景。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;引用里也可以继续嵌套语法。&lt;/p&gt;
&lt;h3&gt;换行&lt;/h3&gt;
&lt;p&gt;markdown 分段落是需要空一行的。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;如果不空行
就会在一段

第一段

第二段
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;如果不空行
就会在一段&lt;/p&gt;
&lt;p&gt;第一段&lt;/p&gt;
&lt;p&gt;第二段&lt;/p&gt;
&lt;h3&gt;分隔符&lt;/h3&gt;
&lt;p&gt;如果你有写分割线的习惯，可以新起一行输入三个减号&lt;code&gt;---&lt;/code&gt; 或者星号 &lt;code&gt;***&lt;/code&gt;。当前后都有段落时，请空出一行：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;---
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;高级技巧&lt;/h2&gt;
&lt;h3&gt;行内 HTML 元素&lt;/h3&gt;
&lt;p&gt;目前只支持部分段内 HTML 元素效果，包括 &lt;code&gt;&amp;#x3C;kdb&gt; &amp;#x3C;b&gt; &amp;#x3C;i&gt; &amp;#x3C;em&gt; &amp;#x3C;sup&gt; &amp;#x3C;sub&gt; &amp;#x3C;br&gt;&lt;/code&gt; ，如&lt;/p&gt;
&lt;h4&gt;键位显示&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;使用 &amp;#x3C;kbd&gt;Ctrl&amp;#x3C;/kbd&gt; + &amp;#x3C;kbd&gt;Alt&amp;#x3C;/kbd&gt; + &amp;#x3C;kbd&gt;Del&amp;#x3C;/kbd&gt; 重启电脑
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;使用 Ctrl + Alt + Del 重启电脑&lt;/p&gt;
&lt;h4&gt;粗斜体&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;&amp;#x3C;b&gt; Markdown 在此处同样适用，如 _加粗_ &amp;#x3C;/b&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt; Markdown 在此处同样适用，如 &lt;em&gt;加粗&lt;/em&gt; &lt;/p&gt;
&lt;h3&gt;其他 HTML 写法&lt;/h3&gt;
&lt;h4&gt;折叠块&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;&amp;#x3C;details&gt;&amp;#x3C;summary&gt;点击展开&amp;#x3C;/summary&gt;它被隐藏了&amp;#x3C;/details&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;h3&gt;表格&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;| 表头1 | 表头2 |
| ----- | ----- |
| 内容1 | 内容2 |
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;| 表头1 | 表头2 |
| ----- | ----- |
| 内容1 | 内容2 |&lt;/p&gt;
&lt;h3&gt;注释&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;在引用的地方使用 [^注释] 来添加注释。

然后在文档的结尾，添加注释的内容（会默认于文章结尾渲染之）。

[^注释]: 这里是注释的内容
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;在引用的地方使用 &lt;a href=&quot;%E8%BF%99%E9%87%8C%E6%98%AF%E6%B3%A8%E9%87%8A%E7%9A%84%E5%86%85%E5%AE%B9&quot;&gt;^注释&lt;/a&gt; 来添加注释。&lt;/p&gt;
&lt;p&gt;然后在文档的结尾，添加注释的内容（会默认于文章结尾渲染之）。&lt;/p&gt;
&lt;h3&gt;To-Do 列表&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;- [ ] 未完成的任务
- [x] 已完成的任务
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[ ] 未完成的任务&lt;/li&gt;
&lt;li&gt;[x] 已完成的任务&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;符号转义&lt;/h3&gt;
&lt;p&gt;如果你的描述中需要用到 markdown 的符号，比如 _ # * 等，但又不想它被转义，这时候可以在这些符号前加反斜杠，如 &lt;code&gt;\_&lt;/code&gt; &lt;code&gt;\#&lt;/code&gt; &lt;code&gt;\*&lt;/code&gt; 进行避免。&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;\_不想这里的文本变斜体\_

\*\*不想这里的文本被加粗\*\*
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;预览：&lt;/p&gt;
&lt;p&gt;_不想这里的文本变斜体_&lt;/p&gt;
&lt;p&gt;**不想这里的文本被加粗**&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;内嵌 Astro 组件&lt;/h2&gt;
&lt;p&gt;See &lt;a href=&quot;/docs/integrations/components&quot;&gt;User Components&lt;/a&gt; and &lt;a href=&quot;/docs/integrations/advanced&quot;&gt;Advanced Components&lt;/a&gt; for details.&lt;/p&gt;</content:encoded><h:img src="/_astro/thumbnail.HAXFr_hw.jpg"/><enclosure url="/_astro/thumbnail.HAXFr_hw.jpg"/></item></channel></rss>