<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Hugo Xu</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://my-hexo-blog-2yk.pages.dev/</id>
  <link href="https://my-hexo-blog-2yk.pages.dev/" rel="alternate"/>
  <link href="https://my-hexo-blog-2yk.pages.dev/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Hugo Xu</rights>
  <title>Hugo's Blog</title>
  <updated>2026-10-28T23:12:58.136Z</updated>
  <entry>
    <author>
      <name>Hugo Xu</name>
    </author>
    <category term="Life" scheme="https://my-hexo-blog-2yk.pages.dev/tags/Life/"/>
    <category term="Cycling" scheme="https://my-hexo-blog-2yk.pages.dev/tags/Cycling/"/>
    <content>
      <![CDATA[<p>一晃2026年又快过去一半，还没正经骑过一次车。自从去年五一节环海南岛后，阈值被提高，在上海很难提起骑车的兴趣，终于磨磨蹭蹭到11月，借着冬天的借口彻底停了下来（其实家里还有骑行台，就是懒了）。今年开春后，晚上的业余时间又是基本交给了VibeCoding和吉他，拖着拖着就到了5月份。</p><span id="more"></span><p>这两天的天气着实给力，隐隐有“水晶天”的感觉，不出门荡荡腿实在说不过去。走沪青平的话，前面的市区段还是稍显有点多了，于是决定沿龙吴路走到兰香湖以及黄埔江边试试。</p><p>先是绕到龙腾大道，传统的滨江骑行段，今天虽然阳光强烈但气温并不是很高，奇怪的是龙腾大道上骑行的人几乎没有，三三两两看到几队家长带着孩子的。码表显示西南风，体感亦是，200W左右的功率只能维持27kph左右的速度，三座桥上的腿还隐隐有些酸。</p><p>龙腾大道徐浦大桥下向南彻底打通了，除了行道树太小外，新修的路、几乎没车，格外好骑，路的西侧围挡里可以看到一个大型公园已建成，开放后应该又是一处露营好去处。接着道路由南转西，进入华展东路，接上了龙吴路，一路向南吧。</p><p>其实还挺好骑的，树荫正好遮着西边天幕上的太阳，就是灰实在大：沿江的一侧是连绵的化工厂、电厂，另一侧则是在建的地铁23号线，车轮扬起的灰尘混着若有似无的化学品的味道。过了春申路后约莫七八公里的路上，就是这样的景象，老的厂子、紧锁的铁门、生锈的栅栏，天湛蓝，云朵朵，要不是耳机中专为骑行准备的劲爆电子乐有些出席，彷佛是骑进了上世纪八九十年代。路过了闵浦大桥边电厂两大硕大的冷却塔，懒得停车打卡（其实我骑车的时候很讨厌停车，节奏不能乱，踩踏不能停，靠着一百多两百瓦不到的微小功率维持恒定速度还行，加速的过程就太消耗体力了）。过了华泾镇后，配套略微多了些，然后龙吴路就到头了，右转上东川路，先去兰香湖看看。</p><p>原来还是一处大工地，到处是断头路，新挖的湖新修的学校新盖和在建的住宅以及到处可见的围挡和不通的路，打扰了。继续导航去“浦江第一弯”，路过紫竹高新园区，很阔气，保安一直派驻到公共道路上，哪怕周末也是在岗，总部大楼前的绿地哪怕是公共绿地，想必也是园区在掏钱养护吧，对比这家区属国企，作为市属国企的集团反而是用点穷酸。浦江第一湾居然不是开放式公园，非机动车还要在指定停车场停放，掉头时看到道闸旁的保安一付我要闯卡的惊恐模样，再次打扰了。</p><p><img src="/images/2026-05-17-Cycling-on-Longwu-Road-top.webp" alt="修了300m就断头的自行车道" title="兰香湖"></p><p>全程45km不到一点，停止记录，码表哦提醒我FTP再创新低（其实昨天已经悄悄骑过约莫30公里，FTP比去年低了10%）。但看到了新鲜事物，心情舒畅。骑行之于我来说，数据可能已经不重要了（反正也卷不过别人），社交属性无（还是喜欢一个人听歌荡腿），健身效果凑活（论减肥，不如在家HIIT，长时间有氧还让人显老），可能就剩一个快乐属性了吧。以上。</p>]]>
    </content>
    <id>https://my-hexo-blog-2yk.pages.dev/2026-05-17-Cycling-on-Longwu-Road/</id>
    <link href="https://my-hexo-blog-2yk.pages.dev/2026-05-17-Cycling-on-Longwu-Road/"/>
    <published>2026-05-17T09:45:22.000Z</published>
    <summary>隔了大半年重新上车，沿龙吴路一路向南骑到兰香湖与黄浦江边，记下路况、风向，以及那段被代码和吉他挤掉的骑行热情。</summary>
    <title>2026-05-17 骑行龙吴路</title>
    <updated>2026-10-28T23:12:58.136Z</updated>
  </entry>
  <entry>
    <author>
      <name>Hugo Xu</name>
    </author>
    <content>
      <![CDATA[<!-- toc --><h2 id="基础逻辑"><a href="#基础逻辑" class="headerlink" title="基础逻辑"></a>基础逻辑</h2><h3 id="整体架构"><a href="#整体架构" class="headerlink" title="整体架构"></a>整体架构</h3><table><thead><tr><th>序号</th><th>表名</th><th>类型</th></tr></thead><tbody><tr><td>1</td><td>项目表</td><td>基础</td></tr><tr><td>2</td><td>楼栋表</td><td>基础</td></tr><tr><td>3</td><td>楼层表</td><td>基础</td></tr><tr><td>4</td><td>位置表</td><td>基础</td></tr><tr><td>5</td><td>设备表</td><td>基础（台账）</td></tr><tr><td>6</td><td>盘点记录表</td><td>业务</td></tr><tr><td>7</td><td>巡检记录表</td><td>业务</td></tr><tr><td>8</td><td>维保记录表</td><td>业务</td></tr></tbody></table><span id="more"></span><h3 id="表结构详情"><a href="#表结构详情" class="headerlink" title="表结构详情"></a>表结构详情</h3><h4 id="项目表"><a href="#项目表" class="headerlink" title="项目表"></a>项目表</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>项目编码</td><td>PK</td><td>主键，如 ZZ10</td></tr><tr><td>项目名称</td><td>文本</td><td>如 智造园十期</td></tr><tr><td>地址</td><td>文本</td><td>可选</td></tr><tr><td>负责人</td><td>文本</td><td>可选</td></tr></tbody></table><p><strong>外键</strong>：无</p><h4 id="楼栋表"><a href="#楼栋表" class="headerlink" title="楼栋表"></a>楼栋表</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>楼栋编码</td><td>PK</td><td>主键，如 B01</td></tr><tr><td>楼栋名称</td><td>文本</td><td>如 A座</td></tr><tr><td>项目编码</td><td>FK</td><td>指向项目表</td></tr></tbody></table><p><strong>外键</strong>：<code>项目编码</code> → <code>项目表(项目编码)</code></p><h4 id="楼层表"><a href="#楼层表" class="headerlink" title="楼层表"></a>楼层表</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>楼层编码</td><td>PK</td><td>主键，如 F05</td></tr><tr><td>楼层名称</td><td>文本</td><td>如 5楼</td></tr><tr><td>楼栋编码</td><td>FK</td><td>指向楼栋表</td></tr></tbody></table><p><strong>外键</strong>：<code>楼栋编码</code> → <code>楼栋表(楼栋编码)</code></p><h4 id="位置表"><a href="#位置表" class="headerlink" title="位置表"></a>位置表</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>位置编码</td><td>PK</td><td>主键，楼层内唯一，如 LOC0101</td></tr><tr><td>位置名称</td><td>文本</td><td>如 0101房间</td></tr><tr><td>位置类型</td><td>文本</td><td>如 OFF、FCR、HVAC</td></tr><tr><td>楼层编码</td><td>FK</td><td>指向楼层表</td></tr></tbody></table><p><strong>外键</strong>：<code>楼层编码</code> → <code>楼层表(楼层编码)</code></p><h4 id="设备表（核心）"><a href="#设备表（核心）" class="headerlink" title="设备表（核心）"></a>设备表（核心）</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>设备ID</td><td>PK</td><td>主键，唯一标识</td></tr><tr><td>设备名称</td><td>文本</td><td>业务名称</td></tr><tr><td>设备编号</td><td>文本</td><td>资产标签号，可重复</td></tr><tr><td>设备类型</td><td>文本</td><td>UPS&#x2F;蓄电池组&#x2F;空调等</td></tr><tr><td>品牌</td><td>文本</td><td>—</td></tr><tr><td>型号</td><td>文本</td><td>—</td></tr><tr><td>序列号</td><td>文本</td><td>厂商唯一标识</td></tr><tr><td>技术参数</td><td>文本</td><td>如 12V&#x2F;100Ah</td></tr><tr><td>生产日期</td><td>日期</td><td>—</td></tr><tr><td>投用日期</td><td>日期</td><td>—</td></tr><tr><td>父设备ID</td><td>FK(自关联)</td><td>指向本表的设备ID，顶层为NULL</td></tr><tr><td>是否成组设备</td><td>布尔</td><td>是&#x2F;否</td></tr><tr><td>单元数量</td><td>数字</td><td>仅成组设备填</td></tr><tr><td>单元序号</td><td>数字</td><td>仅子设备填</td></tr><tr><td>资产状态</td><td>枚举</td><td>在用&#x2F;停用&#x2F;报废&#x2F;在库&#x2F;维修中</td></tr><tr><td>采购单价</td><td>数字</td><td>—</td></tr><tr><td>资产原值</td><td>数字</td><td>—</td></tr><tr><td>维保供应商</td><td>文本</td><td>—</td></tr><tr><td>下次维保日期</td><td>日期</td><td>—</td></tr><tr><td>位置编码</td><td>FK</td><td>指向位置表</td></tr><tr><td>备注</td><td>文本</td><td>可选</td></tr></tbody></table><p><strong>外键</strong>：</p><ul><li><code>位置编码</code> → <code>位置表(位置编码)</code></li><li><code>父设备ID</code> → <code>设备表(设备ID)</code>（自关联）</li></ul><h4 id="盘点记录表"><a href="#盘点记录表" class="headerlink" title="盘点记录表"></a>盘点记录表</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>盘点记录ID</td><td>PK</td><td>主键</td></tr><tr><td>设备ID</td><td>FK</td><td>指向设备表</td></tr><tr><td>盘点单号</td><td>文本</td><td>批次号，同一次盘点共享</td></tr><tr><td>盘点日期</td><td>日期</td><td>—</td></tr><tr><td>账面数量</td><td>数字</td><td>系统应有数量</td></tr><tr><td>实盘数量</td><td>数字</td><td>实际点到的数量</td></tr><tr><td>盈亏数量</td><td>数字</td><td>实盘 - 账面</td></tr><tr><td>盈亏状态</td><td>枚举</td><td>正常&#x2F;盘盈&#x2F;盘亏</td></tr><tr><td>备注</td><td>文本</td><td>差异原因</td></tr><tr><td>盘点人</td><td>文本</td><td>—</td></tr></tbody></table><p><strong>外键</strong>：<code>设备ID</code> → <code>设备表(设备ID)</code></p><h4 id="巡检记录表"><a href="#巡检记录表" class="headerlink" title="巡检记录表"></a>巡检记录表</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>巡检记录ID</td><td>PK</td><td>主键</td></tr><tr><td>设备ID</td><td>FK</td><td>指向设备表</td></tr><tr><td>巡检单号</td><td>文本</td><td>批次号</td></tr><tr><td>巡检日期</td><td>日期</td><td>—</td></tr><tr><td>巡检项</td><td>文本</td><td>电压&#x2F;温度&#x2F;外观等</td></tr><tr><td>巡检值</td><td>文本</td><td>实际测量值</td></tr><tr><td>结果</td><td>枚举</td><td>正常&#x2F;异常</td></tr><tr><td>异常描述</td><td>文本</td><td>异常时填写</td></tr><tr><td>巡检人</td><td>文本</td><td>—</td></tr></tbody></table><p><strong>外键</strong>：<code>设备ID</code> → <code>设备表(设备ID)</code></p><h4 id="维保记录表"><a href="#维保记录表" class="headerlink" title="维保记录表"></a>维保记录表</h4><table><thead><tr><th>字段</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>维保记录ID</td><td>PK</td><td>主键</td></tr><tr><td>设备ID</td><td>FK</td><td>指向设备表</td></tr><tr><td>维保单号</td><td>文本</td><td>工单号</td></tr><tr><td>维保日期</td><td>日期</td><td>—</td></tr><tr><td>维保类型</td><td>枚举</td><td>日常保养&#x2F;预防性维护&#x2F;故障维修&#x2F;紧急抢修</td></tr><tr><td>故障现象</td><td>文本</td><td>—</td></tr><tr><td>处理措施</td><td>文本</td><td>—</td></tr><tr><td>更换零件</td><td>文本</td><td>更换了什么</td></tr><tr><td>更换零件ID</td><td>FK</td><td>指向新更换的设备（可选）</td></tr><tr><td>维修结果</td><td>枚举</td><td>已修复&#x2F;待观察&#x2F;报废</td></tr><tr><td>供应商</td><td>文本</td><td>—</td></tr><tr><td>维修人员</td><td>文本</td><td>—</td></tr><tr><td>费用</td><td>数字</td><td>—</td></tr><tr><td>下次维保日期</td><td>日期</td><td>计划类维保时填写</td></tr></tbody></table><p><strong>外键</strong>：<br>    - <code>设备ID</code> → <code>设备表(设备ID)</code><br>    - <code>更换零件ID</code> → <code>设备表(设备ID)</code>    </p><h3 id="表关系汇总"><a href="#表关系汇总" class="headerlink" title="表关系汇总"></a>表关系汇总</h3><table><thead><tr><th>表A</th><th>关系</th><th>表B</th><th>关联字段</th></tr></thead><tbody><tr><td>项目表</td><td>1 : N</td><td>楼栋表</td><td>项目编码</td></tr><tr><td>楼栋表</td><td>1 : N</td><td>楼层表</td><td>楼栋编码</td></tr><tr><td>楼层表</td><td>1 : N</td><td>位置表</td><td>楼层编码</td></tr><tr><td>位置表</td><td>1 : N</td><td>设备表</td><td>位置编码</td></tr><tr><td>设备表</td><td>自关联</td><td>设备表</td><td>父设备ID → 设备ID</td></tr><tr><td>设备表</td><td>1 : N</td><td>盘点记录表</td><td>设备ID</td></tr><tr><td>设备表</td><td>1 : N</td><td>巡检记录表</td><td>设备ID</td></tr><tr><td>设备表</td><td>1 : N</td><td>维保记录表</td><td>设备ID</td></tr></tbody></table><h3 id="影响关系（业务表-→-基础表）"><a href="#影响关系（业务表-→-基础表）" class="headerlink" title="影响关系（业务表 → 基础表）"></a>影响关系（业务表 → 基础表）</h3><table><thead><tr><th>基础表字段</th><th>被影响表</th><th>影响条件</th></tr></thead><tbody><tr><td>资产状态</td><td>维保记录</td><td>维修中 → 修复&#x2F;报废</td></tr><tr><td>资产状态</td><td>盘点记录</td><td>盘亏 → 报废</td></tr><tr><td>下次维保日期</td><td>维保记录</td><td>完成预防性维保后</td></tr><tr><td>设备表（新增）</td><td>盘点记录</td><td>盘盈 → 新增记录</td></tr><tr><td>设备表（删除&#x2F;状态改）</td><td>盘点记录</td><td>盘亏 → 报废</td></tr></tbody></table><h3 id="数据流向"><a href="#数据流向" class="headerlink" title="数据流向"></a>数据流向</h3><div class="mermaid">flowchart TD    subgraph 业务表触发        INSPECTION[巡检记录表&lt;br/&gt;发现异常]        MAINTENANCE[维保记录表&lt;br/&gt;维修完成]        INVENTORY[盘点记录表&lt;br/&gt;盘盈/盘亏]    end    subgraph 基础表被影响        ASSET_STATUS[资产状态]        NEXT_DATE[下次维保日期]        ASSET_NEW[新增设备记录]        ASSET_DELETE[报废/删除设备]    end        INSPECTION --&gt; |确认故障| MAINTENANCE    MAINTENANCE --&gt; |维修中| ASSET_STATUS    MAINTENANCE --&gt; |修复完成| ASSET_STATUS    MAINTENANCE --&gt; |计算得出| NEXT_DATE    INVENTORY --&gt; |盘盈| ASSET_NEW    INVENTORY --&gt; |盘亏| ASSET_DELETE    INVENTORY --&gt; |盘亏| ASSET_STATUS</div><script src="https://registry.npmmirror.com/mermaid/11.4.1/files/dist/mermaid.min.js"></script><script>window.addEventListener("load",function(){if(!window.mermaid)return;mermaid.initialize({startOnLoad:false,theme:"neutral",securityLevel:"loose",fontFamily:"inherit"});mermaid.run({querySelector:".mermaid"});});</script><h3 id="表关系"><a href="#表关系" class="headerlink" title="表关系"></a>表关系</h3><div class="mermaid">erDiagram    project ||--o{ building : "1:N"    building ||--o{ floor : "1:N"    floor ||--o{ location : "1:N"    location ||--o{ asset : "1:N"    asset ||--o{ asset : "parent"    asset ||--o{ inventory_record : "1:N"    asset ||--o{ inspection_record : "1:N"    asset ||--o{ maintenance_record : "1:N"    project {        varchar project_code PK        varchar project_name        varchar address        varchar owner    }        building {        varchar building_code PK        varchar building_name        varchar project_code FK    }        floor {        varchar floor_code PK        varchar floor_name        varchar building_code FK    }        location {        varchar location_code PK        varchar location_name        varchar location_type        varchar floor_code FK    }        asset {        varchar asset_id PK        varchar asset_name        varchar asset_number        varchar asset_type        varchar brand        varchar model        varchar serial_number        varchar technical_params        date production_date        date commission_date        varchar parent_asset_id FK        boolean is_group        int unit_count        int unit_serial        varchar asset_status        decimal unit_price        decimal original_value        varchar maintenance_vendor        date next_maintenance_date        varchar location_code FK        text remark    }        inventory_record {        varchar record_id PK        varchar asset_id FK        varchar batch_no        date inventory_date        int book_quantity        int actual_quantity        int variance        varchar variance_status        text remark        varchar checker    }        inspection_record {        varchar record_id PK        varchar asset_id FK        varchar batch_no        date inspection_date        varchar check_item        varchar check_value        varchar result        text exception_desc        varchar inspector    }        maintenance_record {        varchar record_id PK        varchar asset_id FK        varchar work_order_no        date maintenance_date        varchar maintenance_type        text fault_description        text action_taken        text replaced_parts        varchar replaced_asset_id FK        varchar repair_result        varchar supplier        varchar engineer        decimal cost        date next_maintenance_date    }</div><h2 id="项目编码"><a href="#项目编码" class="headerlink" title="项目编码"></a>项目编码</h2><table><thead><tr><th align="center">项目名称</th><th align="center">项目编码</th></tr></thead><tbody><tr><td align="center">蓝创中心</td><td align="center">LCZX</td></tr><tr><td align="center">蓝湾天地</td><td align="center">LWTD</td></tr><tr><td align="center">临港奉城园区</td><td align="center">LGFC01</td></tr><tr><td align="center">临港奉贤中心</td><td align="center">FXZX</td></tr><tr><td align="center">临港长兴一期</td><td align="center">LGCX01</td></tr><tr><td align="center">长兴宋品酒店</td><td align="center">CXJD</td></tr><tr><td align="center">智造园一期</td><td align="center">ZZ01</td></tr><tr><td align="center">智造园三期</td><td align="center">ZZ03</td></tr><tr><td align="center">智造园四期</td><td align="center">ZZ04</td></tr><tr><td align="center">智造园五期A1</td><td align="center">ZZ05-A1</td></tr><tr><td align="center">智造园五期A2</td><td align="center">ZZ05-A2</td></tr><tr><td align="center">智造园五期B</td><td align="center">ZZ05-B</td></tr><tr><td align="center">智造园五期C2</td><td align="center">ZZ05-C2</td></tr><tr><td align="center">智造园五期未来人才公寓</td><td align="center">ZZ05-RC</td></tr><tr><td align="center">智造园六期</td><td align="center">ZZ06</td></tr><tr><td align="center">智造园七期</td><td align="center">ZZ07</td></tr><tr><td align="center">智造园八期</td><td align="center">ZZ08</td></tr><tr><td align="center">智造园九期</td><td align="center">ZZ09</td></tr><tr><td align="center">智造园十期</td><td align="center">ZZ10</td></tr><tr><td align="center">智造园十一期</td><td align="center">ZZ11</td></tr><tr><td align="center">智造园十二期</td><td align="center">ZZ12</td></tr></tbody></table><h2 id="房间名对照"><a href="#房间名对照" class="headerlink" title="房间名对照"></a>房间名对照</h2><table><thead><tr><th>大类</th><th>中文</th><th>英文</th><th>缩写</th></tr></thead><tbody><tr><td>办公类</td><td>办公室</td><td>Office</td><td>OFF</td></tr><tr><td>办公类</td><td>开放办公区</td><td>Open Office</td><td>OPN</td></tr><tr><td>办公类</td><td>经理室</td><td>Manager Office</td><td>MGR</td></tr><tr><td>办公类</td><td>会议室</td><td>Meeting Room</td><td>MTR</td></tr><tr><td>办公类</td><td>培训室</td><td>Training Room</td><td>TRN</td></tr><tr><td>办公类</td><td>接待室</td><td>Reception Room</td><td>RCP</td></tr><tr><td>办公类</td><td>茶水间</td><td>Pantry</td><td>PAN</td></tr><tr><td>办公类</td><td>打印区</td><td>Print Area</td><td>PRN</td></tr><tr><td>办公类</td><td>档案室</td><td>Archive Room</td><td>ARC</td></tr><tr><td>办公类</td><td>资料室</td><td>Document Room</td><td>DOC</td></tr><tr><td>办公类</td><td>更衣室</td><td>Locker Room</td><td>LKR</td></tr><tr><td>办公类</td><td>淋浴间</td><td>Shower Room</td><td>SHW</td></tr><tr><td>办公类</td><td>休息室</td><td>Break Room</td><td>BRK</td></tr><tr><td>办公类</td><td>吸烟室</td><td>Smoking Room</td><td>SMK</td></tr><tr><td>办公类</td><td>医务室</td><td>Clinic</td><td>CLI</td></tr><tr><td>办公类</td><td>母婴室</td><td>Nursing Room</td><td>NRS</td></tr><tr><td>办公类</td><td>电话间</td><td>Phone Booth</td><td>PHN</td></tr><tr><td>办公类</td><td>咖啡吧</td><td>Coffee Bar</td><td>CAF</td></tr><tr><td>厂房类</td><td>生产车间</td><td>Production Workshop</td><td>PRW</td></tr><tr><td>厂房类</td><td>装配车间</td><td>Assembly Shop</td><td>ASM</td></tr><tr><td>厂房类</td><td>洁净车间</td><td>Clean Room</td><td>CLN</td></tr><tr><td>厂房类</td><td>喷涂车间</td><td>Painting Shop</td><td>PNT</td></tr><tr><td>厂房类</td><td>焊接车间</td><td>Welding Shop</td><td>WLD</td></tr><tr><td>厂房类</td><td>加工中心</td><td>Machining Center</td><td>MCH</td></tr><tr><td>厂房类</td><td>原材料仓库</td><td>Raw Material Warehouse</td><td>RMW</td></tr><tr><td>厂房类</td><td>成品仓库</td><td>Finished Goods Warehouse</td><td>FGW</td></tr><tr><td>厂房类</td><td>半成品暂存区</td><td>WIP Storage</td><td>WIP</td></tr><tr><td>厂房类</td><td>危险品仓库</td><td>Hazardous Storage</td><td>HAZ</td></tr><tr><td>厂房类</td><td>化学品库</td><td>Chemical Storage</td><td>CHM</td></tr><tr><td>厂房类</td><td>油品库</td><td>Oil Storage</td><td>OIL</td></tr><tr><td>厂房类</td><td>气瓶间</td><td>Gas Cylinder Room</td><td>GAS</td></tr><tr><td>厂房类</td><td>废料间</td><td>Waste Material Room</td><td>WST</td></tr><tr><td>厂房类</td><td>工具间</td><td>Tool Room</td><td>TOL</td></tr><tr><td>厂房类</td><td>维修车间</td><td>Maintenance Workshop</td><td>MTW</td></tr><tr><td>厂房类</td><td>实验室</td><td>Laboratory</td><td>LAB</td></tr><tr><td>厂房类</td><td>质检室</td><td>Quality Room</td><td>QCC</td></tr><tr><td>厂房类</td><td>备品备件库</td><td>Spare Parts Storage</td><td>SPS</td></tr><tr><td>厂房类</td><td>劳保用品库</td><td>PPE Storage</td><td>PPE</td></tr><tr><td>厂房类</td><td>卸货平台</td><td>Loading Dock</td><td>LDK</td></tr><tr><td>厂房类</td><td>收货区</td><td>Receiving Area</td><td>RCV</td></tr><tr><td>厂房类</td><td>发货区</td><td>Shipping Area</td><td>SHP</td></tr><tr><td>厂房类</td><td>物流办公室</td><td>Logistics Office</td><td>LOG</td></tr><tr><td>厂房类</td><td>托盘存放区</td><td>Pallet Storage</td><td>PLT</td></tr><tr><td>厂房类</td><td>叉车充电区</td><td>Forklift Charging</td><td>FLC</td></tr><tr><td>车库类</td><td>车位</td><td>Parking Space</td><td>PK</td></tr><tr><td>车库类</td><td>残疾人车位</td><td>Disabled Parking</td><td>DSP</td></tr><tr><td>车库类</td><td>充电桩车位</td><td>EV Charging</td><td>EVP</td></tr><tr><td>车库类</td><td>摩托车位</td><td>Motorcycle Space</td><td>MCP</td></tr><tr><td>车库类</td><td>非机动车位</td><td>Bicycle Space</td><td>BIP</td></tr><tr><td>车库类</td><td>车道</td><td>Drive Lane</td><td>DRL</td></tr><tr><td>车库类</td><td>坡道</td><td>Ramp</td><td>RMP</td></tr><tr><td>车库类</td><td>入口</td><td>Entrance</td><td>ENT</td></tr><tr><td>车库类</td><td>出口</td><td>Exit</td><td>EXT</td></tr><tr><td>车库类</td><td>收费岗亭</td><td>Toll Booth</td><td>TLB</td></tr><tr><td>车库类</td><td>停车管理室</td><td>Parking Office</td><td>PMO</td></tr><tr><td>车库类</td><td>洗车区</td><td>Car Wash</td><td>CWA</td></tr><tr><td>食堂类</td><td>员工食堂</td><td>Canteen</td><td>CAN</td></tr><tr><td>食堂类</td><td>餐厅</td><td>Dining Hall</td><td>DIN</td></tr><tr><td>食堂类</td><td>包厢</td><td>Private Dining</td><td>PDR</td></tr><tr><td>食堂类</td><td>厨房</td><td>Kitchen</td><td>KIT</td></tr><tr><td>食堂类</td><td>粗加工间</td><td>Food Prep</td><td>PRE</td></tr><tr><td>食堂类</td><td>烹饪间</td><td>Cooking Area</td><td>COK</td></tr><tr><td>食堂类</td><td>面点间</td><td>Pastry Room</td><td>PAS</td></tr><tr><td>食堂类</td><td>洗碗间</td><td>Dishwashing</td><td>DSH</td></tr><tr><td>食堂类</td><td>冷菜间</td><td>Cold Dish</td><td>CLD</td></tr><tr><td>食堂类</td><td>备餐间</td><td>Food Assembly</td><td>ASM</td></tr><tr><td>食堂类</td><td>打菜区</td><td>Serving Area</td><td>SRV</td></tr><tr><td>食堂类</td><td>干藏库</td><td>Dry Storage</td><td>DRY</td></tr><tr><td>食堂类</td><td>冷藏库</td><td>Cold Room</td><td>CLR</td></tr><tr><td>食堂类</td><td>冷冻库</td><td>Freezer Room</td><td>FRZ</td></tr><tr><td>食堂类</td><td>粮油库</td><td>Grain Storage</td><td>GRS</td></tr><tr><td>食堂类</td><td>调料库</td><td>Seasoning Storage</td><td>SSN</td></tr><tr><td>食堂类</td><td>餐厨垃圾房</td><td>Food Waste Room</td><td>FWR</td></tr><tr><td>酒店类</td><td>标准客房</td><td>Standard Room</td><td>STR</td></tr><tr><td>酒店类</td><td>套房</td><td>Suite</td><td>STE</td></tr><tr><td>酒店类</td><td>总统套房</td><td>Presidential Suite</td><td>PST</td></tr><tr><td>酒店类</td><td>无障碍客房</td><td>Accessible Room</td><td>ACS</td></tr><tr><td>酒店类</td><td>客房走廊</td><td>Guest Corridor</td><td>GCR</td></tr><tr><td>酒店类</td><td>客房服务间</td><td>Housekeeping</td><td>HSK</td></tr><tr><td>酒店类</td><td>布草间</td><td>Linen Room</td><td>LIN</td></tr><tr><td>酒店类</td><td>洗衣房</td><td>Laundry</td><td>LND</td></tr><tr><td>酒店类</td><td>大堂</td><td>Lobby</td><td>LBY</td></tr><tr><td>酒店类</td><td>前台</td><td>Front Desk</td><td>FRD</td></tr><tr><td>酒店类</td><td>礼宾部</td><td>Concierge</td><td>CON</td></tr><tr><td>酒店类</td><td>商务中心</td><td>Business Center</td><td>BZC</td></tr><tr><td>酒店类</td><td>健身房</td><td>Gym</td><td>GYM</td></tr><tr><td>酒店类</td><td>泳池</td><td>Swimming Pool</td><td>PL</td></tr><tr><td>酒店类</td><td>桑拿房</td><td>Sauna</td><td>SAN</td></tr><tr><td>酒店类</td><td>行政酒廊</td><td>Executive Lounge</td><td>EXL</td></tr><tr><td>酒店类</td><td>宴会厅</td><td>Ballroom</td><td>BAL</td></tr><tr><td>酒店类</td><td>多功能厅</td><td>Function Room</td><td>FNC</td></tr><tr><td>酒店类</td><td>新娘房</td><td>Bridal Room</td><td>BRD</td></tr><tr><td>商场类</td><td>商铺</td><td>Retail Shop</td><td>RTL</td></tr><tr><td>商场类</td><td>中庭</td><td>Atrium</td><td>ATR</td></tr><tr><td>商场类</td><td>商场走道</td><td>Mall Corridor</td><td>MAL</td></tr><tr><td>商场类</td><td>扶梯区</td><td>Escalator Area</td><td>ESC</td></tr><tr><td>商场类</td><td>直梯厅</td><td>Elevator Lobby</td><td>ELV</td></tr><tr><td>商场类</td><td>客服中心</td><td>Service Center</td><td>SVC</td></tr><tr><td>商场类</td><td>儿童游乐区</td><td>Kids Play Area</td><td>KPA</td></tr><tr><td>商场类</td><td>美食广场</td><td>Food Court</td><td>FCT</td></tr><tr><td>商场类</td><td>电影院</td><td>Cinema</td><td>CIN</td></tr><tr><td>商场类</td><td>超市</td><td>Supermarket</td><td>SUP</td></tr><tr><td>商场类</td><td>商铺库房</td><td>Back-of-House</td><td>BOH</td></tr><tr><td>宿舍类</td><td>员工宿舍</td><td>Dormitory</td><td>DOR</td></tr><tr><td>宿舍类</td><td>单人间</td><td>Single Room</td><td>SGL</td></tr><tr><td>宿舍类</td><td>双人间</td><td>Double Room</td><td>DBL</td></tr><tr><td>宿舍类</td><td>四人间</td><td>Quad Room</td><td>QUD</td></tr><tr><td>宿舍类</td><td>公寓</td><td>Apartment</td><td>APT</td></tr><tr><td>宿舍类</td><td>客厅</td><td>Living Room</td><td>LIV</td></tr><tr><td>宿舍类</td><td>卧室</td><td>Bedroom</td><td>BDR</td></tr><tr><td>宿舍类</td><td>公寓厨房</td><td>Kitchenette</td><td>KTN</td></tr><tr><td>宿舍类</td><td>阳台</td><td>Balcony</td><td>BAL</td></tr><tr><td>宿舍类</td><td>公共洗衣房</td><td>Common Laundry</td><td>CFL</td></tr><tr><td>宿舍类</td><td>公共卫生间</td><td>Common Toilet</td><td>CTO</td></tr><tr><td>宿舍类</td><td>公共浴室</td><td>Common Shower</td><td>CSH</td></tr><tr><td>宿舍类</td><td>活动室</td><td>Common Room</td><td>CRM</td></tr><tr><td>宿舍类</td><td>自习室</td><td>Study Room</td><td>STD</td></tr><tr><td>宿舍类</td><td>宿管室</td><td>Dorm Management</td><td>DMC</td></tr><tr><td>消防类</td><td>消防控制室</td><td>Fire Control Room</td><td>FCR</td></tr><tr><td>消防类</td><td>安防控制室</td><td>Security Control Room</td><td>SCR</td></tr><tr><td>消防类</td><td>微型消防站</td><td>Mini Fire Station</td><td>MFS</td></tr><tr><td>消防类</td><td>消防水泵房</td><td>Fire Pump Room</td><td>FPR</td></tr><tr><td>消防类</td><td>消防水池</td><td>Fire Water Tank</td><td>FWT</td></tr><tr><td>消防类</td><td>屋顶消防水箱</td><td>Roof Fire Tank</td><td>RFT</td></tr><tr><td>消防类</td><td>气体灭火钢瓶间</td><td>Gas Suppression Room</td><td>FM200</td></tr><tr><td>消防类</td><td>防排烟机房</td><td>Smoke Control Fan</td><td>SMK</td></tr><tr><td>消防类</td><td>消防电梯机房</td><td>Fire Elevator Room</td><td>FER</td></tr><tr><td>消防类</td><td>前室</td><td>Fire Lobby</td><td>FRL</td></tr><tr><td>消防类</td><td>避难层</td><td>Refuge Floor</td><td>REF</td></tr><tr><td>消防类</td><td>门卫室</td><td>Guard House</td><td>GDH</td></tr><tr><td>消防类</td><td>门岗</td><td>Security Booth</td><td>SEB</td></tr><tr><td>消防类</td><td>值班室</td><td>Duty Room</td><td>DTY</td></tr><tr><td>消防类</td><td>访客接待室</td><td>Visitor Reception</td><td>VRC</td></tr><tr><td>消防类</td><td>快递收发室</td><td>Parcel Room</td><td>PAR</td></tr><tr><td>设备类</td><td>空调机房</td><td>HVAC Room</td><td>HVAC</td></tr><tr><td>设备类</td><td>新风机房</td><td>Fresh Air Room</td><td>FAH</td></tr><tr><td>设备类</td><td>排风机房</td><td>Exhaust Fan Room</td><td>EFF</td></tr><tr><td>设备类</td><td>送风机房</td><td>Supply Fan Room</td><td>SUF</td></tr><tr><td>设备类</td><td>电梯机房</td><td>Elevator Machine Room</td><td>ELR</td></tr><tr><td>设备类</td><td>配电室</td><td>Electrical Room</td><td>ELC</td></tr><tr><td>设备类</td><td>低压配电室</td><td>LV Switch Room</td><td>LV</td></tr><tr><td>设备类</td><td>高压配电室</td><td>HV Switch Room</td><td>HV</td></tr><tr><td>设备类</td><td>变压器室</td><td>Transformer Room</td><td>TX</td></tr><tr><td>设备类</td><td>发电机房</td><td>Generator Room</td><td>GEN</td></tr><tr><td>设备类</td><td>UPS室</td><td>UPS Room</td><td>UPS</td></tr><tr><td>设备类</td><td>电池室</td><td>Battery Room</td><td>BAT</td></tr><tr><td>设备类</td><td>弱电间</td><td>IT&#x2F;Telecom Room</td><td>ITR</td></tr><tr><td>设备类</td><td>数据中心</td><td>Data Center</td><td>DC</td></tr><tr><td>设备类</td><td>服务器机房</td><td>Server Room</td><td>SRV</td></tr><tr><td>设备类</td><td>网络配线间</td><td>Comms Room</td><td>CMR</td></tr><tr><td>设备类</td><td>生活水泵房</td><td>Domestic Water Pump</td><td>DWP</td></tr><tr><td>设备类</td><td>热水机房</td><td>Hot Water Room</td><td>HWH</td></tr><tr><td>设备类</td><td>中水处理机房</td><td>Greywater Treatment</td><td>GRW</td></tr><tr><td>设备类</td><td>换热站</td><td>Heat Exchange</td><td>HEX</td></tr><tr><td>设备类</td><td>冷站</td><td>Chiller Plant</td><td>CHW</td></tr><tr><td>设备类</td><td>冷却塔区</td><td>Cooling Tower</td><td>CT</td></tr><tr><td>设备类</td><td>锅炉房</td><td>Boiler Room</td><td>BLR</td></tr><tr><td>设备类</td><td>水箱间</td><td>Water Tank Room</td><td>WTR</td></tr><tr><td>设备类</td><td>管井</td><td>Shaft</td><td>SFT</td></tr><tr><td>设备类</td><td>电井</td><td>Electrical Shaft</td><td>EFS</td></tr><tr><td>设备类</td><td>弱电井</td><td>Comms Shaft</td><td>CMS</td></tr><tr><td>设备类</td><td>水暖井</td><td>Plumbing Shaft</td><td>PLS</td></tr><tr><td>设备类</td><td>排烟井</td><td>Smoke Exhaust Shaft</td><td>SES</td></tr><tr><td>设备类</td><td>进风井</td><td>Fresh Air Shaft</td><td>FAS</td></tr><tr><td>设备类</td><td>电缆井</td><td>Cable Shaft</td><td>CBS</td></tr><tr><td>设备类</td><td>检修马道</td><td>Catwalk</td><td>CTW</td></tr><tr><td>设备类</td><td>管道夹层</td><td>Pipe Mezzanine</td><td>PIM</td></tr><tr><td>公共类</td><td>大堂</td><td>Lobby</td><td>LBY</td></tr><tr><td>公共类</td><td>走廊</td><td>Corridor</td><td>COR</td></tr><tr><td>公共类</td><td>电梯厅</td><td>Elevator Lobby</td><td>ELV</td></tr><tr><td>公共类</td><td>楼梯间</td><td>Stairwell</td><td>STR</td></tr><tr><td>公共类</td><td>无障碍坡道</td><td>Ramp</td><td>RMP</td></tr><tr><td>公共类</td><td>管道夹层</td><td>Mezzanine</td><td>MEZ</td></tr><tr><td>公共类</td><td>屋顶层</td><td>Roof</td><td>RF</td></tr><tr><td>公共类</td><td>设备层</td><td>Mechanical Floor</td><td>MEF</td></tr><tr><td>公共类</td><td>阳台</td><td>Balcony</td><td>BAL</td></tr><tr><td>公共类</td><td>雨棚</td><td>Canopy</td><td>CNP</td></tr><tr><td>公共类</td><td>垃圾房</td><td>Waste Room</td><td>WRS</td></tr><tr><td>公共类</td><td>保洁间</td><td>Janitor Room</td><td>JAN</td></tr><tr><td>公共类</td><td>消毒间</td><td>Disinfection Room</td><td>DSN</td></tr><tr><td>公共类</td><td>男卫生间</td><td>Men’s Restroom</td><td>MTL</td></tr><tr><td>公共类</td><td>女卫生间</td><td>Women’s Restroom</td><td>WTL</td></tr><tr><td>公共类</td><td>无障碍卫生间</td><td>Accessible Restroom</td><td>ACL</td></tr><tr><td>公共类</td><td>第三卫生间</td><td>Family Restroom</td><td>FAM</td></tr><tr><td>室外类</td><td>室外设备平台</td><td>Outdoor Equipment Platform</td><td>OEP</td></tr><tr><td>室外类</td><td>空调室外机位</td><td>Outdoor AC Unit</td><td>OAC</td></tr><tr><td>室外类</td><td>冷却塔平台</td><td>Cooling Tower Platform</td><td>CTP</td></tr><tr><td>室外类</td><td>箱变基础</td><td>Transformer Foundation</td><td>TXF</td></tr><tr><td>室外类</td><td>柴油储罐区</td><td>Diesel Tank Area</td><td>DTA</td></tr><tr><td>室外类</td><td>雨水回收池</td><td>Rainwater Tank</td><td>RHT</td></tr><tr><td>室外类</td><td>化粪池</td><td>Septic Tank</td><td>SPT</td></tr><tr><td>室外类</td><td>隔油池</td><td>Grease Trap</td><td>GRT</td></tr><tr><td>室外类</td><td>消防回车场</td><td>Fire Truck Turnaround</td><td>FTT</td></tr><tr><td>室外类</td><td>自行车库</td><td>Bicycle Storage</td><td>BIC</td></tr><tr><td>室外类</td><td>摩托车库</td><td>Motorcycle Storage</td><td>MTC</td></tr><tr><td>室外类</td><td>快递柜区</td><td>Parcel Locker Area</td><td>PLK</td></tr></tbody></table>]]>
    </content>
    <id>https://my-hexo-blog-2yk.pages.dev/2026-05-10-Exploration-of-Asset-Management-Part-1/</id>
    <link href="https://my-hexo-blog-2yk.pages.dev/2026-05-10-Exploration-of-Asset-Management-Part-1/"/>
    <published>2026-05-10T13:52:53.000Z</published>
    <summary>从项目、楼栋、楼层一路拆到设备台账，用八张表搭起园区资产管理的底层数据结构，并理清它们之间的从属与业务关系。</summary>
    <title>资产管理探索（一）</title>
    <updated>2026-10-28T23:12:58.136Z</updated>
  </entry>
  <entry>
    <author>
      <name>Hugo Xu</name>
    </author>
    <category term="Photography-Workflow" scheme="https://my-hexo-blog-2yk.pages.dev/tags/Photography-Workflow/"/>
    <category term="Life-Hack" scheme="https://my-hexo-blog-2yk.pages.dev/tags/Life-Hack/"/>
    <content>
      <![CDATA[<p>或是偷懒，或是相机直出的JPG已足够支持分享社交媒体的后期，旅行时往往直接用jpg修图，回家存入NAS的时候又舍不得RAW文件，30FPS下RAW文件可以说时拍了一堆，于是求助AI做了个简单的powershell命令行工具，以期从海量的RAW文件中提取那些对应已经精选过的jpg的原图。</p><span id="more"></span><ul><li><p>需要exiftool这个牛逼工具的支持</p></li><li><p>受制于读卡速度，第3步比较慢</p></li></ul><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># ==============================================================================</span></span><br><span class="line"><span class="comment"># 脚本名称：基于 EXIF 拍摄时间戳的 RAW 文件自动找回工具</span></span><br><span class="line"><span class="comment"># 适用场景：JPG 已重命名或从 LR/剪映导出，需要根据原始拍摄时间找回对应的 RAW (CR3/ARW/NEF)</span></span><br><span class="line"><span class="comment"># ==============================================================================</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------- 【1. 用户配置区 - 请根据需求修改】 -----------------</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># [必须修改] 已导出的 JPG 文件夹路径</span></span><br><span class="line"><span class="variable">$srcJpgDir</span> = <span class="string">&quot;Z:\XXXX\XXXX\XX&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># [必须修改] 存储卡或原始 RAW 备份文件夹路径</span></span><br><span class="line"><span class="variable">$rawStorageDir</span> = <span class="string">&quot;F:\XXXX\XXXX&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># [必须修改] 筛选出来的 RAW 文件存放的目标文件夹</span></span><br><span class="line"><span class="variable">$destDir</span> = <span class="string">&quot;D:\XXXX&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># [可选修改] 原始 RAW 文件的后缀名（例如 .cr3, .arw, .nef, .dng）</span></span><br><span class="line"><span class="variable">$rawExtension</span> = <span class="string">&quot;*.cr3&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------- 【2. 初始化检查】 -----------------</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 检查 ExifTool 是否安装</span></span><br><span class="line"><span class="keyword">if</span> (!(<span class="built_in">Get-Command</span> exiftool <span class="literal">-ErrorAction</span> SilentlyContinue)) &#123;</span><br><span class="line">    <span class="built_in">Write-Host</span> <span class="string">&quot;错误：未发现 exiftool，请将其加入环境变量或放在脚本同目录。&quot;</span> <span class="literal">-ForegroundColor</span> Red</span><br><span class="line">    pause</span><br><span class="line">    <span class="keyword">exit</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 创建目标文件夹</span></span><br><span class="line"><span class="keyword">if</span> (!(<span class="built_in">Test-Path</span> <span class="variable">$destDir</span>)) &#123; </span><br><span class="line">    <span class="built_in">New-Item</span> <span class="literal">-Path</span> <span class="variable">$destDir</span> <span class="literal">-ItemType</span> Directory | <span class="built_in">Out-Null</span></span><br><span class="line">    <span class="built_in">Write-Host</span> <span class="string">&quot;已创建目标文件夹: <span class="variable">$destDir</span>&quot;</span> <span class="literal">-ForegroundColor</span> Gray</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------- 【3. 建立 RAW 索引 (第一阶段)】 -----------------</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;`n[1/2] 正在扫描原始 RAW 目录并建立时间戳索引...&quot;</span> <span class="literal">-ForegroundColor</span> Cyan</span><br><span class="line"><span class="variable">$rawIndex</span> = <span class="selector-tag">@</span>&#123;&#125;</span><br><span class="line"><span class="variable">$rawFiles</span> = <span class="built_in">Get-ChildItem</span> <span class="literal">-Path</span> <span class="variable">$rawStorageDir</span> <span class="literal">-Filter</span> <span class="variable">$rawExtension</span> <span class="literal">-Recurse</span></span><br><span class="line"></span><br><span class="line"><span class="variable">$totalRaw</span> = <span class="variable">$rawFiles</span>.Count</span><br><span class="line"><span class="variable">$count</span> = <span class="number">0</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">foreach</span> (<span class="variable">$file</span> <span class="keyword">in</span> <span class="variable">$rawFiles</span>) &#123;</span><br><span class="line">    <span class="variable">$count</span>++</span><br><span class="line">    <span class="comment"># 更新蓝色进度条</span></span><br><span class="line">    <span class="variable">$percent</span> = [<span class="type">math</span>]::Round((<span class="variable">$count</span> / <span class="variable">$totalRaw</span>) * <span class="number">100</span>)</span><br><span class="line">    <span class="built_in">Write-Progress</span> <span class="literal">-Activity</span> <span class="string">&quot;建立 RAW 索引中&quot;</span> <span class="literal">-Status</span> <span class="string">&quot;正在读取: <span class="variable">$</span>(<span class="variable">$file</span>.Name)&quot;</span> <span class="literal">-PercentComplete</span> <span class="variable">$percent</span></span><br><span class="line">    </span><br><span class="line">    <span class="comment"># 提取 RAW 的拍摄时间戳</span></span><br><span class="line">    <span class="variable">$dt</span> = &amp; exiftool <span class="literal">-s3</span> <span class="literal">-DateTimeOriginal</span> <span class="string">&quot;<span class="variable">$</span>(<span class="variable">$file</span>.FullName)&quot;</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">if</span> (<span class="variable">$dt</span>) &#123;</span><br><span class="line">        <span class="comment"># 考虑到连拍，一个时间戳可能对应多个文件，使用数组存储</span></span><br><span class="line">        <span class="keyword">if</span> (<span class="variable">$rawIndex</span>.ContainsKey(<span class="variable">$dt</span>)) &#123;</span><br><span class="line">            <span class="variable">$rawIndex</span>[<span class="variable">$dt</span>] += ,<span class="variable">$file</span>.FullName</span><br><span class="line">        &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">            <span class="variable">$rawIndex</span>[<span class="variable">$dt</span>] = <span class="selector-tag">@</span>(<span class="variable">$file</span>.FullName)</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------- 【4. 匹配并执行复制 (第二阶段)】 -----------------</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;[2/2] 正在比对 JPG 并在索引中查找匹配项...&quot;</span> <span class="literal">-ForegroundColor</span> Cyan</span><br><span class="line"><span class="variable">$jpgFiles</span> = <span class="built_in">Get-ChildItem</span> <span class="literal">-Path</span> <span class="variable">$srcJpgDir</span> <span class="literal">-Filter</span> *.jpg</span><br><span class="line"></span><br><span class="line"><span class="variable">$totalJpg</span> = <span class="variable">$jpgFiles</span>.Count</span><br><span class="line"><span class="variable">$jCount</span> = <span class="number">0</span></span><br><span class="line"><span class="variable">$matchSuccess</span> = <span class="number">0</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">foreach</span> (<span class="variable">$jpg</span> <span class="keyword">in</span> <span class="variable">$jpgFiles</span>) &#123;</span><br><span class="line">    <span class="variable">$jCount</span>++</span><br><span class="line">    <span class="variable">$jPercent</span> = [<span class="type">math</span>]::Round((<span class="variable">$jCount</span> / <span class="variable">$totalJpg</span>) * <span class="number">100</span>)</span><br><span class="line">    <span class="built_in">Write-Progress</span> <span class="literal">-Activity</span> <span class="string">&quot;正在比对并复制文件&quot;</span> <span class="literal">-Status</span> <span class="string">&quot;当前处理: <span class="variable">$</span>(<span class="variable">$jpg</span>.Name)&quot;</span> <span class="literal">-PercentComplete</span> <span class="variable">$jPercent</span></span><br><span class="line">    </span><br><span class="line">    <span class="comment"># 提取 JPG 的拍摄时间</span></span><br><span class="line">    <span class="variable">$dtJpg</span> = &amp; exiftool <span class="literal">-s3</span> <span class="literal">-DateTimeOriginal</span> <span class="string">&quot;<span class="variable">$</span>(<span class="variable">$jpg</span>.FullName)&quot;</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">if</span> (<span class="variable">$dtJpg</span> <span class="operator">-and</span> <span class="variable">$rawIndex</span>.ContainsKey(<span class="variable">$dtJpg</span>)) &#123;</span><br><span class="line">        <span class="keyword">foreach</span> (<span class="variable">$rawPath</span> <span class="keyword">in</span> <span class="variable">$rawIndex</span>[<span class="variable">$dtJpg</span>]) &#123;</span><br><span class="line">            <span class="variable">$rawName</span> = <span class="built_in">Split-Path</span> <span class="variable">$rawPath</span> <span class="literal">-Leaf</span></span><br><span class="line">            <span class="built_in">Write-Host</span> <span class="string">&quot;[<span class="variable">$jCount</span>/<span class="variable">$totalJpg</span>] 命中! -&gt; <span class="variable">$rawName</span>&quot;</span> <span class="literal">-ForegroundColor</span> Green</span><br><span class="line">            <span class="built_in">Copy-Item</span> <span class="literal">-Path</span> <span class="variable">$rawPath</span> <span class="literal">-Destination</span> <span class="variable">$destDir</span> <span class="literal">-Force</span></span><br><span class="line">            <span class="variable">$matchSuccess</span>++</span><br><span class="line">        &#125;</span><br><span class="line">    &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">        <span class="built_in">Write-Host</span> <span class="string">&quot;[<span class="variable">$jCount</span>/<span class="variable">$totalJpg</span>] 未匹配: <span class="variable">$</span>(<span class="variable">$jpg</span>.Name)&quot;</span> <span class="literal">-ForegroundColor</span> Gray</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------- 【5. 结束报告】 -----------------</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">Write-Progress</span> <span class="literal">-Activity</span> <span class="string">&quot;正在比对并复制文件&quot;</span> <span class="literal">-Completed</span></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;`n===============================================&quot;</span> <span class="literal">-ForegroundColor</span> White</span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;任务完成！&quot;</span> <span class="literal">-ForegroundColor</span> Cyan</span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;共处理 JPG: <span class="variable">$totalJpg</span> 张&quot;</span></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;成功找回 RAW: <span class="variable">$matchSuccess</span> 份&quot;</span></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;输出目录: <span class="variable">$destDir</span>&quot;</span></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;===============================================&quot;</span> <span class="literal">-ForegroundColor</span> White</span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;按任意键退出...&quot;</span></span><br><span class="line"><span class="variable">$null</span> = <span class="variable">$Host</span>.UI.RawUI.ReadKey(<span class="string">&quot;NoEcho,IncludeKeyDown&quot;</span>)</span><br></pre></td></tr></table></figure><p>另外AI还提供了个极速版，思路是批量读取 (Batch Processing),不再逐个文件调用 <code>exiftool</code>，而是改为 JPG 扫一次，RAW 扫一次，避免进程反复启动: 减少上千次 <code>exiftool.exe</code> 启动的系统延迟。下次有机会再试下。</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># ----------------- 【1. 用户配置区】 -----------------</span></span><br><span class="line"><span class="variable">$srcJpgDir</span> = <span class="string">&quot;Z:\XXXX\XXXX\XXXX&quot;</span></span><br><span class="line"><span class="variable">$rawStorageDir</span> = <span class="string">&quot;F:\XXXX\XXXX&quot;</span></span><br><span class="line"><span class="variable">$destDir</span> = <span class="string">&quot;D:\XXXX&quot;</span></span><br><span class="line"><span class="variable">$rawExt</span> = <span class="string">&quot;cr3&quot;</span>  <span class="comment"># 只需写后缀名</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------- 【2. 极速索引逻辑】 -----------------</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 第一步：批量扫描 RAW / Step 1: Batch Scan RAWs</span></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;正在极速索引存储卡 (F:\)...&quot;</span> <span class="literal">-ForegroundColor</span> Cyan</span><br><span class="line"><span class="variable">$rawIndex</span> = <span class="selector-tag">@</span>&#123;&#125;</span><br><span class="line"><span class="comment"># 关键：通过 exiftool 一次性导出所有 RAW 的路径和时间戳</span></span><br><span class="line"><span class="variable">$rawResults</span> = &amp; exiftool <span class="literal">-r</span> <span class="literal">-ext</span> <span class="variable">$rawExt</span> <span class="literal">-s3</span> <span class="literal">-p</span> <span class="string">&quot;`$Directory/`$FileName|`$DateTimeOriginal&quot;</span> <span class="string">&quot;<span class="variable">$rawStorageDir</span>&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">foreach</span> (<span class="variable">$line</span> <span class="keyword">in</span> <span class="variable">$rawResults</span>) &#123;</span><br><span class="line">    <span class="variable">$parts</span> = <span class="variable">$line</span>.Split(<span class="string">&#x27;|&#x27;</span>)</span><br><span class="line">    <span class="keyword">if</span> (<span class="variable">$parts</span>.Count <span class="operator">-eq</span> <span class="number">2</span>) &#123;</span><br><span class="line">        <span class="variable">$path</span> = <span class="variable">$parts</span><span class="function">[<span class="number">0</span>]; $<span class="title">time</span></span> = <span class="variable">$parts</span><span class="function">[<span class="number">1</span>]</span></span><br><span class="line">        <span class="keyword">if</span> (<span class="variable">$rawIndex</span>.ContainsKey(<span class="variable">$time</span>)) &#123; <span class="variable">$rawIndex</span>[<span class="variable">$time</span>] += ,<span class="variable">$path</span> &#125; <span class="keyword">else</span> &#123; <span class="variable">$rawIndex</span>[<span class="variable">$time</span>] = <span class="selector-tag">@</span>(<span class="variable">$path</span>) &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 第二步：批量扫描 JPG / Step 2: Batch Scan JPGs</span></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;正在极速索引导出目录 (Z:\)...&quot;</span> <span class="literal">-ForegroundColor</span> Cyan</span><br><span class="line"><span class="variable">$jpgIndex</span> = <span class="selector-tag">@</span>&#123;&#125;</span><br><span class="line"><span class="comment"># 关键：通过 exiftool 一次性获取所有 JPG 的时间戳</span></span><br><span class="line"><span class="variable">$jpgResults</span> = &amp; exiftool <span class="literal">-ext</span> jpg <span class="literal">-s3</span> <span class="literal">-p</span> <span class="string">&quot;`$Directory/`$FileName|`$DateTimeOriginal&quot;</span> <span class="string">&quot;<span class="variable">$srcJpgDir</span>&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ----------------- 【3. 内存比对与复制】 -----------------</span></span><br><span class="line"></span><br><span class="line"><span class="variable">$matchCount</span> = <span class="number">0</span></span><br><span class="line"><span class="keyword">foreach</span> (<span class="variable">$line</span> <span class="keyword">in</span> <span class="variable">$jpgResults</span>) &#123;</span><br><span class="line">    <span class="variable">$parts</span> = <span class="variable">$line</span>.Split(<span class="string">&#x27;|&#x27;</span>)</span><br><span class="line">    <span class="keyword">if</span> (<span class="variable">$parts</span>.Count <span class="operator">-eq</span> <span class="number">2</span>) &#123;</span><br><span class="line">        <span class="variable">$jpgPath</span> = <span class="variable">$parts</span><span class="function">[<span class="number">0</span>]; $<span class="title">time</span></span> = <span class="variable">$parts</span><span class="function">[<span class="number">1</span>]</span></span><br><span class="line">        </span><br><span class="line">        <span class="keyword">if</span> (<span class="variable">$rawIndex</span>.ContainsKey(<span class="variable">$time</span>)) &#123;</span><br><span class="line">            <span class="keyword">foreach</span> (<span class="variable">$rPath</span> <span class="keyword">in</span> <span class="variable">$rawIndex</span>[<span class="variable">$time</span>]) &#123;</span><br><span class="line">                <span class="variable">$name</span> = <span class="built_in">Split-Path</span> <span class="variable">$rPath</span> <span class="literal">-Leaf</span></span><br><span class="line">                <span class="built_in">Write-Host</span> <span class="string">&quot;[命中] <span class="variable">$time</span> -&gt; <span class="variable">$name</span>&quot;</span> <span class="literal">-ForegroundColor</span> Green</span><br><span class="line">                <span class="built_in">Copy-Item</span> <span class="literal">-Path</span> <span class="variable">$rPath</span> <span class="literal">-Destination</span> <span class="variable">$destDir</span> <span class="literal">-Force</span> <span class="literal">-ErrorAction</span> SilentlyContinue</span><br><span class="line">                <span class="variable">$matchCount</span>++</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="built_in">Write-Host</span> <span class="string">&quot;`n任务完成！成功找回 <span class="variable">$matchCount</span> 个文件。&quot;</span> <span class="literal">-ForegroundColor</span> Cyan</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://my-hexo-blog-2yk.pages.dev/2026-05-05-Auto-Match-RAW-Files-via-JPG-Exif-Data/</id>
    <link href="https://my-hexo-blog-2yk.pages.dev/2026-05-05-Auto-Match-RAW-Files-via-JPG-Exif-Data/"/>
    <published>2026-05-05T14:10:40.000Z</published>
    <summary>旅行时只修了 JPG，回来却对着几百张 RAW 犯懒。于是用 PowerShell 配合 exiftool，写了个按拍摄时间自动挑出对应原片的小工具。</summary>
    <title>根据JPG拍摄时间自动提取RAW原片</title>
    <updated>2026-10-28T23:12:58.136Z</updated>
  </entry>
  <entry>
    <author>
      <name>Hugo Xu</name>
    </author>
    <category term="Hexo" scheme="https://my-hexo-blog-2yk.pages.dev/tags/Hexo/"/>
    <category term="Butterfly" scheme="https://my-hexo-blog-2yk.pages.dev/tags/Butterfly/"/>
    <content>
      <![CDATA[<h1 id=""><a href="#" class="headerlink" title=""></a></h1><p>本文对 Butterfly 主题所有配置项，逐一项解释作用、可选值、用法，可当作永久配置查阅手册。</p><span id="more"></span><!-- toc --><h1 id="一、导航设置-nav"><a href="#一、导航设置-nav" class="headerlink" title="一、导航设置 nav"></a>一、导航设置 nav</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">nav:</span></span><br><span class="line"> <span class="attr">logo:</span> <span class="comment"># 导航栏 Logo 图片地址</span></span><br><span class="line"> <span class="attr">display_title:</span> <span class="literal">true</span> <span class="comment"># 是否显示网站标题文字</span></span><br><span class="line"> <span class="attr">display_post_title:</span> <span class="literal">true</span> <span class="comment"># 文章页导航栏是否显示文章标题</span></span><br><span class="line"> <span class="attr">fixed:</span> <span class="literal">false</span> <span class="comment"># 是否固定导航栏，滚动时置顶</span></span><br></pre></td></tr></table></figure><h1 id="二、导航菜单-menu"><a href="#二、导航菜单-menu" class="headerlink" title="二、导航菜单 menu"></a>二、导航菜单 menu</h1><p>自行配置顶部导航菜单，格式：<code>名称: 链接 || 图标</code></p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">menu:</span></span><br><span class="line"> <span class="comment"># 示例：</span></span><br><span class="line"> <span class="comment"># 首页: / || fas fa-home</span></span><br><span class="line"> <span class="comment"># 归档: /archives/ || fas fa-archive</span></span><br><span class="line"> <span class="comment"># 标签: /tags/ || fas fa-tags</span></span><br><span class="line"> <span class="comment"># 分类: /categories/ || fas fa-folder</span></span><br><span class="line"> <span class="comment"># 关于: /about/ || fas fa-user</span></span><br></pre></td></tr></table></figure><h1 id="三、代码块设置-code-blocks"><a href="#三、代码块设置-code-blocks" class="headerlink" title="三、代码块设置 code_blocks"></a>三、代码块设置 code_blocks</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">code_blocks:</span></span><br><span class="line"> <span class="attr">theme:</span> <span class="string">light</span> <span class="comment"># 代码块主题：darker / pale night / light / ocean / false</span></span><br><span class="line"> <span class="attr">macStyle:</span> <span class="literal">false</span> <span class="comment"># 是否开启 Mac 窗口红绿灯样式</span></span><br><span class="line"> <span class="attr">height_limit:</span> <span class="literal">false</span> <span class="comment"># 代码块最大高度，单位px，false不限制</span></span><br><span class="line"> <span class="attr">word_wrap:</span> <span class="literal">false</span> <span class="comment"># 代码是否自动换行</span></span><br><span class="line"> <span class="attr">copy:</span> <span class="literal">true</span> <span class="comment"># 显示复制按钮</span></span><br><span class="line"> <span class="attr">language:</span> <span class="literal">true</span> <span class="comment"># 显示代码语言标签</span></span><br><span class="line"> <span class="attr">shrink:</span> <span class="literal">false</span> <span class="comment"># 是否默认折叠长代码</span></span><br><span class="line"> <span class="attr">fullpage:</span> <span class="literal">false</span> <span class="comment"># 是否开启代码全屏按钮</span></span><br></pre></td></tr></table></figure><h1 id="四、社交链接-social"><a href="#四、社交链接-social" class="headerlink" title="四、社交链接 social"></a>四、社交链接 social</h1><p>格式：<code>图标: 链接 || 文字 || 颜色</code></p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">social:</span></span><br><span class="line"> <span class="comment"># fab fa-github: https://github.com/xxx || Github || &#x27;#24292e&#x27;</span></span><br><span class="line"> <span class="comment"># fas fa-envelope: mailto:xxx@gmail.com || Email || &#x27;#4a7dbe&#x27;</span></span><br></pre></td></tr></table></figure><h1 id="五、网站图标、头像、顶部大图"><a href="#五、网站图标、头像、顶部大图" class="headerlink" title="五、网站图标、头像、顶部大图"></a>五、网站图标、头像、顶部大图</h1><h2 id="favicon"><a href="#favicon" class="headerlink" title="favicon"></a>favicon</h2><p>网站浏览器标签小图标</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">favicon:</span> <span class="string">/img/favicon.png</span></span><br></pre></td></tr></table></figure><h2 id="avatar-侧边栏头像"><a href="#avatar-侧边栏头像" class="headerlink" title="avatar 侧边栏头像"></a>avatar 侧边栏头像</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">avatar:</span></span><br><span class="line"> <span class="attr">img:</span> <span class="string">/img/butterfly-icon.png</span> <span class="comment"># 头像图片地址</span></span><br><span class="line"> <span class="attr">effect:</span> <span class="literal">false</span> <span class="comment"># 头像是否开启悬浮特效</span></span><br></pre></td></tr></table></figure><h2 id="全局顶部大图控制"><a href="#全局顶部大图控制" class="headerlink" title="全局顶部大图控制"></a>全局顶部大图控制</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">disable_top_img:</span> <span class="literal">false</span> <span class="comment"># 全局禁用所有页面顶部大图</span></span><br><span class="line"><span class="attr">default_top_img:</span> <span class="comment"># 页面无单独大图时默认顶部图</span></span><br><span class="line"><span class="attr">index_img:</span> <span class="comment"># 首页顶部大图</span></span><br><span class="line"><span class="attr">archive_img:</span> <span class="comment"># 归档页顶部大图</span></span><br><span class="line"><span class="attr">tag_img:</span> <span class="comment"># 标签页默认大图</span></span><br><span class="line"><span class="attr">tag_per_img:</span> <span class="comment"># 给每个标签单独设置封面</span></span><br><span class="line"><span class="attr">category_img:</span> <span class="comment"># 分类页默认大图</span></span><br><span class="line"><span class="attr">category_per_img:</span> <span class="comment"># 给每个分类单独设置封面</span></span><br><span class="line"><span class="attr">footer_img:</span> <span class="literal">false</span> <span class="comment"># 页脚背景图，false关闭</span></span><br></pre></td></tr></table></figure><h2 id="网站背景-background"><a href="#网站背景-background" class="headerlink" title="网站背景 background"></a>网站背景 background</h2><p>可填纯色、图片URL、多张图片数组随机切换</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">background:</span></span><br></pre></td></tr></table></figure><h1 id="六、文章封面-cover"><a href="#六、文章封面-cover" class="headerlink" title="六、文章封面 cover"></a>六、文章封面 cover</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">cover:</span></span><br><span class="line"> <span class="attr">index_enable:</span> <span class="literal">true</span> <span class="comment"># 首页显示文章封面</span></span><br><span class="line"> <span class="attr">aside_enable:</span> <span class="literal">true</span> <span class="comment"># 侧边栏显示文章封面</span></span><br><span class="line"> <span class="attr">archives_enable:</span> <span class="literal">true</span> <span class="comment"># 归档页显示文章封面</span></span><br><span class="line"> <span class="attr">default_cover:</span> <span class="comment"># 文章无封面时默认兜底图</span></span><br><span class="line"> <span class="comment"># - xxx.jpg</span></span><br></pre></td></tr></table></figure><h1 id="七、错误图片-404-页面"><a href="#七、错误图片-404-页面" class="headerlink" title="七、错误图片 &amp; 404 页面"></a>七、错误图片 &amp; 404 页面</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">error_img:</span></span><br><span class="line"> <span class="attr">flink:</span> <span class="string">/img/friend_404.gif</span> <span class="comment"># 友链失效兜底图</span></span><br><span class="line"> <span class="attr">post_page:</span> <span class="string">/img/404.jpg</span> <span class="comment"># 文章图片加载失败兜底图</span></span><br><span class="line"><span class="attr">error_404:</span></span><br><span class="line"> <span class="attr">enable:</span> <span class="literal">false</span> <span class="comment"># 开启自定义404页面</span></span><br><span class="line"> <span class="attr">subtitle:</span> <span class="string">&#x27;Page Not Found&#x27;</span> <span class="comment"># 404副标题</span></span><br><span class="line"> <span class="attr">background:</span> <span class="string">/img/error-page.png</span> <span class="comment"># 404背景图</span></span><br></pre></td></tr></table></figure><h1 id="八、文章元信息-post-meta"><a href="#八、文章元信息-post-meta" class="headerlink" title="八、文章元信息 post_meta"></a>八、文章元信息 post_meta</h1><p>控制首页、文章页显示时间、分类、标签</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">post_meta:</span></span><br><span class="line"> <span class="attr">page:</span> <span class="comment"># 首页</span></span><br><span class="line"> <span class="attr">date_type:</span> <span class="string">created</span> <span class="comment"># created / updated / both</span></span><br><span class="line"> <span class="attr">date_format:</span> <span class="string">date</span> <span class="comment"># date标准日期 / relative相对时间</span></span><br><span class="line"> <span class="attr">categories:</span> <span class="literal">true</span> <span class="comment"># 显示分类</span></span><br><span class="line"> <span class="attr">tags:</span> <span class="literal">false</span> <span class="comment"># 显示标签</span></span><br><span class="line"> <span class="attr">label:</span> <span class="literal">true</span> <span class="comment"># 显示角标标签</span></span><br><span class="line"> <span class="attr">post:</span> <span class="comment"># 文章内页</span></span><br><span class="line"> <span class="attr">position:</span> <span class="string">left</span> <span class="comment"># 信息居左/居中 left/center</span></span><br><span class="line"> <span class="attr">date_type:</span> <span class="string">both</span></span><br><span class="line"> <span class="attr">date_format:</span> <span class="string">date</span></span><br><span class="line"> <span class="attr">categories:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">tags:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">label:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><h1 id="九、首页布局配置"><a href="#九、首页布局配置" class="headerlink" title="九、首页布局配置"></a>九、首页布局配置</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">index_site_info_top:</span> <span class="comment"># 首页文字区域距离顶部高度</span></span><br><span class="line"><span class="attr">index_top_img_height:</span> <span class="comment"># 首页顶部大图高度</span></span><br></pre></td></tr></table></figure><h2 id="subtitle-首页副标题-打字机"><a href="#subtitle-首页副标题-打字机" class="headerlink" title="subtitle 首页副标题 + 打字机"></a>subtitle 首页副标题 + 打字机</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">subtitle:</span></span><br><span class="line"> <span class="attr">enable:</span> <span class="literal">false</span> <span class="comment"># 开启副标题</span></span><br><span class="line"> <span class="attr">effect:</span> <span class="literal">true</span> <span class="comment"># 打字机效果</span></span><br><span class="line"> <span class="attr">typed_option:</span> <span class="comment"># typed.js 自定义参数</span></span><br><span class="line"> <span class="attr">source:</span> <span class="literal">false</span> <span class="comment"># 一言接口 1/2/3 关闭false</span></span><br><span class="line"> <span class="attr">sub:</span> <span class="comment"># 自定义副标题文字</span></span><br></pre></td></tr></table></figure><h2 id="index-layout-首页文章排版"><a href="#index-layout-首页文章排版" class="headerlink" title="index_layout 首页文章排版"></a>index_layout 首页文章排版</h2><p>1~7 种布局：</p><ol><li><p>封面左信息右</p></li><li><p>封面右信息左</p></li><li><p>左右交错</p></li><li><p>封面在上信息在下</p></li><li><p>信息悬浮封面</p></li><li><p>瀑布流</p></li><li><p>瀑布流+悬浮信息</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">index_layout:</span> <span class="number">3</span></span><br></pre></td></tr></table></figure><h2 id="首页文章摘要"><a href="#首页文章摘要" class="headerlink" title="首页文章摘要"></a>首页文章摘要</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">index_post_content:</span></span><br><span class="line"><span class="attr">method:</span> <span class="number">3</span> <span class="comment"># 1描述 / 2都显示 / 3自动摘要 / false关闭</span></span><br><span class="line"><span class="attr">length:</span> <span class="number">500</span> <span class="comment"># 摘要截取字数</span></span><br></pre></td></tr></table></figure><h1 id="十、文章页面配置"><a href="#十、文章页面配置" class="headerlink" title="十、文章页面配置"></a>十、文章页面配置</h1><h2 id="toc-文章目录"><a href="#toc-文章目录" class="headerlink" title="toc 文章目录"></a>toc 文章目录</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">toc:</span></span><br><span class="line"><span class="attr">post:</span> <span class="literal">true</span> <span class="comment"># 文章页开启目录</span></span><br><span class="line"><span class="attr">page:</span> <span class="literal">false</span> <span class="comment"># 普通页面开启目录</span></span><br><span class="line"><span class="attr">number:</span> <span class="literal">true</span> <span class="comment"># 目录带序号</span></span><br><span class="line"><span class="attr">expand:</span> <span class="literal">false</span> <span class="comment"># 默认展开目录</span></span><br><span class="line"><span class="attr">style_simple:</span> <span class="literal">false</span> <span class="comment"># 简约样式</span></span><br><span class="line"><span class="attr">scroll_percent:</span> <span class="literal">true</span> <span class="comment"># 滚动显示阅读百分比</span></span><br></pre></td></tr></table></figure><h2 id="post-copyright-文章版权声明"><a href="#post-copyright-文章版权声明" class="headerlink" title="post_copyright 文章版权声明"></a>post_copyright 文章版权声明</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">post_copyright:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">decode:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">author_href:</span></span><br><span class="line"><span class="attr">license:</span> <span class="string">CC</span> <span class="string">BY-NC-SA</span> <span class="number">4.0</span></span><br><span class="line"><span class="attr">license_url:</span> <span class="string">https://creativecommons.org/licenses/by-nc-sa/4.0/</span></span><br></pre></td></tr></table></figure><h2 id="reward-打赏"><a href="#reward-打赏" class="headerlink" title="reward 打赏"></a>reward 打赏</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">reward:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">text:</span></span><br><span class="line"><span class="attr">QR_code:</span></span><br><span class="line"><span class="comment"># - img: /img/wechat.jpg</span></span><br><span class="line"><span class="comment"># link:</span></span><br><span class="line"><span class="comment"># text: wechat</span></span><br></pre></td></tr></table></figure><h2 id="post-edit-在线编辑源码按钮"><a href="#post-edit-在线编辑源码按钮" class="headerlink" title="post_edit 在线编辑源码按钮"></a>post_edit 在线编辑源码按钮</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">post_edit:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">url:</span> <span class="comment"># GitHub 仓库编辑地址前缀</span></span><br></pre></td></tr></table></figure><h2 id="related-post-相关推荐文章"><a href="#related-post-相关推荐文章" class="headerlink" title="related_post 相关推荐文章"></a>related_post 相关推荐文章</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">related_post:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">limit:</span> <span class="number">6</span> <span class="comment"># 推荐数量</span></span><br><span class="line"><span class="attr">date_type:</span> <span class="string">created</span> <span class="comment"># 按创建/更新排序</span></span><br></pre></td></tr></table></figure><h2 id="post-pagination-上下篇文章"><a href="#post-pagination-上下篇文章" class="headerlink" title="post_pagination 上下篇文章"></a>post_pagination 上下篇文章</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">post_pagination:</span> <span class="number">1</span></span><br></pre></td></tr></table></figure><h2 id="noticeOutdate-文章过时提醒"><a href="#noticeOutdate-文章过时提醒" class="headerlink" title="noticeOutdate 文章过时提醒"></a>noticeOutdate 文章过时提醒</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">noticeOutdate:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">style:</span> <span class="string">flat</span> <span class="comment"># simple / flat</span></span><br><span class="line"><span class="attr">limit_day:</span> <span class="number">365</span> <span class="comment"># 多少天后提醒</span></span><br><span class="line"><span class="attr">position:</span> <span class="string">top</span> <span class="comment"># top / bottom</span></span><br></pre></td></tr></table></figure><h1 id="十一、页脚-footer"><a href="#十一、页脚-footer" class="headerlink" title="十一、页脚 footer"></a>十一、页脚 footer</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">footer:</span></span><br><span class="line"><span class="attr">nav:</span></span><br><span class="line"><span class="attr">owner:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">since:</span> <span class="number">2025</span> <span class="comment"># 建站起始年份</span></span><br><span class="line"><span class="attr">copyright:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">version:</span> <span class="literal">true</span> <span class="comment"># 显示主题版本</span></span><br><span class="line"><span class="attr">custom_text:</span> <span class="comment"># 自定义底部文字</span></span><br></pre></td></tr></table></figure><h1 id="十二、侧边栏-aside-全套配置"><a href="#十二、侧边栏-aside-全套配置" class="headerlink" title="十二、侧边栏 aside 全套配置"></a>十二、侧边栏 aside 全套配置</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">aside:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span> <span class="comment"># 开启侧边栏</span></span><br><span class="line"><span class="attr">hide:</span> <span class="literal">false</span> <span class="comment"># 默认是否隐藏</span></span><br><span class="line"><span class="attr">button:</span> <span class="literal">true</span> <span class="comment"># 显示侧边栏切换按钮</span></span><br><span class="line"><span class="attr">mobile:</span> <span class="literal">true</span> <span class="comment"># 手机端是否显示</span></span><br><span class="line"><span class="attr">position:</span> <span class="string">right</span> <span class="comment"># left / right</span></span><br><span class="line"><span class="attr">display:</span></span><br><span class="line"><span class="attr">archive:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">tag:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">category:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">card_author:</span> <span class="comment"># 作者卡片</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">description:</span></span><br><span class="line"><span class="attr">button:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">icon:</span> <span class="string">fab</span> <span class="string">fa-github</span></span><br><span class="line"><span class="attr">text:</span> <span class="string">Follow</span> <span class="string">Me</span></span><br><span class="line"><span class="attr">link:</span> <span class="string">https://github.com/xxxxxx</span></span><br><span class="line"><span class="attr">card_announcement:</span> <span class="comment"># 公告卡片</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">content:</span> <span class="string">This</span> <span class="string">is</span> <span class="string">my</span> <span class="string">Blog</span></span><br><span class="line"><span class="attr">card_recent_post:</span> <span class="comment"># 最新文章</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">limit:</span> <span class="number">5</span></span><br><span class="line"><span class="attr">sort:</span> <span class="string">date</span></span><br><span class="line"><span class="attr">card_newest_comments:</span> <span class="comment"># 最新评论</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">card_categories:</span> <span class="comment"># 分类</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">limit:</span> <span class="number">8</span></span><br><span class="line"><span class="attr">expand:</span> <span class="string">none</span></span><br><span class="line"><span class="attr">card_tags:</span> <span class="comment"># 标签云</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">limit:</span> <span class="number">40</span></span><br><span class="line"><span class="attr">color:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">card_archives:</span> <span class="comment"># 归档</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">type:</span> <span class="string">monthly</span> <span class="comment"># monthly / yearly</span></span><br><span class="line"><span class="attr">order:</span> <span class="number">-1</span></span><br><span class="line"><span class="attr">card_post_series:</span> <span class="comment"># 文章系列</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">card_webinfo:</span> <span class="comment"># 网站统计</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">post_count:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">last_push_date:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">runtime_date:</span> <span class="comment"># 网站运行时间起始日期</span></span><br></pre></td></tr></table></figure><h1 id="十三、右侧悬浮按钮"><a href="#十三、右侧悬浮按钮" class="headerlink" title="十三、右侧悬浮按钮"></a>十三、右侧悬浮按钮</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">rightside_bottom:</span> <span class="comment"># 按钮距离底部距离</span></span><br><span class="line"><span class="attr">translate:</span> <span class="comment"># 简繁切换</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">readmode:</span> <span class="literal">true</span> <span class="comment"># 阅读模式</span></span><br><span class="line"><span class="attr">darkmode:</span> <span class="comment"># 暗黑模式</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">button:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">autoChangeMode:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">rightside_scroll_percent:</span> <span class="literal">false</span> <span class="comment"># 回到顶部显示百分比</span></span><br><span class="line"><span class="attr">rightside_item_order:</span> <span class="comment"># 自定义右侧按钮顺序</span></span><br></pre></td></tr></table></figure><h1 id="十四、全局基础"><a href="#十四、全局基础" class="headerlink" title="十四、全局基础"></a>十四、全局基础</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">anchor:</span> <span class="comment"># 锚点链接</span></span><br><span class="line"><span class="attr">copy:</span> <span class="comment"># 复制内容版权</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">wordcount:</span> <span class="comment"># 字数统计插件</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">busuanzi:</span> <span class="comment"># 不蒜子访问统计</span></span><br><span class="line"><span class="attr">site_uv:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">site_pv:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">page_pv:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><h1 id="十五、数学公式-math"><a href="#十五、数学公式-math" class="headerlink" title="十五、数学公式 math"></a>十五、数学公式 math</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">math:</span></span><br><span class="line"><span class="attr">use:</span> <span class="comment"># mathjax / katex</span></span><br><span class="line"><span class="attr">per_page:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><h1 id="十六、站内搜索-search"><a href="#十六、站内搜索-search" class="headerlink" title="十六、站内搜索 search"></a>十六、站内搜索 search</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">search:</span></span><br><span class="line"><span class="attr">use:</span> <span class="comment"># algolia_search / local_search / 留空关闭</span></span><br><span class="line"><span class="attr">placeholder:</span></span><br></pre></td></tr></table></figure><h1 id="十七、文章分享-share"><a href="#十七、文章分享-share" class="headerlink" title="十七、文章分享 share"></a>十七、文章分享 share</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">share:</span></span><br><span class="line"><span class="attr">use:</span> <span class="string">sharejs</span> <span class="comment"># sharejs / addtoany</span></span><br></pre></td></tr></table></figure><h1 id="十八、评论系统-comments"><a href="#十八、评论系统-comments" class="headerlink" title="十八、评论系统 comments"></a>十八、评论系统 comments</h1><p>支持：Disqus &#x2F; Gitalk &#x2F; Valine &#x2F; Waline &#x2F; Twikoo &#x2F; Giscus 等</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">comments:</span></span><br><span class="line"><span class="attr">use:</span> <span class="comment"># 填写评论系统名称</span></span><br><span class="line"><span class="attr">lazyload:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure><h1 id="十九、在线聊天-chat"><a href="#十九、在线聊天-chat" class="headerlink" title="十九、在线聊天 chat"></a>十九、在线聊天 chat</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">chat:</span></span><br><span class="line"><span class="attr">use:</span> <span class="comment"># chatra / tidio / crisp</span></span><br></pre></td></tr></table></figure><h1 id="二十、统计分析"><a href="#二十、统计分析" class="headerlink" title="二十、统计分析"></a>二十、统计分析</h1><p>百度统计、谷歌分析、Cloudflare 分析、微软 Clarity、Umami</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">baidu_analytics:</span></span><br><span class="line"><span class="attr">google_analytics:</span></span><br><span class="line"><span class="attr">cloudflare_analytics:</span></span><br><span class="line"><span class="attr">microsoft_clarity:</span></span><br><span class="line"><span class="attr">umami_analytics:</span></span><br></pre></td></tr></table></figure><h1 id="二十一、广告-ads"><a href="#二十一、广告-ads" class="headerlink" title="二十一、广告 ads"></a>二十一、广告 ads</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">google_adsense:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">ad:</span></span><br><span class="line"><span class="attr">index:</span></span><br><span class="line"><span class="attr">aside:</span></span><br><span class="line"><span class="attr">post:</span></span><br></pre></td></tr></table></figure><h1 id="二十二、站点验证"><a href="#二十二、站点验证" class="headerlink" title="二十二、站点验证"></a>二十二、站点验证</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">site_verification:</span></span><br><span class="line"><span class="comment"># - name: google-site-verification</span></span><br><span class="line"><span class="comment"># content: xxxxxx</span></span><br></pre></td></tr></table></figure><h1 id="二十三、主题美化与动效"><a href="#二十三、主题美化与动效" class="headerlink" title="二十三、主题美化与动效"></a>二十三、主题美化与动效</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">theme_color:</span> <span class="comment"># 自定义全站主题色</span></span><br><span class="line"><span class="attr">rounded_corners_ui:</span> <span class="literal">true</span> <span class="comment"># 卡片圆角</span></span><br><span class="line"><span class="attr">preloader:</span> <span class="literal">false</span> <span class="comment"># 页面加载动画</span></span><br><span class="line"><span class="attr">enter_transitions:</span> <span class="literal">true</span> <span class="comment"># 页面切换过渡</span></span><br><span class="line"><span class="attr">display_mode:</span> <span class="string">light</span> <span class="comment"># 默认 light / dark</span></span><br><span class="line"><span class="comment"># 背景动效</span></span><br><span class="line"><span class="attr">canvas_ribbon:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">canvas_nest:</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">fireworks:</span> <span class="comment"># 点击烟花</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">click_heart:</span> <span class="comment"># 点击爱心</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure><h1 id="二十四、图片灯箱-lightbox"><a href="#二十四、图片灯箱-lightbox" class="headerlink" title="二十四、图片灯箱 lightbox"></a>二十四、图片灯箱 lightbox</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">lightbox:</span> <span class="comment"># fancybox / medium_zoom</span></span><br></pre></td></tr></table></figure><h1 id="二十五、标签插件"><a href="#二十五、标签插件" class="headerlink" title="二十五、标签插件"></a>二十五、标签插件</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">mermaid:</span> <span class="comment"># 流程图/思维导图</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">chartjs:</span> <span class="comment"># 数据图表</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">note:</span> <span class="comment"># 彩色提示块</span></span><br><span class="line"><span class="attr">pjax:</span> <span class="comment"># 无刷新跳转</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">lazyload:</span> <span class="comment"># 图片懒加载</span></span><br><span class="line"><span class="attr">enable:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure><h1 id="二十六、其他"><a href="#二十六、其他" class="headerlink" title="二十六、其他"></a>二十六、其他</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">inject:</span> <span class="comment"># 自定义注入 html/css/js</span></span><br><span class="line"><span class="attr">head:</span></span><br><span class="line"><span class="attr">bottom:</span></span><br><span class="line"><span class="attr">CDN:</span> <span class="comment"># 全局CDN配置</span></span><br></pre></td></tr></table></figure></li></ol>]]>
    </content>
    <id>https://my-hexo-blog-2yk.pages.dev/2026-05-05-Hexo-themes-butterfly-config/</id>
    <link href="https://my-hexo-blog-2yk.pages.dev/2026-05-05-Hexo-themes-butterfly-config/"/>
    <published>2026-05-05T02:32:26.000Z</published>
    <summary>逐项拆解 Butterfly 主题的每一个配置项，说明其作用、可选值与写法，并附可直接抄用的示例，当作长期备查的配置手册。</summary>
    <title>Hexo Butterfly 主题配置中文详解手册</title>
    <updated>2026-10-28T23:12:58.136Z</updated>
  </entry>
  <entry>
    <author>
      <name>Hugo Xu</name>
    </author>
    <category term="Traval" scheme="https://my-hexo-blog-2yk.pages.dev/tags/Traval/"/>
    <content>
      <![CDATA[<h2 id="简单记录下行程"><a href="#简单记录下行程" class="headerlink" title="简单记录下行程"></a>简单记录下行程</h2><ul><li><p>4月30日，凌晨03:30起床赶06:45的飞机，11:00已经完成租车手续开往崇左，顺路游玩峒那屿湾后入住明仕田园民宿</p></li><li><p>5月1日，10:00出发12:00左右到达德天瀑布（最后两公里堵了1小时），结束后打卡蓝洞咖啡</p></li><li><p>5月2日，租了“八嘎车”，计划去坐竹排游明仕河，遇堵车果断掉头游览官方“奇峰探险”骑行路线。之后在民宿附近的”稻那里”放空</p></li><li><p>5月3日，在一片烟雨朦胧中告别喀斯特峰林，入住南宁邕江宾馆，午后欲往博物馆被人流劝退，午睡避雨，之后三街两巷闲逛、邕江边溜达都没顾上吃顿正经晚餐</p></li><li><p>5月4日，跟着小红书去了自治区政府周边一家不起眼小门头里的咖啡店，消磨最后在广西的悠闲时光后返沪，飞机难得地准点起飞达到</p></li></ul><span id="more"></span><h2 id="一些照片"><a href="#一些照片" class="headerlink" title="一些照片"></a>一些照片</h2><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260430-15-18-47.webp" title="峒那屿湾" data-caption="峒那屿湾" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260430-15-18-47.webp" alt="峒那屿湾"></a><span class="caption">峒那屿湾</span></div><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260501-14-23-51.webp" title="德天瀑布" data-caption="德天瀑布" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260501-14-23-51.webp" alt="德天瀑布"></a><span class="caption">德天瀑布</span></div><p>枯水期的德天瀑布，对没见过什么大瀑布的我们来说，远没到劝退避雷那么糟糕</p><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260501-16-00-35.webp" title="最窄界河" data-caption="最窄界河" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260501-16-00-35.webp" alt="最窄界河"></a><span class="caption">最窄界河</span></div><p>枯水期的最窄界河更窄了，在两侧相同的风景中脑补着那条并不存在但却是想象共同体的细细的红线，当真应了那八个字“山川异域，风月同天”</p><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260501-16-14-50.webp" title="蓝洞咖啡" data-caption="蓝洞咖啡" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260501-16-14-50.webp" alt="蓝洞咖啡"></a><span class="caption">蓝洞咖啡</span></div><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260502-08-04-34.webp" title="明仕田园" data-caption="明仕田园" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260502-08-04-34.webp" alt="明仕田园"></a><span class="caption">明仕田园</span></div><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260502-12-16-49.webp" title="" data-caption="" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260502-12-16-49.webp" alt=""></a></div><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/stack-1.webp" title="" data-caption="" data-fancybox="chongzuo"><img class="fig-img" src="/images/stack-1.webp" alt=""></a></div><p>20张1&#x2F;8秒的堆栈，水面还是没达到拉丝的效果，有待进一步研究</p><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260502-14-28-55.webp" title="稻那里" data-caption="稻那里" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260502-14-28-55.webp" alt="稻那里"></a><span class="caption">稻那里</span></div><p>就和松阳一样，斗笠+老农+牵牛是标准摆拍，但还是忍不住来一张</p><h2 id="一些记忆"><a href="#一些记忆" class="headerlink" title="一些记忆"></a>一些记忆</h2><ul><li><p><strong>小弱鸡又吐了</strong></p><p>早上3点半起床，马不停蹄地打车赶飞机，起飞后打了会游戏，儿子尽然破天荒地甩下游戏机开始看电影。之后咳嗽声渐起，起初我们没当回事，继续下机、租车往崇左赶，结果咳嗽越来越厉害，整个人蔫了，在车上沉沉睡去。</p><p>熬到休息区，上个厕所的功夫，又是一阵距离咳嗽，直到把3点半吃下去的还未消化的早餐（此时离用餐至少已过了8个小时……）全吐了出来。敢情起的太早加飞机上打游戏，晕机了。</p><p>好在吐出来也就舒服了，路边新鲜的景致也激起了他的兴致，终于生龙活虎地陪着我们从峒那屿湾拉练到了民宿。</p><p>之后的几天，也是很棒的坚持了下来，只要不生病，就是好的旅程。</p><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260430-15-17-59.webp" title="" data-caption="" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260430-15-17-59.webp" alt=""></a></div><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260430-15-26-21.webp" title="" data-caption="" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260430-15-26-21.webp" alt=""></a></div></li><li><p><strong>所谓“避雷”</strong></p></li><li><p><strong>民宿老板</strong></p></li><li><p><strong>烟火气</strong></p></li><li><p><strong>BrewBlueCoffee</strong></p><div class="figure fig-100" style="width:;"><a class="fancybox" href="/images/20260504-10-55-15.webp" title="" data-caption="" data-fancybox="chongzuo"><img class="fig-img" src="/images/20260504-10-55-15.webp" alt=""></a></div></li></ul><h2 id="最后"><a href="#最后" class="headerlink" title="最后"></a>最后</h2><p>下机后穿过无比漫长的通道，钻进回家的网约车，司机穿着白衬衫专业地不苟言笑；窗外的车流恰到好处地疏密有致，一言不发地保持着“社交距离”；更远处的建筑群井然有序。这是座精致、森然、现代的都市，然而不知从何时起，这座城市所骄傲的，确是我日益想逃离的，究竟是“不识庐山真面目”，亦或是“众里寻他千百度”？</p><p>以上。</p>]]>
    </content>
    <id>https://my-hexo-blog-2yk.pages.dev/2026-05-04-Hit-Up-ChongZuo/</id>
    <link href="https://my-hexo-blog-2yk.pages.dev/2026-05-04-Hit-Up-ChongZuo/"/>
    <published>2026-05-04T16:17:39.000Z</published>
    <summary>五一自驾广西崇左，五天串起明仕田园、德天瀑布和官方“奇峰探险”骑行线，在烟雨朦胧的喀斯特峰林里把节奏彻底放慢。</summary>
    <title>五一崇左行</title>
    <updated>2026-10-28T23:12:58.135Z</updated>
  </entry>
</feed>
