<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>帅猴观察日志</title><link>https://betterz.cn</link><atom:link href="https://betterz.cn/feed.xml" rel="self" type="application/rss+xml"/><description>帅猴观察日志</description><generator>Halo v2.25.1</generator><language>zh-cn</language><image><url>https://betterz.cn/upload/1000055706.jpg</url><title>帅猴观察日志</title><link>https://betterz.cn</link></image><lastBuildDate>Fri, 25 Sep 2026 17:30:22 GMT</lastBuildDate><item><title><![CDATA[Arch终端美化]]></title><link>https://betterz.cn/archives/archzhong-duan-mei-hua</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=Arch%E7%BB%88%E7%AB%AF%E7%BE%8E%E5%8C%96&amp;url=/archives/archzhong-duan-mei-hua" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E8%B7%AF%E7%BA%BF%E5%9B%BE" tabindex="-1">路线图</h1>
<ol>
 <li><strong>装包</strong>：Nerd Font + starship + eza + bat + fastfetch</li>
 <li><strong>alacritty</strong>：换字体 + 套 Catppuccin Mocha 主题</li>
 <li><strong>fish</strong>：接入 starship + 设置 eza/bat 缩写</li>
 <li><strong>验收</strong>：看最终效果</li>
</ol>
<h1 id="%E4%B8%80%E3%80%81%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E5%8C%85" tabindex="-1">一、安装软件包</h1>
<p>这五个包都在官方仓库，一条命令搞定：</p>
<pre><code class="language-fish">sudo pacman -S ttf-jetbrains-mono-nerd starship eza bat fastfetch
</code></pre>
<h1 id="%E4%BA%8C%E3%80%81%E9%85%8D%E7%BD%AE-alacritty" tabindex="-1">二、配置 Alacritty</h1>
<h2 id="1.-%E5%86%99%E5%85%A5-mocha-%E4%B8%BB%E9%A2%98%EF%BC%8C%E6%94%B6%E8%B5%B7%E6%97%A7%E4%B8%BB%E9%A2%98" tabindex="-1">1. 写入 Mocha 主题，收起旧主题</h2>
<pre><code class="language-fish">mv ~/.config/alacritty/dank-theme.toml ~/.config/alacritty/dank-theme.toml.bak
curl -fLo ~/.config/alacritty/catppuccin-mocha.toml https://github.com/catppuccin/alacritty/raw/main/catppuccin-mocha.toml
wc -l ~/.config/alacritty/catppuccin-mocha.toml; head -n 3 ~/.config/alacritty/catppuccin-mocha.toml
</code></pre>
<p><code>mv</code> 是把旧的 dank 主题改名收起——留一份备份，也避免多套主题互相覆盖；<code>curl</code> 的 <code>-f</code> 保证 HTTP 出错时直接失败，而不是把 404 页面当成主题文件存下来，<code>-L</code> 用于跟随 GitHub 的跳转。</p>
<h2 id="2.-%E5%86%99%E5%85%A5%E4%B8%BB%E9%85%8D%E7%BD%AE" tabindex="-1">2. 写入主配置</h2>
<pre><code class="language-fish">begin
    echo 'general.import = ["~/.config/alacritty/catppuccin-mocha.toml"]'
    echo ''
    echo '[window]'
    echo 'opacity = 0.95'
    echo 'padding = { x = 10, y = 10 }'
    echo ''
    echo '[font]'
    echo 'size = 11.5'
    echo ''
    echo '[font.normal]'
    echo 'family = "JetBrainsMono Nerd Font"'
    echo 'style = "Regular"'
    echo ''
    echo '[font.bold]'
    echo 'family = "JetBrainsMono Nerd Font"'
    echo 'style = "Bold"'
    echo ''
    echo '[font.italic]'
    echo 'family = "JetBrainsMono Nerd Font"'
    echo 'style = "Italic"'
    echo ''
    echo '[font.bold_italic]'
    echo 'family = "JetBrainsMono Nerd Font"'
    echo 'style = "Bold Italic"'
end &gt; ~/.config/alacritty/alacritty.toml
cat ~/.config/alacritty/alacritty.toml
</code></pre>
<p><strong>预期输出</strong>：写入无提示，最后 <code>cat</code> 回显整个文件，首行是 <code>general.import = [...]</code>，共 24 行。</p>
<p>写完后有两个可调点（以后想改直接编辑这个文件，alacritty 会热重载）：</p>
<ul>
 <li><strong>透明度</strong>：不喜欢朦胧感就把 <code>opacity = 0.95</code> 改成 <code>1.0</code></li>
 <li><strong>字号</strong>：<code>size = 11.5</code> 按需调整</li>
</ul>
<p>然后<strong>开一个新的 alacritty 窗口</strong>——旧窗口在启动时就已经读完配置，不会自动变色。新窗口应该看到：背景变成 Mocha 的深蓝黑、文字是柔和的米白、字体变成 JetBrains Mono，窗口带轻微透明和内边距。</p>
<h1 id="%E4%B8%89%E3%80%81%E9%85%8D%E7%BD%AE-fish" tabindex="-1">三、配置 fish</h1>
<h2 id="1.-%E5%85%B3%E6%8E%89%E6%AC%A2%E8%BF%8E%E8%AF%AD" tabindex="-1">1. 关掉欢迎语</h2>
<p>fish 的持久变量一条命令永久关掉，不用动任何配置文件：</p>
<pre><code class="language-fish">set -U fish_greeting
</code></pre>
<p><code>set -U</code> 是 fish 的「跨会话持久变量」，写一次对所有新开的 fish 生效，欢迎语从此消失。如果它没生效，见文末《常见问题》里的排查方法。</p>
<h2 id="2.-%E6%8E%A5%E5%85%A5-starship-%E4%B8%8E-eza%2Fbat-%E7%BC%A9%E5%86%99" tabindex="-1">2. 接入 starship 与 eza/bat 缩写</h2>
<p>往 <code>config.fish</code> <strong>末尾追加</strong>（<code>&gt;&gt;</code> 不会动你已有的内容）：</p>
<pre><code class="language-fish">begin
    echo ''
    echo '# --- terminal rice: starship prompt ---'
    echo 'if status is-interactive'
    echo '    starship init fish | source'
    echo ''
    echo '    # eza &amp; bat abbreviations'
    echo '    abbr -a ls eza'
    echo '    abbr -a ll "eza -l --git --icons=auto"'
    echo '    abbr -a la "eza -la --git --icons=auto"'
    echo '    abbr -a lt "eza --tree --level=2 --icons=auto"'
    echo '    abbr -a cat bat'
    echo 'end'
end &gt;&gt; ~/.config/fish/config.fish
tail -n 12 ~/.config/fish/config.fish
</code></pre>
<p>缩写（abbr）是 fish 的原生功能——敲 <code>ls</code> 回车前它会原地展开成 <code>eza</code>，看得见也改得掉，比 alias 更透明；而且只作用于交互式输入，脚本里的 <code>ls</code>、<code>cat</code> 不受影响。不需要把 <code>cat</code> 换成 <code>bat</code> 的话，删掉那行即可。</p>
<h2 id="3.-%E5%BA%94%E7%94%A8-catppuccin-powerline-%E9%A2%84%E8%AE%BE" tabindex="-1">3. 应用 Catppuccin Powerline 预设</h2>
<pre><code class="language-fish">starship preset catppuccin-powerline -o ~/.config/starship.toml
head -n 6 ~/.config/starship.toml
</code></pre>
<p>这条命令会把官方预设写进 <code>~/.config/starship.toml</code>，提示符变成一整条 powerline 分段条：目录、git 状态、语言版本各占一段，用 Nerd Font 箭头衔接，颜色和 Mocha 终端同源。</p>
<h1 id="%E5%9B%9B%E3%80%81%E9%AA%8C%E6%94%B6" tabindex="-1">四、验收</h1>
<p>在任意窗口跑：</p>
<pre><code class="language-fish">fastfetch
ls
</code></pre>
<p><strong>预期效果</strong>：</p>
<ul>
 <li><code>fastfetch</code>：Arch logo + 系统信息面板（显卡、内核、合成器、终端都会列出来），在 Mocha 配色下观感很整体</li>
 <li><code>ls</code>：彩色条目 + 每个文件/目录的 Nerd Font 小图标</li>
</ul>
<h1 id="%E5%8F%AF%E9%80%89%EF%BC%9A%E5%BC%80%E6%96%B0%E7%AA%97%E5%8F%A3%E6%97%B6%E6%98%BE%E7%A4%BA%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF" tabindex="-1">可选：开新窗口时显示系统信息</h1>
<p>喜欢每次开终端先秀一眼机器状态的，追加这段（新窗口生效）：</p>
<pre><code class="language-fish">begin
    echo 'if status is-interactive'
    echo '    fastfetch'
    echo 'end'
end &gt;&gt; ~/.config/fish/config.fish
</code></pre>
<p>不想要就不跑，对现有配置零影响。</p>
<h1 id="%E6%95%88%E6%9E%9C%E5%AF%B9%E6%AF%94" tabindex="-1">效果对比</h1>
<p><img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2FScreenshot_2026-09-20-13-07-45-619_com.miui.gallery-edit.jpg&amp;size=m" alt="">
 <br>
 <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2FPasted%2520image%252020260920120504.png&amp;size=m" alt=""></p>]]></description><guid isPermaLink="false">/archives/archzhong-duan-mei-hua</guid><dc:creator>Zhou</dc:creator><pubDate>Sun, 20 Sep 2026 11:14:06 GMT</pubDate></item><item><title><![CDATA[《超时空辉夜姬》]]></title><link>https://betterz.cn/archives/chao-shi-kong-hui-ye-ji</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8A%E8%B6%85%E6%97%B6%E7%A9%BA%E8%BE%89%E5%A4%9C%E5%A7%AC%E3%80%8B&amp;url=/archives/chao-shi-kong-hui-ye-ji" width="1" height="1" alt="" style="opacity:0;">
<p>女孩子们之间真是好啊</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.3001876172607880 1 0%;" data-aspect-ratio="1.3001876172607880">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055849%25201.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055849%201.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<h1 id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6" tabindex="-1">推荐程度</h1>
<p>推荐</p>
<h1 id="%E4%B8%AA%E4%BA%BA%E8%AF%84%E5%88%86" tabindex="-1">个人评分</h1>
<p>8分</p>
<h1 id="%E8%A7%82%E5%90%8E%E6%84%9F" tabindex="-1">观后感</h1>
<p>​这段时间实在太忙，断断续续看了一周才算补完。
 <br>
 ​很不错的的作品。最直观的感受就是画面精细、作画经费拉满，甚至还用了初音未来的曲子。但更打动人的还是剧本：表面上看是彩叶与辉夜的双向奔赴，细想就会发现，两个人其实是在慢慢活成对方的模样。起初彩叶只知道一味埋头硬撑，后来逐渐被辉夜随性洒脱的生活态度所感染；而辉夜最初那种没心没肺的玩闹状态，也在相处中学会了像彩叶一样去认真面对与承担。这种“互为镜像”的对称感贯穿了整部作品，无论是人物弧光还是剧情结构，都呼应得恰到好处。
 <br>
 ​看完其实挺羡慕彩叶身上那种毫无保留的冲劲。最近自己现实里的压力也很大，但无论怎么调整，好像都很难像她那样始终充满干劲。
 <br>
 不过过了八千年八千代还能像小孩一样吗？快到结局的那句“我现在是老太婆了”挺心酸的。如果是一般的作品我会开始各种挑刺了，不过我对这种题材的作品包容度很高，反正给我看爽了😋
 <br>
 最后一段其实没咋看明白，八千代不是把意识上传到辉夜机器人身上了吗？怎么最后是三个人一起跳舞？</p>
<h1 id="%E8%B5%84%E6%BA%90" tabindex="-1">资源</h1>
<!-- 网盘下载卡片：与 halo-plugin-download-links 样式一致，可重新运行模板编辑 -->
<style>.tdl-card{--tdl-border:#edf2f7;--tdl-bg:#fafcff;--tdl-header-bg:#f7fbff;--tdl-header-color:#0f172a;--tdl-title:#0f172a;--tdl-item-bg:#ffffff;--tdl-icon-bg:#eef2f7;--tdl-meta:#6b7280;--tdl-btn-bg:#60a5fa;--tdl-btn-border:#93c5fd;--tdl-btn-bg-hover:#3b82f6;--tdl-btn-border-hover:#60a5fa}body.theme-dark .tdl-card,.color-scheme-dark .tdl-card,.dark .tdl-card,[data-color-scheme=dark] .tdl-card,html[data-mode=dark] .tdl-card{--tdl-border:#374151;--tdl-bg:#1f2937;--tdl-header-bg:#374151;--tdl-header-color:#f9fafb;--tdl-title:#f9fafb;--tdl-item-bg:#374151;--tdl-icon-bg:#4b5563;--tdl-meta:#9ca3af;--tdl-btn-bg:#3b82f6;--tdl-btn-border:#60a5fa;--tdl-btn-bg-hover:#2563eb;--tdl-btn-border-hover:#3b82f6}.tdl-card .tdl-item{transition:transform .18s ease,border-color .18s ease}.tdl-card .tdl-item:hover{transform:translateY(-1px)}.tdl-card a.tdl-btn{transition:background .2s ease,border-color .2s ease}.tdl-card a.tdl-btn:hover{background:var(--tdl-btn-bg-hover)!important;border-color:var(--tdl-btn-border-hover)!important}@media (hover:none){.tdl-card .tdl-item:hover{transform:none}}</style>
<div class="tdl-card" data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/1EuPOW9H75FajU4sF6TUCoA?pwd=8aee&quot;,&quot;filename&quot;:&quot;《超时空辉夜姬》&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;8aee&quot;,&quot;type&quot;:&quot;baidu&quot;}]" style="border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;background:var(--tdl-bg,#fafcff);overflow:hidden;margin:12px 0;font-family:inherit">
 <div style="display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--tdl-header-bg,#f7fbff);border-bottom:1px solid var(--tdl-border,#edf2f7);font-weight:600;color:var(--tdl-header-color,#0f172a);font-size:13px">下载地址</div>
 <div style="margin:0;padding:10px 12px">
  <div class="tdl-item" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;margin:10px 0;background:var(--tdl-item-bg,#ffffff)">
   <div style="display:flex;align-items:center;gap:10px;min-width:0;flex:1">
    <div style="width:40px;height:40px;border-radius:10px;background-color:var(--tdl-icon-bg,#eef2f7);flex-shrink:0;background-image:url(data:image/png;base64,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);background-size:contain;background-position:center;background-repeat:no-repeat"></div>
    <div style="display:grid;gap:4px;min-width:0;flex:1">
     <div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--tdl-title,#0f172a)">《超时空辉夜姬》</div>
     <div style="color:var(--tdl-meta,#6b7280);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">
      百度云网盘 · 提取码：<span style="font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:1px">8aee</span>
     </div>
    </div>
   </div>
   <a class="tdl-btn" href="https://pan.baidu.com/s/1EuPOW9H75FajU4sF6TUCoA?pwd=8aee" target="_blank" rel="noopener noreferrer" title="下载" style="display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:var(--tdl-btn-bg,#60a5fa);border:1px solid var(--tdl-btn-border,#93c5fd);color:#ffffff;flex-shrink:0;cursor:pointer;text-decoration:none;line-height:0">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
     <path d="M12 4v10" /><path d="m8 10 4 4 4-4" /><path d="M5 20h14" />
    </svg>
   </a>
  </div>
 </div>
</div>
<h1 id="%E5%9B%BE%E7%89%87%E5%88%86%E4%BA%AB" tabindex="-1">图片分享</h1>
<p>图片来源：
 <br>
 <a href="https://x.com/nasubiyori/status/2071971853837758635">https://x.com/nasubiyori/status/2071971853837758635</a>
 <br>
 <a href="https://www.pixiv.net/artworks/143660021">https://www.pixiv.net/artworks/143660021</a>
 <br>
 <a href="https://www.pixiv.net/artworks/141273914">https://www.pixiv.net/artworks/141273914</a></p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.5827814569536425 1 0%;" data-aspect-ratio="1.5827814569536425">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055882-drYc.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055882-drYc.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.7058823529411765 1 0%;" data-aspect-ratio="0.7058823529411765">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055883-FSua.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055883-FSua.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.8840277777777779 1 0%;" data-aspect-ratio="1.8840277777777779">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055884-tuMw.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055884-tuMw.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>]]></description><guid isPermaLink="false">/archives/chao-shi-kong-hui-ye-ji</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055866.jpg&amp;size=m" type="image/jpeg" length="189820"/><category>影视</category><pubDate>Wed, 9 Sep 2026 13:51:10 GMT</pubDate></item><item><title><![CDATA[《冰海战记》第一二季]]></title><link>https://betterz.cn/archives/bing-hai-zhan-ji</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8A%E5%86%B0%E6%B5%B7%E6%88%98%E8%AE%B0%E3%80%8B%E7%AC%AC%E4%B8%80%E4%BA%8C%E5%AD%A3&amp;url=/archives/bing-hai-zhan-ji" width="1" height="1" alt="" style="opacity:0;">
<p>公元10世纪末期，世界各地出现了只做战争掠夺的最强民族–维京人。被讴歌为最强战士的儿子托尔芬，自小便生活在战场上，并向往着梦幻大陆“文兰”这是一个发生在激荡时代的，真正的战士物语。</p>
<h1 id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6" tabindex="-1">推荐程度</h1>
<p>不推荐</p>
<h1 id="%E4%B8%AA%E4%BA%BA%E8%AF%84%E5%88%86" tabindex="-1">个人评分</h1>
<p>6分，画面较好。</p>
<h1 id="%E8%A7%82%E5%90%8E%E6%84%9F" tabindex="-1">观后感</h1>
<p>评价最好的动漫，评论区无一例外不在吹捧。看之前以为是比肩《巨人》《剑风传奇》的神作，看完后感觉平平无奇甚至有点拉跨。
 <br>
 第一点想吐槽的就是大量无意义的剧情，这种剧情也不能说是注水，但是就是很慢很无聊。
 <br>
 第二点也是我最看不下去的原因，思想太幼稚了。作者想描写战争的残酷，描写的确实不错，不过战争的本质什么的没有更加深入，只停留在了战争残酷本身。而且主角们的动机和剧情的推动完全是作者意淫的，既然想写这种写实的深刻的剧情那思想就应该更深刻一些，然而剧情中这些完全就是作者想当然，认为接下来应该这样，这种事会这样，人物是决定历史走向的决定因素，过于脱离现实逻辑了。那个男娘的“兼爱”，太理想化脱离实际了，正常来说不会有人追随他，然而偏偏打动了很多人。最不理解的是主角托尔芬的思想，能不动手就不动手，颇像“非暴力不合作”，太理想化了作者太想当然了，按照逻辑来说不会有这么多人被他打动，而且不动手打架只耍嘴皮子这部动漫也不会好看的。
 <br>
 还是有优点的，画面出色，人物塑造出色，不过仅限于此了。</p>
<h1 id="%E8%B5%84%E6%BA%90" tabindex="-1">资源</h1>
<p>我只找到了第一季的原盘资源，第二季不是原盘，如果大家有的话可以分享出来。</p>
<!-- 网盘下载卡片：与 halo-plugin-download-links 样式一致，可重新运行模板编辑 -->
<style>.tdl-card{--tdl-border:#edf2f7;--tdl-bg:#fafcff;--tdl-header-bg:#f7fbff;--tdl-header-color:#0f172a;--tdl-title:#0f172a;--tdl-item-bg:#ffffff;--tdl-icon-bg:#eef2f7;--tdl-meta:#6b7280;--tdl-btn-bg:#60a5fa;--tdl-btn-border:#93c5fd;--tdl-btn-bg-hover:#3b82f6;--tdl-btn-border-hover:#60a5fa}body.theme-dark .tdl-card,.color-scheme-dark .tdl-card,.dark .tdl-card,[data-color-scheme=dark] .tdl-card,html[data-mode=dark] .tdl-card{--tdl-border:#374151;--tdl-bg:#1f2937;--tdl-header-bg:#374151;--tdl-header-color:#f9fafb;--tdl-title:#f9fafb;--tdl-item-bg:#374151;--tdl-icon-bg:#4b5563;--tdl-meta:#9ca3af;--tdl-btn-bg:#3b82f6;--tdl-btn-border:#60a5fa;--tdl-btn-bg-hover:#2563eb;--tdl-btn-border-hover:#3b82f6}.tdl-card .tdl-item{transition:transform .18s ease,border-color .18s ease}.tdl-card .tdl-item:hover{transform:translateY(-1px)}.tdl-card a.tdl-btn{transition:background .2s ease,border-color .2s ease}.tdl-card a.tdl-btn:hover{background:var(--tdl-btn-bg-hover)!important;border-color:var(--tdl-btn-border-hover)!important}@media (hover:none){.tdl-card .tdl-item:hover{transform:none}}</style>
<div class="tdl-card" data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/167iY0r2s44N-E1Tl8aIi6g?pwd=busi&quot;,&quot;filename&quot;:&quot;《冰海战记》&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;busi&quot;,&quot;type&quot;:&quot;baidu&quot;}]" style="border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;background:var(--tdl-bg,#fafcff);overflow:hidden;margin:12px 0;font-family:inherit">
 <div style="display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--tdl-header-bg,#f7fbff);border-bottom:1px solid var(--tdl-border,#edf2f7);font-weight:600;color:var(--tdl-header-color,#0f172a);font-size:13px">下载地址</div>
 <div style="margin:0;padding:10px 12px">
  <div class="tdl-item" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;margin:10px 0;background:var(--tdl-item-bg,#ffffff)">
   <div style="display:flex;align-items:center;gap:10px;min-width:0;flex:1">
    <div style="width:40px;height:40px;border-radius:10px;background-color:var(--tdl-icon-bg,#eef2f7);flex-shrink:0;background-image:url(data:image/png;base64,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);background-size:contain;background-position:center;background-repeat:no-repeat"></div>
    <div style="display:grid;gap:4px;min-width:0;flex:1">
     <div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--tdl-title,#0f172a)">《冰海战记》</div>
     <div style="color:var(--tdl-meta,#6b7280);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">
      百度云网盘 · 提取码：<span style="font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:1px">busi</span>
     </div>
    </div>
   </div>
   <a class="tdl-btn" href="https://pan.baidu.com/s/167iY0r2s44N-E1Tl8aIi6g?pwd=busi" target="_blank" rel="noopener noreferrer" title="下载" style="display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:var(--tdl-btn-bg,#60a5fa);border:1px solid var(--tdl-btn-border,#93c5fd);color:#ffffff;flex-shrink:0;cursor:pointer;text-decoration:none;line-height:0">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
     <path d="M12 4v10" /><path d="m8 10 4 4 4-4" /><path d="M5 20h14" />
    </svg>
   </a>
  </div>
 </div>
</div>]]></description><guid isPermaLink="false">/archives/bing-hai-zhan-ji</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F1000055707.jpg&amp;size=m" type="image/jpeg" length="143319"/><category>影视</category><pubDate>Mon, 31 Aug 2026 10:18:27 GMT</pubDate></item><item><title><![CDATA[《孤独摇滚》]]></title><link>https://betterz.cn/archives/gu-du-yao-gun</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8A%E5%AD%A4%E7%8B%AC%E6%91%87%E6%BB%9A%E3%80%8B&amp;url=/archives/gu-du-yao-gun" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6" tabindex="-1">推荐程度</h1>
<p>疲惫的时候可以看</p>
<h1 id="%E4%B8%AA%E4%BA%BA%E8%AF%84%E5%88%86" tabindex="-1">个人评分</h1>
<p>8分</p>
<h1 id="%E8%A7%82%E5%90%8E%E6%84%9F" tabindex="-1">观后感</h1>
<p>偏无厘头搞笑，但是我感觉笑点挺稀疏的，后面两集比较好看前面挺平淡的。
 <br>
 看着这偏日常的番还是要看有没有自己喜欢的角色，不然看起来会感觉很无聊。虽然波奇酱很可爱。
 <br>
 总体来说还是很不错的，角色塑造很有个性。
 <br>
 第8集演出为什么会状态不好？为了强硬地显出波奇酱的作用有点太刻意了。</p>
<h1 id="%E8%B5%84%E6%BA%90" tabindex="-1">资源</h1>
<!-- 网盘下载卡片：与 halo-plugin-download-links 样式一致，可重新运行模板编辑 -->
<style>.tdl-card{--tdl-border:#edf2f7;--tdl-bg:#fafcff;--tdl-header-bg:#f7fbff;--tdl-header-color:#0f172a;--tdl-title:#0f172a;--tdl-item-bg:#ffffff;--tdl-icon-bg:#eef2f7;--tdl-meta:#6b7280;--tdl-btn-bg:#60a5fa;--tdl-btn-border:#93c5fd;--tdl-btn-bg-hover:#3b82f6;--tdl-btn-border-hover:#60a5fa}body.theme-dark .tdl-card,.color-scheme-dark .tdl-card,.dark .tdl-card,[data-color-scheme=dark] .tdl-card,html[data-mode=dark] .tdl-card{--tdl-border:#374151;--tdl-bg:#1f2937;--tdl-header-bg:#374151;--tdl-header-color:#f9fafb;--tdl-title:#f9fafb;--tdl-item-bg:#374151;--tdl-icon-bg:#4b5563;--tdl-meta:#9ca3af;--tdl-btn-bg:#3b82f6;--tdl-btn-border:#60a5fa;--tdl-btn-bg-hover:#2563eb;--tdl-btn-border-hover:#3b82f6}.tdl-card .tdl-item{transition:transform .18s ease,border-color .18s ease}.tdl-card .tdl-item:hover{transform:translateY(-1px)}.tdl-card a.tdl-btn{transition:background .2s ease,border-color .2s ease}.tdl-card a.tdl-btn:hover{background:var(--tdl-btn-bg-hover)!important;border-color:var(--tdl-btn-border-hover)!important}@media (hover:none){.tdl-card .tdl-item:hover{transform:none}}</style>
<div class="tdl-card" data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/1wOooH4SzRzLpkxgNhIscFw?pwd=5d20&quot;,&quot;filename&quot;:&quot;《孤独摇滚》&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;5d20&quot;,&quot;type&quot;:&quot;baidu&quot;}]" style="border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;background:var(--tdl-bg,#fafcff);overflow:hidden;margin:12px 0;font-family:inherit">
 <div style="display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--tdl-header-bg,#f7fbff);border-bottom:1px solid var(--tdl-border,#edf2f7);font-weight:600;color:var(--tdl-header-color,#0f172a);font-size:13px">下载地址</div>
 <div style="margin:0;padding:10px 12px">
  <div class="tdl-item" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;margin:10px 0;background:var(--tdl-item-bg,#ffffff)">
   <div style="display:flex;align-items:center;gap:10px;min-width:0;flex:1">
    <div style="width:40px;height:40px;border-radius:10px;background-color:var(--tdl-icon-bg,#eef2f7);flex-shrink:0;background-image:url(data:image/png;base64,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);background-size:contain;background-position:center;background-repeat:no-repeat"></div>
    <div style="display:grid;gap:4px;min-width:0;flex:1">
     <div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--tdl-title,#0f172a)">《孤独摇滚》</div>
     <div style="color:var(--tdl-meta,#6b7280);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">
      百度云网盘 · 提取码：<span style="font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:1px">5d20</span>
     </div>
    </div>
   </div>
   <a class="tdl-btn" href="https://pan.baidu.com/s/1wOooH4SzRzLpkxgNhIscFw?pwd=5d20" target="_blank" rel="noopener noreferrer" title="下载" style="display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:var(--tdl-btn-bg,#60a5fa);border:1px solid var(--tdl-btn-border,#93c5fd);color:#ffffff;flex-shrink:0;cursor:pointer;text-decoration:none;line-height:0">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
     <path d="M12 4v10" /><path d="m8 10 4 4 4-4" /><path d="M5 20h14" />
    </svg>
   </a>
  </div>
 </div>
</div>]]></description><guid isPermaLink="false">/archives/gu-du-yao-gun</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055654.jpg&amp;size=m" type="image/jpeg" length="64374"/><category>影视</category><pubDate>Thu, 27 Aug 2026 16:39:58 GMT</pubDate></item><item><title><![CDATA[二叉树的遍历与还原]]></title><link>https://betterz.cn/archives/er-cha-shu-de-bian-li-yu-huan-yuan</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%81%8D%E5%8E%86%E4%B8%8E%E8%BF%98%E5%8E%9F&amp;url=/archives/er-cha-shu-de-bian-li-yu-huan-yuan" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E7%94%B1%E6%A0%91%E5%86%99%E5%BA%8F%E5%88%97" tabindex="-1">由树写序列</h1>
<p>给一棵树，怎么报出四种序列，举例：</p>
<pre><code>        a
       / \
      b   c
       \  / \
        d e   f
           \
            g
</code></pre>
<h2 id="%E5%85%88%E5%BA%8F%E5%BA%8F%E5%88%97" tabindex="-1">先序序列</h2>
<p>NLR：先根，再左子树，再右子树。</p>
<p>a是根，先报a。</p>
<p>a</p>
<p>左右子树的根是b和c，跟在后面。</p>
<p>a b c</p>
<p>当b为根，d在右，b后面补d。</p>
<p>a b d c</p>
<p>当c为根，e在左，f在右，e、f跟在c后面。</p>
<p>a b d c e f</p>
<p>当e为根，g在右，g排在e后、f前。</p>
<p>a b d c e g f</p>
<p>NLR（先序遍历）: a, b, d, c, e, g, f</p>
<h2 id="%E4%B8%AD%E5%BA%8F%E5%BA%8F%E5%88%97" tabindex="-1">中序序列</h2>
<p>LNR：先左子树，再根，再右子树。</p>
<p>第一遍只看大框架：左子树在前，根a居中，右子树在后。</p>
<p>b a c</p>
<p>当b为根，d在右，b的子树排成b d。</p>
<p>b d a c</p>
<p>当c为根，e在左，f在右，c的子树排成e c f。</p>
<p>b d a e c f</p>
<p>当e为根，g在右，e的子树排成e g。</p>
<p>b d a e g c f</p>
<p>LNR（中序遍历）: b, d, a, e, g, c, f</p>
<h2 id="%E5%90%8E%E5%BA%8F%E5%BA%8F%E5%88%97" tabindex="-1">后序序列</h2>
<p>LRN：先左子树，再右子树，根最后。</p>
<p>第一遍只看大框架：左子树在前，右子树居中，根a最后。</p>
<p>b c a</p>
<p>当b为根，d在右，b的子树排成d b。</p>
<p>d b c a</p>
<p>当c为根，e在左，f在右，c的子树排成e f c。</p>
<p>d b e f c a</p>
<p>当e为根，g在右，e的子树排成g e。</p>
<p>d b g e f c a</p>
<p>LRN（后序遍历）: d, b, g, e, f, c, a</p>
<h2 id="%E5%B1%82%E5%BA%8F%E5%BA%8F%E5%88%97" tabindex="-1">层序序列</h2>
<p>从上往下，一层一层，每层从左到右。</p>
<p>第一层只有a。</p>
<p>a</p>
<p>第二层是a的孩子：b, c。</p>
<p>a b c</p>
<p>第三层是b、c的孩子：d, e, f。</p>
<p>a b c d e f</p>
<p>第四层只剩e的孩子：g。</p>
<p>a b c d e f g</p>
<p>层序遍历: a, b, c, d, e, f, g</p>
<h1 id="%E4%B8%AD%E5%BA%8F%E5%BA%8F%E5%88%97%E5%8A%A0%E4%BB%BB%E6%84%8F%E5%BA%8F%E5%88%97%E8%BF%98%E5%8E%9F%E6%A0%91" tabindex="-1">中序序列加任意序列还原树</h1>
<p>若已知中序序列，再给出其他三种遍历序列中的任意一种，就可以唯一地确定一棵二叉树。</p>
<h2 id="%E4%B8%AD%E5%BA%8F%E5%BA%8F%E5%88%97%E5%8A%A0%E5%85%88%E5%BA%8F%E5%BA%8F%E5%88%97" tabindex="-1">中序序列加先序序列</h2>
<p>NLR（先序遍历）: a, b, d, c, e, g, f
 <br>
 LNR（中序遍历）: b, d, a, e, g, c, f</p>
<p>NLR定根，LNR分左右。</p>
<p>NLR首位是a，根为a；LNR中a左侧的b,d是左子树，右侧的e,g,c,f是右子树。</p>
<pre><code>a
</code></pre>
<p>左子树里NLR中b在d前，b为根；LNR中d在b右，d为b的右孩子。</p>
<pre><code>    a
   /
  b
   \
    d
</code></pre>
<p>右子树里NLR中c在最前，c为根、a的右子孩子；LNR中e,g在c左，f在c右。</p>
<pre><code>    a
   / \
  b   c
   \
    d
</code></pre>
<p>以此类推：c的左子树里NLR中e在g前，e为根；LNR中g在e右，g为e的右孩子。</p>
<pre><code>        a
       / \
      b   c
       \  /
        d e
           \
            g
</code></pre>
<p>只剩f，f为c的右子孩子。</p>
<pre><code>        a
       / \
      b   c
       \  / \
        d e   f
           \
            g
</code></pre>
<h2 id="%E4%B8%AD%E5%BA%8F%E5%BA%8F%E5%88%97%E5%8A%A0%E5%90%8E%E5%BA%8F%E5%BA%8F%E5%88%97" tabindex="-1">中序序列加后序序列</h2>
<p>LNR（中序遍历）: b, d, a, e, g, c, f
 <br>
 LRN（后序遍历）: d, b, g, e, f, c, a</p>
<p>LRN定根取末位，LNR分左右。</p>
<p>LRN末位是a，根为a；LNR中a左侧的b,d是左子树，右侧的e,g,c,f是右子树。</p>
<pre><code>a
</code></pre>
<p>左子树里LRN中b在d后，b为根；LNR中d在b右，d为b的右孩子。</p>
<pre><code>    a
   /
  b
   \
    d
</code></pre>
<p>右子树里LRN中c在g,e,f后，c为根、a的右子孩子；LNR中e,g在c左，f在c右。</p>
<pre><code>    a
   / \
  b   c
   \
    d
</code></pre>
<p>以此类推：c的左子树里LRN中e在g后，e为根；LNR中g在e右，g为e的右孩子。</p>
<pre><code>        a
       / \
      b   c
       \  /
        d e
           \
            g
</code></pre>
<p>只剩f，f为c的右子孩子。</p>
<pre><code>        a
       / \
      b   c
       \  / \
        d e   f
           \
            g
</code></pre>
<h2 id="%E4%B8%AD%E5%BA%8F%E5%BA%8F%E5%88%97%E5%8A%A0%E5%B1%82%E5%BA%8F%E5%BA%8F%E5%88%97" tabindex="-1">中序序列加层序序列</h2>
<p>LNR（中序遍历）: b, d, a, e, g, c, f
 <br>
 层序遍历: a, b, c, d, e, f, g</p>
<p>层序定根取最先出现的，LNR分左右。</p>
<p>层序首位是a，根为a；LNR中a左侧的b,d是左子树，右侧的e,g,c,f是右子树。</p>
<pre><code>a
</code></pre>
<p>左子树里层序中b比d先出现，b为根；LNR中d在b右，d为b的右孩子。</p>
<pre><code>    a
   /
  b
   \
    d
</code></pre>
<p>右子树里层序中c比e,g,f先出现，c为根、a的右子孩子；LNR中e,g在c左，f在c右。</p>
<pre><code>    a
   / \
  b   c
   \
    d
</code></pre>
<p>以此类推：c的左子树里层序中e比g先出现，e为根；LNR中g在e右，g为e的右孩子。</p>
<pre><code>        a
       / \
      b   c
       \  /
        d e
           \
            g
</code></pre>
<p>只剩f，f为c的右子孩子。</p>
<pre><code>        a
       / \
      b   c
       \  / \
        d e   f
           \
            g
</code></pre>]]></description><guid isPermaLink="false">/archives/er-cha-shu-de-bian-li-yu-huan-yuan</guid><dc:creator>Zhou</dc:creator><category>学习</category><pubDate>Thu, 27 Aug 2026 08:49:59 GMT</pubDate></item><item><title><![CDATA[《P4G》玩后感]]></title><link>https://betterz.cn/archives/p4g-wan-hou-gan</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8AP4G%E3%80%8B%E7%8E%A9%E5%90%8E%E6%84%9F&amp;url=/archives/p4g-wan-hou-gan" width="1" height="1" alt="" style="opacity:0;">
<div class="aplayer-auto" style="min-height: 66px; margin: 16px 0;" data-theme="var(--interactive-accent, #2563eb)" data-audio="[{&quot;name&quot;:&quot;Never More&quot;,&quot;artist&quot;:&quot;平田志穂子;アトラスサウンドチーム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/Never%20More%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/Never%20More%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0_cover.jpg&quot;},{&quot;name&quot;:&quot;Reach Out To The Truth&quot;,&quot;artist&quot;:&quot;平田志穂子;アトラスサウンドチーム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/Reach%20Out%20To%20The%20Truth%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/Reach%20Out%20To%20The%20Truth%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0_cover.jpg&quot;},{&quot;name&quot;:&quot;Signs Of Love&quot;,&quot;artist&quot;:&quot;平田志穂子;アトラスサウンドチーム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/Signs%20Of%20Love%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/Signs%20Of%20Love%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0_cover.jpg&quot;},{&quot;name&quot;:&quot;SNOWFLAKES&quot;,&quot;artist&quot;:&quot;平田志穂子;アトラスサウンドチーム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/SNOWFLAKES%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/SNOWFLAKES%20-%20%E5%B9%B3%E7%94%B0%E5%BF%97%E7%A9%82%E5%AD%90%E3%80%81%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0_cover.jpg&quot;}]">
 <div style="display: flex; align-items: center; justify-content: center; height: 66px; border: 1px dashed var(--interactive-accent, #2563eb); border-radius: 8px; background-color: var(--background-secondary, #f8fafc); color: var(--text-muted, #64748b); font-size: 13px;">
  🎵 <b>APlayer 音乐播放器</b> &nbsp;<span style="font-size: 11px; opacity: 0.7;">(点击此处可编辑歌曲信息)</span>
 </div>
</div>
<p>​玩了五十多个小时通关了真结局。初上手很不适应，画质太差，建模又粗糙，不过越玩越上手，橡皮泥建模越看越有意思。整个游戏都有暖色的滤镜，很符合其主题，而且玩起来感觉很温馨。</p>
<h1 id="%E2%80%8B%E6%8E%A8%E8%8D%90%E5%BA%A6" tabindex="-1">​推荐度</h1>
<p>​五颗星强推。
 <br>
 内容饱满，在我没有凹面具刷成就的情况下，单单通关真结局就用了 50 多小时。</p>
<h1 id="%E2%80%8B%E6%88%98%E6%96%97" tabindex="-1">​战斗</h1>
<h2 id="%E2%80%8B%E5%9C%B0%E5%9B%BE%E8%AE%BE%E8%AE%A1" tabindex="-1">​地图设计</h2>
<p>​这代迷宫堪称坐牢，也是最让人致郁的一点，算是本作最大的缺点。原因就在于毫无地图设计，每个迷宫都是单纯的跑图。虽然解谜有时很烦，但太单调的地图更是反胃。后面的迷宫更是强制遇敌，加上本作战斗难度偏高，体验实在是不爽。最恶心的是主线打完迷宫之后顶层会刷一个小 Boss，如果想打的话只能从头再打一遍，这是做全成就所必须的。</p>
<h2 id="%E2%80%8B%E9%9A%BE%E5%BA%A6" tabindex="-1">​难度</h2>
<p>​难度偏高，建议一周目设置为简单或调高可获得经验、金钱的倍率。</p>
<h3 id="%E2%80%8B%E6%8D%A2%E6%89%8B" tabindex="-1">​换手</h3>
<p>​本作并没有换手（Baton Pass）的机制，也就是说遇到弱点只能击倒后追加攻击（1MORE），再由下一个队友打弱点发起总攻击。这点虽然对难度影响不太大，但爽感和策略性却是大大降低了，再加上打完弱点之后队友的无用台词（可取消）导致换人不能继续打弱点，所以整个关于战斗部分就是不太尽如人意。</p>
<h3 id="%E2%80%8B%E5%B1%9E%E6%80%A7" tabindex="-1">​属性</h3>
<p>​本作属性很少，不像 5 代那样找弱点需要试好多次。只有物、风、电、冰、火、光、暗七种属性，看似只是比 P5 少了枪、核两种，但其实本作里的光、暗只有即死效果，所以差不多是少了四种属性。</p>
<h3 id="%E2%80%8B%E6%8A%BD%E5%8D%A1%EF%BC%88shuffle-time%EF%BC%89" tabindex="-1">​抽卡（Shuffle Time）</h3>
<p>​谈到难度就不得不提这个抽卡机制了。战斗过后有机会触发一个叫抽卡时间（Shuffle Time）的东西，有能够获得人格面具、提高获得的经验、获得的金钱等收益。本作最主要的人格面具获得途径就是这个，其次是合成。然而这个抽卡机制最恶心的是有个叫“All Get”的机制，即这次抽取中的卡牌全抽到的话，下次抽卡机会增加次数。为了这个“All Get”不得不去吃负收益的卡牌。前期还好大多是正面的，后期想获得 All Get 差不多要吃一半负收益的卡牌，如果不开经验、金钱提高，想不刷级跟上难度那就不太可能了。</p>
<h1 id="%E2%80%8B%E5%89%A7%E6%83%85%EF%BC%88%E5%90%AB%E5%89%A7%E9%80%8F%EF%BC%89" tabindex="-1">​剧情（含剧透）</h1>
<p>​都说这一代是剧情最好的一代，是不是全系列最好不知道，反说是比 P5 的剧情好，整体没有太降智的情节，最重要的是没有像明智这种角色。
 <br>
 上来就死俩人也算震撼吧，融合了一些怪谈元素但是不多也就深夜tv这一个传说。
 <br>
 我觉得这部最与众不同的是它的人情味，可能乡下民风淳朴感情深厚？反正这部的最重要的就是它的人情，整个游戏的暖色调也交相印证了。</p>
<h2 id="%E2%80%8B%E7%A4%BE%E7%BE%A4%EF%BC%88coop-%2F-social-link%EF%BC%89" tabindex="-1">​社群（Coop / Social Link）</h2>
<p>​这绝对是这个游戏最吸引人的地方，社群故事很有趣、贴合角色。绝对是最有感情的一代，Coop 肉眼可见的用心。虽然我没把所有人推满级，只推了几个喜欢的，但这几个角色的剧情就已经足够精彩了。
 <br>
 包括菜菜子、雪子和玛丽的coop我觉得写的都很不错。当然也有不好的，希望p4r能优化改进。</p>
<h1 id="%E4%B8%BB%E7%BA%BF%E5%89%A7%E6%83%85" tabindex="-1">主线剧情</h1>
<p>当然剧情最重要的是主线剧情而不是社群剧情。
 <br>
 首先主线剧情里面穿插了很多有趣的情节，比如骑电动车泡妞、去海边玩等，给这部作品增添了很重的人味，也是这部作品充满人情味的很大大原因。
 <br>
 我个人觉得这部最打动人的部分是因为每个宫殿的主人都是自己的同伴，自己是去救人，救自己的伙伴，比起拯救世界还是拯救身边人更有共鸣。</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7729166666666667 1 0%;" data-aspect-ratio="1.7729166666666667">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055570.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055570.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.8271692745376955 1 0%;" data-aspect-ratio="1.8271692745376955">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055571.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055571.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7715277777777778 1 0%;" data-aspect-ratio="1.7715277777777778">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055572.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055572.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7752965806001395 1 0%;" data-aspect-ratio="1.7752965806001395">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055573.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055573.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.8353614889047960 1 0%;" data-aspect-ratio="1.8353614889047960">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055574.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055574.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7743055555555556 1 0%;" data-aspect-ratio="1.7743055555555556">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055575.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055575.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7791666666666666 1 0%;" data-aspect-ratio="1.7791666666666666">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055576.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055576.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7694444444444444 1 0%;" data-aspect-ratio="1.7694444444444444">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055577.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055577.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7666666666666666 1 0%;" data-aspect-ratio="1.7666666666666666">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055578.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055578.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 2.2222222222222223 1 0%;" data-aspect-ratio="2.2222222222222223">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050664.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000050664.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7743055555555556 1 0%;" data-aspect-ratio="1.7743055555555556">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055579.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055579.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<h1 id="%E7%BB%93%E5%B0%BE" tabindex="-1">结尾</h1>
<p>从开始写这篇文章到现在已经过去两个月，当初的感受和想法都差不多忘了，就这样吧。</p>]]></description><guid isPermaLink="false">/archives/p4g-wan-hou-gan</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fp4g.jpg&amp;size=m" type="image/jpeg" length="73283"/><category>游戏</category><pubDate>Mon, 24 Aug 2026 14:48:02 GMT</pubDate></item><item><title><![CDATA[《小丑》]]></title><link>https://betterz.cn/archives/xiao-chou</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8A%E5%B0%8F%E4%B8%91%E3%80%8B&amp;url=/archives/xiao-chou" width="1" height="1" alt="" style="opacity:0;">
<p>🤡</p>
<h1 id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6" tabindex="-1">推荐程度</h1>
<p>值得一看</p>
<h1 id="%E4%B8%AA%E4%BA%BA%E8%AF%84%E5%88%86" tabindex="-1">个人评分</h1>
<p>8分</p>
<h1 id="%E8%B5%84%E6%BA%90" tabindex="-1">资源</h1>
<!-- 网盘下载卡片：与 halo-plugin-download-links 样式一致，可重新运行模板编辑 -->
<style>.tdl-card{--tdl-border:#edf2f7;--tdl-bg:#fafcff;--tdl-header-bg:#f7fbff;--tdl-header-color:#0f172a;--tdl-title:#0f172a;--tdl-item-bg:#ffffff;--tdl-icon-bg:#eef2f7;--tdl-meta:#6b7280;--tdl-btn-bg:#60a5fa;--tdl-btn-border:#93c5fd;--tdl-btn-bg-hover:#3b82f6;--tdl-btn-border-hover:#60a5fa}body.theme-dark .tdl-card,.color-scheme-dark .tdl-card,.dark .tdl-card,[data-color-scheme=dark] .tdl-card,html[data-mode=dark] .tdl-card{--tdl-border:#374151;--tdl-bg:#1f2937;--tdl-header-bg:#374151;--tdl-header-color:#f9fafb;--tdl-title:#f9fafb;--tdl-item-bg:#374151;--tdl-icon-bg:#4b5563;--tdl-meta:#9ca3af;--tdl-btn-bg:#3b82f6;--tdl-btn-border:#60a5fa;--tdl-btn-bg-hover:#2563eb;--tdl-btn-border-hover:#3b82f6}.tdl-card .tdl-item{transition:transform .18s ease,border-color .18s ease}.tdl-card .tdl-item:hover{transform:translateY(-1px)}.tdl-card a.tdl-btn{transition:background .2s ease,border-color .2s ease}.tdl-card a.tdl-btn:hover{background:var(--tdl-btn-bg-hover)!important;border-color:var(--tdl-btn-border-hover)!important}@media (hover:none){.tdl-card .tdl-item:hover{transform:none}}</style>
<div class="tdl-card" data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/1WEm4mMKSYxbeTfGQvdUl4A?pwd=09m0&quot;,&quot;filename&quot;:&quot;《小丑》&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;09m0&quot;,&quot;type&quot;:&quot;baidu&quot;}]" style="border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;background:var(--tdl-bg,#fafcff);overflow:hidden;margin:12px 0;font-family:inherit">
 <div style="display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--tdl-header-bg,#f7fbff);border-bottom:1px solid var(--tdl-border,#edf2f7);font-weight:600;color:var(--tdl-header-color,#0f172a);font-size:13px">下载地址</div>
 <div style="margin:0;padding:10px 12px">
  <div class="tdl-item" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;margin:10px 0;background:var(--tdl-item-bg,#ffffff)">
   <div style="display:flex;align-items:center;gap:10px;min-width:0;flex:1">
    <div style="width:40px;height:40px;border-radius:10px;background-color:var(--tdl-icon-bg,#eef2f7);flex-shrink:0;background-image:url(data:image/png;base64,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);background-size:contain;background-position:center;background-repeat:no-repeat"></div>
    <div style="display:grid;gap:4px;min-width:0;flex:1">
     <div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--tdl-title,#0f172a)">《小丑》</div>
     <div style="color:var(--tdl-meta,#6b7280);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">
      百度云网盘 · 提取码：<span style="font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:1px">09m0</span>
     </div>
    </div>
   </div>
   <a class="tdl-btn" href="https://pan.baidu.com/s/1WEm4mMKSYxbeTfGQvdUl4A?pwd=09m0" target="_blank" rel="noopener noreferrer" title="下载" style="display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:var(--tdl-btn-bg,#60a5fa);border:1px solid var(--tdl-btn-border,#93c5fd);color:#ffffff;flex-shrink:0;cursor:pointer;text-decoration:none;line-height:0">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
     <path d="M12 4v10" /><path d="m8 10 4 4 4-4" /><path d="M5 20h14" />
    </svg>
   </a>
  </div>
 </div>
</div>
<h1 id="%E8%A7%82%E5%90%8E%E6%84%9F" tabindex="-1">观后感</h1>
<p>主要讲的是小丑起源，和之前看的不一样，这次感觉像是被逼成小丑的而不是天生神经病，虽然有点天生神经病的元素。
 <br>
 这版本小丑年龄比蝙蝠侠大这么多，等蝙蝠侠长大了小丑不就成老头了？👴
 <br>
 侏儒像二哥，特别是声音，开口脆。</p>]]></description><guid isPermaLink="false">/archives/xiao-chou</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055533.jpg&amp;size=m" type="image/jpeg" length="60517"/><category>影视</category><pubDate>Fri, 21 Aug 2026 08:45:24 GMT</pubDate></item><item><title><![CDATA[用Obsidian发布halo文章]]></title><link>https://betterz.cn/archives/yong-obsidian-fa-bu-halo-wen-zhang</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E7%94%A8Obsidian%E5%8F%91%E5%B8%83halo%E6%96%87%E7%AB%A0&amp;url=/archives/yong-obsidian-fa-bu-halo-wen-zhang" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E5%BC%95%E8%A8%80" tabindex="-1">引言</h1>
<p>之前在这篇文章里<a href="https://betterz.cn/archives/jian-zhan-li-cheng" data-card-chip="%E5%BB%BA%E7%AB%99%E5%8E%86%E7%A8%8B" target="_blank" style="text-decoration:none;color:inherit;display:inline-block;vertical-align:middle;padding:1px 10px 2px;border-radius:999px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.35));background-color:var(--background-secondary, rgba(140,140,140,0.08));font-size:0.92em;line-height:1.5;"><span style="width:13px;height:13px;border-radius:4px;flex:none;background:url(https://betterz.cn/favicon.ico) center center / contain no-repeat;display:inline-block;"></span> 建站历程</a>写过使用Obsidian，下面详细介绍一下。</p>
<h1 id="%E5%8A%9F%E8%83%BD" tabindex="-1">功能</h1>
<p>主要是使用templater和官方插件实现的。如何使用和相关文件我会在使用方法中列出。</p>
<h2 id="%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90" tabindex="-1">插入音乐</h2>
<p>添加音频自动识别专辑图片生成aplayer组件播放器的HTML代码块。</p>
<h2 id="%E6%8F%92%E5%85%A5%E5%9B%BE%E9%9B%86" tabindex="-1">插入图集</h2>
<p>添加图片自动整理为图集并生成HTML代码块。</p>
<h2 id="%E4%B8%8A%E4%BC%A0%E5%AA%92%E4%BD%93" tabindex="-1">上传媒体</h2>
<p>在发布文章前先上传媒体，使用官方插件直接发布文章它只会发布纯文字内容，里面的图片音乐等不会同步上传到网站中。</p>
<h2 id="%E7%94%9F%E6%88%90%E5%8F%8D%E9%93%BE" tabindex="-1">生成反链</h2>
<p>因为附件是以HTML代码块形式展示的，所以Obsidian并不会识别到相关的附件，所以要自己手动用这个生成反链。</p>
<h2 id="%E8%AE%BE%E7%BD%AEhalo%E5%B1%9E%E6%80%A7" tabindex="-1">设置halo属性</h2>
<p>字面意思为发布的文章添加属性，用这个比Obsidian中手动设置属性方便一些，也方便更改。</p>
<h2 id="%E5%90%8C%E6%AD%A5halo%E6%96%87%E7%AB%A0" tabindex="-1">同步halo文章</h2>
<p>使用halo官方插件拉取文章每次都会是新文章，我这款是在原有的基础上更新本地。比如在网站上修改了就可以用这个更新本地的文章。</p>
<h2 id="%E7%BD%91%E7%9B%98%E4%B8%8B%E8%BD%BD%E6%8F%92%E5%85%A5" tabindex="-1">网盘下载插入</h2>
<p>为网盘链接美化，变成链接卡片。</p>
<h2 id="%E6%8F%92%E5%85%A5%E9%99%84%E4%BB%B6" tabindex="-1">插入附件</h2>
<p>使手机端插入附件时可以多选。</p>
<h2 id="%E5%8F%8D%E9%93%BE%E5%8D%A1%E7%89%87%E5%90%AF%E7%94%A8" tabindex="-1">反链卡片启用</h2>
<p>这个是把Obsidian笔记中的反链和附件在发布的时候转化为halo网站中的链接和官方下载插件格式。</p>
<h2 id="%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95" tabindex="-1">使用方法</h2>
<h3 id="%E5%AE%89%E8%A3%85" tabindex="-1">安装</h3>
<p>首先安装templater这款插件，在自带的第三方插件市场直接搜索安装即可。</p>
<h3 id="%E9%85%8D%E7%BD%AE" tabindex="-1">配置</h3>
<p>在Template folder location这里填写自己的模板路径。
 <br>
 在Script files folder location这里填写自己的脚本路径。</p>
<h3 id="%E6%96%87%E4%BB%B6" tabindex="-1">文件</h3>
<!--file:!%5B%5Bassets%2FdriveDownload.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/driveDownload.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">driveDownload.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">65.3 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloAttach.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloAttach.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloAttach.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">16.2 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloBacklinks.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloBacklinks.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloBacklinks.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">19.4 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloCardHook.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloCardHook.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloCardHook.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">71.9 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloFrontmatter.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloFrontmatter.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloFrontmatter.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">55.1 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloGallery.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloGallery.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloGallery.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">47.8 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloMusic.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloMusic.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloMusic.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">62.2 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloSync.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloSync.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloSync.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">25.2 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5BhaloUpload.js%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/haloUpload.js" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#ca8a04;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">JS</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">haloUpload.js</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">54.4 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E6%8F%92%E5%85%A5%E9%99%84%E4%BB%B6.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E6%8F%92%E5%85%A5%E9%99%84%E4%BB%B6.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">插入附件.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">27 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">插入音乐.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">26 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E6%8F%92%E5%85%A5Halo%E5%9B%BE%E9%9B%86.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E6%8F%92%E5%85%A5Halo%E5%9B%BE%E9%9B%86.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">插入Halo图集.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">30 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E5%8F%91%E5%B8%83-%E6%B5%81%E6%B0%B4%E7%BA%BF.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E5%8F%91%E5%B8%83-%E6%B5%81%E6%B0%B4%E7%BA%BF.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">发布-流水线.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">6.7 KB · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E5%8F%91%E5%B8%83%E6%A3%80%E6%9F%A5.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E5%8F%91%E5%B8%83%E6%A3%80%E6%9F%A5.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">发布检查.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">36 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E5%8F%8D%E9%93%BE%E5%8D%A1%E7%89%87-%E5%90%AF%E7%94%A8.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E5%8F%8D%E9%93%BE%E5%8D%A1%E7%89%87-%E5%90%AF%E7%94%A8.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">反链卡片-启用.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">446 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E4%B8%8A%E4%BC%A0%E5%AA%92%E4%BD%93%E5%88%B0Halo.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E4%B8%8A%E4%BC%A0%E5%AA%92%E4%BD%93%E5%88%B0Halo.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">上传媒体到Halo.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">27 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E8%AE%BE%E7%BD%AEHalo%E5%B1%9E%E6%80%A7.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E8%AE%BE%E7%BD%AEHalo%E5%B1%9E%E6%80%A7.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">设置Halo属性.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">32 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E7%94%9F%E6%88%90%E5%8F%8D%E9%93%BE.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E7%94%9F%E6%88%90%E5%8F%8D%E9%93%BE.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">生成反链.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">30 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E5%90%8C%E6%AD%A5Halo%E6%96%87%E7%AB%A0.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E5%90%8C%E6%AD%A5Halo%E6%96%87%E7%AB%A0.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">同步Halo文章.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">25 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<!--file:!%5B%5B%E7%BD%91%E7%9B%98%E4%B8%8B%E8%BD%BD%E6%8F%92%E5%85%A5.md%5D%5D-->
<div>
 <a href="https://betterz.cn/upload/%E7%BD%91%E7%9B%98%E4%B8%8B%E8%BD%BD%E6%8F%92%E5%85%A5.md" download target="_blank" style="text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;border:1px solid var(--background-modifier-border, rgba(140,140,140,0.25));border-radius:10px;padding:12px 16px;background-color:var(--background-secondary, rgba(140,140,140,0.06));margin:12px 0;box-shadow:0 2px 8px rgba(0,0,0,0.04);"><span style="flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background-color:#7c3aed;color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.5px;">MD</span>
  <div style="flex:1;overflow:hidden;">
   <div style="font-weight:600;font-size:14px;color:var(--text-normal, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">网盘下载插入.md</div>
   <div style="font-size:12px;color:var(--text-muted, rgba(140,140,140,0.9));margin-top:3px;">31 B · 点击下载</div>
  </div>
  <span style="flex-shrink:0;font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;background-color:#7c3aed;color:#ffffff;">下载</span></a>
</div>
<h1 id="%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B" tabindex="-1">发布流程</h1>
<p>使用发布流水线发布即可。
 <br>
 注意要切换成源码模式再发布，否则HTML代码块等无法上传。</p>]]></description><guid isPermaLink="false">/archives/yong-obsidian-fa-bu-halo-wen-zhang</guid><dc:creator>Zhou</dc:creator><category>搞机</category><pubDate>Thu, 20 Aug 2026 10:37:39 GMT</pubDate></item><item><title><![CDATA[美剧《哥谭》]]></title><link>https://betterz.cn/archives/mei-ju-ge-tan</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E7%BE%8E%E5%89%A7%E3%80%8A%E5%93%A5%E8%B0%AD%E3%80%8B&amp;url=/archives/mei-ju-ge-tan" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6" tabindex="-1">推荐程度</h1>
<p>打发时间可以看。</p>
<h1 id="%E4%B8%AA%E4%BA%BA%E8%AF%84%E5%88%86" tabindex="-1">个人评分</h1>
<p>7。前面挺好看的后面越来越离谱，反派被抓了就跑出来，死了就复活一直重复有点无聊了，感觉像是强行续命。</p>
<h1 id="%E8%B5%84%E6%BA%90" tabindex="-1">资源</h1>
<!-- 网盘下载卡片：与 halo-plugin-download-links 样式一致，可重新运行模板编辑 -->
<style>.tdl-card{--tdl-border:#edf2f7;--tdl-bg:#fafcff;--tdl-header-bg:#f7fbff;--tdl-header-color:#0f172a;--tdl-title:#0f172a;--tdl-item-bg:#ffffff;--tdl-icon-bg:#eef2f7;--tdl-meta:#6b7280;--tdl-btn-bg:#60a5fa;--tdl-btn-border:#93c5fd;--tdl-btn-bg-hover:#3b82f6;--tdl-btn-border-hover:#60a5fa}body.theme-dark .tdl-card,.color-scheme-dark .tdl-card,.dark .tdl-card,[data-color-scheme=dark] .tdl-card,html[data-mode=dark] .tdl-card{--tdl-border:#374151;--tdl-bg:#1f2937;--tdl-header-bg:#374151;--tdl-header-color:#f9fafb;--tdl-title:#f9fafb;--tdl-item-bg:#374151;--tdl-icon-bg:#4b5563;--tdl-meta:#9ca3af;--tdl-btn-bg:#3b82f6;--tdl-btn-border:#60a5fa;--tdl-btn-bg-hover:#2563eb;--tdl-btn-border-hover:#3b82f6}.tdl-card .tdl-item{transition:transform .18s ease,border-color .18s ease}.tdl-card .tdl-item:hover{transform:translateY(-1px)}.tdl-card a.tdl-btn{transition:background .2s ease,border-color .2s ease}.tdl-card a.tdl-btn:hover{background:var(--tdl-btn-bg-hover)!important;border-color:var(--tdl-btn-border-hover)!important}@media (hover:none){.tdl-card .tdl-item:hover{transform:none}}</style>
<div class="tdl-card" data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/1_WDJ3QIGIV56i8Z3r1A7aA?pwd=b238&quot;,&quot;filename&quot;:&quot;哥谭&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;b238&quot;,&quot;type&quot;:&quot;baidu&quot;}]" style="border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;background:var(--tdl-bg,#fafcff);overflow:hidden;margin:12px 0;font-family:inherit">
 <div style="display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--tdl-header-bg,#f7fbff);border-bottom:1px solid var(--tdl-border,#edf2f7);font-weight:600;color:var(--tdl-header-color,#0f172a);font-size:13px">下载地址</div>
 <div style="margin:0;padding:10px 12px">
  <div class="tdl-item" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;margin:10px 0;background:var(--tdl-item-bg,#ffffff)">
   <div style="display:flex;align-items:center;gap:10px;min-width:0;flex:1">
    <div style="width:40px;height:40px;border-radius:10px;background-color:var(--tdl-icon-bg,#eef2f7);flex-shrink:0;background-image:url(data:image/png;base64,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);background-size:contain;background-position:center;background-repeat:no-repeat"></div>
    <div style="display:grid;gap:4px;min-width:0;flex:1">
     <div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--tdl-title,#0f172a)">哥谭</div>
     <div style="color:var(--tdl-meta,#6b7280);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">
      百度云网盘 · 提取码：<span style="font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:1px">b238</span>
     </div>
    </div>
   </div>
   <a class="tdl-btn" href="https://pan.baidu.com/s/1_WDJ3QIGIV56i8Z3r1A7aA?pwd=b238" target="_blank" rel="noopener noreferrer" title="下载" style="display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:var(--tdl-btn-bg,#60a5fa);border:1px solid var(--tdl-btn-border,#93c5fd);color:#ffffff;flex-shrink:0;cursor:pointer;text-decoration:none;line-height:0">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
     <path d="M12 4v10" /><path d="m8 10 4 4 4-4" /><path d="M5 20h14" />
    </svg>
   </a>
  </div>
 </div>
</div>
<h1 id="%E8%A7%82%E5%90%8E%E6%84%9F" tabindex="-1">观后感</h1>
<p>哥谭赶紧完蛋吧精神病这么多。
 <br>
 蝙蝠侠没出现警察局都能基本控制罪犯，不敢想象蝙蝠侠多垃圾。</p>]]></description><guid isPermaLink="false">/archives/mei-ju-ge-tan</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055425.jpg&amp;size=m" type="image/jpeg" length="51955"/><category>影视</category><pubDate>Wed, 19 Aug 2026 07:01:39 GMT</pubDate></item><item><title><![CDATA[《雷神4：爱与雷霆》]]></title><link>https://betterz.cn/archives/lei-shen-4-ai-yu-lei-ting</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8A%E9%9B%B7%E7%A5%9E4%EF%BC%9A%E7%88%B1%E4%B8%8E%E9%9B%B7%E9%9C%86%E3%80%8B&amp;url=/archives/lei-shen-4-ai-yu-lei-ting" width="1" height="1" alt="" style="opacity:0;">
<p>太雷霆了</p>
<h1 id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6" tabindex="-1">推荐程度</h1>
<p>无聊可以看</p>
<h1 id="%E4%B8%AA%E4%BA%BA%E8%AF%84%E5%88%86" tabindex="-1">个人评分</h1>
<p>5分。</p>
<h1 id="%E8%B5%84%E6%BA%90" tabindex="-1">资源</h1>
<!-- 网盘下载卡片：与 halo-plugin-download-links 样式一致，可重新运行模板编辑 -->
<style>.tdl-card{--tdl-border:#edf2f7;--tdl-bg:#fafcff;--tdl-header-bg:#f7fbff;--tdl-header-color:#0f172a;--tdl-title:#0f172a;--tdl-item-bg:#ffffff;--tdl-icon-bg:#eef2f7;--tdl-meta:#6b7280;--tdl-btn-bg:#60a5fa;--tdl-btn-border:#93c5fd;--tdl-btn-bg-hover:#3b82f6;--tdl-btn-border-hover:#60a5fa}body.theme-dark .tdl-card,.color-scheme-dark .tdl-card,.dark .tdl-card,[data-color-scheme=dark] .tdl-card,html[data-mode=dark] .tdl-card{--tdl-border:#374151;--tdl-bg:#1f2937;--tdl-header-bg:#374151;--tdl-header-color:#f9fafb;--tdl-title:#f9fafb;--tdl-item-bg:#374151;--tdl-icon-bg:#4b5563;--tdl-meta:#9ca3af;--tdl-btn-bg:#3b82f6;--tdl-btn-border:#60a5fa;--tdl-btn-bg-hover:#2563eb;--tdl-btn-border-hover:#3b82f6}.tdl-card .tdl-item{transition:transform .18s ease,border-color .18s ease}.tdl-card .tdl-item:hover{transform:translateY(-1px)}.tdl-card a.tdl-btn{transition:background .2s ease,border-color .2s ease}.tdl-card a.tdl-btn:hover{background:var(--tdl-btn-bg-hover)!important;border-color:var(--tdl-btn-border-hover)!important}@media (hover:none){.tdl-card .tdl-item:hover{transform:none}}</style>
<div class="tdl-card" data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/14GlbXt4J4eLwML2NCOOG7g?pwd=q429&quot;,&quot;filename&quot;:&quot;《雷神4：爱与雷霆》&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;q429&quot;,&quot;type&quot;:&quot;baidu&quot;}]" style="border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;background:var(--tdl-bg,#fafcff);overflow:hidden;margin:12px 0;font-family:inherit">
 <div style="display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--tdl-header-bg,#f7fbff);border-bottom:1px solid var(--tdl-border,#edf2f7);font-weight:600;color:var(--tdl-header-color,#0f172a);font-size:13px">下载地址</div>
 <div style="margin:0;padding:10px 12px">
  <div class="tdl-item" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;margin:10px 0;background:var(--tdl-item-bg,#ffffff)">
   <div style="display:flex;align-items:center;gap:10px;min-width:0;flex:1">
    <div style="width:40px;height:40px;border-radius:10px;background-color:var(--tdl-icon-bg,#eef2f7);flex-shrink:0;background-image:url(data:image/png;base64,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);background-size:contain;background-position:center;background-repeat:no-repeat"></div>
    <div style="display:grid;gap:4px;min-width:0;flex:1">
     <div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--tdl-title,#0f172a)">《雷神4：爱与雷霆》</div>
     <div style="color:var(--tdl-meta,#6b7280);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">
      百度云网盘 · 提取码：<span style="font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:1px">q429</span>
     </div>
    </div>
   </div>
   <a class="tdl-btn" href="https://pan.baidu.com/s/14GlbXt4J4eLwML2NCOOG7g?pwd=q429" target="_blank" rel="noopener noreferrer" title="下载" style="display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:var(--tdl-btn-bg,#60a5fa);border:1px solid var(--tdl-btn-border,#93c5fd);color:#ffffff;flex-shrink:0;cursor:pointer;text-decoration:none;line-height:0">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
     <path d="M12 4v10" /><path d="m8 10 4 4 4-4" /><path d="M5 20h14" />
    </svg>
   </a>
  </div>
 </div>
</div>
<h1 id="%E8%A7%82%E5%90%8E%E6%84%9F" tabindex="-1">观后感</h1>
<p>一字尬，感情戏也不到位，逻辑混乱。还有点吃设定，阿斯加德还有众神这么牛逼治不好癌症？“永恒”只需要彩虹桥就能无条件实现愿望为什么灭霸还要收集无限宝石？有点扯。</p>]]></description><guid isPermaLink="false">/archives/lei-shen-4-ai-yu-lei-ting</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055391.jpg&amp;size=m" type="image/jpeg" length="192132"/><category>影视</category><pubDate>Tue, 18 Aug 2026 06:45:25 GMT</pubDate></item><item><title><![CDATA[《可塑性记忆》]]></title><link>https://betterz.cn/archives/ke-su-xing-ji-yi</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8A%E5%8F%AF%E5%A1%91%E6%80%A7%E8%AE%B0%E5%BF%86%E3%80%8B&amp;url=/archives/ke-su-xing-ji-yi" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6" tabindex="-1">推荐程度</h1>
<p>比较推荐</p>
<h1 id="%E4%B8%AA%E4%BA%BA%E8%AF%84%E5%88%86" tabindex="-1">个人评分</h1>
<p>大概是7.5分吧，不算平庸但是也不算出彩</p>
<h1 id="%E8%B5%84%E6%BA%90" tabindex="-1">资源</h1>
<!-- 网盘下载卡片：与 halo-plugin-download-links 样式一致，可重新运行模板编辑 -->
<style>.tdl-card{--tdl-border:#edf2f7;--tdl-bg:#fafcff;--tdl-header-bg:#f7fbff;--tdl-header-color:#0f172a;--tdl-title:#0f172a;--tdl-item-bg:#ffffff;--tdl-icon-bg:#eef2f7;--tdl-meta:#6b7280;--tdl-btn-bg:#60a5fa;--tdl-btn-border:#93c5fd;--tdl-btn-bg-hover:#3b82f6;--tdl-btn-border-hover:#60a5fa}body.theme-dark .tdl-card,.color-scheme-dark .tdl-card,.dark .tdl-card,[data-color-scheme=dark] .tdl-card,html[data-mode=dark] .tdl-card{--tdl-border:#374151;--tdl-bg:#1f2937;--tdl-header-bg:#374151;--tdl-header-color:#f9fafb;--tdl-title:#f9fafb;--tdl-item-bg:#374151;--tdl-icon-bg:#4b5563;--tdl-meta:#9ca3af;--tdl-btn-bg:#3b82f6;--tdl-btn-border:#60a5fa;--tdl-btn-bg-hover:#2563eb;--tdl-btn-border-hover:#3b82f6}.tdl-card .tdl-item{transition:transform .18s ease,border-color .18s ease}.tdl-card .tdl-item:hover{transform:translateY(-1px)}.tdl-card a.tdl-btn{transition:background .2s ease,border-color .2s ease}.tdl-card a.tdl-btn:hover{background:var(--tdl-btn-bg-hover)!important;border-color:var(--tdl-btn-border-hover)!important}@media (hover:none){.tdl-card .tdl-item:hover{transform:none}}</style>
<div class="tdl-card" data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/1M3XH-TTHTSSY8pNIyUPqtA?pwd=e5f6&quot;,&quot;filename&quot;:&quot;《可塑性记忆》&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;e5f6&quot;,&quot;type&quot;:&quot;baidu&quot;}]" style="border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;background:var(--tdl-bg,#fafcff);overflow:hidden;margin:12px 0;font-family:inherit">
 <div style="display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--tdl-header-bg,#f7fbff);border-bottom:1px solid var(--tdl-border,#edf2f7);font-weight:600;color:var(--tdl-header-color,#0f172a);font-size:13px">下载地址</div>
 <div style="margin:0;padding:10px 12px">
  <div class="tdl-item" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--tdl-border,#edf2f7);border-radius:10px;margin:10px 0;background:var(--tdl-item-bg,#ffffff)">
   <div style="display:flex;align-items:center;gap:10px;min-width:0;flex:1">
    <div style="width:40px;height:40px;border-radius:10px;background-color:var(--tdl-icon-bg,#eef2f7);flex-shrink:0;background-image:url(data:image/png;base64,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);background-size:contain;background-position:center;background-repeat:no-repeat"></div>
    <div style="display:grid;gap:4px;min-width:0;flex:1">
     <div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--tdl-title,#0f172a)">《可塑性记忆》</div>
     <div style="color:var(--tdl-meta,#6b7280);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">
      百度云网盘 · 提取码：<span style="font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:1px">e5f6</span>
     </div>
    </div>
   </div>
   <a class="tdl-btn" href="https://pan.baidu.com/s/1M3XH-TTHTSSY8pNIyUPqtA?pwd=e5f6" target="_blank" rel="noopener noreferrer" title="下载" style="display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9999px;background:var(--tdl-btn-bg,#60a5fa);border:1px solid var(--tdl-btn-border,#93c5fd);color:#ffffff;flex-shrink:0;cursor:pointer;text-decoration:none;line-height:0">
    <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
     <path d="M12 4v10" /><path d="m8 10 4 4 4-4" /><path d="M5 20h14" />
    </svg>
   </a>
  </div>
 </div>
</div>
<h1 id="%E8%A7%82%E5%90%8E%E6%84%9F" tabindex="-1">观后感</h1>
<p>设定新奇有趣，但是不合逻辑，当感情片看还行不能较真。而且感觉像没拍完似的，结局的演出并没有符合我的预期，我以为铺垫了这么多最后感情上应该会达到高潮，实际看下来挺平淡的，可能故意拍成这样的。</p>
<h1 id="%E5%9B%BE%E7%89%87%E5%88%86%E4%BA%AB" tabindex="-1">图片分享</h1>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.5217391304347827 1 0%;" data-aspect-ratio="1.5217391304347827">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055337.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055337.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.5217391304347827 1 0%;" data-aspect-ratio="1.5217391304347827">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055336.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000055336.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7687500000000000 1 0%;" data-aspect-ratio="1.7687500000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053650.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000053650.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7729166666666667 1 0%;" data-aspect-ratio="1.7729166666666667">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053646.jpg&amp;size=m" data-src="https://betterz.cn/upload/1000053646.jpg" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>]]></description><guid isPermaLink="false">/archives/ke-su-xing-ji-yi</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000055336%25201.jpg&amp;size=m" type="image/jpeg" length="29315"/><category>影视</category><pubDate>Mon, 17 Aug 2026 12:55:40 GMT</pubDate></item><item><title><![CDATA[KDE 桌面歌词方案(ai生成)]]></title><link>https://betterz.cn/archives/k-d-e-zhuo-mian-ge-ci-fang-an-a-i-sheng-cheng</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=KDE%20%E6%A1%8C%E9%9D%A2%E6%AD%8C%E8%AF%8D%E6%96%B9%E6%A1%88%28ai%E7%94%9F%E6%88%90%29&amp;url=/archives/k-d-e-zhuo-mian-ge-ci-fang-an-a-i-sheng-cheng" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E7%BC%98%E8%B5%B7" tabindex="-1">缘起</h1>
<p>平时在 KDE 上用落雪音乐听歌，一直想要一个美观一点的面板媒体中心：面板上直接显示当前歌曲和播放控制，点开能看到封面和歌词。KDE 自带的媒体控制组件只有个简陋的弹窗，不符合预期。</p>
<h1 id="%E4%B8%8A%E6%B8%B8%E4%B8%8E%E4%B8%8D%E8%B6%B3" tabindex="-1">上游与不足</h1>
<p>在 KDE 商店里找到了 <a href="https://github.com/ccatterina/plasmusic-toolbar">plasmusic-toolbar</a>：面板上显示歌曲信息 + 播放控制（基于 MPRIS2），点开是一个带封面和滑块的完整播放器弹窗，观感不错。但它<strong>没有歌词显示</strong>——对我来说这是硬伤，桌面歌词才是听歌体验的核心。
 <br>
 于是基于它开发了带歌词的版本：<strong>PlasMusic Toolbar + Lyrics</strong>（当前版本 4.2.1-lyrics，GPL-3.0）。</p>
<h1 id="%E6%AD%8C%E8%AF%8D%E5%8A%9F%E8%83%BD%E8%AE%BE%E8%AE%A1" tabindex="-1">歌词功能设计</h1>
<h2 id="%E4%B8%A4%E7%BA%A7%E6%98%BE%E7%A4%BA" tabindex="-1">两级显示</h2>
<ul>
 <li><strong>面板视图</strong>：歌曲信息旁显示单行滚动歌词，可配置「歌词替换歌曲文字」；勾选「使用专辑封面作为图标」后，面板图标直接显示当前歌曲封面</li>
 <li><strong>展开视图</strong>：完整播放器界面下方显示多行同步歌词，当前行高亮、跟随播放进度滚动，周围行渐变淡出
  <br>
  歌词同步基于 MPRIS2 播放进度，每 200 ms 匹配一次当前行。</li>
</ul>
<h2 id="%E4%B8%89%E7%BA%A7%E8%8E%B7%E5%8F%96%E9%93%BE" tabindex="-1">三级获取链</h2>
<p>歌词获取是逐级回退的三级策略：</p>
<table>
 <thead>
  <tr>
   <th>级别</th>
   <th>来源</th>
   <th>说明</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>1</td>
   <td>落雪音乐本地开放 API</td>
   <td><code>GET http://localhost:23330/lyric</code>，中文歌曲库覆盖最好</td>
  </tr>
  <tr>
   <td>2</td>
   <td>LRCLIB 精确匹配</td>
   <td>按歌名/歌手/专辑/时长请求 <code>https://lrclib.net/api/get</code></td>
  </tr>
  <tr>
   <td>3</td>
   <td>LRCLIB 搜索兜底</td>
   <td><code>https://lrclib.net/api/search</code>，取第一个结果的同步歌词</td>
  </tr>
  <tr>
   <td>展开视图底部会标注歌词来源（LX Music / LRCLIB），可开关。</td>
   <td></td>
   <td></td>
  </tr>
 </tbody>
</table>
<h1 id="%E8%B8%A9%E8%BF%87%E7%9A%84%E5%9D%91%E4%B8%8E%E5%8A%A0%E5%9B%BA" tabindex="-1">踩过的坑与加固</h1>
<p>QML 小组件里异步请求和播放器状态变化交织，出了不少竞态问题，最终都做了防护：</p>
<ul>
 <li><strong>切歌竞态</strong>：连续切歌时上一首歌的歌词请求回来覆盖了新歌，引入请求序号（<code>_fetchSeq</code>）校验，失败自动重试</li>
 <li><strong>封面加载失败</strong>：网络抖动导致封面拉取失败，加了自动重试</li>
 <li><strong>播放器选择卡死</strong>：MPRIS2 多播放器并存时选择逻辑偶发卡死，加了看门狗自动恢复</li>
 <li><strong>翻译</strong>：8 种语言（zh_CN、es_ES、fr、it、nl、pt_BR、tr、uk），中文完整翻译</li>
</ul>
<h1 id="%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA" tabindex="-1">效果展示</h1>
<p>面板视图，歌曲信息 + 单行歌词 + 播放控制：</p>
<p><img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE_20260808_161811.png&amp;size=m" alt="面板视图"></p>
<p>展开视图，封面 + 多行同步歌词（底部为歌词来源标识）：</p>
<p><img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F%25E7%25B2%2598%25E8%25B4%25B4%25E7%259A%2584%25E6%2596%2587%25E4%25BB%25B6.png&amp;size=m" alt="展开视图"></p>
<h1 id="%E5%AE%89%E8%A3%85" tabindex="-1">安装</h1>
<p>依赖：KDE Plasma ≥ 6.0.4、<code>kpackagetool6</code>、<code>gettext</code>（提供 <code>msgfmt</code>）。三种方式任选：
 <br>
 <strong>方式一：一键脚本（推荐）</strong></p>
<pre><code class="language-bash">git clone https://github.com/12userzhou/plasmusic-toolbar-lyrics.git
cd plasmusic-toolbar-lyrics
bash build_and_install.sh
</code></pre>
<p>脚本会依次执行：检查依赖工具 → 校验组件完整性 → 编译全部翻译（<code>.po</code> → <code>.mo</code>）→ 自动安装或升级小组件。
 <br>
 <strong>方式二：源码手动安装</strong></p>
<pre><code class="language-bash">kpackagetool6 --type Plasma/Applet -i src   # 安装
kpackagetool6 --type Plasma/Applet -u src   # 升级
</code></pre>
<p><strong>方式三：Release 下载 <code>.plasmoid</code></strong>
 <br>
 从 <a href="https://github.com/12userzhou/plasmusic-toolbar-lyrics/releases">Releases 页面</a> 下载 <code>plasmusic-toolbar-lyrics-&lt;版本号&gt;.plasmoid</code>，然后：</p>
<pre><code class="language-bash">kpackagetool6 --type Plasma/Applet -i plasmusic-toolbar-lyrics-&lt;版本号&gt;.plasmoid
</code></pre>
<p>安装后重启 plasmashell 生效：</p>
<pre><code class="language-bash">nohup plasmashell --replace &gt;/dev/null 2&gt;&amp;1 &amp; disown
</code></pre>
<p>右键面板 → 添加小组件 → 搜索 <strong>“PlasMusic Toolbar + Lyrics”</strong>。</p>
<h1 id="%E4%BD%BF%E7%94%A8%E6%8F%90%E7%A4%BA" tabindex="-1">使用提示</h1>
<p>中文歌词覆盖最好的来源是落雪音乐的本地开放 API：打开落雪音乐 <strong>设置 → 开放 API → 启用</strong>（默认端口 <code>23330</code>），再在小组件配置「完整视图」页确认端口即可。未开启时小组件会自动回退到 LRCLIB 在线歌词库（需要能访问 <a href="https://lrclib.net">https://lrclib.net</a>）。
 <br>
 歌词样式（字号/颜色/粗体/斜体/对齐）统一在「面板视图」配置页控制，面板和展开视图共用；展开视图透明度可在「完整视图」页调节。</p>
<h1 id="%E9%A1%B9%E7%9B%AE%E5%9C%B0%E5%9D%80%E4%B8%8E%E8%87%B4%E8%B0%A2" tabindex="-1">项目地址与致谢</h1>
<p>GitHub：<a href="https://github.com/12userzhou/plasmusic-toolbar-lyrics">https://github.com/12userzhou/plasmusic-toolbar-lyrics</a>
 <br>
 本项目基于 GPL-3.0 发布，感谢上游 <a href="https://github.com/ccatterina/plasmusic-toolbar">plasmusic-toolbar</a>（原作者 Claudio Catterina）打下的基础，以及 <a href="https://lrclib.net">LRCLIB</a> 提供的在线歌词服务。</p>]]></description><guid isPermaLink="false">/archives/k-d-e-zhuo-mian-ge-ci-fang-an-a-i-sheng-cheng</guid><dc:creator>Zhou</dc:creator><category>搞机</category><pubDate>Sat, 8 Aug 2026 10:58:34 GMT</pubDate></item><item><title><![CDATA[落雪音乐 Wayland 桌面歌词无法显示问题修复]]></title><link>https://betterz.cn/archives/luo-xue-yin-yue-w-a-y-l-a-n-d-zhuo-mian-ge-ci-wu-fa-xian-shi-wen-ti-xiu-fu</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E8%90%BD%E9%9B%AA%E9%9F%B3%E4%B9%90%20Wayland%20%E6%A1%8C%E9%9D%A2%E6%AD%8C%E8%AF%8D%E6%97%A0%E6%B3%95%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98%E4%BF%AE%E5%A4%8D&amp;url=/archives/luo-xue-yin-yue-w-a-y-l-a-n-d-zhuo-mian-ge-ci-wu-fa-xian-shi-wen-ti-xiu-fu" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E9%97%AE%E9%A2%98" tabindex="-1">问题</h1>
<p>落雪音乐桌面歌词无法显示</p>
<h2 id="%E5%8E%9F%E5%9B%A0" tabindex="-1">原因</h2>
<p>落雪音乐（Electron 应用）在 Wayland 下创建的桌面歌词覆盖窗口无法正确定位和置顶。Wayland 合成器不允许客户端窗口自行设置全局坐标和 AlwaysOnTop。</p>
<h2 id="%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95" tabindex="-1">解决办法</h2>
<p>强制落雪音乐通过 XWayland 运行。创建本地桌面入口覆盖：</p>
<p><strong><code>~/.local/share/applications/lx-music-desktop.desktop</code></strong></p>
<pre><code class="language-ini">[Desktop Entry]
Name=LX Music
Exec=/opt/lx-music-desktop/lx-music-desktop --ozone-platform=x11 %U
Terminal=false
Type=Application
Icon=lx-music-desktop
StartupWMClass=lx-music-desktop
Name[zh_CN]=LX Music
Name[zh_TW]=LX Music
Encoding=UTF-8
MimeType=x-scheme-handler/lxmusic;
StartupNotify=false
Comment=一个免费的音乐查找助手
Categories=Utility;AudioVideo;Audio;Player;Music;
</code></pre>
<p>关键参数：<code>--ozone-platform=x11</code>，其余字段与原桌面入口一致。</p>
<h2 id="%E9%AA%8C%E8%AF%81" tabindex="-1">验证</h2>
<p>从应用菜单启动落雪音乐，播放歌曲并开启桌面歌词，歌词窗口应出现在桌面上。</p>]]></description><guid isPermaLink="false">/archives/luo-xue-yin-yue-w-a-y-l-a-n-d-zhuo-mian-ge-ci-wu-fa-xian-shi-wen-ti-xiu-fu</guid><dc:creator>Zhou</dc:creator><category>搞机</category><pubDate>Fri, 7 Aug 2026 01:12:00 GMT</pubDate></item><item><title><![CDATA[落雪音乐桌面歌词窗口任务栏隐藏问题修复]]></title><link>https://betterz.cn/archives/luo-xue-yin-yue-zhuo-mian-ge-ci-chuang-kou-ren-wu-lan-yin-cang-wen-ti-xiu-fu</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E8%90%BD%E9%9B%AA%E9%9F%B3%E4%B9%90%E6%A1%8C%E9%9D%A2%E6%AD%8C%E8%AF%8D%E7%AA%97%E5%8F%A3%E4%BB%BB%E5%8A%A1%E6%A0%8F%E9%9A%90%E8%97%8F%E9%97%AE%E9%A2%98%E4%BF%AE%E5%A4%8D&amp;url=/archives/luo-xue-yin-yue-zhuo-mian-ge-ci-chuang-kou-ren-wu-lan-yin-cang-wen-ti-xiu-fu" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E9%97%AE%E9%A2%98" tabindex="-1">问题</h1>
<p>开启桌面歌词后，歌词窗口作为独立窗口出现在 KDE dock 栏中，导致点击 dock 图标时在主窗口和歌词窗口之间切换，而非最小化/恢复主窗口。</p>
<h1 id="%E5%8E%9F%E5%9B%A0" tabindex="-1">原因</h1>
<p>Electron 的 <code>skipTaskbar</code> 在 Wayland 原生模式下无效，歌词窗口无法从任务栏隐藏。主窗口和歌词窗口的 WM_CLASS 和 Window Role 完全相同（均为 <code>lx-music-desktop</code> / <code>browser-window</code>），但窗口标题不同：歌词窗口标题为 <code>Lyric - LX Music</code>。</p>
<h1 id="%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95" tabindex="-1">解决办法</h1>
<p>通过 KDE 窗口规则（KWin Window Rules）强制隐藏歌词窗口的任务栏条目。</p>
<ol>
 <li>
  <p>打开 <strong>系统设置 → 窗口管理 → 窗口规则</strong></p>
 </li>
 <li>
  <p>点击 <strong>添加新规则</strong>，设置匹配条件：</p>
  <table>
   <thead>
    <tr>
     <th>字段</th>
     <th>匹配方式</th>
     <th>值</th>
    </tr>
   </thead>
   <tbody>
    <tr>
     <td>窗口类（应用程序）</td>
     <td>完全匹配</td>
     <td><code>lx-music-desktop</code></td>
    </tr>
    <tr>
     <td>窗口标题</td>
     <td>完全匹配</td>
     <td><code>Lyric - LX Music</code></td>
    </tr>
   </tbody>
  </table>
 </li>
 <li>
  <p>添加以下属性：</p>
  <table>
   <thead>
    <tr>
     <th>属性</th>
     <th>策略</th>
     <th>值</th>
    </tr>
   </thead>
   <tbody>
    <tr>
     <td>跳过任务栏（Skip taskbar）</td>
     <td>强制（Force）</td>
     <td>是（Yes）</td>
    </tr>
    <tr>
     <td>跳过窗口切换器（Skip switcher）</td>
     <td>强制（Force）</td>
     <td>是（Yes）</td>
    </tr>
   </tbody>
  </table>
 </li>
 <li>
  <p>点击 <strong>确定</strong> 保存</p>
 </li>
</ol>
<p><img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fscreenshot_4%25201.png&amp;size=m" alt=""></p>
<h1 id="%E9%AA%8C%E8%AF%81" tabindex="-1">验证</h1>
<p>开启桌面歌词后，歌词窗口不再出现在 dock 栏中，点击 dock 图标可正常最小化/恢复主窗口。</p>
<h1 id="%E5%A4%87%E6%B3%A8" tabindex="-1">备注</h1>
<ul>
 <li>窗口标题 <code>Lyric - LX Music</code> 是区分歌词窗口和主窗口的唯一标识，必须设置此匹配条件</li>
 <li>KDE Bug <a href="https://bugs.kde.org/show_bug.cgi?id=503565">#503565</a>（XWayland 窗口规则不生效）已于 2025-06-25 修复，Plasma 6 较新版本可正常使用窗口规则</li>
</ul>
<h1 id="%E7%9B%B8%E5%85%B3%E5%8F%82%E8%80%83" tabindex="-1">相关参考</h1>
<ul>
 <li>GitHub issue <a href="https://github.com/lyswhut/lx-music-desktop/issues/919">#919</a> — Electron 17+ 导致 Wayland 桌面歌词隐藏任务栏 API 不可用</li>
</ul>
<h1 id="%E6%88%90%E5%8A%9F%E6%A1%88%E4%BE%8B%EF%BC%9A" tabindex="-1">成功案例：</h1>
<p>KDE 窗口规则隐藏歌词窗口的 dock 条目</p>]]></description><guid isPermaLink="false">/archives/luo-xue-yin-yue-zhuo-mian-ge-ci-chuang-kou-ren-wu-lan-yin-cang-wen-ti-xiu-fu</guid><dc:creator>Zhou</dc:creator><category>搞机</category><pubDate>Fri, 7 Aug 2026 01:11:13 GMT</pubDate></item><item><title><![CDATA[​《MyGO!!!!!》《Ave Mujica》观后感]]></title><link>https://betterz.cn/archives/mygo-ave-mujica-guan-hou-gan</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E2%80%8B%E3%80%8AMyGO%21%21%21%21%21%E3%80%8B%E3%80%8AAve%20Mujica%E3%80%8B%E8%A7%82%E5%90%8E%E6%84%9F&amp;url=/archives/mygo-ave-mujica-guan-hou-gan" width="1" height="1" alt="" style="opacity:0;">
<p>我看这两部剧的起因是睦子米太可爱，想了解更多。
 <br>
 浅谈一下我对这两部剧的看法吧，可能是因为为了游戏而创作的，所以剧情偏向于人物描写更多而非一个故事。
 <br>
 首先就是加深了我对乐队番歌不好听这个看法。
 <br>
 还是有好听的</p>
<div class="aplayer-auto" style="min-height: 66px; margin: 16px 0;" data-theme="var(--interactive-accent, #2563eb)" data-audio="[{&quot;name&quot;:&quot;春日影&quot;,&quot;artist&quot;:&quot;CRYCHIC&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/%E6%98%A5%E6%97%A5%E5%BD%B1%20-%20CRYCHIC.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/%E6%98%A5%E6%97%A5%E5%BD%B1%20-%20CRYCHIC_cover.jpg&quot;},{&quot;name&quot;:&quot;春日影 (MyGO!!!!! ver.)&quot;,&quot;artist&quot;:&quot;MyGO!!!!!&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/%E6%98%A5%E6%97%A5%E5%BD%B1%20(MyGO!!!!!%20ver.)%20-%20MyGO!!!!!.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/%E6%98%A5%E6%97%A5%E5%BD%B1%20(MyGO!!!!!%20ver.)%20-%20MyGO!!!!!_cover.jpg&quot;},{&quot;name&quot;:&quot;壱雫空&quot;,&quot;artist&quot;:&quot;MyGO!!!!!&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/%E5%A3%B1%E9%9B%AB%E7%A9%BA%20-%20MyGO!!!!!.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/%E5%A3%B1%E9%9B%AB%E7%A9%BA%20-%20MyGO!!!!!_cover.jpg&quot;}]">
 <div style="display: flex; align-items: center; justify-content: center; height: 66px; border: 1px dashed var(--interactive-accent, #2563eb); border-radius: 8px; background-color: var(--background-secondary, #f8fafc); color: var(--text-muted, #64748b); font-size: 13px;">
  🎵 <b>APlayer 音乐播放器</b> &nbsp;<span style="font-size: 11px; opacity: 0.7;">(点击此处可编辑歌曲信息)</span>
 </div>
</div>
<h2 id="mygo!!!" tabindex="-1">MyGO!!!</h2>
<p>首先是《MyGO!!!》，不知道算不算第一部，这部主角是千早爱音、灯、立希和 SOYO。我最初看这部是因为觉得不看这部直接看《Ave Mujica》会不知道讲的啥，现在想来纯属误会。
 <br>
 主要剧情就是千早爱音她们组乐队，我直接谈我的观点吧。
 <br>
 这剧情太神了，当然不是神作那个“神”，而是“神人”乐队神。很多行为都很莫名其妙，可能那个年龄段都那样，我初中高中也挺神的。</p>
<h3 id="%E5%8D%83%E6%97%A9%E7%88%B1%E9%9F%B3" tabindex="-1">千早爱音</h3>
<p>千早爱音都可以算这部剧唯一一个正常人了，虽然是因为虚荣心而来组乐队，但这也是正常的，如果没有她当团队的粘合剂，一直拉着其他几个神人，这乐队早散了，长跑王。</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7799752781211373 1 0%;" data-aspect-ratio="1.7799752781211373">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050296.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7888198757763976 1 0%;" data-aspect-ratio="1.7888198757763976">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050325.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.4984423676012461 1 0%;" data-aspect-ratio="0.4984423676012461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050317.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<h3 id="%E9%95%BF%E5%B4%8E%E7%B4%A0%E4%B8%96" tabindex="-1">长崎素世</h3>
<p>SOYO 算是半个正常人，感觉像是封建党，前期做的所有事都是为了恢复 C 团。不过我觉得 SOYO 很有魅力，对人一直都很温柔，虽然是因为家庭创伤，不过她很里强，我喜欢坚强的女孩子。
 <br>
 之前听过一个说法，大意是怀念过去的某个东西不是真的怀念那个东西，而是怀念那段时光。我想素世这么想恢复C团大概也是因为想回到那段时光。父母离异大房子里面只有自己一个人，爱音她们去拜访团建的时候就说她家像宾馆，侧面说明了没人味，也许是把C团当家了，要组一辈子乐队。
 <br>
 幸好最终被M团收留，不再留恋过去面向未来。</p>
<p>“要是事先知道我就会阻止了😭曲目都结束了她们却突然开始演奏😭对不起没能阻止她们😭小祥你一定很生气吧😭你会生气我觉得是当然的😭但是请你相信我我们原本真的没计划演奏春日影😭真的很对不起😭我保证我不会再擅自演奏那首歌了😭我也会要其他人以后绝对不要再演奏那首歌了😭我们可以稍微谈谈吗😭我很珍惜CRYCHIC😭所以春日影擅自被人拿去演奏我也和小祥一样难受😭希望你能了解我的心情😭拜托你约在哪里我都去😭我不得不组乐团的理由也会好好和你说清楚的😭只要你愿意当面听我说你就一定能理解的😭我是站在小祥你那边的😭我想见你😭”</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.4617187500000000 1 0%;" data-aspect-ratio="0.4617187500000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053209.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7772511848341233 1 0%;" data-aspect-ratio="1.7772511848341233">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053208.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053206.gif&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.7400000000000000 1 0%;" data-aspect-ratio="0.7400000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050741.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.8163265306122449 1 0%;" data-aspect-ratio="0.8163265306122449">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050744.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<h3 id="%E4%B9%90%E5%A5%88" tabindex="-1">乐奈</h3>
<p>正剧里面感觉纯路人，不知道萌在哪，像人机一样，还喜欢搞失联。但是剧场版讲了她的前传，但其实也没什么好讲的，也是喜欢的音乐的人机，有趣的女人。</p>
<h3 id="%E7%AB%8B%E5%B8%8C" tabindex="-1">立希</h3>
<p>相比其他神人这位更像是被迫卷入神人团队的，为了推动剧情的工具人，看不出什么特色。特别爱哈气。</p>
<h3 id="%E9%AB%98%E6%9D%BE%E7%81%AF" tabindex="-1">高松灯</h3>
<p>这位是最重量级的。经典的诗人模版，敏感、内向，不善表达。全篇都在说别人看她写的词就听到了她的呐喊，她的词是心灵的呐喊，单单是念词就让人感受到她内心的想法并被洗脑。但实际看起来她写的词很诗，每次看到我都想快进，虽然可能是现实中写剧本的人没脑子，不过这也太夸张了，纯魅魔来的。
 <br>
 总的来说《MyGO!!!》这部番还不错，值得一看。</p>
<h2 id="ave-mujica" tabindex="-1">Ave Mujica</h2>
<p>这部评分极低，豆瓣只有4.4完全可以说是烂片，网上评价也极差。不过我感觉还好吧，可能是我吃屎吃多了？</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.7500000000000000 1 0%;" data-aspect-ratio="0.7500000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050847%25203.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.3483146067415730 1 0%;" data-aspect-ratio="1.3483146067415730">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050290%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<h3 id="%E5%96%B5%E6%A2%A6" tabindex="-1">喵梦</h3>
<p>首先必须狠狠批判喵梦，纯他妈的畜生。下面列出她的七宗罪😡</p>
<ul>
 <li><strong>色欲罪</strong>：满脑子想的都是流量，为了流量加入乐队，为了流量揭大家的面具，罪大恶极。</li>
 <li><strong>贪婪之罪</strong>：为了流量和乐队的领导吵架，搞得乐队分崩离析，巴结睦子米她妈妈，那丑陋嘴脸。</li>
 <li><strong>暴怒之罪</strong>：睦子米双重人格被发现后，乱发脾气！</li>
 <li><strong>傲慢之罪</strong>：单方面认为戴面具没热度，揭开面具！</li>
 <li><strong>嫉妒之罪</strong>：羡慕睦子米的天赋，这是原罪！</li>
 <li><strong>暴食之罪</strong>：不能接受自己是普通人的事实！</li>
 <li><strong>怠惰之罪</strong>：把一切都归于天赋的差距！</li>
</ul>
<p>本来大家都戴着面具相对她算公平，因为热度是公平竞争的，但是她自己把面具摘了然后想用睦子米来吸引热度，但是无人在意她又防（破防）了，纯神棍的，只会给队友上压力，真不懂为什么这种人会被邀请进乐队。</p>
<h3 id="%E6%B5%B7%E9%93%83" tabindex="-1">海铃</h3>
<p>不关心，纯陌生人，至今没想明白为什么解散之后要重组乐队。而且为了重组乐队教莫提斯弹吉他让她顶替睦子米人格，不好评价。</p>
<h3 id="%E5%88%9D%E5%8D%8E" tabindex="-1">初华</h3>
<p>纯女同，我真看不懂这里的逻辑了，出来当明星用的还是她妹的名字，难道她妹不知道吗？还有连亲生父亲都不一样就长得她和她妹长得一模一样？至今不知道为什么爱上祥子。还有她爸这么对她，连一点反抗都没有，要我早跟她爸爆了。在《MyGO!!!》我还以为是温柔大姐姐。</p>
<h3 id="%E4%B8%B0%E5%B7%9D%E7%A5%A5%E5%AD%90" tabindex="-1">丰川祥子</h3>
<p>太可怜了，但是操作太神人了，可能是我站在观众的视角这样说，代入进去的话大小姐为了生活不得不放弃挚爱的乐队，并且从大别墅搬到脏乱差出租屋，如果我是祥子的话大概也不会说吧。
 <br>
 很难想象一个富家大小姐一个人跑去打工，还要受多少苦。</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7782426778242677 1 0%;" data-aspect-ratio="1.7782426778242677">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053533.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
我刚开始还觉得这个人很装，有钱的家不回，后来看到她义无反顾的跟着她老爸走就刮目相看了，就算后面被带走了回去了可是为了乐队又跑出来，这份觉悟我敬仰她。 为了省钱从月之森退学，一个人在马路上痛哭，打两份工，想各种办法组 Ave Mujica，也不回老家找帮忙，我敬仰祥子。就算是这样也要被喵梦说大小姐过家家，辛苦组的乐队被喵梦毁掉了。 后续给睦子米上压力没得选，也是人之常情，乐队没了换谁谁不气，大惊小怪都是站在上帝视角看的。 现在看mygo唱春日影的时候祥跑开时的眼泪，一定很遗憾吧，是自己亲手创建的付出心血的乐队，自己因为生活强行斩断却看到乐队的成员都不舍且怀念，自己乐队的歌如今却被其他乐队弹奏。歌词刚好对应上当前的情况，祥子哭着跑开的时候在想什么呢？是后悔吗？还是怀念呢？soyo去求她的时候她抱着怎样的觉悟说出那样绝情的话呢？
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7666666666666666 1 0%;" data-aspect-ratio="1.7666666666666666">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053537.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
“真是会虚情假意呢🙄️ 想演奏是你们的自由，你们就请便吧🖐 到现在都还执着于过去，真难看🙄️ 你也差不多该忘记了吧😒 那么那个乐团算什么😅 你讲的话和做的事全都互相矛盾😒 CRYCHIC已经毁了😡 绝对不可能再复活了🙄 我已经亲手将它结束了🙂 没有人那样拜托你😒 这是最后的警告😡 今后不要再和我扯上关系了🖐 你是抱着多大的觉悟说出这种话的🙄️ 你只不过是一个学生，有办法背负其他人的人生吗😡” 在网上看到的一段话 “鞋子衣服都湿透了，但还是淋着雨去见c团的祥子。那时候祥子还是初中生，连饮料机都是第一次见的大小姐，第一份简历是怎么投递的？又是怎么被拒绝的？雇佣十五六岁女孩子的公司会签正经合同吗？乘深夜电车还不坐座位，是害怕自己太疲惫睡着坐过站吗？出租屋里除了摆放的酒瓶外都很干净，是她晚上回家了还要收拾吗？最后画面的一个小角落里有被褥，祥子就睡在那里吗？早饭和午饭的便当，也是她自己起早做的吗，还是便利店买的速食呢？在空教室里练钢琴见到爱音，第一句话问“你是管弦部成员吗”是因为以前被提醒过吗？是怎么学会交水电费的呢，会不会直到水电费单子贴到门上才知道有这回事呢？又是怎么拉赞助办乐队的呢？祥子，你以后会变得幸福的” 在网上看到这段话真的觉得祥子很辛苦很努力，我一直在乡下生活，上大学了才第一次到大城市，很多东西都不知道怎么弄的，坐地铁都不会，我很理解这种感受。 祥子走在大街上哭泣那段真的让人心疼，为了父亲放弃大小姐生活，放弃自己挚爱的乐队狠下心解散乐队，想要自己承担一切，真的很坚强。 不过幸好最后走出阴霾准备向前走，也学会反抗，祥子你会幸福的。
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050855.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.6279069767441861 1 0%;" data-aspect-ratio="1.6279069767441861">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050674.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<h3 id="%E8%8B%A5%E5%8F%B6%E7%9D%A6" tabindex="-1">若叶睦</h3>
<p>这是我看这部番的理由，因为外观而入坑的。在剧里她的最火的，可是热度给她带来痛苦，可偏偏在剧外她也是最火的，算什么呢？
 <br>
 说实话我看完关于她的剧情之后心情是平静而荒谬，剧情真的很荒谬，双重人格反噬自己。睦子米一直很少说话，她在想什么呢？
 <br>
 她是压垮C团的最后一根稻草，“组乐队从来没有开心过”，睦子米一直很自卑吗？她在家里为什么不叫自己妈妈“妈妈”而是叫“美奈美酱呢？”是因为没有依靠吗？缺少了母爱而变得敏感内向吗？她妈也真是畜生，羡慕自己女儿的表演天分叫自己女儿怪物，不过至少表面上做的事情是对睦子米好，应该不是故意把睦子米培养成这样的性格。
 <br>
 我最想谈论的是她的多重人格，剧情似乎有暗示她的多重人格是她表演天赋太强表演出来的？最后莫提斯和睦子米人格都死了，身体变成空壳了，被称为古神睦，根据场景切换需要的人格。我并不懂心理学更不懂多重人格这个病，但是从动漫的角度看，我个人觉得更像是“人格面具”，最后并不是没有人格了，而是“面对自我”，像p4那样。这种怎么说呢？算融合人格吗？我觉得不算，融合人格太败笔了，完全是一个全新的人物了。在我看来睦子米和莫提斯都是若叶睦的一部分，都是自己的“人格面具”，就像p4觉醒人格面具那个成就“另一个自己”。至于最后变成什么了，我认为那就是若叶睦自己，什么都没有变，接纳了自己。
 <br>
 一些睦的图，来源于网络。</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.0916496945010183 1 0%;" data-aspect-ratio="1.0916496945010183">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053224.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7776315789473685 1 0%;" data-aspect-ratio="1.7776315789473685">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053223%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053222%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053221%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053220%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 2.5858585858585861 1 0%;" data-aspect-ratio="2.5858585858585861">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000051484%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.7070312500000000 1 0%;" data-aspect-ratio="0.7070312500000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000051034%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.7701956848971400 1 0%;" data-aspect-ratio="0.7701956848971400">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050896%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.6842105263157895 1 0%;" data-aspect-ratio="0.6842105263157895">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050881%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050851%25202.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050833%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.6896551724137931 1 0%;" data-aspect-ratio="0.6896551724137931">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050646%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.6666666666666666 1 0%;" data-aspect-ratio="0.6666666666666666">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050645%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050644%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050274%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.4615384615384615 1 0%;" data-aspect-ratio="1.4615384615384615">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050273%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050272%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.7493055555555556 1 0%;" data-aspect-ratio="0.7493055555555556">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050201%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.6279245283018868 1 0%;" data-aspect-ratio="0.6279245283018868">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050184%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.0485036119711042 1 0%;" data-aspect-ratio="1.0485036119711042">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050163%25201.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050162%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.6642066420664207 1 0%;" data-aspect-ratio="0.6642066420664207">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050160%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.5861111111111110 1 0%;" data-aspect-ratio="1.5861111111111110">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050159%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.5231481481481481 1 0%;" data-aspect-ratio="1.5231481481481481">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050158%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.3333333333333333 1 0%;" data-aspect-ratio="1.3333333333333333">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050155%25201.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.0000000000000000 1 0%;" data-aspect-ratio="1.0000000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050150%25201.gif&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
还有一些火影忍者的，同样来源于网络。
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.8029978586723768 1 0%;" data-aspect-ratio="0.8029978586723768">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053215.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.8029978586723768 1 0%;" data-aspect-ratio="0.8029978586723768">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053214.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.8029978586723768 1 0%;" data-aspect-ratio="0.8029978586723768">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053213.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.8055853920515574 1 0%;" data-aspect-ratio="0.8055853920515574">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053212.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.8083333333333333 1 0%;" data-aspect-ratio="1.8083333333333333">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053211.png&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7800000000000000 1 0%;" data-aspect-ratio="1.7800000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000053210.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7800000000000000 1 0%;" data-aspect-ratio="1.7800000000000000">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050743.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.8273579702151130 1 0%;" data-aspect-ratio="0.8273579702151130">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050742.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.8488964346349746 1 0%;" data-aspect-ratio="0.8488964346349746">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050740.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.8029978586723768 1 0%;" data-aspect-ratio="0.8029978586723768">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050739.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.8029978586723768 1 0%;" data-aspect-ratio="0.8029978586723768">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050738.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.8055853920515574 1 0%;" data-aspect-ratio="0.8055853920515574">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050673.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.8055853920515574 1 0%;" data-aspect-ratio="0.8055853920515574">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050672.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.7817589576547231 1 0%;" data-aspect-ratio="0.7817589576547231">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050300.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 0.9749492213947191 1 0%;" data-aspect-ratio="0.9749492213947191">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F1000050294.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>]]></description><guid isPermaLink="false">/archives/mygo-ave-mujica-guan-hou-gan</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fmygo.jpg&amp;size=m" type="image/jpeg" length="68701"/><category>影视</category><pubDate>Tue, 4 Aug 2026 14:47:18 GMT</pubDate></item><item><title><![CDATA[《轻音少女》观后感]]></title><link>https://betterz.cn/archives/qing-yin-shao-nu-guan-hou-gan</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E3%80%8A%E8%BD%BB%E9%9F%B3%E5%B0%91%E5%A5%B3%E3%80%8B%E8%A7%82%E5%90%8E%E6%84%9F&amp;url=/archives/qing-yin-shao-nu-guan-hou-gan" width="1" height="1" alt="" style="opacity:0;">
<p style="">这是我第一次看乐队番，之前总觉得这类影视很无趣，又没好听的歌。但一直听别人说很好看，如果只能选一部动漫，毫无疑问肯定是《轻音少女》，而且最近我很忙，想看些晚上看了之后能很满足地睡觉的影视，于是就尝试了一下。</p>
<p style="">看到最后她们为毕业而忙，因为毕业而感伤，不禁让我想到自己。当时看的时候正值毕业季，剩下两集特别篇和一部剧场版搁置着没看，现在看完才真正提笔。</p>
<p style="">说到底，高中本就注定了结局是毕业，青春就注定了结局是要结束。但是我真到了结束的时候，自己真的做好准备了吗？能接受这个结果吗？不过能不能接受也只能接受了，有没有准备好也迎来终点了。回想自己大学四年真是碌碌无为，没有做过轰轰烈烈的事情，没有为什么东西而拼命，自己也没有取得什么成就，甚至值得铭记的事情都没有，就这样结束了。自己没有进取心也怪不得别人。想象中的缤纷的大学生活就这样平平静静地结束了。</p>
<p style="">回到《轻音少女》这部剧，里面也没有轰轰烈烈的事情，有的只是和朋友的日常。不过因为有朋友才好看吧。唯她们的演出也只是在校内，也不火，不然也不会没人进轻音部了。不过她们的高中生活并不碌碌无为，她们有着充实的生活，原因在于友情吧，明明虽然练习时不少都在摸鱼，不过都有做好应做的事，想做的事。</p>
<p style="">小时候看治愈番总觉得无聊，现在只有每晚睡前才能挤出时间看一集。看着唯她们可爱搞笑的日常，真的会感到治愈，自己的心情似乎也随着她们而变得开心。睡完一集很满足，明天也有干劲了。</p>
<p style="">真的很久没有这种感觉了，看完之后的空虚等情绪混在一起。真是一个好动漫，上次看完这么不舍的动漫还是《赛博朋克》吧，不过这是一个好结局，唯她们都考上了同一所大学。最后毕业唱《相遇天使》真的爆哭了。</p>
<p style="">剧场版并没符合我的预期，只能说是平常，讲的是即将毕业去旅行为梓写歌的故事，不过后劲不如正集。后面《相遇天使》响起那刻很感人，不过也十分值得让人潸然泪下了。</p>
<h1 style="" id="%E9%9F%B3%E4%B9%90">音乐</h1>
<p style="">我收回我对乐队番歌不好听的偏见，《轻音少女》的歌虽然算不上出众，但饱含着真挚的感情。</p>
<div class="aplayer-auto" style="min-height: 66px; margin: 16px 0;" data-theme="var(--interactive-accent, #2563eb)" data-audio="[{&quot;name&quot;:&quot;ぴゅあぴゅあはーと (纯洁之心)&quot;,&quot;artist&quot;:&quot;放課後ティータイム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/%E3%81%B4%E3%82%85%E3%81%82%E3%81%B4%E3%82%85%E3%81%82%E3%81%AF%E3%83%BC%E3%81%A8%20(%E7%BA%AF%E6%B4%81%E4%B9%8B%E5%BF%83)%20-%20%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/%E3%81%B4%E3%82%85%E3%81%82%E3%81%B4%E3%82%85%E3%81%82%E3%81%AF%E3%83%BC%E3%81%A8%20(%E7%BA%AF%E6%B4%81%E4%B9%8B%E5%BF%83)%20-%20%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0_cover.jpg&quot;},{&quot;name&quot;:&quot;ふわふわ時間&quot;,&quot;artist&quot;:&quot;放課後ティータイム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0%20-%20%E3%81%B5%E3%82%8F%E3%81%B5%E3%82%8F%E6%99%82%E9%96%93-UJFB.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0%20-%20%E3%81%B5%E3%82%8F%E3%81%B5%E3%82%8F%E6%99%82%E9%96%93_cover-CHAE.jpg&quot;},{&quot;name&quot;:&quot;U&amp;I&quot;,&quot;artist&quot;:&quot;放課後ティータイム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0%20-%20U&amp;I-Lvls.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0%20-%20U&amp;I_cover-muxi.jpg&quot;},{&quot;name&quot;:&quot;天使にふれたよ!&quot;,&quot;artist&quot;:&quot;放課後ティータイム&quot;,&quot;url&quot;:&quot;https://betterz.cn/upload/%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0%20-%20%E5%A4%A9%E4%BD%BF%E3%81%AB%E3%81%B5%E3%82%8C%E3%81%9F%E3%82%88!-qOIV.mp3&quot;,&quot;cover&quot;:&quot;https://betterz.cn/upload/%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%83%86%E3%82%A3%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0%20-%20%E5%A4%A9%E4%BD%BF%E3%81%AB%E3%81%B5%E3%82%8C%E3%81%9F%E3%82%88!_cover-TwYL.jpg&quot;}]">
 <div style="display: flex; align-items: center; justify-content: center; height: 66px; border: 1px dashed var(--interactive-accent, #2563eb); border-radius: 8px; background-color: var(--background-secondary, #f8fafc); color: var(--text-muted, #64748b); font-size: 13px;">
  🎵 <b>APlayer 音乐播放器</b> &nbsp;<span style="font-size: 11px; opacity: 0.7;">(点击此处可编辑歌曲信息)</span>
 </div>
</div>]]></description><guid isPermaLink="false">/archives/qing-yin-shao-nu-guan-hou-gan</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fmmexport1783950135529.jpg&amp;size=m" type="image/jpeg" length="76596"/><category>影视</category><pubDate>Mon, 13 Jul 2026 14:22:53 GMT</pubDate></item><item><title><![CDATA[Debian & Windows Dual-Boot Installation Notes]]></title><link>https://betterz.cn/archives/debian-windows-dual-boot-installation-notes</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=Debian%20%26%20Windows%20Dual-Boot%20Installation%20Notes&amp;url=/archives/debian-windows-dual-boot-installation-notes" width="1" height="1" alt="" style="opacity:0;">
<p style="">With my graduation approaching and my system getting cluttered with digital junk, I decided it was time for a clean OS reinstallation. I’ve been wanting to dive deeper into Linux while still keeping a reliable environment for computer games in my spare time. Therefore, a dual-boot configuration was the perfect solution. My target setup includes Legion Custom (Windows) and Debian 13.</p>
<blockquote>
 <p style="">💡 <strong>Pro Tip:</strong> If you are planning a dual-boot setup, I highly recommend using two separate physical hard drives. Managing a dual-boot configuration on a single physical SSD is notoriously tricky.</p>
</blockquote>
<h1 style="" id="preparation">Preparation</h1>
<p style="">You will need either two separate USB flash drives or a single drive that you rewrite twice for each OS installation. Make sure to install Legion Custom (Windows) first, as the Windows installer tends to overwrite the boot configurations of other drives.</p>
<p style=""><em>Note on Windows Installation:</em> Windows 11 may insist on installing to the internal disk by default, even after you have physically swapped the disk slots. The exact reason remains unknown, but the solution is to manually modify the system disk assignment inside Windows.</p>
<h1 style="" id="legion-custom">Legion Custom</h1>
<p style="">For a detailed walkthrough of the Legion Custom installation, you can watch this video:</p>
<hyperlink-card target="_blank" href="https://www.bilibili.com/video/BV1LC4y1v7TJ/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" theme="regular" style="margin-top: 0.75em; margin-bottom: 0;"><a href="https://www.bilibili.com/video/BV1LC4y1v7TJ/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" target="_blank">https://www.bilibili.com/video/BV1LC4y1v7TJ/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f</a></hyperlink-card>
<p style="">It works beautifully out of the box, and it is worth mentioning that you don’t need to download any extra device drivers.</p>
<h1 style="" id="debian">Debian</h1>
<p style="">⚠️ <strong>Attention:</strong> Turn off NVIDIA GPU Direct Connect (Discrete GPU Only mode) in your BIOS prior to starting the Debian installation!</p>
<p style="">To get started with the dual-boot process, you can watch this video which teaches how to install dual-boot with Windows and Ubuntu; it perfectly applies to Debian as well:</p>
<p style=""></p>
<hyperlink-card target="_blank" href="https://www.bilibili.com/video/BV1Cc41127B9/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" theme="regular" style="margin-top: 0.75em; margin-bottom: 0;"><a href="https://www.bilibili.com/video/BV1Cc41127B9/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" target="_blank">https://www.bilibili.com/video/BV1Cc41127B9/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f</a></hyperlink-card>
<p style="">For a deep dive into Debian-specific steps, check out this comprehensive installation video:</p>
<hyperlink-card target="_blank" href="https://www.bilibili.com/video/BV15F411d7b3/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" theme="regular" style="margin-top: 0.75em; margin-bottom: 0;"><a href="https://www.bilibili.com/video/BV15F411d7b3/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" target="_blank">https://www.bilibili.com/video/BV15F411d7b3/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f</a></hyperlink-card>
<p style="">You can safely ignore most of the post-installation software he introduces later.</p>
<p style="">My Partition Layout (512GB Dedicated SSD):</p>
<ul>
 <li>
  <p style="">ESP (EFI System Partition): 512 MB</p>
 </li>
 <li>
  <p style="">Swap: 16 GB</p>
 </li>
 <li>
  <p style=""><code>/</code> (Root): 100 GB</p>
 </li>
 <li>
  <p style=""><code>/home</code>: All remaining free space</p>
 </li>
</ul>
<p style="">Key Points for Manual Partitioning:</p>
<ul>
 <li>
  <p style="">Confirm your target disk: Triple-check to ensure you do not select the wrong drive and wipe your Windows data.</p>
 </li>
 <li>
  <p style="">Double-check the EFI partition: Decide whether to reuse the existing EFI partition or create a dedicated new one.</p>
 </li>
 <li>
  <p style="">Pause if you are unsure: Partitioning is the exact step where data is most easily deleted by mistake. Take your time.</p>
 </li>
</ul>
<p style="">I chose KDE as my desktop environment because its layout is highly similar to Windows, and it offers an unparalleled degree of customization.</p>
<h1 style="" id="problem">Problem</h1>
<h2 style="" id="dim-screen-%2F-broken-brightness-control">Dim Screen / Broken Brightness Control</h2>
<p style="">The screen brightness cannot be adjusted and remains stuck on dim. This is usually caused by incorrect kernel backlight parameters.</p>
<p style="">The solution is to edit GRUB:</p>
<pre><code>sudo nano /etc/default/grub</code></pre>
<p style="">Locate the corresponding line （Different systems may vary）</p>
<pre><code>GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=native"</code></pre>
<p style="">change it to</p>
<pre><code>GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=native"</code></pre>
<p style="">then update GRUB and reboot:</p>
<pre><code>sudo update-grub
sudo reboot</code></pre>
<h2 style="" id="nvidia-proprietary-driver-installation">NVIDIA Proprietary Driver Installation</h2>
<p style="">I have to say: fuck NVIDIA. Most graphical or system stability issues encountered afterward are inevitably tied to the NVIDIA drivers.</p>
<p style="">Watch this video/document for the proper setup steps:</p>
<hyperlink-card target="_blank" href="https://www.bilibili.com/video/BV1DMQSBQEs8/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" theme="regular" style="margin-top: 0.75em; margin-bottom: 0;"><a href="https://www.bilibili.com/video/BV1DMQSBQEs8/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f" target="_blank">https://www.bilibili.com/video/BV1DMQSBQEs8/?share_source=copy_web&amp;vd_source=bbdfecd77172c97fb3f9b99cc51d657f</a></hyperlink-card>
<p style="">Once the drivers are fully installed and configured, you can reboot and safely turn NVIDIA GPU Direct Connect back on.</p>
<p style="">There are other problems and I will update them in the futuer.</p>
<h2 style="" id="%E5%86%85%E6%A0%B8%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E5%AF%BC%E8%87%B4%E6%97%A0%E6%B3%95%E8%BF%9B%E5%85%A5%E6%A1%8C%E9%9D%A2">内核自动更新导致无法进入桌面</h2>
<p style="">1.重启系统选择没更新前的内核版本</p>
<p style="">2.安装新内核的头文件（确保包名完整正确）：</p>
<pre><code>sudo apt update
sudo apt install linux-headers-6.12.95+deb13-amd64//根据自己的内核版本号</code></pre>
<p style="">3.编译新内核的显卡驱动</p>
<pre><code>sudo dkms autoinstall</code></pre>
<p style="">4.将新驱动打包进开机镜像</p>
<pre><code>sudo update-initramfs -u -k all</code></pre>
<p style="">5.刷新引导菜单</p>
<pre><code>sudo update-grub</code></pre>
<p style="">6.重启</p>
<p style="">7.直接锁死内核版本</p>
<pre><code>sudo apt-mark hold linux-image-amd64 linux-headers-amd64</code></pre>
<p style="">如果更新解锁</p>
<pre><code>sudo apt-mark unhold linux-image-amd64 linux-headers-amd64</code></pre>
<p style="">别忘了锁定回去和编译新驱动</p>
<p style="">This PDF shows my problem in English.</p>
<hyperlink-card target="_blank" href="/upload/Debian_Windows_DualBoot_Blog_Review.pdf" theme="regular" style="margin-top: 0.75em; margin-bottom: 0;"><a href="https://betterz.cn/upload/Debian_Windows_DualBoot_Blog_Review.pdf" target="_blank">/upload/Debian_Windows_DualBoot_Blog_Review.pdf</a></hyperlink-card>
<h2 style="" id="kde-%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8%E6%8F%92%E4%BB%B6-waywallen-%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%EF%BC%88nvidia-gbm-%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98%EF%BC%89">KDE 动态壁纸插件 Waywallen 无法使用（NVIDIA GBM 兼容性问题）</h2>
<p style="">从 KDE 商店安装的 Waywallen</p>
<p style="">壁纸插件设置壁纸后桌面始终黑屏，终端启动后端守护进程后报错：</p>
<p style="">[ERROR] waywallen-image-renderer: ww_bridge_pool_create failed: -95</p>
<p style="">async error: spawn failed: spawn failed: recv Ready: peer closed connection</p>
<p style="">该问题与电脑硬件无关，根本原因有两个层面：</p>
<p style="">1. NVIDIA 550 驱动的 Optimus Vulkan 隐式层（VK_LAYER_NV_optimus）与 Waywallen</p>
<p style="">的 Vulkan 渲染器冲突，导致渲染进程启动时 SIGSEGV 崩溃。</p>
<p style="">2. 修复崩溃后，渲染器通过 GBM + DMA-BUF 创建 GPU 缓冲区池时，NVIDIA 专有驱动的</p>
<p style="">GBM 实现不支持 Waywallen 请求的缓冲区修饰符（modifier），返回 ENOTSUP（错误码</p>
<p style="">-95）。</p>
<p style="">此问题属于 Waywallen 的已知 bug，已在 GitHub 上登记为 issue #131</p>
<p style="">(https://github.com/waywallen/waywallen/issues/131)。修复需要 Waywallen</p>
<p style="">开发者在代码层面适配 NVIDIA GBM，无法通过环境变量或驱动配置绕过。</p>
<p style="">临时替代方案：使用 KDE 内置的动态壁纸插件</p>
<p style="">luisbocanegra.smart.video.wallpaper.reborn，它不依赖 GBM/DMA-BUF，在 NVIDIA</p>
<p style="">专有驱动下可以正常工作。</p>
<p style="">诊断过程记录（供后续参考）</p>
<p style=""># 确认显卡和驱动信息</p>
<p style="">lspci | grep -E "VGA|3D"</p>
<p style=""># → NVIDIA GA107BM [GeForce RTX 3050 Mobile]</p>
<p style="">nvidia-smi</p>
<p style=""># → Driver Version: 550.163.01</p>
<p style=""># 确认 Waywallen 渲染器崩溃</p>
<p style="">coredumpctl list | grep waywallen</p>
<p style=""># → SIGSEGV: /app/bin/waywallen-image-renderer</p>
<p style=""># 确认崩溃发生在 NVIDIA Vulkan 层内</p>
<p style="">coredumpctl gdb &lt;PID&gt;</p>
<p style=""># → #0 0x00007efeba7f1bc0 in ?? () (地址落在 libGLX_nvidia.so)</p>
<p style=""># 尝试过但无效的修复手段：</p>
<p style=""># flatpak override --user --env=DISABLE_LAYER_NV_OPTIMUS_1=1</p>
<p style="">org.waywallen.waywallen</p>
<p style=""># → 解决了 SIGSEGV，但 -95 错误仍然存在</p>
<p style=""># flatpak override --user --env=LD_PRELOAD=.../libnvidia-egl-gbm.so.1</p>
<p style="">org.waywallen.waywallen</p>
<p style=""># → 强制使用 NVIDIA EGL-GBM，-95 仍然存在</p>
<p style=""># flatpak override --user --env=GBM_BACKEND=.../nvidia-drm_gbm.so</p>
<p style="">org.waywallen.waywallen</p>
<p style=""># → 指定 NVIDIA GBM 后端，-95 仍然存在</p>
<p style=""># 清除所有临时配置（如果之前尝试过上述修复）</p>
<p style="">flatpak override --user --reset org.waywallen.waywallen</p>
<p style="">rm -f ~/.config/autostart/org.waywallen.waywallen.desktop</p>
<p style="">如果将来 NVIDIA 驱动升级至 555+ 版本，GBM 兼容性会有所改善，届时可以重新尝试</p>
<p style="">Waywallen。</p>]]></description><guid isPermaLink="false">/archives/debian-windows-dual-boot-installation-notes</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F1280x1024.svg&amp;size=m" type="image/jpeg" length="18560"/><category>搞机</category><pubDate>Sat, 4 Jul 2026 05:48:12 GMT</pubDate></item><item><title><![CDATA[开发板开发笔记]]></title><link>https://betterz.cn/archives/kai-fa-ban-kai-fa-ri-ji</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E5%BC%80%E5%8F%91%E6%9D%BF%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0&amp;url=/archives/kai-fa-ban-kai-fa-ri-ji" width="1" height="1" alt="" style="opacity:0;">
<p style="">买了一块开发板，<a href="https://doc.embedfire.com/linux/h618/quick_start/zh/latest/quick_start/lubancat/lubancat.html">鲁班猫a0</a>，H618芯片。安装了Ubuntu当成服务器和NAS用，下面是我的开发过程</p>
<h1 style="" id="%E8%BF%9E%E6%8E%A5">连接</h1>
<p style="">两种办法串口连接和ssh。</p>
<h2 style="" id="%E4%B8%B2%E5%8F%A3%E8%BF%9E%E6%8E%A5">串口连接</h2>
<p style="">刚买来没网络环境我用的串口连接，官网都有<a href="https://doc.embedfire.com/linux/h618/quick_start/zh/latest/quick_start/login/login.html">教程</a>。但是我的系统是debian所以官网上的教程有的不适用，我选择的串流软件是minicom。首先插上串口，然后查看串口设备文件</p>
<pre><code>ls -l /dev/ttyUSB* /dev/ttyACM* 2&gt;/dev/null</code></pre>
<p style="">安装配置minicom</p>
<pre><code># 安装
sudo apt install minicom
# 修改配置
sudo minicom -s</code></pre>
<p style="">按 A 设置串口设备为 /dev/ttyUSB0，按 E 设置波特率115200，按 F 关闭设为 No，选择“保存设置为 dfl”，然后“离开本画面”，就进入lubancat系统内了。</p>
<p style="">进入系统第一步应该是连接网络并配置静态ip，官方文档配置静态ip顺序有点错误，正确的应该是</p>
<ol>
 <li>
  <p style="">连接wifi</p>
  <pre><code>sudo nmtui</code></pre>
 </li>
 <li>
  <p style="">查看网关</p>
  <pre><code>route -n</code></pre>
 </li>
 <li>
  <p style="">设置静态ip</p>
 </li>
</ol>
<p style="">比较长，直接查看官方文档，写的很清楚。<a href="https://doc.embedfire.com/linux/h618/quick_start/zh/latest/quick_start/network/network2.html#id13">https://doc.embedfire.com/linux/h618/quick_start/zh/latest/quick_start/network/network2.html#id13</a></p>
<h2 style="" id="ssh%E8%BF%9E%E6%8E%A5">SSH连接</h2>
<p style="">首先要在同一个局域网内，然后要知道ip地址。 这个直接参照官方文档<a href="https://doc.embedfire.com/linux/h618/quick_start/zh/latest/quick_start/login/login.html#ssh">https://doc.embedfire.com/linux/h618/quick_start/zh/latest/quick_start/login/login.html#ssh</a></p>
<h1 style="" id="%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE%E4%B8%8E%E6%9C%8D%E5%8A%A1">系统配置与服务</h1>
<h2 style="" id="%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE">网络配置</h2>
<h3 style="" id="%E7%BD%91%E7%BB%9C%E4%BB%A3%E7%90%86">网络代理</h3>
<p style="">因为是纯命令行所以用的crash</p>
<pre><code>#安装
sudo apt install crash
#运行
crash</code></pre>
<p style="">这样启动有可能权限不够启动失败，所以我换启动脚本</p>
<pre><code>sudo /etc/ShellCrash/menu.sh</code></pre>
<p style="">接下来就和正常配置网络代理一样了，正常导入订阅，如果订阅不能用的话就更换内核试试，别忘设置开机自启，不需要自己设置，脚本里面有快捷配置。</p>
<h3 style="" id="%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F">内网穿透</h3>
<p style="">本来打算使用ipv6但是送的路由器太垃圾了不支持打开ipv6的防火墙，然后使用ddnsgo绑定域名，但是还是因为ipv6没办法连到公网，没招了我就选择zerotier<a href="https://www.zerotier.com/">https://www.zerotier.com/</a>。注意设置的穿透的地址别和实际的ip地址一样。</p>
<h2 style="" id="%E6%9C%8D%E5%8A%A1">服务</h2>
<h3 style="" id="1panel%E9%9D%A2%E6%9D%BF">1panel面板</h3>
<p style="">有一个面板管理起来很方便，而且部署和管理docker看日志也很方便。<a href="https://1panel.cn/">https://1panel.cn/</a></p>
<h3 style="" id="casaos">casaOS</h3>
<p style="">这个东西没太大用，主要是刚开始不知道要搞什么，算是一个NAS系统吧，用官方文档里的一键安装命令安装。<a href="https://doc.embedfire.com/linux/h618/quick_start/zh/latest/lubancat_allwinner_software_hardware/software/CasaOS/casaos.html#id1">https://doc.embedfire.com/linux/h618/quick_start/zh/latest/lubancat_allwinner_software_hardware/software/CasaOS/casaos.html#id1</a></p>
<h3 style="" id="telegram%E4%B8%8B%E8%BD%BD%E6%9C%BA%E5%99%A8%E4%BA%BA">Telegram下载机器人</h3>
<p style="">这个是最爽的，telegram里创建一个频道，视频转发进里面就自动下载。需要向botfather申请一个机器人向官方申请开发者api，服务器上运行telegram的服务器端。</p>
<pre><code>pip3 install telethon
pip3 install cryptg</code></pre>
<p style="">下面是ai写的脚本，我的路径在/opt/bot.py。</p>
<pre><code>from telethon import TelegramClient, events, Button
from telethon.tl.types import DocumentAttributeVideo
import asyncio, os, shutil, subprocess, time
from collections import deque

# ================= 核心配置区 =================
api_id = 
api_hash = ''
bot_token = ''
proxy = ('http', '127.0.0.1', 7890)
target_chat = -1003744786905
BASE_DIR = '/media/nas/Media'

DIRS = {
    "1": {"name": "🎬 电影", "path": f"{BASE_DIR}/Movies"},
    "2": {"name": "📺 剧集", "path": f"{BASE_DIR}/TVShows"},
    "3": {"name": "📂 默认视频", "path": f"{BASE_DIR}/Video"}
}
# =============================================

client = TelegramClient('/opt/real_bot_session', api_id, api_hash, proxy=proxy)

# 全局状态管理
pending_tasks = {}
active_rename_session = {}
download_queue = asyncio.Queue()
download_history = deque(maxlen=10)
current_download_task = {}

# 工具函数：格式化大小、时长、速度、时间
def format_size(bytes_size):
    if bytes_size &lt; 1024**2: return f"{bytes_size/1024:.1f} KB"
    elif bytes_size &lt; 1024**3: return f"{bytes_size/(1024**2):.1f} MB"
    else: return f"{bytes_size/(1024**3):.2f} GB"

def format_duration(seconds):
    h, rem = divmod(seconds, 3600)
    m, s = divmod(rem, 60)
    return f"{h}h {m}m" if h &gt; 0 else f"{m}m {s}s"

def format_speed(bps):
    if bps &lt; 1024**2: return f"{bps/1024:.1f} KB/s"
    else: return f"{bps/(1024**2):.1f} MB/s"

def format_eta(seconds):
    if seconds &lt; 60: return f"{int(seconds)} 秒"
    m, s = divmod(int(seconds), 60)
    h, m = divmod(m, 60)
    if h &gt; 0: return f"{h}小时 {m}分钟"
    return f"{m}分钟 {s}秒"

def get_unique_filename(base_path, custom_name, ext):
    file_path = os.path.join(base_path, f"{custom_name}{ext}")
    counter = 1
    while os.path.exists(file_path):
        file_path = os.path.join(base_path, f"{custom_name}({counter}){ext}")
        counter += 1
    return file_path

def get_media_info_text(media):
    info_text = "📦 **视频信息**\n\n"
    if hasattr(media, 'document'):
        size = getattr(media.document, 'size', 0)
        info_text += f"💾 大小：`{format_size(size)}`\n"
        for attr in media.document.attributes:
            if isinstance(attr, DocumentAttributeVideo):
                info_text += f"⏱ 时长：`{format_duration(attr.duration)}`\n"
                info_text += f"🖥 分辨率：`{attr.w} × {attr.h}`\n"
    return info_text

def get_sys_status():
    try:
        with open('/sys/class/thermal/thermal_zone0/temp', 'r') as f: temp = int(f.read().strip()) / 1000.0
    except: temp = 0.0
    try:
        with open('/proc/loadavg', 'r') as f: load = f.read().split()[:3]; load_str = f"{load[0]} {load[1]} {load[2]}"
    except: load_str = "未知"
    mem = subprocess.check_output(['free', '-m']).decode('utf-8').splitlines()[1].split()
    s_total, s_used, _ = shutil.disk_usage('/')
    try:
        t, u, f = shutil.disk_usage(BASE_DIR)
        ext_disk = f"已用: `{u/(1024**3):.1f}GB` / 总计: `{t/(1024**3):.1f}GB` ({round(u/t*100,1)}%)"
    except: ext_disk = "未检测到硬盘！"
    return (f"📊 **鲁班猫 (H618) 状态面板**\n\n"
            f"🌡️ **温度:** `{temp:.1f} °C`  ⚡ **负载:** `{load_str}`\n"
            f"🧠 **内存:** `{mem[2]}MB / {mem[1]}MB`\n"
            f"📟 **系统盘:** `{s_used/(1024**3):.1f}GB / {s_total/(1024**3):.1f}GB`\n"
            f"💾 **机械硬盘(HDD):**\n   {ext_disk}")

# 后台垃圾回收 (GC)
async def task_cleaner():
    while True:
        now = time.time()
        expired = [k for k, v in pending_tasks.items() if now - v['timestamp'] &gt; 1800]
        for k in expired: del pending_tasks[k]
        await asyncio.sleep(300)

# 单线程下载消费者
async def download_worker():
    while True:
        task_data = await download_queue.get()
        await execute_download(task_data)
        download_queue.task_done()

# 1. 常用指令监听 (/history, /queue, /status)
@client.on(events.NewMessage(pattern='/status', chats=target_chat))
async def status_handler(event):
    await event.reply(get_sys_status())

@client.on(events.NewMessage(pattern='/history', chats=target_chat))
async def history_handler(event):
    if not download_history:
        await event.reply("📭 暂无下载记录。")
        return
    text = "📜 **最近 10 个下载**\n\n"
    for i, item in enumerate(reversed(download_history), 1):
        text += f"{i}. `{item}`\n"
    await event.reply(text)

@client.on(events.NewMessage(pattern='/queue', chats=target_chat))
async def queue_handler(event):
    text = "🔄 **当前下载与队列**\n\n"
    if current_download_task:
        text += f"▶️ **正在下载:**\n`{current_download_task.get('name', '未知')}`  [{current_download_task.get('progress', '0%')}]\n\n"
    else:
        text += "▶️ **正在下载:**\n暂无任务\n\n"
    
    text += "⏳ **等待队列:**\n"
    if download_queue.empty():
        text += "空闲中"
    else:
        for i, item in enumerate(download_queue._queue, 1):
            name = item.get("final_name_guess") or "未命名视频"
            text += f"{i}. `{name}`\n"
    await event.reply(text)

# 2. 捕获媒体资源
@client.on(events.NewMessage(chats=target_chat))
async def message_handler(event):
    if event.text and event.text.startswith('/'): return
            
    # 核心修复：认频道不认人
    if event.chat_id in active_rename_session: return
        
    if event.media:
        task_id = event.id
        pending_tasks[task_id] = {
            "media": event.media,
            "msg_obj": event.message,
            "timestamp": time.time()
        }
                
        info_ui = get_media_info_text(event.media)
                
        await event.reply(
            f"{info_ui}\n📥 **请选择保存分类：**",
            buttons=[
                [Button.inline("🎬 电影", f"dl_1_{task_id}"), Button.inline("📺 剧集", f"dl_2_{task_id}")],
                [Button.inline("📂 默认视频", f"dl_3_{task_id}"), Button.inline("❌ 取消任务", f"cancel_{task_id}")]
            ]
        )

# 3. 按钮回调处理
@client.on(events.CallbackQuery())
async def callback_handler(event):
    data = event.data.decode()
    chat_id = event.chat_id
        
    if data.startswith("cancel_"):
        task_id = int(data.split("_")[1])
        pending_tasks.pop(task_id, None)
        active_rename_session.pop(chat_id, None)
        await event.edit("🚫 **任务已取消并清理**。")
        return
        
    if data.startswith("dl_"):
        _, category_id, task_id_str = data.split("_")
        task_id = int(task_id_str)
                
        if task_id not in pending_tasks:
            await event.answer("❌ 任务已过期 (超30分钟) 或被清理！", alert=True)
            return
                    
        cat_name = DIRS[category_id]["name"]
        save_path = DIRS[category_id]["path"]
                
        pending_tasks[task_id]["category_id"] = category_id
        pending_tasks[task_id]["cat_name"] = cat_name
        pending_tasks[task_id]["save_path"] = save_path
                
        # 将任务绑定给当前频道
        active_rename_session[chat_id] = task_id
                
        await event.edit(
            f"🚀 **已选择：{cat_name}**\n\n"
            f"✍️ 请直接发送你要修改的【**文件名**】。\n"
            f"💡 *(直接回复数字 `0` 则保持原名)*"
        )

# 4. 捕获命名并入队
@client.on(events.NewMessage(chats=target_chat))
async def name_input_handler(event):
    chat_id = event.chat_id
    if chat_id not in active_rename_session: return
                
    task_id = active_rename_session.pop(chat_id)
    task = pending_tasks.pop(task_id, None)
                
    if not task:
        await event.reply("❌ 任务异常丢失。")
        return
                
    input_name = event.text.strip()
    custom_name = "".join([c for c in input_name if c not in r'\/:*?"&lt;&gt;|']) if input_name != "0" else None
    task["custom_name"] = custom_name
    task["final_name_guess"] = custom_name if custom_name else "默认原名任务"
                
    queue_size = download_queue.qsize()
    status_msg = await event.reply(f"⏳ **排队中...**\n前面还有 {queue_size} 个任务在等待。")
    task["status_msg"] = status_msg
                
    await download_queue.put(task)

# 5. 带有可视化进度条与 ETA 的核心下载引擎
async def execute_download(task):
    save_path = task["save_path"]
    cat_name = task["cat_name"]
    custom_name = task["custom_name"]
    status_msg = task["status_msg"]
                
    os.makedirs(save_path, exist_ok=True)
                
    progress_state = {
        "last_time": time.time(),
        "last_bytes": 0,
        "ui_update_time": 0
    }
    
    async def progress_callback(current, total):
        now = time.time()
        # 控制刷新频率为 3 秒
        if now - progress_state["ui_update_time"] &gt; 3:
            diff_bytes = current - progress_state["last_bytes"]
            diff_time = now - progress_state["last_time"]
            speed_bps = diff_bytes / diff_time if diff_time &gt; 0 else 0
                            
            # 安全处理总大小，防止死锁
            safe_total = total if total else (current + 1)
            percent = (current / safe_total) * 100
            eta_seconds = (safe_total - current) / speed_bps if speed_bps &gt; 0 else 0
                            
            # 渲染进度块
            filled = int(percent / 10)
            bar = f"[{'█' * filled}{'░' * (10 - filled)}]"
                            
            current_download_task["progress"] = f"{percent:.1f}%"
                            
            text = (f"⬇️ **下载中... ({cat_name})**\n\n"
                    f"{bar} `{percent:.1f}%`\n\n"
                    f"📊 容量: `{format_size(current)} / {format_size(safe_total)}`\n"
                    f"🚀 速度: `{format_speed(speed_bps)}`\n"
                    f"⏳ 剩余: `{format_eta(eta_seconds)}`")
            try:
                await status_msg.edit(text)
            except Exception:
                pass
                            
            progress_state["last_time"] = now
            progress_state["last_bytes"] = current
            progress_state["ui_update_time"] = now

    try:
        ext = ".mp4"
        if hasattr(task["media"], 'document'):
            for attr in task["media"].document.attributes:
                if hasattr(attr, 'file_name') and attr.file_name:
                    ext = os.path.splitext(attr.file_name)[1]
                    break
                    
        if not custom_name:
            custom_name = "未命名视频"
            if hasattr(task["media"], 'document'): 
                for attr in task["media"].document.attributes:
                    if hasattr(attr, 'file_name') and attr.file_name:
                        custom_name = os.path.splitext(attr.file_name)[0]
                        break
                
        final_file_path = get_unique_filename(save_path, custom_name, ext)
        final_name = os.path.basename(final_file_path)
                
        current_download_task["name"] = final_name
        current_download_task["progress"] = "0%"
                
        await status_msg.edit(f"🚀 开始下载：`{final_name}`...")
                
        await client.download_media(task["media"], file=final_file_path, progress_callback=progress_callback)
                
        current_download_task.clear()
        download_history.append(final_name)
                
        final_size = os.path.getsize(final_file_path)
                
        finish_text = (f"🎉 **下载完成**\n\n"
                      f"📁 文件：\n`{final_name}`\n\n"
                      f"💾 大小：\n`{format_size(final_size)}`\n\n"
                      f"🏷 分类：\n`{cat_name}`")
        await status_msg.edit(finish_text)
                
    except Exception as e:
        current_download_task.clear()
        await status_msg.edit(f"❌ **下载失败**\n错误: {str(e)}")

print("机器人启动...")
loop = asyncio.get_event_loop()
loop.create_task(task_cleaner())
loop.create_task(download_worker())

# 携带 Bot Token 启动
client.start(bot_token=bot_token)
client.run_until_disconnected()</code></pre>
<h3 style="" id="docker">Docker</h3>
<p style="">我的建议是全部在1panel上部署，这样方便查看和管理，而且操作也简单方便。下面是几个好用的：</p>
<h4 style="" id="freellmapi">freellmapi</h4>
<p style=""><a href="https://github.com/tashfeenahmed/freellmapi">https://github.com/tashfeenahmed/freellmapi</a>这个是集成全网免费的ai，需要自己一个一个注册输入api，如果用得少不的话随便配置几个就行了，我主要是用来玩一些可以接入ai的游戏，纯娱乐，如果需要智商不高免费的ai的话挺值得搞一个的。下面是在docker部署的步骤：</p>
<h5 style="" id="1.-%E5%88%9B%E5%BB%BA%E4%B8%93%E5%B1%9E%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95">1. 创建专属工作目录</h5>
<p style="">为了避免权限错乱，在普通用户家目录下创建项目文件夹：</p>
<pre><code>mkdir -p ~/freellmapi &amp;&amp; cd ~/freellmapi</code></pre>
<h5 style="" id="2.-%E7%94%9F%E6%88%90-.env-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">2. 生成 .env 配置文件</h5>
<p style="">自动生成安全所需的 32 位随机 AES 密钥并写入配置文件：</p>
<pre><code>ENCRYPTION_KEY="$(openssl rand -hex 32)"
printf "ENCRYPTION_KEY=%s\nPORT=3001\nHOST_BIND=0.0.0.0\n" "$ENCRYPTION_KEY" &gt; .env</code></pre>
<h5 style="" id="3.%E9%85%8D%E7%BD%AE%E4%BB%A3%E7%90%86">3.配置代理</h5>
<p style="">修改 Docker 核心总控文件 /etc/docker/daemon.json：</p>
<pre><code>sudo mkdir -p /etc/docker    

sudo cat &lt;&lt; 'EOF' &gt; /etc/docker/daemon.json
{
  "proxies": {
    "http-proxy": "http://127.0.0.1:7890",
    "https-proxy": "http://127.0.0.1:7890",
    "no-proxy": "localhost,127.0.0.1"
  }
}
EOF</code></pre>
<p style="">重启 Docker 并拉取原生镜像</p>
<pre><code>sudo systemctl restart docker
docker compose pull</code></pre>
<p style="">执行完后恢复 Docker 全局网络</p>
<pre><code>sudo cat &lt;&lt; 'EOF' &gt; /etc/docker/daemon.json
{}
EOF     

sudo systemctl restart docker</code></pre>
<h5 style="" id="4.%E9%85%8D%E7%BD%AE-docker-compose.yml">4.配置 docker-compose.yml</h5>
<p style="">在 ~/freellmapi 目录下，创建并写入以下配置文件</p>
<pre><code>cat &lt;&lt; 'EOF' &gt; docker-compose.yml
services:
  freellmapi:
    image: ghcr.io/tashfeenahmed/freellmapi:latest
    network_mode: "host"
    env_file:
      - .env
    environment:
      NODE_ENV: production
      PORT: 3001
      # 仅本容器内部请求会走 7890 代理，绝对不影响宿主机和其他应用
      HTTP_PROXY: http://127.0.0.1:7890
      HTTPS_PROXY: http://127.0.0.1:7890
      http_proxy: http://127.0.0.1:7890
      https_proxy: http://127.0.0.1:7890
      PROXY_URL: http://127.0.0.1:7890
    volumes:
      - freellmapi-data:/app/server/data
    restart: unless-stopped

volumes:
  freellmapi-data:
EOF</code></pre>
<h5 style="" id="5.%E5%90%AF%E5%8A%A8%E5%AE%B9%E5%99%A8">5.启动容器</h5>
<pre><code>docker compose up -d</code></pre>
<p style="">查看是否成功</p>
<pre><code>docker compose logs --tail=20</code></pre>
<p style="">如果有</p>
<pre><code>[proxy] Configured → http://127.0.0.1:7890
Server running on http://[::]:3001</code></pre>
<p style="">代表成功。</p>
<h5 style="" id="6.%E5%90%AF%E5%8A%A8">6.启动</h5>
<p style="">IP:3001</p>
<h4 style="" id="frpc">FRPC</h4>
<p style="">这个也是内网穿透，但是和zerotier不一样的是这个是连接到我的阿里云服务器，有公网ip，可以直接访问。搞这个的原因是手机上zerotier是vpn服务，如果自己再开一个vpn使用国外工具的话两者不能共存（手机只支持开一个vpn）。直接在1panel的商店找到就行，然后按照模板改下配置文件配置ip地址和密码，在服务端也改一下就行了。路径是/opt/1panel/apps/frpc/.env</p>
<h4 style="" id="navidrome">Navidrome</h4>
<h5 style="" id="%E5%88%9B%E5%BB%BA%E6%96%87%E4%BB%B6">创建文件</h5>
<p style="">登录1Panel ，进入文件。直接在 /opt 目录下新建一个名为 navidrome 的文件夹。在 /opt/navidrome 内部，继续创建两个子文件夹：data （用于存放系统数据）music 。点击 1Panel 左侧菜单的 “容器” -&gt; “编排”。点击右上角的 “创建编排”。我安装了casaos,里面下载了音乐所以存储第一个挂载/date第二个挂载真正的音乐文件夹。</p>
<h5 style="" id="%E7%BC%96%E6%8E%92%E5%AE%B9%E5%99%A8">编排容器</h5>
<p style="">编排名称：填写 navidrome，编辑模式：选择“文本”。</p>
<pre><code>version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      ND_LOGLEVEL: "info"
      ND_SESSIONTIMEOUT: "24h"
      ND_BASEURL: ""
      ND_DEFAULTLANGUAGE: "zh-CN"
    volumes:
      - "/opt/navidrome/data:/data"
      - "/DATA/Media/Music:/music:ro"</code></pre>
<p style="">点击确定即可</p>
<h5 style="" id="%E8%AE%BE%E7%BD%AE">设置</h5>
<p style="">进入4533端口，完成初始化设置，创建博客所需的歌单进入歌单复制浏览器后的那一串id。在插件设置里公网ip填http://192.168.1.6:4533（按自己的来），容器/内网服务地址：http://navidrome:4533，其他照填。歌单id填刚刚复制的那串。</p>
<h5 style="" id="%E6%94%B9%E5%86%99">改写</h5>
<p style="">感觉原版的图标太丑了，又大遮挡视野，重写了一下，因为用了大量ai留着自用不提交了。 <a href="https://www.doubao.com/upload/plugin-navidrome-0.1.0-SNAPSHOT.jar">plugin-navidrome-0.1.0-SNAPSHOT.jar</a></p>
<h3 style="" id="%E6%8A%96%E9%9F%B3%E7%BB%AD%E7%81%AB%E8%8A%B1%E8%84%9A%E6%9C%AC">抖音续火花脚本</h3>
<p style="">项目<a href="https://github.com/2061360308/DouYinSparkFlow">https://github.com/2061360308/DouYinSparkFlow</a>，由于抖音风控作者预制的方法无法使用，于是部署在服务器上，由于是arm架构还挺麻烦的不过家用宽带应该不会风控了。</p>
<h4 style="" id="%E9%80%82%E7%94%A8%E7%8E%AF%E5%A2%83%EF%BC%9A">适用环境：</h4>
<p style="">系统架构：aarch64 / arm64（x86_64 同样适用） 操作系统：Ubuntu 22.04 / Debian 系 内存：≥ 3.8 GB 已能联网访问 creator.douyin.com</p>
<p style=""><strong>⚠️ 不要走 Docker、不要走系统 chromium-browser 包、不要走 snap chromium。这三个坑在本项目里都不通，原因见文末「附录：踩过的坑」。</strong></p>
<h4 style="" id="0.-%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C">0. 准备工作</h4>
<h5 style="" id="0.1-%E6%8B%89%E5%8F%96%E4%BB%A3%E7%A0%81">0.1 拉取代码</h5>
<pre><code>cd ~
git clone https://github.com/12userzhou/DouYinSparkFlow.git douyinsparkflow
# 如果是你自己 fork 的仓库，把 URL 换成 fork 地址
cd douyinsparkflow</code></pre>
<h5 style="" id="0.2-%E5%85%B3%E9%97%AD-github-action-%E5%AE%9A%E6%97%B6">0.2 关闭 GitHub Action 定时</h5>
<p style="">⚠️ 本项目默认带 3 个 GitHub Actions 定时工作流（schedule.yml / schedule_api.yml / schedule_dev.yml），每天都会自动跑一次。既然改用本地 crontab 部署，必须关掉 GitHub 这边的定时，否则会容易触发抖音风控导致 cookie 失效</p>
<p style="">方式 A：GitHub UI 禁用（推荐，30 秒搞定） 不需要任何 git 操作，直接在网页上点：</p>
<ol>
 <li>
  <p style="">打开 <a href="https://github.com/">https://github.com/</a>&lt;你的用户名&gt;/DouYinSparkFlow/actions</p>
 </li>
 <li>
  <p style="">左侧列表依次点这三个 workflow：</p>
  <ul>
   <li>
    <p style="">DouYin Spark Flow Schedule Run</p>
   </li>
   <li>
    <p style="">【api（测试）分支】DouYin Spark Flow Schedule Run</p>
   </li>
   <li>
    <p style="">【dev（测试）分支】DouYin Spark Flow Schedule Run</p>
   </li>
  </ul>
 </li>
 <li>
  <p style="">进每个 workflow 后，点右上角 ... → Disable workflow</p>
 </li>
</ol>
<p style="">禁用后定时和手动触发都会停止，本地 crontab 不受影响。做完这一步就够了，下面的方式 B 可以跳过。</p>
<p style="">方式 B：改 workflow 文件后 push（可选，需带 workflow scope 的 PAT） 把"已禁用定时"的状态固化进代码仓库，可以编辑三个 workflow 文件，把 schedule: 触发器注释掉：</p>
<pre><code>on:
  workflow_dispatch: # 允许手动触发
  # 已改为本地 crontab 部署，禁用 GitHub Action 定时
  # schedule: # 定时任务
  #   - cron: "0 19 * * *"</code></pre>
<p style="">然后提交并推送</p>
<pre><code>git add .github/workflows/
git commit -m "ci: 禁用 GitHub Actions 定时触发"
git push origin main</code></pre>
<p style="">⚠️ 注意：push 含 .github/workflows/ 的改动要求 PAT 带 workflow scope，否则会报 refusing to allow a Personal Access Token to create or update workflow ... without workflow scope。去 <a href="https://github.com/settings/tokens">https://github.com/settings/tokens</a> 勾上 workflow scope 重新生成即可。不想折腾 token 的话，直接用方式 A，效果一样。</p>
<h4 style="" id="1.-%E4%B8%80%E9%94%AE%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83">1. 一键部署环境</h4>
<p style="">仓库里有现成的 setup-native.sh，它会自动完成以下 5 步：</p>
<ol>
 <li>
  <p style="">安装系统依赖（Python venv + Playwright 运行库 libnss3 / libatk / libgbm 等）</p>
 </li>
 <li>
  <p style="">创建 Python 虚拟环境（用 --without-pip + get-pip.py 兜底，绕开 Ubuntu 22.04 上 venv 不完整的问题）</p>
 </li>
 <li>
  <p style="">用阿里云镜像装 Python 依赖</p>
 </li>
 <li>
  <p style="">用 Playwright 官方 CDN 下载 arm64 chromium headless_shell</p>
 </li>
 <li>
  <p style="">创建 logs 目录</p>
 </li>
</ol>
<p style="">直接执行：</p>
<pre><code>bash setup-native.sh</code></pre>
<p style="">关键点：</p>
<ul>
 <li>
  <p style="">chromium 必须用 <code>PLAYWRIGHT_DOWNLOAD_HOST=https://playwright.azureedge.net</code> 走官方 CDN，国内 npmmirror 镜像缺 arm64 headless_shell 包会 404。</p>
 </li>
 <li>
  <p style="">venv 必须用 <code>--without-pip</code>，否则在部分 Ubuntu 22.04 上 venv 创建不完整（只有 python 软链，没有 activate / pip）。</p>
 </li>
 <li>
  <p style="">不要装系统的 chromium-browser 包，它在 arm64 上是个 wrapper 脚本会报错，而且 snap 版本受 GLIBC 限制跑不起来。</p>
 </li>
</ul>
<p style="">部署成功后，会看到类似输出：</p>
<pre><code>==========================================
 部署完成！
==========================================</code></pre>
<h4 style="" id="2.-%E5%88%9B%E5%BB%BA-.env-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">2. 创建 .env 配置文件</h4>
<p style="">在项目根目录创建 .env，模板可参考 .env.example。下面是一份实测可用的最小配置示例：</p>
<pre><code># ===== 普通变量 =====
# 消息内容（不需要一言就直接写文字）
MESSAGE_TEMPLATE=早上好     

# 一言类型（MESSAGE_TEMPLATE 不含 [API] 时这个字段会被忽略）
HITOKOTO_TYPES=["文学","影视","诗词","哲学"]     

# 匹配模式：short_id = 按抖音号匹配（推荐，比 nickname 稳定）
MATCH_MODE=short_id     

BROWSER_TIMEOUT=120000
FRIEND_LIST_WAIT_TIME=2000
TASK_RETRY_TIMES=3
LOG_LEVEL=INFO     

# ===== 任务列表 =====
# username 是备注名（日志里用）；unique_id 用于关联下面的 COOKIES_
# targets 里填好友的【抖音号 unique_id】或【纯数字 short_id】，两种都能匹配
TASKS=[{"username":"不偷井盖（吃香菜版）","unique_id":"u1","targets":["抖音号1","抖音号2"]}]     

# ===== Cookie =====
# 从浏览器开发者工具导出的 Cookie JSON 数组（数组里每个对象要有 name/value/domain/path）
COOKIES_U1=[{"name":"sessionid","value":"替换成真实值","domain":".douyin.com","path":"/"}, ...]</code></pre>
<p style="">获取cookie原本文档里有。</p>
<h4 style="" id="3.-%E6%89%8B%E5%8A%A8%E8%BF%90%E8%A1%8C%E9%AA%8C%E8%AF%81">3. 手动运行验证</h4>
<pre><code>cd ~/douyinsparkflow
source venv/bin/activate
python -u main.py 2&gt;&amp;1 | tee /tmp/run.log</code></pre>
<p style="">看到这样的日志说明发送成功：</p>
<pre><code>[browser] 使用 Playwright headless_shell: /home/cat/.cache/ms-playwright/chromium_headless_shell-1208/chrome-linux/headless_shell
INFO - 开始执行任务
INFO - 开始处理账号 不偷井盖（吃香菜版）
INFO - 监听到 user_detail 接口响应，user_list 共 15 条
INFO - 选中目标好友 槐序 (61905275090) 准备开始交互
INFO - 已选中好友 槐序，准备发送消息
INFO - 准备输入消息给好友 槐序：'早上好'
INFO - 输入框实际内容：'早上好'
INFO - 给好友 槐序 发送消息完成（输入框已清空）
...
INFO - 任务完成</code></pre>
<p style="">每个好友都会经历「选中 → 输入 → 验证输入框内容 → 回车发送 → 清空确认」五个步骤。</p>
<h4 style="" id="4.-%E5%90%8E%E7%BB%AD%E7%BB%B4%E6%8A%A4">4. 后续维护</h4>
<h5 style="" id="4.1-%E8%AE%BE%E7%BD%AE%E6%AF%8F%E5%A4%A9-4-%E7%82%B9%E5%AE%9A%E6%97%B6%E6%89%A7%E8%A1%8C">4.1 设置每天 4 点定时执行</h5>
<pre><code># 编辑 crontab
crontab -e</code></pre>
<p style="">加入下面这行（注意把路径换成你的真实路径）</p>
<pre><code>0 4 * * * cd /home/cat/douyinsparkflow &amp;&amp; /home/cat/douyinsparkflow/venv/bin/python main.py &gt;&gt; /home/cat/douyinsparkflow/logs/cron.log 2&gt;&amp;1</code></pre>
<p style="">保存退出。验证：</p>
<pre><code>crontab -l</code></pre>
<h5 style="" id="4.2-%E6%9B%B4%E6%96%B0-cookie%EF%BC%88%E6%9C%80%E5%B8%B8%E7%94%A8%E7%9A%84%E7%BB%B4%E6%8A%A4%E6%93%8D%E4%BD%9C%EF%BC%89">4.2 更新 Cookie（最常用的维护操作）</h5>
<p style="">Cookie 过期后，重新从浏览器导出，然后二选一：</p>
<p style="">方式 A：用脚本（推荐）</p>
<pre><code>cd ~/douyinsparkflow
bash update_cookie.sh
# 把新 cookie JSON 粘进去，Ctrl+D 结束</code></pre>
<p style="">方式 B：手动编辑</p>
<pre><code>nano ~/douyinsparkflow/.env
# 找到 COOKIES_U1= 那一行，整行替换</code></pre>
<p style="">更新后立即跑一次验证：</p>
<pre><code>source venv/bin/activate &amp;&amp; python -u main.py 2&gt;&amp;1 | tee /tmp/run.log</code></pre>
<h5 style="" id="4.3-%E6%94%B9%E6%B6%88%E6%81%AF%E5%86%85%E5%AE%B9">4.3 改消息内容</h5>
<pre><code>cd ~/douyinsparkflow
# 例如改成"晚安"
sed -i 's|^MESSAGE_TEMPLATE=.*|MESSAGE_TEMPLATE=晚安|' .env</code></pre>
<h5 style="" id="4.4-%E6%94%B9%E5%A5%BD%E5%8F%8B%E5%88%97%E8%A1%A8">4.4 改好友列表</h5>
<pre><code>cd ~/douyinsparkflow
# 整行替换 TASKS=
# 注意 targets 里的抖音号结尾如果有 . 必须保留
sed -i 's|^TASKS=.*|TASKS=[{"username":"不偷井盖（吃香菜版）","unique_id":"u1","targets":["",""]}]|' .env</code></pre>
<p style="">增加好友列表打开.env找到tasks</p>
<h5 style="" id="4.5-%E6%9F%A5%E7%9C%8B%E6%97%A5%E5%BF%97">4.5 查看日志</h5>
<pre><code># crontab 的运行日志
tail -f ~/douyinsparkflow/logs/cron.log     

# 旧的运行日志（每次手动运行会覆盖）
ls ~/douyinsparkflow/logs/</code></pre>
<h5 style="" id="4.6-%E5%88%A4%E6%96%AD-cookie-%E6%98%AF%E5%90%A6%E8%BF%87%E6%9C%9F">4.6 判断 Cookie 是否过期</h5>
<p style="">跑一次 python -u main.py，如果日志里反复出现</p>
<pre><code>ERROR - 账号 xxx 第 1/3 次检测到登录/扫码页面，cookie 可能已失效
ERROR - 账号 xxx 第 2/3 次检测到登录/扫码页面，cookie 可能已失效
ERROR - 账号 xxx 第 3/3 次检测到登录/扫码页面，cookie 可能已失效</code></pre>
<p style="">就是 Cookie 过期了，按 4.2 节更新即可。</p>
<h4 style="" id="5.-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98">5. 常见问题</h4>
<p style="">Q1：ModuleNotFoundError: No module named 'dotenv'</p>
<p style="">没有激活 venv，或者 venv 没装好。</p>
<pre><code>cd ~/douyinsparkflow
source venv/bin/activate
python -u main.py</code></pre>
<p style="">Q2：chromium-headless-shell-linux-arm64.zip 404</p>
<p style="">下载源不对，必须用官方 CDN：</p>
<pre><code>source venv/bin/activate
PLAYWRIGHT_DOWNLOAD_HOST=https://playwright.azureedge.net playwright install chromium</code></pre>
<p style="">Q3：Missing X server</p>
<p style="">启用了完整 chromium 而不是 headless_shell。项目 core/browser.py 已经做了自动选择，确保 ~/.cache/ms-playwright/chromium_headless_shell-*/ 目录存在即可。</p>
<p style="">Q4：requires the chromium snap to be installed</p>
<p style="">误用了系统 chromium。卸载 snap chromium：</p>
<pre><code>sudo snap remove chromium</code></pre>
<p style="">Q5：只给第一个好友发了消息</p>
<p style="">检查 .env 里 TASKS 的 targets 数组是不是真的有多个元素，以及抖音号结尾的 . 有没有漏掉。</p>
<p style="">Q6：日志里出现 解析响应失败: Response.json: Target page, context or browser has been closed</p>
<p style="">无害噪音，浏览器关闭时残留接口响应触发的，已经做了静默处理，可以忽略</p>
<p style="">Q7：crontab 不执行</p>
<p style="">确认 crond 服务在跑：<code>sudo systemctl status cron</code> 确认 venv 路径对：<code>ls /home/cat/douyinsparkflow/venv/bin/python</code> 看日志：<code>tail -f /home/cat/douyinsparkflow/logs/cron.log</code></p>
<p style="">Q8：GitHub Action 还在定时跑，和本地 crontab 重复发送</p>
<p style="">说明 workflow 没被禁用。最快的解决办法是去 GitHub UI 直接禁用（不需要 git 操作），见本文档「0.3 关闭 GitHub Action 定时 → 方式 A」。 如果走方式 B（改 workflow 文件 push），push 时报 refusing to allow a Personal Access Token to create or update workflow ... without workflow scope，说明你的 PAT 没 workflow scope，去 token 设置页勾上重新生成就行；不想折腾 token 的话直接用方式 A，效果一样。</p>
<h4 style="" id="%E9%99%84%E5%BD%95%EF%BC%9A%E8%B8%A9%E8%BF%87%E7%9A%84%E5%9D%91%EF%BC%88%E4%BB%85%E4%BE%9B%E9%81%BF%E9%9B%B7%EF%BC%8C%E6%97%A0%E9%9C%80%E6%93%8D%E4%BD%9C%EF%BC%89">附录：踩过的坑（仅供避雷，无需操作）</h4>
<div style="overflow-x: auto; overflow-y: hidden;">
 <table style="width: 813px">
  <colgroup>
   <col style="width: 100px">
   <col style="width: 713px">
  </colgroup>
  <tbody>
   <tr style="height: 60px;">
    <th colspan="1" rowspan="1" colwidth="100">
     <p style="">方案</p>
    </th>
    <th colspan="1" rowspan="1" colwidth="713">
     <p style="">失败原因</p>
    </th>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Docker 部署</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="713">
     <p style="">Playwright 官方 chromium 无 arm64 预编译镜像，Docker build 在 arm64 上卡死</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">系统装 chromium-browser apt 包</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="713">
     <p style="">Ubuntu 22.04 上是个 wrapper 脚本，会报 requires the chromium snap to be installed</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">snap chromium</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="713">
     <p style="">1) 鲁班猫受限内核报 cannot attach cgroup；2) 真实二进制报 GLIBC_2.38 not found（Ubuntu 22.04 只有 2.35）</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">npmmirror 下载 Playwright chromium</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="713">
     <p style="">缺 arm64 headless_shell 包，404</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">python3 -m venv venv 不带参数</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="713">
     <p style="">Ubuntu 22.04 上 venv 创建不完整（只有 python 软链，没有 activate / pip）</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">用完整 chromium 跑 headless</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="713">
     <p style="">报 Missing X server，必须用 headless_shell</p>
    </td>
   </tr>
  </tbody>
 </table>
</div>
<p style="">最终的正确方案就是本教程第 1 节的 setup-native.sh：Playwright 官方 CDN 下载 arm64 headless_shell + --without-pip 创建 venv。</p>
<h3 style="" id="%E5%AE%89%E5%85%A8%E9%98%B2%E6%8A%A4">安全防护</h3>
<p style="">使用了Fail2Ban（SSH 防爆破 + 实时告警） 和 rkhunter（挖矿 / 后门定期扫描）配合<a href="https://link.wtturl.cn/?target=https%3A%2F%2Fsct.ftqq.com&amp;scene=im&amp;aid=497858&amp;lang=zh" target="_blank" rel="">Server 酱</a>消息推送。</p>
<h4 style="" id="fail2ban">Fail2Ban</h4>
<h5 style="" id="%E5%AE%89%E8%A3%85">安装</h5>
<pre><code>sudo apt update
sudo apt install -y fail2ban</code></pre>
<h5 style="" id="%E9%85%8D%E7%BD%AE-ssh-%E9%98%B2%E6%8A%A4%E8%A7%84%E5%88%99">配置 SSH 防护规则</h5>
<p style="">新建本地配置文件（不要修改默认的jail.conf，系统升级会被覆盖）：</p>
<p style="">粘贴以下配置：</p>
<pre><code>[DEFAULT]
bantime = 3600    # 封禁时长：3600秒=1小时
findtime = 600    # 10分钟内统计失败次数
maxretry = 5      # 最多失败5次就封禁

[sshd]
enabled = true
port = ssh        # 如果你的SSH不是22端口，改成实际端口号
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
action = %(action_)s
         wechat</code></pre>
<p style="">触发封禁时自动发微信</p>
<pre><code>sudo nano /etc/fail2ban/action.d/wechat.conf</code></pre>
<p style="">粘贴内容，替换你的SendKey</p>
<pre><code>[Definition]
actionban = curl -s "https://sctapi.ftqq.com/你的SendKey.send?title=SSH封禁告警&amp;desp=IP &lt;ip&gt; 连续登录失败，已被封禁1小时" &gt; /dev/null
actionunban = curl -s "https://sctapi.ftqq.com/你的SendKey.send?title=SSH解封通知&amp;desp=IP &lt;ip&gt; 封禁到期已自动解封" &gt; /dev/null</code></pre>
<p style="">加执行权限</p>
<pre><code>sudo chmod +x /etc/profile.d/login_alert.sh</code></pre>
<p style="">设置开机自启</p>
<pre><code>sudo systemctl enable --now fail2ban</code></pre>
<p style="">常用管理命令</p>
<pre><code># 查看SSH防护状态、已封禁IP
sudo fail2ban-client status sshd
# 手动解封某个IP
sudo fail2ban-client set sshd unbanip 要解封的IP地址</code></pre>
<h3 style="" id="rkhunter">rkhunter</h3>
<h4 style="" id="%E5%AE%89%E8%A3%85-1">安装</h4>
<pre><code>sudo apt install -y rkhunter</code></pre>
<h4 style="" id="%E9%85%8D%E7%BD%AE">配置</h4>
<p style="">初始化系统</p>
<pre><code>sudo rkhunter --update
sudo rkhunter --propupd</code></pre>
<p style="">配置每日自动扫描 + 微信告警</p>
<pre><code>sudo nano /etc/cron.daily/rkhunter_scan.sh</code></pre>
<p style="">粘贴内容</p>
<pre><code>#!/bin/bash
# 执行静默扫描，只保留警告信息
rkhunter --check --skip-keypress --report-warnings-only &gt; /tmp/rkhunter_result.log 2&gt;/dev/null

# 有异常则推送微信
if [ -s /tmp/rkhunter_result.log ]; then
    content=$(cat /tmp/rkhunter_result.log | tr '\n' '&lt;br&gt;')
    curl -s "https://sctapi.ftqq.com/你的SendKey.send?title=安全扫描告警&amp;desp=$content" &gt; /dev/null
fi</code></pre>
<p style="">给脚本加执行权限：</p>
<pre><code>sudo chmod +x /etc/cron.daily/rkhunter_scan.sh</code></pre>
<p style="">手动扫描命令</p>
<pre><code>sudo rkhunter --check --skip-keypress --report-warnings-only \
  --disable suspscan,hidden_procs,deleted_procs \
  --exclude-dir=/var/lib/docker \
  --exclude-dir=/mnt \
  --exclude-dir=/media \
  --exclude-dir=/tmp/ShellCrash</code></pre>
<p style="">优化规则写入配置文件</p>
<pre><code>sudo tee -a /etc/rkhunter.conf &lt;&lt; 'EOF'
# 排除大体积/外部挂载目录
EXCLUDE_DIR=/var/lib/docker
EXCLUDE_DIR=/mnt
EXCLUDE_DIR=/media
EXCLUDE_DIR=/tmp/ShellCrash

# 禁用耗时且低优先级的检测项
DISABLE_TESTS=suspscan hidden_procs deleted_procs
EOF</code></pre>
<h2 style="" id="%E7%A1%AC%E4%BB%B6">硬件</h2>
<p style="">搞了一块ST7789 屏幕显示ip地址、温度和内存、cpu使用率但是感觉没必要拔了，还是分享一下吧毕竟不会搞硬件插错好多次以为写错了搞了好久。</p>
<h3 style="" id="40-pin-%E7%89%A9%E7%90%86%E6%8E%A5%E7%BA%BF%E5%9B%BE">40-Pin 物理接线图</h3>
<div style="overflow-x: auto; overflow-y: hidden;">
 <table style="width: 400px">
  <colgroup>
   <col style="width: 100px">
   <col style="width: 100px">
   <col style="width: 100px">
   <col style="width: 100px">
  </colgroup>
  <tbody>
   <tr style="height: 60px;">
    <th colspan="1" rowspan="1" colwidth="100">
     <p style="">ST7789 屏幕引脚</p>
    </th>
    <th colspan="1" rowspan="1" colwidth="100">
     <p style="">鲁班猫 A0 物理引脚号</p>
    </th>
    <th colspan="1" rowspan="1" colwidth="100">
     <p style="">鲁班猫 A0 系统功能 / 编号</p>
    </th>
    <th colspan="1" rowspan="1" colwidth="100">
     <p style="">状态及作用</p>
    </th>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">VCC</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 1</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">3.3V</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">屏幕供电（<strong>绝不能接5V</strong>）</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">GND</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 6</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">GND</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">供电地线</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">BL</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 17</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">3.3V</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">背光常亮（<strong>必须接 3.3V</strong>）</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SDA</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 19</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SPI1_MOSI</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SPI 数据线</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SCL</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 23</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SPI1_CLK</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SPI 时钟线</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">DC</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 13</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">GPIO 72 (PC8)</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">数据/命令控制引脚</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">RST / RES</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 27</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">GPIO 75 (PC11)</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">屏幕硬件复位引脚</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">CS</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">Pin 37</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SPI1_CS0 (PH5)</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">屏幕片选线</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">SDO</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">不接 (悬空)</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">-</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">屏幕无输出数据，不接</p>
    </td>
   </tr>
   <tr style="height: 60px;">
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">CSF</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">不接 (悬空)</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">-</p>
    </td>
    <td colspan="1" rowspan="1" colwidth="100">
     <p style="">字库芯片片选，不接</p>
    </td>
   </tr>
  </tbody>
 </table>
</div>
<h3 style="" id="%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE">系统配置</h3>
<p style="">环境配置文件路径：/boot/uEnv.txt</p>
<pre><code>#26pin
overlays=h618-lubancat-spi1-overlay.dtbo
#格式:overlays=xxx.dtbo xxx.dtbo xxx.dtbo
#2选1:h618-lubancat-i2c4-overlay.dtbo h618-lubancat-uart2-overlay.dtbo
#2选1:h618-lubancat-i2c2-overlay.dtbo h618-lubancat-uart5-overlay.dtbo
#h618-lubancat-spi1-overlay.dtbo</code></pre>
<p style="">在终端输入命令新建文件</p>
<pre><code>nano st7789_pro.py</code></pre>
<p style="">代码如下</p>
<pre><code>import time
import spidev
import os
import socket
import shutil
import numpy as np
import subprocess
from datetime import datetime
from PIL import Image, ImageDraw, ImageFont

# --- 原生 Sysfs GPIO 驱动器 ---
class SysfsGPIO:
    def init(self, pin_number):
        self.pin = str(pin_number)
        self.path = f"/sys/class/gpio/gpio{self.pin}"
        if not os.path.exists(self.path):
            try:
                with open("/sys/class/gpio/export", "w") as f:
                    f.write(self.pin)
                time.sleep(0.1)
            except Exception:
                pass
        with open(f"{self.path}/direction", "w") as f:
            f.write("out")
        self.val_file = open(f"{self.path}/value", "w")

    def set_value(self, value):
        self.val_file.write("1" if value else "0")
        self.val_file.flush()

    def release(self):
        self.val_file.close()
        try:
            with open("/sys/class/gpio/unexport", "w") as f:
                f.write(self.pin)
        except:
            pass

# --- ST7789 驱动类 ---
class ST7789_SafeDriver:
    def init(self, spi_bus=1, spi_device=0, dc_pin=72, res_pin=75):
        self.spi = spidev.SpiDev()
        self.spi.open(spi_bus, spi_device)
        self.spi.max_speed_hz = 40000000 
        self.spi.mode = 0
        self.dc = SysfsGPIO(dc_pin)
        self.res = SysfsGPIO(res_pin)
        self.width = 240
        self.height = 240
        self._init_display()

    def sendcmd(self, cmd):
        self.dc.set_value(0)
        self.spi.writebytes([cmd])

    def senddata(self, data):
        self.dc.set_value(1)
        if isinstance(data, int):
            self.spi.writebytes([data])
        else:
            self.spi.writebytes(data)

    def initdisplay(self):
        self.res.set_value(1)
        time.sleep(0.1)
        self.res.set_value(0)
        time.sleep(0.1)
        self.res.set_value(1)
        time.sleep(0.1)
        self._send_cmd(0x11)
        time.sleep(0.12)
        self._send_cmd(0x36)
        self._send_data(0x00)
        self._send_cmd(0x3A)
        self._send_data(0x05)
        self._send_cmd(0x21)
        self._send_cmd(0x13)
        self._send_cmd(0x29)

    def set_window(self, x0, y0, x1, y1):
        self._send_cmd(0x2A)
        self._send_data([x0 &gt;&gt; 8, x0 &amp; 0xFF, x1 &gt;&gt; 8, x1 &amp; 0xFF])
        self._send_cmd(0x2B)
        self._send_data([y0 &gt;&gt; 8, y0 &amp; 0xFF, y1 &gt;&gt; 8, y1 &amp; 0xFF])
        self._send_cmd(0x2C)

    def display_image(self, img):
        img = img.resize((self.width, self.height)).convert("RGB")
        r, g, b = img.split()
        r_arr = np.array(r, dtype=np.uint16) &gt;&gt; 3
        g_arr = np.array(g, dtype=np.uint16) &gt;&gt; 2
        b_arr = np.array(b, dtype=np.uint16) &gt;&gt; 3
        rgb565 = (r_arr &lt;&lt; 11) | (g_arr &lt;&lt; 5) | b_arr
        rgb565 = rgb565.byteswap()
        self.set_window(0, 0, self.width - 1, self.height - 1)
        self.dc.set_value(1)
        self.spi.writebytes2(rgb565.tobytes())

    def close(self):
        try:
            self.spi.close()
            self.dc.release()
            self.res.release()
        except:
            pass

# --- 数据获取函数 ---
def get_ip_address():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(("8.8.8.8", 80)) 
        ip = s.getsockname()[0]
        s.close()
        return ip
    except:
        return "Offline"

def get_cpu_temp():
    try:
        with open("/sys/class/thermal/thermal_zone0/temp", "r") as f:
            return round(float(f.read()) / 1000.0, 1)
    except:
        return 0.0

def get_ram_usage():
    try:
        out = subprocess.check_output(['free', '-m']).decode('utf-8').splitlines()[1]
        parts = out.split()
        return int(parts[2]), int(parts[1]), round((int(parts[2]) / int(parts[1])) * 100, 1)
    except:
        return 0, 0, 0.0

def get_disk_usage():
    try:
        total, used, free = shutil.disk_usage("/")
        gb = 2**30
        return round(used/gb, 1), round(total/gb, 1), int((used/total)*100)
    except:
        return 0.0, 0.0, 0

if __name__ == "__main__":
    disp = None
    try:
        disp = ST7789_SafeDriver()
                
        # 加载系统高清字体
        font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"
        try:
            font_title = ImageFont.truetype(font_path, 18)
            font_main = ImageFont.truetype(font_path, 14)
            font_small = ImageFont.truetype(font_path, 12)
        except:
            font_title = font_main = font_small = ImageFont.load_default()

        while True:
            image = Image.new("RGB", (240, 240), "black")
            draw = ImageDraw.Draw(image)
                            
            # 获取数据
            cur_time = datetime.now().strftime("%H:%M:%S")
            ip_addr = get_ip_address()
            cpu_temp = get_cpu_temp()
            ram_used, ram_total, ram_pct = get_ram_usage()
            disk_used, disk_total, disk_pct = get_disk_usage()
                            
            # UI 绘制
            draw.rectangle((2, 2, 237, 237), outline="#3399FF", width=2)
                            
            # 顶部栏 (时间 + IP)
            draw.rectangle((2, 2, 237, 30), fill="#3399FF")
            draw.text((10, 5), cur_time, fill="white", font=font_title)
            draw.text((100, 7), ip_addr, fill="white", font=font_main)
                            
            # CPU 温度
            t_color = "#FF3333" if cpu_temp &gt; 65 else "#00FF00"
            draw.text((15, 45), f"CPU Temp: {cpu_temp} °C", fill=t_color, font=font_title)
                            
            # RAM 内存条
            draw.text((15, 85), f"RAM: {ram_used}M / {ram_total}M", fill="#FFFF00", font=font_main)
            draw.rectangle((15, 105, 220, 120), outline="white")
            draw.rectangle((15, 105, 15 + int(205 * (ram_pct / 100)), 120), fill="#00FFFF")
            draw.text((105, 106), f"{ram_pct}%", fill="black", font=font_small)
                            
            # 磁盘存储条
            draw.text((15, 140), f"SD Card: {disk_used}G / {disk_total}G", fill="#FF99FF", font=font_main)
            draw.rectangle((15, 160, 220, 175), outline="white")
            draw.rectangle((15, 160, 15 + int(205 * (disk_pct / 100)), 175), fill="#FF66FF")
            draw.text((105, 161), f"{disk_pct}%", fill="black", font=font_small)
                            
            # 底部标识
            draw.line((10, 205, 230, 205), fill="#555555")
            draw.text((45, 212), "LuBanCat System Pro", fill="#888888", font=font_small)
                            
            disp.display_image(image)
            time.sleep(2)
                        
    except KeyboardInterrupt:
        pass
    finally:
        if disp:
            # 退出时刷黑屏幕保护硬件
            disp.display_image(Image.new("RGB", (240, 240), "black"))
            disp.close()</code></pre>
<h3 style="" id="%E6%93%8D%E4%BD%9C">操作</h3>
<p style="">开灯运行监控：</p>
<pre><code>sudo systemctl start st7789_lcd.service </code></pre>
<p style="">关灯黑屏休息：</p>
<pre><code>sudo systemctl stop st7789_lcd.service  </code></pre>
<p style="">允许开机自动亮起：</p>
<pre><code>sudo systemctl enable st7789_lcd.service  </code></pre>
<p style="">禁止开机自动亮起：</p>
<pre><code>sudo systemctl disable st7789_lcd.service  </code></pre>
<p style="">强行杀死残留进程（如果stop后没黑屏）：</p>
<p style=""></p>]]></description><guid isPermaLink="false">/archives/kai-fa-ban-kai-fa-ri-ji</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Flubancat.png&amp;size=m" type="image/jpeg" length="20919"/><category>搞机</category><pubDate>Mon, 29 Jun 2026 14:38:15 GMT</pubDate></item><item><title><![CDATA[建站历程]]></title><link>https://betterz.cn/archives/jian-zhan-li-cheng</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E5%BB%BA%E7%AB%99%E5%8E%86%E7%A8%8B&amp;url=/archives/jian-zhan-li-cheng" width="1" height="1" alt="" style="opacity:0;">
<h1 style="" id="%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2">本地部署</h1>
<p style="">云服务器到期了只保留一个域名，正巧买了一个开发板安装了wifi刚好可以用来当服务器。这次使用了halo建站，主要是轻量再加上想试试新的平台。在服务器上的管理面板是1panel，但1panel应用市场里的halo是pro版的，所以自己在docker部署了社区版：</p>
<pre><code>version: "3"
services:
  halo:
    image: halohub/halo:2.25.1
    container_name: halo
    restart: always
    ports:
      - "8090:8090" # 自行修改未占用端口
    volumes:
      - ./halo-data:/root/.halo
    environment:
      - JVM_OPTS=-Xmx256m
</code></pre>
<p style="">默认使用H2存储，改成MYSQL，环境变量：</p>
<pre><code>PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
JAVA_HOME=/opt/java/openjdk
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=en_US.UTF-8
JAVA_VERSION=jdk-21.0.11+10
JVM_OPTS=
HALO_WORK_DIR=/root/.halo2
SPRING_CONFIG_LOCATION=optional:classpath:/;optional:file:/root/.halo2/
TZ=Asia/Shanghai
SPRING_R2DBC_URL=r2dbc:pool:mysql://192.168.1.6:3306/halo
SPRING_R2DBC_USERNAME=root
SPRING_R2DBC_PASSWORD=
SPRING_SQL_INIT_PLATFORM=mysql
</code></pre>
<p style="">启动：</p>
<pre><code>docker run -d \
  --name halo \
  --restart always \
  -p 8090:8090 \
  -v ~/halo-data:/root/.halo \
  halohub/halo:2.25.1
</code></pre>
<h1 style="" id="%E4%B8%8A%E7%BA%BF">上线</h1>
<p style="">由于没云服务器了且每次便宜服务器只能买一年一直换太麻烦了所以用Cloudflare Tunnel内网穿透，且自带https安全认证方便省事。</p>
<h2 style="" id="1.%E5%88%9B%E5%BB%BA%E9%9A%A7%E9%81%93">1.创建隧道</h2>
<p style="">进入 Zero Trust 面板Networks -&gt; Tunnels点击 Create a Tunnel，选择默认的 Cloudflare (Recommended) 模式。cloudflare会给出一键安装命令，我选择docker,直接粘贴进命令行。我的域名是.cn所以无法转移到cloudflare,所以把DNS解析地址改成cloudflare给的，会有弹窗教程。到 Cloudflare Zero Trust 后台，点击左侧的 Networks -&gt; Tunnels。切换到 Public Hostname（公共主机名） 标签页。点击 Add a public hostname（添加公共主机名） 按钮。</p>
<p style="">填入以下信息：</p>
<p style="">Domain：点击下拉菜单，选择你从阿里云刚绑定过来的那个域名。</p>
<p style="">Path：留空不填。</p>
<p style="">Type：选择 HTTP（虽然外网访问是 HTTPS，但由于是内网穿透，这里选 HTTP ，Cloudflare 会在边缘节点自动帮你加密）。</p>
<p style="">URL：填写：127.0.0.1:8090。</p>
<h2 style="" id="2.%E5%8F%91%E5%B8%83">2.发布</h2>
<p style="">与上一步一样。由于我的域名绑定到之前的云服务器公网ip所以要先删除，在DNS-&gt;记录，直接删除即可。</p>
<h1 style="" id="%E7%BD%91%E7%AB%99%E5%B8%83%E7%BD%AE">网站布置</h1>
<h1 style="" id="1.%E5%A4%96%E8%A7%82">1.外观</h1>
<p style="">首先选一个好看的主题，这个看自己的审美。我选择了<a href="https://github.com/liuyiwuqing/halo-theme-hydro-minim" target="_blank" rel="">氢·简</a>，因为我第一次进入halo的主题商店就看到这个刚发布的，还挺有缘而且挺简洁的所以就用了，但是实际发现并不简洁，后面会自己改一下或者换主题吧。</p>
<p style="">这个主题下面有一个不能隐藏的版权链接，直接在设置里-&gt;主题-&gt;高级设置-&gt;自定义 CSS</p>
<pre><code>/* 精准隐藏页脚的 Built with 容器以及 Theme / CMS 标签 */
.hydro-footer__credits,
.hydro-footer__credit {
    display: none !important;
}</code></pre>
<h3 style="" id="%E7%AC%AC%E4%B8%80%E6%AC%A1%E4%BF%AE%E6%94%B9">第一次修改</h3>
<p style="">2026年6月15日改动</p>
<p style="">将主题修改为</p>
<hyperlink-card target="_blank" href="https://github.com/sky121666/halo-theme-sky-blog-1" theme="small" style="margin-top: 0.75em; margin-bottom: 0;"><a href="https://github.com/sky121666/halo-theme-sky-blog-1" target="_blank">https://github.com/sky121666/halo-theme-sky-blog-1</a></hyperlink-card>
<h2 style="" id="2.%E7%9C%8B%E6%9D%BF%E5%A8%98">2.看板娘</h2>
<p style="">现在部署live2d的看板娘直接在插件市场里面安装就行了<a href="https://www.halo.run/store/apps/app-oPNFQ" target="_blank" rel="">live2d 看板娘</a>，而且能接入ai且有agent能力。我选择的ai是智谱4.7flash，主要是因为免费而且看板娘也不需要很聪明。要注意的是添加模型那里的选项是没有免费模型的，要自己输入glm-4.7-flash。</p>
<h2 style="" id="3.steam%E4%BF%A1%E6%81%AF%E5%B1%95%E7%A4%BA">3.Steam信息展示</h2>
<p style="">同样是插件：<a href="https://github.com/Tim0x0/halo-plugin-steam#readme" target="_blank" rel="">Steam 信息展示</a>。 有些主题不支持的话就新增页面，地址为域名/steam，我找了好久才找到，插件设置里面是没有的。但加载很慢最好整上加速，不知道为什么我的crash开了局域网连接docker也连接失败。</p>
<h2 style="" id="4.%E9%9F%B3%E4%B9%90">4.音乐</h2>
<p style="">依旧插件用的是<a href="https://github.com/queenyn/halo-plugin-navidrome-player" target="_blank" rel="">Navidrome 播放器</a>。参考<hyperlink-inline-card target="_blank" href="https://betterz.cn/archives/kai-fa-ban-kai-fa-ri-ji#navidrome" theme="inline"><a href="https://betterz.cn/archives/kai-fa-ban-kai-fa-ri-ji#navidrome" target="_blank">https://betterz.cn/archives/kai-fa-ban-kai-fa-ri-ji#navidrome</a></hyperlink-inline-card></p>
<h1 style="" id="%E6%96%87%E7%AB%A0">文章</h1>
<h2 style="" id="1.%E9%9F%B3%E4%B9%90">1.音乐</h2>
<p style="">文章内独立的音乐链接是使用了HTML 块实现的，然而原版编辑器中并不支持HTML块，依旧安装插件<a href="https://www.halo.run/store/apps/app-NgHnY" target="_blank" rel="">Markdown / HTML 内容块</a>，不得不说halo这个平台的编辑器挺垃圾的都没有，markdown都不支持。</p>
<pre><code>&lt;!-- 引入 APlayer 核心样式与脚本（国内CDN，移动端全网络兼容） --&gt;
&lt;link rel="stylesheet" href="https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.css"&gt;
&lt;script src="https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.js"&gt;&lt;/script&gt;
<p>&lt;!-- 播放器容器，添加保底高度避免移动端样式塌陷 –&gt;<br>
&lt;div id=“aplayer-p5r-local” style=“min-height: 66px; margin: 16px 0;”&gt;&lt;/div&gt;</p>
</code><p><code>&lt;!-- 纯本地化歌曲数据配置模板 –&gt;<br>
&lt;script&gt;<br>
const ap = new APlayer({<br>
container: document.getElementById(‘aplayer-p5r-local’),<br>
preload: ‘none’,  /* 不预加载音频 <em>/<br>
autoplay: false,  /</em> 关闭自动播放，防止和全局自建播放器冲突 <em>/<br>
theme: ‘#b71c1c’, /</em> 播放器主题色 */<br>
audio: [<br>
{<br>
name: ‘Take Over’,<br>
artist: ‘Lyn’,<br>
url: ‘’,<br>
cover: ‘’<br>
},<br>
{<br>
name: ‘Life Will Change’,<br>
artist: ‘Lyn, アトラスサウンドチーム, ATLUS GAME MUSIC’,<br>
url: ‘’,//音乐<br>
cover: ‘’//封面<br>
}<br>
]<br>
});<br>
&lt;/script&gt;<br>
</code></p></pre>
<h3 style="" id="%E7%AC%AC%E4%B8%80%E6%AC%A1%E4%BF%AE%E6%94%B9-1">第一次修改</h3>
<p style="">2026年7月13日，发现这样手机上需要刷新一下才能显示，查了一下是PJAX问题，用 1px 透明图的onload&nbsp; 事件触发初始化，元素插入 DOM 就会执行，绕过 PJAX 脚本不执行的限制，同时处理APlayer 资源加载，避免重复加载和未定义报错。改为页脚全局注入：</p>
<pre><code>&lt;!-- 全局 APlayer PJAX 兼容方案 –&gt;<br>
&lt;link rel=“stylesheet” href=“<a href="https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.css">https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.css</a>”&gt;<br>
&lt;script&gt;<br>
(function() {<br>
// 全局只加载一次 APlayer 脚本<br>
function loadAPlayer(callback) {<br>
if (typeof APlayer !== ‘undefined’) {<br>
callback();<br>
return;<br>
}<br>
const script = document.createElement(‘script’);<br>
script.src = ‘<a href="https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.js">https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.js</a>’;<br>
script.onload = callback;<br>
document.head.appendChild(script);<br>
}<p></p>
<pre><code>// 扫描并初始化所有播放器容器
function initAllPlayers() {
    const players = document.querySelectorAll('.aplayer-auto:not([data-inited])');
    if (players.length === 0) return;

    loadAPlayer(function() {
        players.forEach(function(container) {
            if (container.dataset.inited) return;
            container.dataset.inited = 'true';

            const theme = container.dataset.theme || '#b71c1c';
            let audio = [];
            try {
                audio = JSON.parse(container.dataset.audio || '[]');
            } catch(e) {
                console.error('APlayer 音频配置格式错误', e);
                return;
            }

            new APlayer({
                container: container,
                preload: 'none',
                autoplay: false,
                theme: theme,
                audio: audio
            });
        });
    });
}

// 首屏加载
document.addEventListener('DOMContentLoaded', initAllPlayers);
// PJAX 页面切换后重新扫描
document.addEventListener('pjax:complete', initAllPlayers);
// DOM 动态插入兜底
const observer = new MutationObserver(initAllPlayers);
observer.observe(document.body, { childList: true, subtree: true });
</code></pre>
</code><p><code>})();<br>
&lt;/script&gt;</code></p></pre>
<p style="">文章内使用方法为：</p>
<pre><code>&lt;div<br>
class=“aplayer-auto”<br>
style=“min-height: 66px; margin: 16px 0;”<br>
data-theme=“#b71c1c”<br>
data-audio=‘[<br>
{“name”:“歌曲名1”,“artist”:“歌手1”,“url”:“音频链接1”,“cover”:“”},<br>
{“name”:“歌曲名2”,“artist”:“歌手2”,“url”:“音频链接2”,“cover”:“”}<br>
]’<br>
&gt;&lt;/div&gt;</code></pre>
<p style=""></p>
<p></p>
<h2 id="2.%E4%BD%BF%E7%94%A8obsidian%E6%9B%B4%E6%96%B0%E6%96%87%E7%AB%A0%EF%BC%882026%E5%B9%B47%E6%9C%8828%E6%97%A5%EF%BC%89" tabindex="-1">2.使用Obsidian更新文章（2026年7月28日）</h2>
<p>Halo自带的编辑器太烂了而且不方便，转Markdown或者Markdown转富文本也会有一堆bug。思考了一下选择使用Obsidian，本来只是想着当个编辑器用，没想到竟然有官方的插件可以直接发布文章，虽然不支持halo的插件，但是原生Markdown也够用了，而且应该也支持HTML块。
 <br>
 官方文档：</p>
<div>
 <a href="https://www.halo.run/archives/publish-to-halo-from-obsidian" target="_blank" style="text-decoration: none; color: inherit; display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--background-modifier-border, rgba(140, 140, 140, 0.2)); border-radius: 10px; padding: 12px 16px; background-color: var(--background-secondary, #f8fafc); margin: 16px 0; box-shadow: 0 2px 8px rgba(0,0,0,0.05);"> 
  <div style="font-weight: 600; font-size: 14px; color: var(--text-normal, #0f172a); display: flex; align-items: center; gap: 8px; flex: 1; overflow: hidden;">
   <span>📦</span> <span>用 Obsidian 写文章一键发布到 Halo</span>
  </div> 
  <div style="font-size: 18px; color: var(--text-faint, #94a3b8); padding-left: 12px;">➔</div> 
 </a>
</div>
值得注意的是当你在 Obsidian 里写 HTML 代码，然后同步到 Halo 时，有几个很容易忽略的语法问题需要注意。如果没处理好，发布后前台不仅不能正常显示样式，还会变成乱糟糟的黑色代码框。
<p>第一，HTML 代码前面不能有空格或 Tab 缩进。Markdown 的规则规定，开头缩进 4 个空格就会变成纯文本代码块。所以所有 HTML 代码必须从最左边开始写，或者直接压缩成一行。</p>
<p>第二，最外层必须用 <code>&lt;div&gt;</code> 标签包起来。如果最外层直接用 <code>&lt;a&gt;</code> 标签，Halo 会把它当成普通段落里的链接，导致里面的样式被拆散。只有用 <code>&lt;div&gt;</code> 这个块级元素包在最外面，Halo 才会把它当成独立的 HTML 块来处理。</p>
<p>第三，HTML 代码的上下必须各留一个空行。这样 Markdown 解析器就不会把 HTML 标签和前后文字混在一起。</p>
<p>第四，不要用 Obsidian 插件的特殊语法。比如有些插件生成的 ```cardlink 代码块，只在 Obsidian 里能显示，同步到 Halo 后前台根本不认识。要想博客前台正常显示，纯原生 HTML 才是最好的办法。</p>]]></description><guid isPermaLink="false">/archives/jian-zhan-li-cheng</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fpreview.jpg&amp;size=m" type="image/jpeg" length="66068"/><pubDate>Sun, 21 Jun 2026 06:50:22 GMT</pubDate></item><item><title><![CDATA[玩完P5R后的一些感想]]></title><link>https://betterz.cn/archives/wan-wan-p5rhou-de-yi-xie-gan-xiang</link><description><![CDATA[<img src="https://betterz.cn/plugins/feed/assets/telemetry.gif?title=%E7%8E%A9%E5%AE%8CP5R%E5%90%8E%E7%9A%84%E4%B8%80%E4%BA%9B%E6%84%9F%E6%83%B3&amp;url=/archives/wan-wan-p5rhou-de-yi-xie-gan-xiang" width="1" height="1" alt="" style="opacity:0;">
<p style="">通关之后真是意难平于是很快就来写这篇文章了。涉及到剧透的我会放到最后说自行避雷。</p>
<h2 style="" id="%E6%8E%A8%E8%8D%90%E7%A8%8B%E5%BA%A6"><strong>推荐程度</strong></h2>
<p style="">必须是五颗星，很少有游戏让我给出如此评价。</p>
<h2 style="" id="%E5%89%A7%E6%83%85"><strong>剧情</strong></h2>
<p style="">说到P5R最避不开的就是剧情，剧情方面是围绕在东京的高中生活展开的，绝对的量大管饱，主线游玩下来80-130的时长。听起来很无聊但玩起来绝对很有代入感，并且故事很有新意，简直是给我耳目一新的感觉。在这里可以相遇很多伙伴，并且每个伙伴塑造的都很好，有自己的故事自己的性格，仿佛真的交到了几个好朋友。剧情作为P5R的主要卖点之一是有足够的理由的。强烈建议通关之前不要看任何剧透，否则会毁了这款游戏！</p>
<h2 style="" id="%E6%88%98%E6%96%97"><strong>战斗</strong></h2>
<p style="">我玩游戏最看重战斗部分，并且很挑剔，战斗不好玩其他方面再牛我也会放弃的。P5R的战斗是回合制，听到回合制就感觉很无聊，我刚开始是这样想的，这也成为我一直没玩P5R的主要原因之一，不过到了真正上手的时候却觉得很上头。</p>
<h3 style="" id="%E5%B1%9E%E6%80%A7"><strong>属性</strong></h3>
<p style="">首先是回合制必不可少的多种属性，很让人头大，不过P5R在这方面下足了功夫，在选择技能的时候会提示，也可以按下辅助键让系统自己选择适合的技能，用相克的属性击中敌人后会爆出超超帅的大头照。</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Forigin_2965482_15213.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Forigin_2965482_15212.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7802503477051461 1 0%;" data-aspect-ratio="1.7802503477051461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fdb77bb3ba97525193c0463f39504a681.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 0.4615939415795168 1 0%;" data-aspect-ratio="0.4615939415795168">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Faa8b006459e62596c6e4345d80fd4b6f.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7802503477051461 1 0%;" data-aspect-ratio="1.7802503477051461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fbb43339821c0ff6ae47a221e2ebaabd6.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7802503477051461 1 0%;" data-aspect-ratio="1.7802503477051461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F589760c118c3b1844874fc6c0bce07a5.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7802503477051461 1 0%;" data-aspect-ratio="1.7802503477051461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F99768123ee9dcfe4ec56a1a51b7477ae.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7802503477051461 1 0%;" data-aspect-ratio="1.7802503477051461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F868c9606108b3391e3d36a3daab3ecfd.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7802503477051461 1 0%;" data-aspect-ratio="1.7802503477051461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F531c517d04bc3ed6c2a5711af46dc04b.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7802503477051461 1 0%;" data-aspect-ratio="1.7802503477051461">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F4ab67a1181a2d4f205a7bff9880a94b4.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<p style="">敌人会倒地从而让自己一直掌控节奏，在敌人倒地后可以换手，让下位伙伴伤害增加也能让他打出对应的属性攻击，换手的动作也是十分帅气啊。</p>
<h3 style="" id="%E6%80%BB%E6%94%BB%E5%87%BB"><strong>总攻击</strong></h3>
<p style="">最最最最重要的是在敌人全部倒地之后可以触发超级炫酷的总攻击，总攻击会造成大量伤害，当总攻击击败敌人后出现超超超帅的处决动画，每位战斗角色都有自己的处决动画。</p>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Forigin_2965482_16126.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Forigin_2965482_16125.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Forigin_2965482_15216.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Forigin_2965482_15215.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Forigin_2965482_15214.jpg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F8092f4006700eac2bd5a1438b4f8d511.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F537e5fcd5d6cf9b5da88291798323138.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 1.7777777777777777 1 0%;" data-aspect-ratio="1.7777777777777777">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F6d508c99382708d6cdb657be5e21cfca.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<p style="">真是百看不厌啊╰(<em>°▽°</em>)╯</p>
<h2 style="" id="ui%E8%AE%BE%E8%AE%A1"><strong>UI设计</strong></h2>
<p style="">说到P5R最具特色的部分就是UI设计了，延续了P系列每部一个主题色的传统，P5R的主题色是红色。整个游戏里充满了各种UI但是不会让人感到拥挤、凌乱，反而给人很强烈的冲击力，很炫酷。整个游戏都充满极具设计的UI，并且有及其顺滑帅气的过度，也是百看不厌啊。</p>
<p style="">也许正是因为这种极具特色的设计，使得P5R玩起来与众不同更进一步加强了代入感。</p>
<h2 style="" id="%E5%85%B3%E5%8D%A1%E8%AE%BE%E8%AE%A1"><strong>关卡设计</strong></h2>
<p style="">在我玩的游戏里面注重关卡地图设计的也就魂系和塞尔达的神庙了，但是P5R的宫殿也是给了我很大的惊喜了，在设计精妙这一块不不在这两个之下。缺点就是每次进入新场景都要重新加载，里面的怪就会刷新，每次回去收集漏掉的东西要么跑路要么重新打一遍。</p>
<h2 style="" id="%E9%9F%B3%E4%B9%90"><strong>音乐</strong></h2>
<p style="">音乐这一块真的没话说，太顶了，阿特拉斯别做游戏了赶紧去当音乐公司吧。为了听偷袭敌人那个bgm我甚至会估计不打完多停留一会。还有每次偷心的bgm，氛围感拉满了，即使现在不玩了还是常听，走在地铁上感觉自己是joker😆</p>
<div class="html-edited">
 <div class="aplayer-auto" style="min-height: 66px; margin: 16px 0;" data-theme="#b71c1c" data-audio="[
    {&quot;name&quot;:&quot;Take Over&quot;,&quot;artist&quot;:&quot;Lyn&quot;,&quot;url&quot;:&quot;/upload/Lyn%20-%20Take%20Over.ogg&quot;,&quot;cover&quot;:&quot;&quot;},
    {&quot;name&quot;:&quot;Beneath the Mask -rain-&quot;,&quot;artist&quot;:&quot;Lyn, アトラスサウンドチーム, ATLUS GAME MUSIC&quot;,&quot;url&quot;:&quot;/upload/Lyn,%20%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0,%20ATLUS%20GAME%20MUSIC%20-%20Beneath%20the%20Mask%20-rain-.ogg&quot;,&quot;cover&quot;:&quot;&quot;},
    {&quot;name&quot;:&quot;Life Will Change&quot;,&quot;artist&quot;:&quot;Lyn, アトラスサウンドチーム, ATLUS GAME MUSIC&quot;,&quot;url&quot;:&quot;/upload/Lyn,%20%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0,%20ATLUS%20GAME%20MUSIC%20-%20Life%20Will%20Change.ogg&quot;,&quot;cover&quot;:&quot;&quot;},
    {&quot;name&quot;:&quot;Rivers In the Desert&quot;,&quot;artist&quot;:&quot;Lyn, アトラスサウンドチーム, ATLUS GAME MUSIC&quot;,&quot;url&quot;:&quot;/upload/Lyn,%20%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0,%20ATLUS%20GAME%20MUSIC%20-%20Rivers%20In%20the%20Desert.ogg&quot;,&quot;cover&quot;:&quot;&quot;},
    {&quot;name&quot;:&quot;星等我俩 (Live ver.)&quot;,&quot;artist&quot;:&quot;Lyn, アトラスサウンドチーム&quot;,&quot;url&quot;:&quot;/upload/Lyn,%20%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B9%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%83%81%E3%83%BC%E3%83%A0%20-%20%E6%98%9F%E3%81%A8%E5%83%95%E3%82%89%E3%81%A8%20(Live%20ver.).mp3&quot;,&quot;cover&quot;:&quot;&quot;}
  ]"></div>
</div>
<h2 style="" id="%E9%85%8D%E9%9F%B3"><strong>配音</strong></h2>
<p style="">说完音乐必须要说配音，主角是福山润配的音，就是那个鲁鲁修的声音，也配过大筒木舍人，非常爽的声音啊。还有MONA的声音是木叶丸、乔巴，刚玩的时候老给我整出戏。其他的我就不了解了。</p>
<p style="">音乐、配音再加上属性相克的大头照和处决动画，都让回合制的战斗变得有节奏和爽感，真是下足了功夫。</p>
<h2 style="" id="%E9%9A%BE%E5%BA%A6"><strong>难度</strong></h2>
<p style="">这款游戏可以自选难度，建议正常难度，困难可以留到二周目或者多周目挑战，正常难度算是恰倒好处有一定挑战性也不会太简单。</p>
<h2 style="" id="%E7%BC%BA%E7%82%B9"><strong>缺点</strong></h2>
<p style="">首先就是建模太丑了，虽说ui里和立绘帅的一批，但是3D建模是在太丑了，虽说阿特拉斯技术力差，但是差到这种程度我也是没想到，不过还好我用的是笔记本屏幕小也看不见脸，不知道用大屏玩怎么样。幸运的是阿特拉斯也许知道建模丑所以很少有糊脸的镜头（主角睡觉除外）。总体来说瑕不掩瑜。</p>
<h2 style="" id="%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%EF%BC%88%E6%A8%A1%E6%8B%9F%E5%99%A8%EF%BC%89"><strong>下载链接（模拟器）</strong></h2>
<p style="">包含安卓和PC，因为模拟的是switch所以最好用手柄玩，不然可能会很别扭，并且画质和帧率有点差有能力还是上正版吧。</p>
<download-links data-links="[{&quot;url&quot;:&quot;https://pan.baidu.com/s/1TesKzuUdO-T6Bu-ZCH6tew?pwd=8891&quot;,&quot;filename&quot;:&quot;P5R&quot;,&quot;source&quot;:&quot;百度云网盘&quot;,&quot;code&quot;:&quot;8891&quot;,&quot;icon&quot;:&quot;/plugins/download-links/assets/static/icon/baidu.png&quot;}]"></download-links>
<h2 style="" id="%E5%9B%BE%E7%89%87%E5%A3%81%E7%BA%B8%E5%88%86%E4%BA%AB"><strong>图片壁纸分享</strong></h2>
<div data-type="gallery" data-group-size="3" data-layout="auto" data-gap="8">
 <div style="display: grid; gap: 8px;">
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 1.8754578754578755 1 0%;" data-aspect-ratio="1.8754578754578755">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fc62913ccfd9ff519d40ba1805dc2082a.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fea5362f7a3ee91de29957ad8f02e0d9b.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fcca0677d14e52f005a6771b8641735e8.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fb30bff3464ba092f3344bb733d859933.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2Fa5443aeba4c61ce9b73c4d9655bc7222.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F4426dd2b9b5e0fe1b617fbba59c40dce.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
  <div data-type="gallery-group" style="display: flex; flex-direction: row; justify-content: center; gap: 8px;">
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F43c31357512bb96bd433945ff227ac40.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F0a4fe791fcc2cdb782680de053bbc0df.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
   <div style="flex: 2 1 0%;" data-aspect-ratio="2">
    <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fbetterz.cn%2Fupload%2F2bf809e97fb71457e251897403a61efe.jpeg&amp;size=m" data-type="gallery-image" style="width: 100%; height: 100%; margin: 0; object-fit: cover;">
   </div>
  </div>
 </div>
</div>
<h2 style="" id="%E6%84%9F%E6%83%B3%EF%BC%88%E6%B6%89%E5%8F%8A%E5%89%A7%E9%80%8F%EF%BC%81%EF%BC%89"><strong>感想（涉及剧透！）</strong></h2>
<p style="">终于写到了我想说的话。第一眼就感觉明智吾郎和心理老师很恶心，所以没和他们升coop，果然等我通关看攻略发现竟然有多个结局，但是必须和心理老师升coop，真的有点恶心到我了。最重量级的是明智吾郎，一个好好的反派结果皇家版里非要洗白，洗白你妹呢，纯恶心玩家，直接从神作跌落到粪作了,yue~</p>
<p style="">还有新岛真这个角色真是太讨喜了，前期我也是很烦她，但是她一步步成长，真的让人感动，外冷内热的性格太反差了 。还有春，解锁的太晚了没来的及升coop，但是真是个很坚强的女孩啊。这两个算是我最喜欢的角色了。</p>
<p style="">最后送主角回老家，落幕响起bgm的那一刻真是怅然若失啊，真的感觉到在东京过了一年的生活，交了很多好朋友，主角团的每个人都很坚强，都在反抗命运，真的超级感动。</p>
<h2 style="" id="%E5%90%8E%E7%BB%AD%EF%BC%88%E6%9C%89%E5%89%A7%E9%80%8F%EF%BC%89">后续（有剧透）</h2>
<p style="">最近为了全成就重新玩了一遍，也通关了真结局。没想到这个皇家版的后续质量这么高，本来看网上评价都说很烂，我实际玩起来很不错，唯一的缺点应该就是乐子明智吾郎复活了。这段剧情算是给整个游戏在深度上面上了一个高度，主要讲的就是丸喜医生盗取革命果实要创造一个人人都幸福的世界。挺有无限月读的即视感的，不过游戏和动漫不同的一点就是代入感更强看到同伴们的幸福真的会觉得这样做是对的。不过多逛一点地方就会发现制作组给的各种暗示，并不是每个人都幸福，而且人们还是在同一个世界中，如果有人的幸福冲突的话就会卡bug，这真的更对比出无限月读的完美。</p>
<figure data-content-type="image" style="display: flex; flex-direction: column;">
 <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25A5%25B3%25E7%25A5%259E%25E5%25BC%2582%25E9%2597%25BB%25E5%25BD%25955%25E7%259A%2587%25E5%25AE%25B6%25E7%2589%2588%25202026_7_19%252013_45_38-wUeA.png&amp;size=m" width="1920px">
</figure>
<p style="">学妹的剧情大家都说烂，但是我觉得很不错，可能是因为我没推学妹的coop，被洗脑成自己的姐姐从逃避到面对自我，很有p4直面自己的感觉。代入一下如果是我我也会这样，还会比学妹更加逃避，我敬仰学妹。</p>
<figure data-content-type="image" style="display: flex; flex-direction: column;">
 <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25A5%25B3%25E7%25A5%259E%25E5%25BC%2582%25E9%2597%25BB%25E5%25BD%25955%25E7%259A%2587%25E5%25AE%25B6%25E7%2589%2588%25202026_7_19%252013_59_52-qdfv.png&amp;size=m">
</figure>
<p style="">本来我是很讨厌丸喜这个人的，就是因为这个原因我一周目没打皇家版结局，不过过完这段剧情之后我对丸喜刮目相看了，牺牲自己宁愿付出任何代价也要让全人类幸福，站在他的角度他是真的无私。 不过终究是虚假的幻想，丸喜的幸福是有破绽的，幸福还是要靠自己定义（不如无限月读，真的想干嘛干嘛而且是平行宇宙不怕冲突）。</p>
<p style="">开完这枪p5的故事就告一段落了，全成就也达成了我想我也不会打开这款游戏了，真的给我留下太多回忆了，第一次打结局也是在这个地方不过是在去年，兜兜转转过了一年又在这个地方打通了皇家版结局，感慨万千。</p>
<figure data-content-type="image" style="display: flex; flex-direction: column;">
 <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25A5%25B3%25E7%25A5%259E%25E5%25BC%2582%25E9%2597%25BB%25E5%25BD%25955%25E7%259A%2587%25E5%25AE%25B6%25E7%2589%2588%25202026_7_19%252020_12_36-dHLA.png&amp;size=m">
</figure>
<p style="">结束了</p>
<figure data-content-type="image" style="display: flex; flex-direction: column;">
 <img src="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25A5%25B3%25E7%25A5%259E%25E5%25BC%2582%25E9%2597%25BB%25E5%25BD%25955%25E7%259A%2587%25E5%25AE%25B6%25E7%2589%2588%25202026_7_19%252021_22_02-tVFB.png&amp;size=m">
</figure>
<p style=""></p>]]></description><guid isPermaLink="false">/archives/wan-wan-p5rhou-de-yi-xie-gan-xiang</guid><dc:creator>Zhou</dc:creator><enclosure url="https://betterz.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fc1451f2db8c2d9187f709f891563b402.jpeg&amp;size=m" type="image/jpeg" length="73423"/><category>游戏</category><pubDate>Fri, 19 Jun 2026 14:30:25 GMT</pubDate></item></channel></rss>