<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>SInsa blog</title><description>记录</description><link>https://blog.sinsa.cc.cd/</link><language>zh_CN</language><item><title>archlinux中玩原flash游戏</title><link>https://blog.sinsa.cc.cd/posts/flash_4399/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/flash_4399/</guid><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;玩4399&lt;/h1&gt;
&lt;p&gt;想玩4399了，但是ruffle不能使用在国内特供的flash版本上&lt;/p&gt;
&lt;p&gt;windows有celbrowser,但linux的版本暂没找到&lt;/p&gt;
&lt;p&gt;此处用的52版本firefox+aur中的flashplugin&lt;/p&gt;
&lt;h1&gt;安装&lt;/h1&gt;
&lt;p&gt;flash插件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;paru flashplugin
#或
yay flashplugin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;firefox 52版本&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://ftp.mozilla.org/pub/firefox/releases/52.0esr/
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;设置更新&lt;/h1&gt;
&lt;p&gt;此处firefox要特殊处理一下防止自动更新导致不能使用flash&lt;/p&gt;
&lt;h2&gt;解压在合适地方并且将文件夹设置为只读&lt;/h2&gt;
&lt;h2&gt;firefox内设置&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;右上角菜单Preferences&lt;/li&gt;
&lt;li&gt;Advanced-&amp;gt;Update&lt;/li&gt;
&lt;li&gt;选择 Never check for updates（永不检查更新）&lt;/li&gt;
&lt;li&gt;也可以选择关闭automaticallyupdate: search engines&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>网易云音乐歌名提取</title><link>https://blog.sinsa.cc.cd/posts/cloudmusic/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/cloudmusic/</guid><pubDate>Wed, 05 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;原因&lt;/h1&gt;
&lt;p&gt;起因是最近用linux直播，然后脑子有问题&lt;/p&gt;
&lt;h1&gt;前置需要:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;wine版本的网易云音乐&lt;/li&gt;
&lt;li&gt;xdotool&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;使用方式&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;保存到合适的地方&lt;/li&gt;
&lt;li&gt;运行后会将提取的歌名输出到title.txt中&lt;/li&gt;
&lt;li&gt;在obs内选择文字即可，换歌时他会自动切换&lt;/li&gt;
&lt;li&gt;如果没找到对应程序次数过多他会自动退出&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;具体代码&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;import os
import subprocess
import time
def xdotool(process,target_id=&quot;&quot;):
    try:
        if process == &quot;target_id&quot;:
            command = &quot;xdotool search --classname cloudmusic.exe&quot;.split(&quot; &quot;)
            target_id = subprocess.run(command, capture_output=True, text=True, check=True).stdout.strip().split(&quot;\n&quot;)[0]
            return target_id
    except Exception as e:
        print(&quot;未找到网易云&quot;)
        return &quot;&quot;
    # end try
    if process == &quot;wm_name&quot;:
        command = f&quot;xprop -id {target_id} WM_NAME&quot;.split(&quot; &quot;)
        wm_name = subprocess.run(command, capture_output=True, text=True, check=True).stdout.strip().split(&apos;=&apos;, 1)[1].strip().strip(&apos;&quot;&apos;)
        return wm_name
    # end try

output_file = &quot;title.txt&quot;
print(f&quot;结果将实时保存到: {output_file}&quot;)
wm_name =&quot;&quot;
exitcount = 0
while True:
    if exitcount == 5:
        break
    try:
        temp = xdotool(&quot;wm_name&quot;,target_id)
        if wm_name != temp:
            wm_name = temp
            with open(output_file, &apos;w&apos;, encoding=&apos;utf-8&apos;) as f:
                f.write(wm_name)
            print(f&quot;歌名:{wm_name}&quot;)
    except Exception as e:
        # 提取第一个符合条件的 ID
        target_id = xdotool(&quot;target_id&quot;)
        # 检测是否无法检测到程序
        if target_id==&quot;&quot;:
            if exitcount == 0:  
                # 防止多次写入 
                with open(output_file, &apos;w&apos;, encoding=&apos;utf-8&apos;) as f:
                    f.write(target_id)
            exitcount = exitcount+1
    # 间隔一秒
    time.sleep(1)
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>使用ssh链接github的一些问题</title><link>https://blog.sinsa.cc.cd/posts/github-ssh/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/github-ssh/</guid><pubDate>Tue, 16 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;起因是这个&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh: connect to host github.com port 22: Connection refused fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;原因可能是我更新了win11&lt;/p&gt;
&lt;h1&gt;解决&lt;/h1&gt;
&lt;p&gt;这里有几种解决方法，都可以试一下&lt;/p&gt;
&lt;h2&gt;重新生成ssh-gen&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;ssh-keygen -t ed25519 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在github-&amp;gt;Settings-&amp;gt;SSH keys重新new一个
记得删除之前的sshgen&lt;/p&gt;
&lt;h2&gt;重新验证github&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;vi ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;Host github.com
 Hostname ssh.github.com
 Port 443
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;windows服务&lt;/h2&gt;
&lt;p&gt;启用OpenSSH Authentication Agent，并设为自动&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh-add ~/.ssh/id_ed25519
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>fastfetch修改ascii样式logo</title><link>https://blog.sinsa.cc.cd/posts/fastfetch/fastfetch/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/fastfetch/fastfetch/</guid><pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;安装jp2a&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;paru jp2a
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;转换图片到ascii形式的文本&lt;/h1&gt;
&lt;p&gt;:::Tip
最好是已经抠图过的png图片
:::&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;jp2a logo.jpg --size=20x10 --color --background=light &amp;gt;logo.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;记得将logo.txt移动到 &lt;strong&gt;~/.config/fastfetch/&lt;/strong&gt; 下&lt;/p&gt;
&lt;h1&gt;logo设置&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;&quot;logo&quot;: {
        &quot;source&quot;: &quot;~/.config/fastfetch/logo.txt&quot;,
        &quot;type&quot;: &quot;file&quot;,
        &quot;height&quot;: 1,
        &quot;width&quot;: 1,
        &quot;padding&quot;: {
            &quot;top&quot;: 0,
            &quot;left&quot;: 0
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;颜色设置&lt;/h1&gt;
&lt;p&gt;全局颜色设置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&quot;display&quot;: {
    &quot;color&quot;:{
        &quot;keys&quot;:&quot;#d4b99e&quot;,
        &quot;title&quot;:&quot;#ce846f&quot;
    },
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;效果展示&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;image/fish.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;备份参考&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;$schema&quot;: &quot;https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json&quot;,
    &quot;logo&quot;: {
        &quot;source&quot;: &quot;~/.config/fastfetch/logo.txt&quot;,
        &quot;type&quot;: &quot;file&quot;,
        &quot;height&quot;: 10,
        &quot;width&quot;: 7,
        &quot;padding&quot;: {
            &quot;top&quot;: 3,
            &quot;left&quot;: 7
        }
    },

    &quot;display&quot;: {
        &quot;color&quot;:{
            &quot;keys&quot;:&quot;#d4b99e&quot;,
            &quot;title&quot;:&quot;#ce846f&quot;
        },
        &quot;size&quot;: {
            &quot;ndigits&quot;: 0,
            &quot;spaceBeforeUnit&quot;: &quot;never&quot;
        },
        &quot;freq&quot;: {
            &quot;ndigits&quot;: 3,
            &quot;spaceBeforeUnit&quot;: &quot;never&quot;
        }
    },
    &quot;modules&quot;: [
        &quot;break&quot;,
        &quot;break&quot;,
        &quot;break&quot;,
        &quot;break&quot;,

        &quot;title&quot;,
        &quot;separator&quot;,
        &quot;os&quot;,
        &quot;host&quot;,
        {
            &quot;type&quot;: &quot;kernel&quot;,
            &quot;format&quot;: &quot;{release}&quot;,
        },
        &quot;uptime&quot;,
        {
            &quot;type&quot;: &quot;packages&quot;,
            &quot;combined&quot;: true
        },
        &quot;shell&quot;,
        {
            &quot;type&quot;: &quot;display&quot;,
            &quot;compactType&quot;: &quot;original&quot;,
            &quot;key&quot;: &quot;Resolution&quot;
        },
        &quot;de&quot;,
        &quot;wm&quot;,
        &quot;wmtheme&quot;,
        &quot;theme&quot;,
        &quot;icons&quot;,
        &quot;terminal&quot;,
        {
            &quot;type&quot;: &quot;terminalfont&quot;,
            &quot;format&quot;: &quot;{/name}{-}{/}{name}{?size} {size}{?}&quot;
        },
        &quot;cpu&quot;,
        {
            &quot;type&quot;: &quot;gpu&quot;,
            &quot;key&quot;: &quot;GPU&quot;,
            &quot;format&quot;: &quot;{name}&quot;
        },
        {
            &quot;type&quot;: &quot;memory&quot;,
            &quot;format&quot;: &quot;{used} / {total}&quot;
        },
        &quot;break&quot;,
        &quot;colors&quot;
    ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>给neovim安装lazyvim并启用rust支持</title><link>https://blog.sinsa.cc.cd/posts/nvim-rust/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/nvim-rust/</guid><pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;基于archlinux配置&lt;/p&gt;
&lt;h1&gt;安装neovim&amp;amp;lazyvim&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;# archlinux
sudo pacman -Sy neovim

git clone https://github.com/LazyVim/starter ~/.config/nvim

rm -rf ~/.config/nvim/.git

nvim
# 等待安装完成
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;安装rust支持&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;#在nvim中输入命令
:LazyExtras
#找到 lang.rust 摁x启用
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;添加rust-analyzer&lt;/h1&gt;
&lt;p&gt;在option.lua中添加&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim.g.lazyvim_rust_diagnostics = &quot;rust-analyzer&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│       ├── spec1.lua
│       ├── **
│       └── spec2.lua
└── init.lua
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;neovim操作&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;和vim的操作同理&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
普通模式(Normal Mode):
    進入Neovim 後即處於此模式，主要用於移動游標、複製、剪下、貼上及其他命令。
按下 i 進入插入模式。
按下 Esc 從插入模式、視覺模式等返回普通模式。
按下 v 進入視覺模式(Visual Mode)，用於選取文字。
按下 y 複製選取的文字。
按下 x 或 c 剪下選取的文字。
按下 p 貼上剪下或複製的文字。
按下 u 復原（撤銷）上一步操作。
按下 / 並輸入文字後按回車，可在文件中搜尋該文字。
按下 Ctrl + F 可進行翻頁。
0 將游標移動到行首，$ 將游標移動到行尾。

插入模式(Insert Mode)：
    用於輸入和編輯文字。
從普通模式按下 i 即可進入。
命令行模式(Command Mode)：
    用於執行更複雜的命令，如保存和退出。
在普通模式下按下 : 
    進入命令行模式。
輸入 q 退出，w 保存，wq 保存並退出。
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;参考&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://www.lazyvim.org/installation&quot;&gt;lazyvim-Installation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.lazyvim.org/extras/lang/rust&quot;&gt;lazyvim-rust&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>图片超分软件upscayl</title><link>https://blog.sinsa.cc.cd/posts/upscaler/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/upscaler/</guid><description>upscayl.org</description><pubDate>Sun, 31 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;&lt;a href=&quot;https://upscayl.org/&quot;&gt;upscayl&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;::github{repo=&quot;upscayl/upscayl&quot;}
因为换linux后很多软件都用不了,结果发现了更好用的&lt;/p&gt;
&lt;p&gt;这个软件还是windows/linux/macos都能用的&lt;/p&gt;
&lt;p&gt;没想到比之前的效果还快&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;realesrgan-gui&lt;/h1&gt;
&lt;h2&gt;之前超分使用的是&lt;/h2&gt;
&lt;p&gt;::github{repo=&quot;TransparentLC/realesrgan-gui&quot;}
::github{repo=&quot;xinntao/Real-ESRGAN&quot;}&lt;/p&gt;
&lt;hr /&gt;
</content:encoded></item><item><title>wacom按键绑定</title><link>https://blog.sinsa.cc.cd/posts/wacom-bind/wacom-bind/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/wacom-bind/wacom-bind/</guid><description>理论上什么按键都能绑定</description><pubDate>Sat, 30 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;原因是早些时间学blender时鼠标中键坏了，就绑定为侧键&lt;/p&gt;
&lt;p&gt;但是linux内wacom数位笔默认绑定只有&lt;strong&gt;左键,右键,中键&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;## 按键绑定软件
paru -S input-remapper-git
sudo systemctl enable --now input-remapper
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启动软件后找到名字带有wacom的设备，设置Presets&lt;/p&gt;
&lt;p&gt;input录入数位笔,output选择要什么功能(下方会有按键提示)
:::tip
二次录入时记得停止注入
:::
&lt;img src=&quot;image/wacomp4.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::tip
安装一些重要更新时，需要重启才能启动按键绑定
:::&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果遇到wacom响应有问题&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## 如果不行就载入模块
sudo insmod /lib/modules/6.6.1-arch1-1/kernel/drivers/hid/wacom.ko.zst
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参考:&lt;a href=&quot;https://github.com/sezanzeb/input-remapper?tab=readme-ov-file&quot;&gt;input-remapper&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>任意模型转vrm</title><link>https://blog.sinsa.cc.cd/posts/vrm-create/vrm-create/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/vrm-create/vrm-create/</guid><pubDate>Fri, 29 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;前言&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;所需软件:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.blender.org/&quot;&gt;blender&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/saturday06/VRM-Addon-for-Blender&quot;&gt;vrm插件&lt;/a&gt;(4.5版本可直接在扩展中安装)&lt;/li&gt;
&lt;li&gt;物理部分-Unity[2021.3.18f1]
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/vrm-c/UniVRM&quot;&gt;Univrm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可选&lt;/strong&gt; &lt;a href=&quot;https://nalulululuna.booth.pm/items/4649509&quot;&gt;VrmSpringBoneTool&amp;amp;VrmSkritTool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大致思路&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;导入&lt;strong&gt;blender&lt;/strong&gt;，经过vrm插件绑定为vrm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;unity&lt;/strong&gt;内修改其物理&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;绑定为vrm&lt;/h1&gt;
&lt;h2&gt;映射骨骼&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;用mmd骨骼类比一下
:::important
MMD模型腿骨可能会绑在D骨上
务必检查下
:::&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;仅供参考，需要按照实际权重所在骨骼进行修改&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div style=&quot;display: flex;justify-content: center;&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div&amp;gt;
MMD骨骼&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;image/mmd_map.avif&quot; alt=&quot;&quot; /&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div&amp;gt;
通用骨骼&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;image/bonemap.webp&quot; alt=&quot;&quot; /&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h2&gt;表情&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;按照可选项进行选定&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为MMD模型编写的脚本&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::important
MMD模型网格处于合并状态可用
:::&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import bpy

def getmodel(object):
    model = {}
    model[object.type]=object
    while object.parent:
        object = object.parent
        model[object.type]=object
    while object.children:
        if len(object.children) &amp;gt; 1:
            object = object.children[2]
        else:
            object = object.children[0]
        model[object.type] = object
    return model

object=bpy.context.active_object
model = getmodel(object)

armature = model[&quot;ARMATURE&quot;]
mesh = model[&quot;MESH&quot;]
model = model[&quot;EMPTY&quot;]

Proxy = {
    &quot;blink&quot;:&quot;まばたき&quot;,
    &quot;a&quot;:&quot;あ&quot;,
    &quot;i&quot;:&quot;い&quot;,
    &quot;u&quot;:&quot;う&quot;,
    &quot;e&quot;:&quot;え&quot;,
    &quot;o&quot;:&quot;お&quot;,
    &quot;blink_l&quot;:&quot;ウィンク２&quot;,
    &quot;blink_r&quot;:&quot;ウィンク２右&quot;,
    &quot;joy&quot;:&quot;笑い&quot;,
    &quot;angry&quot;:&quot;怒り&quot;,
    &quot;sorrow&quot;:&quot;困る&quot;,
    }
index = 0
for name in Proxy:
    # new proxy
    bpy.ops.vrm.add_vrm0_blend_shape_group(armature_object_name=armature.name, name=name)
    bpy.data.armatures[model.name].vrm_addon_extension.vrm0.blend_shape_master.blend_shape_groups[index].preset_name = name
    
    #add bind
    bpy.ops.vrm.add_vrm0_blend_shape_bind(armature_object_name=armature.name, blend_shape_group_index=index)
    bpy.data.armatures[model.name].vrm_addon_extension.vrm0.blend_shape_master.blend_shape_groups[index].binds[0].mesh.bpy_object = bpy.data.objects[mesh.name]
    bpy.data.armatures[model.name].vrm_addon_extension.vrm0.blend_shape_master.blend_shape_groups[index].binds[0].index = Proxy[name]

    index = index +1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;材质&lt;/h2&gt;
&lt;h3&gt;手动设置&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;启用&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;image/mat.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div style=&quot;display: flex;margin: 0 auto;align-items: center;&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;image/matset.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div style=&quot;display: flex;margin: 0 auto;align-items: left;&quot;&amp;gt;
&amp;lt;div&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;alpha模式：
&amp;lt;pre&amp;gt;
opaque:不透明
cutout:透明部分直接剔除(没有半透明)
透明:根据贴图的半透明
&amp;lt;/pre&amp;gt;
lit color &amp;amp; shade color:
&amp;lt;pre&amp;gt;
直接填写原贴图
&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;MMD特用脚本&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 需要手动校验材质是否为透明并修改
# 校验透明度的功能以后可能会写 
import bpy

for index in range(len(bpy.context.object.material_slots)):
    bpy.context.object.active_material_index = index
    mat = bpy.context.object.material_slots[index].name
    tex = bpy.context.object.material_slots[index].material.node_tree.nodes[&quot;mmd_base_tex&quot;].image.name

    bpy.ops.vrm.convert_material_to_mtoon1(material_name=mat)
    bpy.context.object.active_material.vrm_addon_extension.mtoon1.enabled = True
    bpy.context.object.active_material.vrm_addon_extension.mtoon1.pbr_metallic_roughness.base_color_texture.index.source = bpy.data.images[tex]
    bpy.context.object.active_material.vrm_addon_extension.mtoon1.extensions.vrmc_materials_mtoon.shade_multiply_texture.index.source = bpy.data.images[tex]
    bpy.context.object.active_material.vrm_addon_extension.mtoon1.alpha_mode = &apos;OPAQUE&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;导出&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;参数默认直接导出就行&lt;/strong&gt;
:::Tip
导出时将有形态键的网格拆分出来
能显著减小vrm文件大小
:::
:spoiler[&lt;strong&gt;怀疑是合并时将所有顶点都作为形态键的内容,即使没有也如此.&lt;/strong&gt;]&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;在unity中添加物理&lt;/h1&gt;
&lt;p&gt;unity方面建议观看其他视频教程使用
:::tip
Gravlty Power 和 Stiffness Force 是相互影响的
:::&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Spring_bone(物理)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Stiffness Force: 可以调节物体的柔硬程度值越低，物体就越柔软。值越高，物体越僵硬&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Drag Force: 可以调节物体的弹性程度值越低，弹性越大。值越高，弹性越低&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gravity Power: 可以调节物体的受重力影响，配合Stiffness Force使用。值越高，重力影响越大&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;这里更推荐插件&lt;/strong&gt;：&lt;a href=&quot;https://nalulululuna.booth.pm/items/4649509&quot;&gt;VrmSpringBoneTool&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/WpoeFCxHVnE&quot;&gt;教程可参考&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;吐槽一下vrm&amp;lt;br&amp;gt;
:spoiler[&lt;strong&gt;这个格式又大又废,没有自己特有的功能.&amp;lt;br&amp;gt;物理基本还比不上十几年前的mmd，真的太差劲了。&amp;lt;br&amp;gt;唯一可用之处就是足够方便，很多软件都支持.&lt;/strong&gt;]&lt;/p&gt;
</content:encoded></item><item><title>linux内使用bottle启动MMD和PE</title><link>https://blog.sinsa.cc.cd/posts/bottle-mmd/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/bottle-mmd/</guid><pubDate>Tue, 26 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;对此篇文档的一个笔记:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://ivonblog.com/posts/mikumikudance-linux/&quot;&gt;嘗試在Linux跑MikuMikuDance和PMX Editor建模軟體&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;安装Bottles&lt;/h1&gt;
&lt;p&gt;右上角➕新建bottle&lt;/p&gt;
&lt;p&gt;类别游戏,soda9.0.1(可选最新版本)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这里我用的是cachyos自带的版本&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;安装依赖
&lt;ul&gt;
&lt;li&gt;cjkfonts&lt;/li&gt;
&lt;li&gt;vcredist2005&lt;/li&gt;
&lt;li&gt;vcredist2008&lt;/li&gt;
&lt;li&gt;vcredist2010&lt;/li&gt;
&lt;li&gt;vcredist2013&lt;/li&gt;
&lt;li&gt;devenum&lt;/li&gt;
&lt;li&gt;quartz&lt;/li&gt;
&lt;li&gt;d3dx9&lt;/li&gt;
&lt;li&gt;qcap&lt;/li&gt;
&lt;li&gt;qedit&lt;/li&gt;
&lt;li&gt;d3dcompiler_43&lt;/li&gt;
&lt;li&gt;gdiplus&lt;/li&gt;
&lt;li&gt;directshow&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;设置语言为&lt;strong&gt;Japanese&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;新建环境变量&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;LANG=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;PE可共用这个bottle&lt;/h1&gt;
&lt;p&gt;导入模型可能需要从菜单，不能直接拖入&lt;/p&gt;
</content:encoded></item><item><title>模型制作流程(vroid素体)</title><link>https://blog.sinsa.cc.cd/posts/model-flow_vroid/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/model-flow_vroid/</guid><description>vroid素体+blender</description><pubDate>Sun, 24 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;1. 素体（决定了大部分的形态键预设）&lt;/h1&gt;
&lt;h2&gt;vroid&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;vroid&lt;/strong&gt;捏大致脸型和眼型（可后续修改）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;反复&lt;/strong&gt;—在blender内检查是否满意&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;vroid导出时去掉 &lt;strong&gt;去除透明材质网格&lt;/strong&gt; 的勾选，导出为vrm模型&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;blender&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;导入blender:&lt;/li&gt;
&lt;li&gt;blender安装&lt;a href=&quot;https://github.com/saturday06/VRM-Addon-for-Blender&quot;&gt;vrm插件&lt;/a&gt;(4.5版本可直接在扩展中安装)，并导入&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;!-- &lt;strong&gt;vroid2pmx&lt;/strong&gt;--要求骨骼名不变（Tpose-&amp;gt;Apose，angle:35°） --&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;2. 面捕形态键(Arkit)&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;手搓&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://hinzka.hatenablog.com/entry/2020/06/15/072929&quot;&gt;https://hinzka.hatenablog.com/entry/2020/06/15/072929&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1wT421i7T7/?spm_id_from=333.999.list.card_archive.click&amp;amp;vd_source=464747023d65135382bc51c6e3680fc3&quot;&gt;【努力一下人物建模】10-手搓完美同步，尊嘟假嘟？&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::tip
将脸部用unity转化成arkit
:::&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Hana_Tools&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;参考教程&amp;lt;/summary&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Ex_CCxz7gK4&quot;&gt;【3D化教學】3D模型精細臉部動補完整攻略，超好用動補軟體與工具介紹，使用HANA Tool快速設置52 Blendshapes！&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1Gx4y177CP&quot;&gt;【Vroid面捕教程】最简单的面捕/动捕方案（软件见简介）&lt;/a&gt;
&amp;lt;/p&amp;gt;
&amp;lt;/detials&amp;gt;
V4（VRM0.0）：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://kuniyan.booth.pm/items/2604269&quot;&gt;https://kuniyan.booth.pm/items/2604269&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;推荐参数&lt;/p&gt;
&lt;p&gt;・Unity2020.3.13f1(64bit)&lt;/p&gt;
&lt;p&gt;・UniVRM0.98.0&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;v5（VRM1.0）这阶段好像不太受用&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://kuniyan.booth.pm/items/4607357&quot;&gt;https://kuniyan.booth.pm/items/4607357&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;推荐参数&lt;/p&gt;
&lt;p&gt;・Unity2020.3.13f1(64bit)&lt;/p&gt;
&lt;p&gt;・VRM0.108.0&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但是我他妈买错了&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;3. 转换为mmd格式//可后续转换&lt;/h1&gt;
&lt;p&gt;用vrm2pmx转为pmx模型&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;可选  T-POSE（为了建模习惯）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;blender2.93，cat插件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;pmxediter转换&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用写的脚本转换&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;素体完成&lt;/strong&gt;🎉&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;4. 建模&lt;/h1&gt;
&lt;p&gt;:::tip
如果因为骨骼的命名问题，无法镜像。&lt;/p&gt;
&lt;p&gt;需要cats应用&quot;sysmmetruze VRoid Bone Names on X-Axia&quot;
:::
&lt;strong&gt;要时刻保证模型的对称性(主要是面部)&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;s&gt;建模过程skip&lt;/s&gt;&lt;/h3&gt;
&lt;p&gt;绑定一定要起名&lt;/p&gt;
&lt;p&gt;材质初步只有贴图&lt;/p&gt;
&lt;p&gt;此后是pe和blender来回的问题了（不过要避免，会出错）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;配合脚本&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;将arkit表情转为mmd的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;材质转换&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;uv转换？&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;5. mmd处理&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;一些mmd格式参考&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;显示杂&lt;/h2&gt;
&lt;h3&gt;1.骨骼列表&lt;/h3&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;点击展开&amp;lt;/summary&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ROOT&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;操作中心&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;表情&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;センター&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;全ての親&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;センター&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;グルーブ&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;IK&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;足ＩＫ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;つま先ＩＫ&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;体（上）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;上半身&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;首&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;頭&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;両目&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右目&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;左目&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;腕&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;右肩&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右手首&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右朊捩&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右手捩&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;指&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;略&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;体(下)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下半身&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;足&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;右足&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右ひざ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右足首&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右足D&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右ひざD&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右足首 D&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右足先 EX&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;右つま先&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;物理&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;略，可分组
&amp;lt;/p&amp;gt;&amp;lt;/details&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2.注释&lt;/h3&gt;
&lt;p&gt;&amp;lt;details open=true&amp;gt;
&amp;lt;p&amp;gt;
ModelName : gugu&lt;/p&gt;
&lt;p&gt;Author : Sinsa&lt;/p&gt;
&lt;p&gt;Contact Information :https://space.bilibili.com/1627170029
&amp;lt;/p&amp;gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h3&gt;3.材质&lt;/h3&gt;
&lt;p&gt;&amp;lt;details open=true&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;扩散色：0.8&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;反射色：0&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;环境色：0.6&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;反透射率：1&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;反射强度：5
&amp;lt;/p&amp;gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;mmd表情适配&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Sinsax/mmd-facial-expression&quot;&gt;https://github.com/Sinsax/mmd-facial-expression&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;todo&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;裙子物理&lt;/h2&gt;
&lt;p&gt;横16纵8&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参考模型:兰若&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;details open=true&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;纵关节参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;移动距离：0厘米&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;旋转角度：80度&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;移动距离：0厘米&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;回转角度：10度&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;横关节参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;移动距离：0.1~1厘米&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;旋转角度：1度&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;移动距离：40~0厘米&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;回转角度：0度&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;/p&amp;gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;:::important
检查:材质顺序，颜色，双面，透明&lt;/p&gt;
&lt;p&gt;裙子曲面物理效果&lt;/p&gt;
&lt;p&gt;添加必需骨
:::&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;pmx模型基本完成&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;导出后调试&lt;/h1&gt;
&lt;p&gt;todo&lt;/p&gt;
</content:encoded></item><item><title>图片转换为webp</title><link>https://blog.sinsa.cc.cd/posts/image2webp/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/image2webp/</guid><description>为了不被png卡死</description><pubDate>Sat, 23 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Archlinux&lt;/h1&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S libwebp
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;png/jpg转换webp&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;
cwebp -q 80 image.png -o image.webp

# 批量
# 质量80%
for i in *.png; do cwebp -q 80 &quot;$i&quot; -o &quot;${i%.*}.webp&quot;; done
# 无损压缩 -lossless
for i in *.png; do cwebp -lossless &quot;$i&quot; -o &quot;${i%.*}.webp&quot;; done
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;gif转换webp&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;
gif2webp -q 80 image.gif -o image.webp

# 批量
# 质量80%
for i in *.gif; do gif2webp -q 80 &quot;$i&quot; -o &quot;${i%.*}.webp&quot;; done
# 有损
for i in *.gif; do gif2webp -lossy -m 3 &quot;$i&quot; -o &quot;${i%.*}.webp&quot;; done
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;python&lt;/h1&gt;
&lt;h2&gt;安装Pillow&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# pip
pip install Pillow

# archlinux
sudo pacman -S python-Pillow
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;代码参考&lt;/h2&gt;
&lt;p&gt;转换当前目录下的文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;from PIL import Image
import os
# 读取目录下的所有图片文件
def get_image_files():
    # 获取当前工作目录的路径
    directory = os.getcwd()
    image_files = []
    for filename in os.listdir(directory):
        if filename.lower().endswith((&apos;.png&apos;, &apos;.jpg&apos;, &apos;.jpeg&apos;, &apos;.bmp&apos;, &apos;.gif&apos;)):
            image_files.append(os.path.join(directory, filename))
    return image_files
imagelist = get_image_files()
for image in imagelist:
    img = Image.open(image) 
    img.save(image.rsplit(&apos;.&apos;, 1)[0]+&quot;.webp&quot;, &apos;WEBP&apos;, lossless=True)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;参考：&lt;a href=&quot;https://developers.google.com/speed/webp/docs/using?hl=zh-cn&quot;&gt;cwebp&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>模型目录</title><link>https://blog.sinsa.cc.cd/posts/model/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/model/</guid><description>均是我直接或参与制作的模型</description><pubDate>Fri, 22 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;按照最新的顺序排序&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;div style=&quot;width:70%&quot;&amp;gt;&lt;/p&gt;
&lt;h1&gt;2025&lt;/h1&gt;
&lt;p&gt;&amp;lt;details open=true&amp;gt;
&amp;lt;summary&amp;gt;点击展开&amp;lt;/summary&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;花音(幻树の破晓)&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;07-02
&lt;img src=&quot;image/hana.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;柴崎步&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;05-07&lt;/p&gt;
&lt;p&gt;&amp;lt;u&amp;gt;衣服部分&amp;lt;/u&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;image/cqb.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;耶斯yeki.256ver&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;05-04
&lt;img src=&quot;image/chibiysyk.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/p&amp;gt;
&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;2024&lt;/h1&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;点击展开&amp;lt;/summary&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2&gt;&lt;code&gt;芙姆米Fumi&lt;/code&gt;&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;09-07
&lt;img src=&quot;image/fumi.webp&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;code&gt;阿卡伊Akai&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;09-11
&lt;img src=&quot;image/akai.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;叛逆期艾伊&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;06-20
&lt;img src=&quot;image/ayi.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;珂蒂Cordelia&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;06-06
&lt;img src=&quot;image/cord.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;萝米摸鱼中&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;01-22
&lt;img src=&quot;image/romi.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/p&amp;gt;
&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;2023&lt;/h1&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;点击展开&amp;lt;/summary&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;向晚古风&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;12-26
&lt;img src=&quot;image/ava.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;归归&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;12-07
&lt;img src=&quot;image/guigui.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;零梦RinMon&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;08-10&lt;/p&gt;
&lt;p&gt;&amp;lt;u&amp;gt;衣服部分&amp;lt;/u&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;image/rinmon.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;東雪蓮新私服5.5&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;07-16
&lt;img src=&quot;image/azuma-seren.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;贝拉古风&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;06-03
&lt;img src=&quot;image/bella.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;多萝丝赛露&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;05-01
&lt;img src=&quot;image/drossel.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;薛定谔的咕&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;03-24
&lt;img src=&quot;image/gugu.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;珈乐毛衣&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;02-27
&lt;img src=&quot;image/carol-sweater.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;OREO&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;02-09
&lt;img src=&quot;image/oreo.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/p&amp;gt;
&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;2023以前&lt;/h1&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;黑历史&amp;lt;/summary&amp;gt;
&amp;lt;p&amp;gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;慕宇&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;2022-12
&lt;img src=&quot;image/muyu.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;珈乐&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;06-27
&lt;img src=&quot;image/carol-50w.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;阿草&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;2021-09
&lt;img src=&quot;image/grass.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;Ruki&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;2021-06
&lt;img src=&quot;image/ruki-p.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;Nana7mi&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;2021-02
&lt;img src=&quot;image/nana7mi.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;Hanon&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;2021-01
&lt;img src=&quot;image/hanon-p.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;Aer&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;2020-05
&lt;img src=&quot;image/aer-px2.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;/p&amp;gt;
&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>DDBOT配置备忘</title><link>https://blog.sinsa.cc.cd/posts/ddbot/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/ddbot/</guid><description>每次都忘记怎么弄，遂记录</description><pubDate>Thu, 21 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;:::tip
环境为linux服务器
:::&lt;/p&gt;
&lt;h1&gt;安装1panel(可选)&lt;/h1&gt;
&lt;p&gt;方便管理docker和文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash -c &quot;$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;DDBOT&lt;/h1&gt;
&lt;p&gt;::github{repo=&quot;cnxysoft/DDBOT-WSa&quot;}&lt;/p&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;下载，然后解压在一个目录里&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;使用systemd持续运行&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;:::tip
filepath请替换为实际目录
:::&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#ddbot.sh
#!/bin/sh
cd /filepath/ddbot
./DDBOT-WSa
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存后赋予运行权限&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod +x ddbot.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建service文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=
Documentation=
After=network.target
Wants=
Requires=

[Service]
# 当失败时重启
Restart=on-failure
RestartSec=10s
StartLimitIntervalSec=300
StartLimitBurst=5
ExecStart=/filepath/ddbot.sh
ExecStop=
ExecReload=/filepath/ddbot.sh
Type=simple

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;放置并运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 移动文件
cp ddbot.service /etc/systemd/system/ddbot.service
# 启用开机自启
systemctl enable ddbot
# 启动服务
systemctl start ddbot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后续查看运行状态&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl status ddbot
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置&lt;/h2&gt;
&lt;p&gt;用bilibili扫一下ddbot目录下的b站二维码图片&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;Napcat&lt;/h1&gt;
&lt;p&gt;::github{repo=&quot;NapNeko/NapCat-Docker&quot;}&lt;/p&gt;
&lt;h2&gt;安装(二选一)&lt;/h2&gt;
&lt;p&gt;:::tip
使用1panel部署时，注意网络设置为host
:::&lt;/p&gt;
&lt;h3&gt;Napcat docker&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker run -d \
-e NAPCAT_GID=$(id -g) \
-e NAPCAT_UID=$(id -u) \
-p 3000:3000 \
-p 3001:3001 \
-p 6099:6099 \
--name napcat \
--restart=always \
mlikiowa/napcat-docker:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;docker-compose&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;
version: &quot;3&quot;
services:
    napcat:
        environment:
            - NAPCAT_UID=${NAPCAT_UID}
            - NAPCAT_GID=${NAPCAT_GID}
        ports:
            - 3000:3000
            - 3001:3001
            - 6099:6099
        container_name: napcat
        network_mode: bridge
        restart: always
        image: mlikiowa/napcat-docker:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;链接Napcat&lt;/h2&gt;
&lt;p&gt;网络配置 -- 新建Websocket客户端&lt;/p&gt;
&lt;p&gt;记得勾选&lt;code&gt;开启debug&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;url:
ws://127.0.0.1:15630/ws
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::tip
在猫猫日志中可以看到是否有连接错误
:::&lt;/p&gt;
&lt;h2&gt;&lt;em&gt;至此链接成功了&lt;/em&gt;🎉&lt;/h2&gt;
&lt;hr /&gt;
&lt;h1&gt;配置机器人&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;在qq向小号发送消息&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;一些常用的指令
:::tip
GROUP：群号
UID：主播uid
:::&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 指定管理员
/whosyourdaddy

# 各种通知
# 直播
/watch -g GROUP UID
# 动态
/watch -g GROUP -t news UID
# @全体
/config -g GROUP at_all --site bilibili UID on
# 标题修改
/config -g GROUP title_notify --site bilibili UID on
# 下播推送
/config -g GROUP offline_notify --site bilibili UID on
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;参考内容：&lt;a href=&quot;https://ddbot.songlist.icu/&quot;&gt;DDBOT&lt;/a&gt;,&lt;a href=&quot;https://napneko.github.io/&quot;&gt;NapNeko&lt;/a&gt;,&lt;a href=&quot;https://github.com/Fahaxikiii/napcat-1panel&quot;&gt;napcat-1panel&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Fuwari安装&amp;使用</title><link>https://blog.sinsa.cc.cd/posts/fuwari-install/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/fuwari-install/</guid><description>使用github page部署</description><pubDate>Wed, 20 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本文档为使用github page部署的指南&lt;/p&gt;
&lt;h1&gt;安装Fuwari（二选一）&lt;/h1&gt;
&lt;h2&gt;1.直接fork原仓库&lt;/h2&gt;
&lt;p&gt;::github{repo=&quot;saicaca/fuwari&quot;}&lt;/p&gt;
&lt;h2&gt;2，用pnpm安装&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;pnpm create fuwari@latest
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按命令输出需求依次输入项目名称，网站名称，副标题，语言&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;✔ Please enter the project name: 输入项目名称
✔ Please enter the site title: 输入网站名称
✔ Please enter the site subtitle: 输入副标题
✔ Please select the language of the site. zh_CN
✔ Install Dependencies? Yes
✔ Initialize Git? Yes
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;配置Fuwari&lt;/h1&gt;
&lt;p&gt;:::tip
用pnpm安装时，基础网站信息会提前更改
:::&lt;/p&gt;
&lt;h2&gt;手动设置网站信息&lt;code&gt;src/config.ts&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;网站基本信息在&lt;code&gt;export const siteConfig: SiteConfig:{&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;title: 网站标题,
subtitle: 副标题,
lang: &quot;zh_CN&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;横幅&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;banner: {
    enable: false,
    src: &quot;assets/images/banner.png&quot;, 
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;头像内容在&lt;code&gt;export const profileConfig: ProfileConfig = {&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;avatar: &quot;assets/images/demo-avatar.png&quot;,
name: &quot;Lorem Ipsum&quot;,
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;图片相关按照目录路径输入&lt;/p&gt;
&lt;h2&gt;设置&lt;code&gt;astro.config.mjs&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;项目根目录下打开&lt;code&gt;astro.config.mjs&lt;/code&gt;
设置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// https://astro.build/config
export default defineConfig({
	site: &quot;https://fuwari.vercel.app/&quot;,
	base: &quot;/&quot;,
	trailingSlash: &quot;always&quot;,
)}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按github项目名分两种情况&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;名为&lt;code&gt;username.github.io&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;base可注释掉&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;site:&quot;https://username.github.io&quot;
base:&quot;/&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;其他名称&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;项目名例如 &lt;code&gt;newpost&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;site:&quot;https://username.github.io&quot;
base:&quot;/newpost&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;:::tip
若有域名可解析,则base:&quot;/&quot;
:::&lt;/h2&gt;
&lt;h1&gt;github action 设置&lt;/h1&gt;
&lt;h2&gt;关闭github已有action&lt;/h2&gt;
&lt;p&gt;:::important
不关会一直报错给你发邮件
:::
在github项目页面的Settings &amp;gt; Pages 中&lt;/p&gt;
&lt;p&gt;将Build and deployment即生成和部署的方式改为&lt;/p&gt;
&lt;p&gt;GitHub Action&lt;/p&gt;
&lt;h2&gt;配置提交代码即运行action&lt;/h2&gt;
&lt;p&gt;:::tip
若已有此文件可跳过
:::
在&lt;code&gt;.github/workflows&lt;/code&gt;目录下新建&lt;code&gt;build.yml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;name: Deploy to GitHub Pages

on:
  # Trigger the workflow every time you push to the `main` branch
  # Using a different branch name? Replace `main` with your branch’s name
  push:
    branches: [ main ]
  # Allows you to run this workflow manually from the Actions tab on GitHub.
  workflow_dispatch:

# Allow this job to clone the repo and create a page deployment
permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout your repository using git
        uses: actions/checkout@v4
      - name: Install, build, and upload your site
        uses: withastro/action@v2
        with:
          # path: . # The root location of your Astro project inside the repository. (optional)
          # node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 20. (optional)
          package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)

  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;使用&lt;/h1&gt;
&lt;h2&gt;本地运行并参考效果&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;#安装依赖项
pnpm install

#运行
pnpm run dev
pnpm dev

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;新建post&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;pnpm new-post 名称
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若需要插入图片，新建文件夹并改名为index.md&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;newpost.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;newpost
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;picture.jpg&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;或&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;newpost
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;image
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;picture.jpg&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2&gt;图片追加&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;//md文件内添加
![](image/chibiysyk.gif)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;参考来源：
&lt;a href=&quot;https://github.com/saicaca/fuwari&quot;&gt;Fuwari&lt;/a&gt;,
&lt;a href=&quot;https://docs.astro.build/en/getting-started/&quot;&gt;Astro doc&lt;/a&gt;,
&lt;a href=&quot;https://markdown.com.cn/basic-syntax/&quot;&gt;Markdown 基本语法&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>fisrt po</title><link>https://blog.sinsa.cc.cd/posts/first/</link><guid isPermaLink="true">https://blog.sinsa.cc.cd/posts/first/</guid><description>写一点以后想记录的内容</description><pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;图片来源&lt;a href=&quot;https://x.com/hatyuuruinohito/status/1587743870825410560&quot;&gt;とかげんさん&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;写一点想记录的内容&lt;/h2&gt;
</content:encoded></item></channel></rss>