<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>CeRu</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://ceru-007.github.io/</id>
  <link href="https://ceru-007.github.io/" rel="alternate"/>
  <link href="https://ceru-007.github.io/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, CeRu</rights>
  <subtitle>我的个人博客</subtitle>
  <title>CeRu</title>
  <updated>2026-07-05T14:59:10.375Z</updated>
  <entry>
    <author>
      <name>CeRu</name>
    </author>
    <category term="技术教程" scheme="https://ceru-007.github.io/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/"/>
    <category term="TMDB" scheme="https://ceru-007.github.io/tags/TMDB/"/>
    <category term="教程" scheme="https://ceru-007.github.io/tags/%E6%95%99%E7%A8%8B/"/>
    <category term="刮削" scheme="https://ceru-007.github.io/tags/%E5%88%AE%E5%89%8A/"/>
    <content>
      <![CDATA[<p>前两篇介绍了电影和电视剧的数据编辑，这一篇聚焦人物信息维护和翻译相关的官方规范。</p><h2 id="人物信息编辑"><a href="#人物信息编辑" class="headerlink" title="人物信息编辑"></a>人物信息编辑</h2><p>人物条目无法直接创建，只能在编辑电影&#x2F;电视剧的演职员表时，点击 <strong>Add a New Cast&#x2F;Crew Member</strong> 创建。</p><h3 id="姓名（Name）"><a href="#姓名（Name）" class="headerlink" title="姓名（Name）"></a>姓名（Name）</h3><ul><li>填写该人物的主要艺名</li><li>如果艺名发生过线性变更（如改名），使用当前使用的名字</li><li>如果同时使用多个名字，选择最常用、官方网站&#x2F;社交账号使用的名字</li><li>已故人物使用最广为人知的名字</li><li>姓名不需要唯一，不要添加罗马数字后缀（如 <code>John Doe (IV)</code>）</li></ul><h3 id="译名（Translated-Name）"><a href="#译名（Translated-Name）" class="headerlink" title="译名（Translated Name）"></a>译名（Translated Name）</h3><p>中文人物的译名示例：</p><figure class="highlight plaintext"><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">中文名 → 王一博 → 姓 [王] + 名 [一博] → Wang Yibo（东方顺序）</span><br><span class="line">中文名 → 甄子丹 → 姓 [甄] 英文名 [Donnie] → Donnie Yen（西方顺序）</span><br></pre></td></tr></table></figure><p><strong>东亚人名规则：</strong></p><table><thead><tr><th>语言</th><th>顺序</th><th>示例</th></tr></thead><tbody><tr><td>中文（大陆&#x2F;韩国）</td><td>东方顺序（姓在前）</td><td>Wang Yibo、Song Kang-ho</td></tr><tr><td>中文（有英文名）</td><td>西方顺序（名在前）</td><td>Donnie Yen</td></tr><tr><td>日文</td><td>西方顺序（名在前）</td><td>Mayuko Fukuda</td></tr><tr><td>匈牙利文</td><td>hu-HU 用东方顺序，其他语言用西方顺序</td><td>Bartók Béla &#x2F; Béla Bartók</td></tr></tbody></table><h3 id="传记（Biography）"><a href="#传记（Biography）" class="headerlink" title="传记（Biography）"></a>传记（Biography）</h3><ul><li>保持<strong>中立客观</strong>，不要写成宣传文案</li><li>不要使用”currently starring”、”will star”等时效性表述</li><li>不要添加引用标记（如 <code>[1]</code> <code>[2]</code>）</li><li>不要添加链接</li><li>允许从 Wikipedia 复制，但必须标注来源，并删除引用编号</li><li><strong>禁止</strong>从 IMDb 或其他受版权保护的网站复制</li></ul><h3 id="出生地与生日"><a href="#出生地与生日" class="headerlink" title="出生地与生日"></a>出生地与生日</h3><p>出生地格式：<code>城市, 省/州, 国家</code></p><figure class="highlight plaintext"><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">Liverpool, England, UK</span><br><span class="line">Paris, France</span><br><span class="line">New York City, New York, USA</span><br></pre></td></tr></table></figure><p>如果地名已变更，在方括号中注明：<code>Madras, Tamil Nadu, India [now Chennai]</code></p><p>如果只知道出生年份（如 1968），日期填为 <code>1968-01-01</code>。</p><h3 id="性别"><a href="#性别" class="headerlink" title="性别"></a>性别</h3><p>填写个人<strong>自我认同的性别</strong>，而非出生指派性别。</p><p>如果需要修改某位人物的性别字段，请使用 Report 按钮提交。</p><h3 id="主页"><a href="#主页" class="headerlink" title="主页"></a>主页</h3><ul><li>只填写该人物的<strong>官方网站</strong></li><li>不允许粉丝站、IMDb&#x2F;Wikipedia、社交媒体（Facebook&#x2F;Twitter&#x2F;Instagram&#x2F;YouTube）</li><li>成人演员不允许添加含会员付费区的链接</li></ul><h2 id="翻译维护规范"><a href="#翻译维护规范" class="headerlink" title="翻译维护规范"></a>翻译维护规范</h2><h3 id="中文翻译规则"><a href="#中文翻译规则" class="headerlink" title="中文翻译规则"></a>中文翻译规则</h3><p>TMDB 支持四种中文翻译：</p><table><thead><tr><th>代码</th><th>地区</th><th>说明</th></tr></thead><tbody><tr><td>zh-CN</td><td>中国大陆</td><td>大陆官方译名</td></tr><tr><td>zh-HK</td><td>香港</td><td>香港官方译名</td></tr><tr><td>zh-TW</td><td>台湾</td><td>台湾官方译名</td></tr><tr><td>zh-SG</td><td>新加坡</td><td>新加坡官方译名</td></tr></tbody></table><p><strong>不要跨区填写</strong>。电影只在大陆上映过，就不要在 zh-TW 里填大陆译名。</p><h3 id="简介翻译"><a href="#简介翻译" class="headerlink" title="简介翻译"></a>简介翻译</h3><ul><li>用自己的话翻译，不要机翻</li><li>保持简洁、无剧透</li><li>没有官方译文的留空</li></ul><h3 id="译名锁定规则"><a href="#译名锁定规则" class="headerlink" title="译名锁定规则"></a>译名锁定规则</h3><p>当译名与原名完全相同时，译名字段应该<strong>留空并锁定</strong>。例如：</p><ul><li>英文电影的 English Translated Title 字段 → 留空锁定</li><li>泰语电影的 ภาษาไทย 字段 → 留空锁定</li></ul><h2 id="通用社区准则"><a href="#通用社区准则" class="headerlink" title="通用社区准则"></a>通用社区准则</h2><h3 id="禁止行为"><a href="#禁止行为" class="headerlink" title="禁止行为"></a>禁止行为</h3><ol><li>禁止发布粗俗或攻击性语言</li><li>禁止发布或索要受版权保护的非合理使用内容</li><li>禁止发布 NSFW 内容（成人专区除外）</li><li>禁止骚扰、辱骂、嘲弄其他用户</li><li>禁止发布垃圾信息或广告</li></ol><h3 id="编辑规范"><a href="#编辑规范" class="headerlink" title="编辑规范"></a>编辑规范</h3><ul><li><strong>避免编辑战</strong>：不要和其他贡献者来回修改同一数据，使用 Report 让管理员处理</li><li><strong>来源可靠</strong>：修改数据应基于 IMDb、维基百科等可靠来源</li><li><strong>锁定字段</strong>：被管理员锁定的数据不要尝试绕过</li><li><strong>不要恶搞</strong>：故意提交错误数据、虚假内容会被封号</li></ul><h3 id="如何报告问题"><a href="#如何报告问题" class="headerlink" title="如何报告问题"></a>如何报告问题</h3><p>在页面底部点击 <strong>Report</strong> 按钮，选择正确的类型：</p><table><thead><tr><th>类型</th><th>适用场景</th></tr></thead><tbody><tr><td>Duplicate（重复）</td><td>重复的条目</td></tr><tr><td>Bad Image（图片问题）</td><td>低质量或违规图片</td></tr><tr><td>Incorrect Content（内容错误）</td><td>数据有误，附上可靠来源</td></tr><tr><td>Offensive or Spam（违规内容）</td><td>冒犯性内容或广告</td></tr><tr><td>DMCA Takedown Request</td><td>版权投诉</td></tr></tbody></table><h2 id="实用资源"><a href="#实用资源" class="headerlink" title="实用资源"></a>实用资源</h2><ul><li><strong>TMDB Contribution Bible（官方指南全文）</strong>：<code>https://www.themoviedb.org/bible</code></li><li><strong>支持论坛</strong>：<code>https://www.themoviedb.org/talk</code></li><li><strong>贡献排行榜</strong>：<code>https://www.themoviedb.org/leaderboard</code></li><li><strong>API 文档</strong>：<code>https://developer.themoviedb.org/docs</code></li></ul><hr><p>三篇教程到这里就全部结束了，从注册到编辑再到规范，覆盖了 TMDB 维护的完整流程。祝维护愉快！</p>]]>
    </content>
    <id>https://ceru-007.github.io/2026/07/05/%EF%BC%88%E4%B8%89%EF%BC%89TMDB%E4%BA%BA%E7%89%A9%E7%BB%B4%E6%8A%A4%E4%B8%8E%E7%BF%BB%E8%AF%91%E8%A7%84%E8%8C%83/</id>
    <link href="https://ceru-007.github.io/2026/07/05/%EF%BC%88%E4%B8%89%EF%BC%89TMDB%E4%BA%BA%E7%89%A9%E7%BB%B4%E6%8A%A4%E4%B8%8E%E7%BF%BB%E8%AF%91%E8%A7%84%E8%8C%83/"/>
    <published>2026-07-05T14:35:00.000Z</published>
    <summary>
      <![CDATA[<p>前两篇介绍了电影和电视剧的数据编辑，这一篇聚焦人物信息维护和翻译相关的官方规范。</p>
<h2 id="人物信息编辑"><a href="#人物信息编辑" class="headerlink" title="人物信息编辑"></a>人物信息编辑</h2><p>人物条目无法]]>
    </summary>
    <title>（三）TMDB人物维护与翻译规范</title>
    <updated>2026-07-05T14:59:10.375Z</updated>
  </entry>
  <entry>
    <author>
      <name>CeRu</name>
    </author>
    <category term="技术教程" scheme="https://ceru-007.github.io/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/"/>
    <category term="TMDB" scheme="https://ceru-007.github.io/tags/TMDB/"/>
    <category term="教程" scheme="https://ceru-007.github.io/tags/%E6%95%99%E7%A8%8B/"/>
    <category term="刮削" scheme="https://ceru-007.github.io/tags/%E5%88%AE%E5%89%8A/"/>
    <content>
      <![CDATA[<p>注册好账号后就可以直接上手编辑了，这一篇按照 TMDB 官方贡献指南（Contribution Bible）来介绍具体的操作规范。</p><h2 id="找到编辑入口"><a href="#找到编辑入口" class="headerlink" title="找到编辑入口"></a>找到编辑入口</h2><p>在任意电影、电视剧、人物的页面，点击底部的 <strong>编辑</strong> 按钮进入编辑界面。</p><p>编辑界面按模块划分，每个模块都可以独立修改和保存。</p><h2 id="电影核心字段编辑规范"><a href="#电影核心字段编辑规范" class="headerlink" title="电影核心字段编辑规范"></a>电影核心字段编辑规范</h2><h3 id="原标题（Original-Title）"><a href="#原标题（Original-Title）" class="headerlink" title="原标题（Original Title）"></a>原标题（Original Title）</h3><ul><li>必须使用<strong>原始语言的原生文字</strong>，不要罗马化（例如写 <code>Левиафан</code> 而非 <code>Leviathan</code>）</li><li>不要添加年份、国家等额外信息（不要写成 <code>Coco (2017)</code>）</li><li>大写规则遵循语言惯例，英文标题遵循 Wikipedia&#x2F;IMDb 的大写规则</li><li>罗马化的原标题应填入 <strong>译名（Alternative Titles）</strong> 字段</li></ul><h3 id="译名（Translated-Title）"><a href="#译名（Translated-Title）" class="headerlink" title="译名（Translated Title）"></a>译名（Translated Title）</h3><ul><li>使用<strong>首次官方发行</strong>的译名</li><li>如果译名与原名相同，<strong>留空并锁定</strong>（例如英文电影的英译名字段必须留空）</li><li>中文分四个区域：大陆 (zh-CN)、香港 (zh-HK)、台湾 (zh-TW)、新加坡 (zh-SG)，各填各的译名，不要混用</li><li>没有官方译名的留空，不要添加非官方翻译</li></ul><h3 id="简介（Overview）"><a href="#简介（Overview）" class="headerlink" title="简介（Overview）"></a>简介（Overview）</h3><p>TMDB 对简介有严格要求：</p><ul><li><strong>简短、无剧透</strong>，几行文字以内</li><li><strong>客观中立</strong>，不要使用”fantastic”、”awful”、”票房大卖”等主观词汇</li><li><strong>不要提及演职员信息</strong>，不要写”由 xxx 主演”</li><li><strong>不要直接复制</strong> IMDb 或其他受版权保护的网站的内容</li><li>不要添加链接或署名</li><li>找不到合适的简介就<strong>留空</strong>，不要写”暂无简介”</li></ul><p>好的来源：官方网站、新闻稿、发行商的宣传材料。</p><h3 id="标语（Tagline）"><a href="#标语（Tagline）" class="headerlink" title="标语（Tagline）"></a>标语（Tagline）</h3><ul><li>海报上的简短宣传语（如《盗梦空间》的”Your mind is the scene of the crime”）</li><li>每条标语单独填写</li><li>不要填写电影标题、剧情简介、演职员信息或类型标签</li><li>不要编造不存在的标语</li></ul><h3 id="时长（Runtime）"><a href="#时长（Runtime）" class="headerlink" title="时长（Runtime）"></a>时长（Runtime）</h3><ul><li>以<strong>分钟</strong>为单位填写</li><li><strong>向上取整</strong>（93 分 57 秒 → 94 分钟）</li><li>包含片尾字幕的总时长</li></ul><h3 id="其他字段"><a href="#其他字段" class="headerlink" title="其他字段"></a>其他字段</h3><ul><li><strong>预算与票房</strong>：以美元为单位，建议参考 Box Office Mojo 或 The Numbers</li><li><strong>主页</strong>：只填官方网站，不要填 IMDb&#x2F;Wikipedia&#x2F;社交媒体的链接</li><li><strong>语言</strong>：只填原版的语言，不要填配音&#x2F;翻译的语言</li></ul><h2 id="电视剧编辑规范"><a href="#电视剧编辑规范" class="headerlink" title="电视剧编辑规范"></a>电视剧编辑规范</h2><p>电视剧的编辑规则与电影基本一致，以下几个字段是特有的：</p><h3 id="剧集类型（TV-Show-Type）"><a href="#剧集类型（TV-Show-Type）" class="headerlink" title="剧集类型（TV Show Type）"></a>剧集类型（TV Show Type）</h3><table><thead><tr><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>Scripted</td><td>剧本剧集（默认），包括综艺、常规竞赛节目</td></tr><tr><td>Miniseries</td><td>限定剧&#x2F;迷你剧（单季 ≤12 集，讲述完整故事）</td></tr><tr><td>Documentary</td><td>纪录片</td></tr><tr><td>Reality</td><td>真人秀</td></tr><tr><td>Talk Show</td><td>访谈节目</td></tr><tr><td>News</td><td>新闻节目</td></tr><tr><td>Video</td><td>OVA 或直接发行 DVD&#x2F;VHS 的剧集</td></tr></tbody></table><h3 id="剧集状态（TV-Show-Status）"><a href="#剧集状态（TV-Show-Status）" class="headerlink" title="剧集状态（TV Show Status）"></a>剧集状态（TV Show Status）</h3><table><thead><tr><th>状态</th><th>说明</th></tr></thead><tbody><tr><td>Pilot</td><td>试播集但尚未被预订成系列</td></tr><tr><td>In Production</td><td>已预订制作中，尚未播出</td></tr><tr><td>Returning Series</td><td>正在播出，默认状态</td></tr><tr><td>Cancelled</td><td>被砍（通常因收视率低等原因）</td></tr><tr><td>Ended</td><td>自然完结（事先有规划的结局）</td></tr></tbody></table><p>迷你剧在最后一集播完后应标记为 <strong>Ended</strong>。</p><h3 id="单集时长"><a href="#单集时长" class="headerlink" title="单集时长"></a>单集时长</h3><ul><li>填写<strong>不含广告</strong>的纯时长（通常美剧 43 分钟或 22 分钟）</li><li>如果每集时长不固定，在剧集级别填空白，逐集填写</li></ul><h2 id="海报与图片规范"><a href="#海报与图片规范" class="headerlink" title="海报与图片规范"></a>海报与图片规范</h2><p>TMDB 的图片管理模块有专门的质量指南：</p><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>1000×1500px</td><td>2:3</td></tr><tr><td>背景图</td><td>—</td><td>16:9</td></tr><tr><td>人物头像</td><td>—</td><td>1:1.5</td></tr></tbody></table><h3 id="质量红线"><a href="#质量红线" class="headerlink" title="质量红线"></a>质量红线</h3><ol><li><strong>禁止水印</strong>：不能带有第三方网站的水印、Logo 或文字</li><li><strong>禁止拉伸</strong>：宽高比不对时只能<strong>裁剪</strong>，不能拉伸&#x2F;压缩，也不能加黑边填充</li><li><strong>禁止放大低清图</strong>：上传的画质必须清晰，不能是模糊、像素化或有明显压缩 artifacts 的图片</li><li><strong>禁止滤镜</strong>：不要使用颜色滤镜或奇怪的特效，保持自然</li><li><strong>只传官方素材</strong>：海报必须是官方发布的版本</li></ol><blockquote><p>当没有高质量图片可用时，TMDB 的原则是 <strong>宁缺毋滥</strong>——没有图比放一张劣质图更好。</p></blockquote><h2 id="如何添加新条目"><a href="#如何添加新条目" class="headerlink" title="如何添加新条目"></a>如何添加新条目</h2><p>如果 TMDB 上完全没有某部作品：</p><ol><li>在搜索框搜不到时，点击 <strong>没有结果？提交一部新电影&#x2F;新剧集</strong></li><li>至少填写<strong>标题</strong>和<strong>简介</strong>（简介可以暂时用占位文字，创建后立即删除）</li><li>电视剧还需要至少一集的标题、简介和首播日期</li><li>创建后尽快补充完整数据</li></ol><h2 id="发现错误数据怎么办"><a href="#发现错误数据怎么办" class="headerlink" title="发现错误数据怎么办"></a>发现错误数据怎么办</h2><ul><li><strong>重复条目</strong>：点击 <strong>Report</strong> 按钮，选择 Duplicate（重复）</li><li><strong>错误数据</strong>：选择 Incorrect Content（内容错误），附带可靠来源链接</li><li><strong>被锁定的字段</strong>：如果数据已被管理员锁定无法修改，使用 Report 按钮向管理员反映</li></ul><blockquote><p><strong>注意</strong>：不要和贡献者陷入”编辑战”（你改过来我改回去），用 Report 按钮让管理员做最终裁决。</p></blockquote>]]>
    </content>
    <id>https://ceru-007.github.io/2026/07/05/%EF%BC%88%E4%BA%8C%EF%BC%89TMDB%E5%BD%B1%E8%A7%86%E6%95%B0%E6%8D%AE%E7%BC%96%E8%BE%91%E5%AE%9E%E6%88%98/</id>
    <link href="https://ceru-007.github.io/2026/07/05/%EF%BC%88%E4%BA%8C%EF%BC%89TMDB%E5%BD%B1%E8%A7%86%E6%95%B0%E6%8D%AE%E7%BC%96%E8%BE%91%E5%AE%9E%E6%88%98/"/>
    <published>2026-07-05T14:34:00.000Z</published>
    <summary>
      <![CDATA[<p>注册好账号后就可以直接上手编辑了，这一篇按照 TMDB 官方贡献指南（Contribution Bible）来介绍具体的操作规范。</p>
<h2 id="找到编辑入口"><a href="#找到编辑入口" class="headerlink" title="找到编辑入口"]]>
    </summary>
    <title>（二）TMDB影视数据编辑实战</title>
    <updated>2026-07-05T14:59:10.375Z</updated>
  </entry>
  <entry>
    <author>
      <name>CeRu</name>
    </author>
    <category term="技术教程" scheme="https://ceru-007.github.io/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/"/>
    <category term="TMDB" scheme="https://ceru-007.github.io/tags/TMDB/"/>
    <category term="教程" scheme="https://ceru-007.github.io/tags/%E6%95%99%E7%A8%8B/"/>
    <category term="刮削" scheme="https://ceru-007.github.io/tags/%E5%88%AE%E5%89%8A/"/>
    <content>
      <![CDATA[<h2 id="什么是-TMDB？"><a href="#什么是-TMDB？" class="headerlink" title="什么是 TMDB？"></a>什么是 TMDB？</h2><p><strong>TMDB</strong>（The Movie Database，全称 <code>themoviedb.org</code>）是一个由社区驱动的开放影视数据库。它包含了电影、电视剧、演员、幕后人员等全方位的元数据信息。</p><p>简单来说，TMDB 就是影视界的维基百科——任何人都可以注册、查看数据，符合条件的贡献者可以直接编辑和维护数据。</p><h3 id="TMDB-的应用场景"><a href="#TMDB-的应用场景" class="headerlink" title="TMDB 的应用场景"></a>TMDB 的应用场景</h3><p>你大概率已经在使用 TMDB 的数据了：</p><ul><li><strong>Jellyfin &#x2F; Plex &#x2F; Emby</strong> 等媒体服务器通过 TMDB 获取影视海报、简介、演员信息</li><li><strong>Kodi &#x2F; Infuse</strong> 等播放器通过 TMDB 刮削媒体库</li><li><strong>各式各样的影评 App、公众号、机器人</strong>都依赖 TMDB 的 API</li></ul><p>这也是为什么维护 TMDB 数据质量如此重要——它影响着无数的下游服务。</p><h3 id="为什么值得参与维护？"><a href="#为什么值得参与维护？" class="headerlink" title="为什么值得参与维护？"></a>为什么值得参与维护？</h3><p>  不只是利他，对自己也有好处：</p><ul><li>你媒体库的海报和简介会更准确</li><li>冷门电影不再显示”找不到数据”</li><li>可以给自己喜欢的作品添加中文翻译</li><li>在 TMDB 贡献者榜单中留下你的名字</li></ul><h2 id="注册账号"><a href="#注册账号" class="headerlink" title="注册账号"></a>注册账号</h2><p>首先，访问 <a href="https://www.themoviedb.org/">TMDB 官网</a>，点击右上角的”加入 TMDB”。</p><p>填写用户名、邮箱、密码完成注册。注册后需要去邮箱验证激活账号。</p><p>注册并验证邮箱后，你就可以开始贡献数据了。TMDB 不设贡献者申请门槛——每个人注册后都可以编辑。</p><h2 id="第一个编辑：完善自己的头像"><a href="#第一个编辑：完善自己的头像" class="headerlink" title="第一个编辑：完善自己的头像"></a>第一个编辑：完善自己的头像</h2><p>在开始正式编辑之前，先做个小练习：</p><ol><li>点击右上角头像 → <strong>编辑个人资料</strong></li><li>上传一个头像</li><li>填写个人简介</li></ol><p>这虽然不是影视数据维护，但能让你熟悉 TMDB 的编辑界面。</p><hr><blockquote><p>有 TMDB 相关的问题欢迎在评论区留言交流。</p></blockquote>]]>
    </content>
    <id>https://ceru-007.github.io/2026/07/05/%EF%BC%88%E4%B8%80%EF%BC%89%E8%AE%A4%E8%AF%86TMDB%E4%B8%8E%E8%B4%A1%E7%8C%AE%E8%80%85%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/</id>
    <link href="https://ceru-007.github.io/2026/07/05/%EF%BC%88%E4%B8%80%EF%BC%89%E8%AE%A4%E8%AF%86TMDB%E4%B8%8E%E8%B4%A1%E7%8C%AE%E8%80%85%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/"/>
    <published>2026-07-05T14:33:50.000Z</published>
    <summary>
      <![CDATA[<h2 id="什么是-TMDB？"><a href="#什么是-TMDB？" class="headerlink" title="什么是 TMDB？"></a>什么是 TMDB？</h2><p><strong>TMDB</strong>（The Movie Database，全]]>
    </summary>
    <title>（一）认识TMDB与贡献者入门指南</title>
    <updated>2026-07-05T14:59:10.375Z</updated>
  </entry>
  <entry>
    <author>
      <name>CeRu</name>
    </author>
    <category term="技术教程" scheme="https://ceru-007.github.io/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/"/>
    <category term="Hexo" scheme="https://ceru-007.github.io/tags/Hexo/"/>
    <category term="Butterfly" scheme="https://ceru-007.github.io/tags/Butterfly/"/>
    <category term="主题配置" scheme="https://ceru-007.github.io/tags/%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Hexo 默认的主题比较简单，不够美观。Butterfly 是一个功能强大、设计精美的 Hexo 主题，拥有丰富的功能和良好的用户体验。</p><p>本教程将介绍如何安装和配置 Butterfly 主题。</p><h2 id="安装-Butterfly-主题"><a href="#安装-Butterfly-主题" class="headerlink" title="安装 Butterfly 主题"></a>安装 Butterfly 主题</h2><h3 id="1-下载主题"><a href="#1-下载主题" class="headerlink" title="1. 下载主题"></a>1. 下载主题</h3><p>在博客根目录下执行：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly</span><br></pre></td></tr></table></figure><h3 id="2-安装依赖"><a href="#2-安装依赖" class="headerlink" title="2. 安装依赖"></a>2. 安装依赖</h3><p>Butterfly 主题需要安装渲染器插件：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-renderer-pug hexo-renderer-stylus --save</span><br></pre></td></tr></table></figure><h3 id="3-启用主题"><a href="#3-启用主题" class="headerlink" title="3. 启用主题"></a>3. 启用主题</h3><p>修改博客根目录下的 <code>_config.yml</code> 文件：</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">theme:</span> <span class="string">butterfly</span></span><br></pre></td></tr></table></figure><h3 id="4-复制主题配置文件"><a href="#4-复制主题配置文件" class="headerlink" title="4. 复制主题配置文件"></a>4. 复制主题配置文件</h3><p>在博客根目录下执行：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> themes/butterfly/_config.yml _config.butterfly.yml</span><br></pre></td></tr></table></figure><p>这样可以在不修改主题源码的情况下自定义配置。</p><h2 id="基础配置"><a href="#基础配置" class="headerlink" title="基础配置"></a>基础配置</h2><h3 id="1-网站信息"><a href="#1-网站信息" class="headerlink" title="1. 网站信息"></a>1. 网站信息</h3><p>编辑 <code>_config.yml</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">title:</span> <span class="string">我的博客</span></span><br><span class="line"><span class="attr">subtitle:</span> <span class="string">记录生活，分享知识</span></span><br><span class="line"><span class="attr">description:</span> <span class="string">基于</span> <span class="string">Hexo</span> <span class="string">+</span> <span class="string">Butterfly</span> <span class="string">的个人博客</span></span><br><span class="line"><span class="attr">keywords:</span> <span class="string">Hexo,</span> <span class="string">Butterfly,</span> <span class="string">博客</span></span><br><span class="line"><span class="attr">author:</span> <span class="string">你的名字</span></span><br><span class="line"><span class="attr">language:</span> <span class="string">zh-CN</span></span><br><span class="line"><span class="attr">timezone:</span> <span class="string">Asia/Shanghai</span></span><br></pre></td></tr></table></figure><h3 id="2-导航栏配置"><a href="#2-导航栏配置" class="headerlink" title="2. 导航栏配置"></a>2. 导航栏配置</h3><p>编辑 <code>_config.butterfly.yml</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><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></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="string">/img/logo.png</span>  <span class="comment"># Logo 图片</span></span><br><span class="line">  <span class="attr">display_title:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">display_post_title:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">fixed:</span> <span class="literal">true</span>  <span class="comment"># 固定导航栏</span></span><br><span class="line"></span><br><span class="line"><span class="attr">menu:</span></span><br><span class="line">  <span class="string">首页:</span> <span class="string">/</span> <span class="string">||</span> <span class="string">fas</span> <span class="string">fa-home</span></span><br><span class="line">  <span class="string">归档:</span> <span class="string">/archives/</span> <span class="string">||</span> <span class="string">fas</span> <span class="string">fa-archive</span></span><br><span class="line">  <span class="string">标签:</span> <span class="string">/tags/</span> <span class="string">||</span> <span class="string">fas</span> <span class="string">fa-tags</span></span><br><span class="line">  <span class="string">分类:</span> <span class="string">/categories/</span> <span class="string">||</span> <span class="string">fas</span> <span class="string">fa-folder-open</span></span><br><span class="line">  <span class="string">关于:</span> <span class="string">/about/</span> <span class="string">||</span> <span class="string">fas</span> <span class="string">fa-heart</span></span><br></pre></td></tr></table></figure><h3 id="3-代码块配置"><a href="#3-代码块配置" class="headerlink" title="3. 代码块配置"></a>3. 代码块配置</h3><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">code_blocks:</span></span><br><span class="line">  <span class="attr">theme:</span> <span class="string">light</span>  <span class="comment"># 代码块主题</span></span><br><span class="line">  <span class="attr">macStyle:</span> <span class="literal">true</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"># 高度限制</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></pre></td></tr></table></figure><h3 id="4-封面图片"><a href="#4-封面图片" class="headerlink" title="4. 封面图片"></a>4. 封面图片</h3><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></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="bullet">-</span> <span class="string">/img/1.jpg</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">/img/2.jpg</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">/img/3.jpg</span></span><br></pre></td></tr></table></figure><h2 id="创建页面"><a href="#创建页面" class="headerlink" title="创建页面"></a>创建页面</h2><h3 id="1-创建分类页"><a href="#1-创建分类页" class="headerlink" title="1. 创建分类页"></a>1. 创建分类页</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo new page categories</span><br></pre></td></tr></table></figure><p>编辑 <code>source/categories/index.md</code>：</p><figure class="highlight markdown"><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><br><span class="line">title: 分类</span><br><span class="line">date: 2026-01-02 21:00:00</span><br><span class="line"><span class="section">type: categories</span></span><br><span class="line"><span class="section">---</span></span><br></pre></td></tr></table></figure><h3 id="2-创建标签页"><a href="#2-创建标签页" class="headerlink" title="2. 创建标签页"></a>2. 创建标签页</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo new page tags</span><br></pre></td></tr></table></figure><p>编辑 <code>source/tags/index.md</code>：</p><figure class="highlight markdown"><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><br><span class="line">title: 标签</span><br><span class="line">date: 2026-01-02 21:00:00</span><br><span class="line"><span class="section">type: tags</span></span><br><span class="line"><span class="section">---</span></span><br></pre></td></tr></table></figure><h3 id="3-创建关于页"><a href="#3-创建关于页" class="headerlink" title="3. 创建关于页"></a>3. 创建关于页</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo new page about</span><br></pre></td></tr></table></figure><p>编辑 <code>source/about/index.md</code>：</p><figure class="highlight markdown"><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></pre></td><td class="code"><pre><span class="line">---</span><br><span class="line">title: 关于</span><br><span class="line"><span class="section">date: 2026-01-02 21:00:00</span></span><br><span class="line"><span class="section">---</span></span><br><span class="line"></span><br><span class="line"><span class="section">## 关于我</span></span><br><span class="line"></span><br><span class="line">这是一个关于我的页面...</span><br></pre></td></tr></table></figure><h2 id="文章配置"><a href="#文章配置" class="headerlink" title="文章配置"></a>文章配置</h2><h3 id="1-Front-matter"><a href="#1-Front-matter" class="headerlink" title="1. Front-matter"></a>1. Front-matter</h3><p>文章开头的配置区域：</p><figure class="highlight markdown"><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><br><span class="line">title: 文章标题</span><br><span class="line">date: 2026-01-02 21:00:00</span><br><span class="line">tags:</span><br><span class="line"><span class="bullet">  -</span> 标签1</span><br><span class="line"><span class="bullet">  -</span> 标签2</span><br><span class="line">categories:</span><br><span class="line"><span class="bullet">  -</span> 分类</span><br><span class="line"><span class="section">cover: /img/cover.jpg  # 封面图片</span></span><br><span class="line"><span class="section">---</span></span><br></pre></td></tr></table></figure><h3 id="2-摘要"><a href="#2-摘要" class="headerlink" title="2. 摘要"></a>2. 摘要</h3><p>在文章中添加 <code>&lt;!-- more --&gt;</code>，前面的内容将作为摘要显示在首页。</p><figure class="highlight markdown"><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><br><span class="line"></span><br><span class="line">&lt;!-- more --&gt;</span><br><span class="line"></span><br><span class="line">这是文章的正文内容...</span><br></pre></td></tr></table></figure><h2 id="侧边栏配置"><a href="#侧边栏配置" class="headerlink" title="侧边栏配置"></a>侧边栏配置</h2><h3 id="1-启用侧边栏"><a href="#1-启用侧边栏" class="headerlink" title="1. 启用侧边栏"></a>1. 启用侧边栏</h3><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">aside:</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">hide:</span> <span class="literal">false</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></pre></td></tr></table></figure><h3 id="2-卡片配置"><a href="#2-卡片配置" class="headerlink" title="2. 卡片配置"></a>2. 卡片配置</h3><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></pre></td><td class="code"><pre><span class="line"><span class="attr">aside:</span></span><br><span class="line">  <span class="attr">card_author:</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 class="string">这是我的个人博客</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/yourname</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">card_recent_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">5</span>  <span class="comment"># 显示数量</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">card_categories:</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><br><span class="line">  <span class="attr">card_tags:</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></pre></td></tr></table></figure><h2 id="评论系统"><a href="#评论系统" class="headerlink" title="评论系统"></a>评论系统</h2><p>Butterfly 支持多种评论系统，这里以 Gitalk 为例：</p><h3 id="1-申请-GitHub-OAuth-App"><a href="#1-申请-GitHub-OAuth-App" class="headerlink" title="1. 申请 GitHub OAuth App"></a>1. 申请 GitHub OAuth App</h3><ol><li>访问 <a href="https://github.com/settings/developers">https://github.com/settings/developers</a></li><li>点击 “New OAuth App”</li><li>填写信息：<ul><li>Application name: 博客评论</li><li>Homepage URL: <a href="https://yourname.github.io/">https://yourname.github.io</a></li><li>Application description: 博客评论系统</li><li>Authorization callback URL: <a href="https://yourname.github.io/">https://yourname.github.io</a></li></ul></li><li>创建后获取 Client ID 和 Client Secret</li></ol><h3 id="2-配置-Gitalk"><a href="#2-配置-Gitalk" class="headerlink" title="2. 配置 Gitalk"></a>2. 配置 Gitalk</h3><p>编辑 <code>_config.butterfly.yml</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><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">comments:</span></span><br><span class="line">  <span class="attr">use:</span> <span class="string">Gitalk</span></span><br><span class="line">  <span class="attr">text:</span> <span class="literal">true</span></span><br><span class="line"></span><br><span class="line"><span class="attr">gitalk:</span></span><br><span class="line">  <span class="attr">client_id:</span> <span class="string">your_client_id</span></span><br><span class="line">  <span class="attr">client_secret:</span> <span class="string">your_client_secret</span></span><br><span class="line">  <span class="attr">repo:</span> <span class="string">yourname.github.io</span></span><br><span class="line">  <span class="attr">owner:</span> <span class="string">yourname</span></span><br><span class="line">  <span class="attr">admin:</span> <span class="string">yourname</span></span><br></pre></td></tr></table></figure><h2 id="搜索功能"><a href="#搜索功能" class="headerlink" title="搜索功能"></a>搜索功能</h2><h3 id="1-安装搜索插件"><a href="#1-安装搜索插件" class="headerlink" title="1. 安装搜索插件"></a>1. 安装搜索插件</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-generator-searchdb --save</span><br></pre></td></tr></table></figure><h3 id="2-配置搜索"><a href="#2-配置搜索" class="headerlink" title="2. 配置搜索"></a>2. 配置搜索</h3><p>编辑 <code>_config.yml</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></pre></td><td class="code"><pre><span class="line"><span class="attr">search:</span></span><br><span class="line">  <span class="attr">path:</span> <span class="string">search.xml</span></span><br><span class="line">  <span class="attr">field:</span> <span class="string">post</span></span><br><span class="line">  <span class="attr">format:</span> <span class="string">html</span></span><br><span class="line">  <span class="attr">limit:</span> <span class="number">10000</span></span><br></pre></td></tr></table></figure><p>编辑 <code>_config.butterfly.yml</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">search:</span></span><br><span class="line">  <span class="attr">use:</span> <span class="string">local_search</span></span><br><span class="line">  <span class="attr">placeholder:</span> <span class="string">搜索文章...</span></span><br></pre></td></tr></table></figure><h2 id="图片处理"><a href="#图片处理" class="headerlink" title="图片处理"></a>图片处理</h2><h3 id="1-图片资源文件夹"><a href="#1-图片资源文件夹" class="headerlink" title="1. 图片资源文件夹"></a>1. 图片资源文件夹</h3><p>在 <code>_config.yml</code> 中启用：</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">post_asset_folder:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><p>这样创建文章时会自动创建同名文件夹，用于存放图片。</p><h3 id="2-引用图片"><a href="#2-引用图片" class="headerlink" title="2. 引用图片"></a>2. 引用图片</h3><p>在文章中使用相对路径引用图片：</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">![<span class="string">图片描述</span>](<span class="link">图片文件名.jpg</span>)</span><br></pre></td></tr></table></figure><h2 id="自定义-CSS"><a href="#自定义-CSS" class="headerlink" title="自定义 CSS"></a>自定义 CSS</h2><p>如果需要自定义样式，可以在 <code>source/css/</code> 目录下创建 <code>custom.css</code>：</p><figure class="highlight css"><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="comment">/* 自定义样式 */</span></span><br><span class="line"><span class="selector-class">.post-content</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">16px</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>然后在 <code>_config.butterfly.yml</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">inject:</span></span><br><span class="line">  <span class="attr">head:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">&lt;link</span> <span class="string">rel=&quot;stylesheet&quot;</span> <span class="string">href=&quot;/css/custom.css&quot;&gt;</span></span><br></pre></td></tr></table></figure><h2 id="常见问题"><a href="#常见问题" class="headerlink" title="常见问题"></a>常见问题</h2><h3 id="Q-主题没有生效？"><a href="#Q-主题没有生效？" class="headerlink" title="Q: 主题没有生效？"></a>Q: 主题没有生效？</h3><p>A: 检查 <code>_config.yml</code> 中的 <code>theme</code> 是否设置为 <code>butterfly</code>，并执行 <code>hexo clean &amp;&amp; hexo g</code>。</p><h3 id="Q-如何更新主题？"><a href="#Q-如何更新主题？" class="headerlink" title="Q: 如何更新主题？"></a>Q: 如何更新主题？</h3><p>A: 进入主题目录执行 <code>git pull</code>。</p><h3 id="Q-如何自定义主题颜色？"><a href="#Q-如何自定义主题颜色？" class="headerlink" title="Q: 如何自定义主题颜色？"></a>Q: 如何自定义主题颜色？</h3><p>A: 在 <code>_config.butterfly.yml</code> 中配置 <code>theme_color</code>。</p><h3 id="Q-如何添加社交链接？"><a href="#Q-如何添加社交链接？" class="headerlink" title="Q: 如何添加社交链接？"></a>Q: 如何添加社交链接？</h3><p>A: 在 <code>_config.butterfly.yml</code> 的 <code>social</code> 部分添加。</p><h2 id="下一步"><a href="#下一步" class="headerlink" title="下一步"></a>下一步</h2><p>恭喜你，已经配置好了 Butterfly 主题！</p><p>接下来的教程将介绍：</p><ul><li><a href="/Hexo%E5%8D%9A%E5%AE%A2GitHub-Actions%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B/">Hexo博客GitHub Actions自动部署教程</a> - 实现自动化部署</li></ul><p>继续学习，让你的博客更加完善吧！</p>]]>
    </content>
    <id>https://ceru-007.github.io/2026/01/02/%EF%BC%88%E4%BA%8C%EF%BC%89Hexo%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/</id>
    <link href="https://ceru-007.github.io/2026/01/02/%EF%BC%88%E4%BA%8C%EF%BC%89Hexo%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/"/>
    <published>2026-01-02T13:12:45.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Hexo 默认的主题比较简单，不够美观。Butterfly 是一个功能强大、设计精美的 Hexo 主题，拥有丰富的功能和良好的用户体验。</]]>
    </summary>
    <title>（二）Hexo博客主题配置教程</title>
    <updated>2026-07-05T14:59:10.375Z</updated>
  </entry>
  <entry>
    <author>
      <name>CeRu</name>
    </author>
    <category term="技术教程" scheme="https://ceru-007.github.io/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/"/>
    <category term="Hexo" scheme="https://ceru-007.github.io/tags/Hexo/"/>
    <category term="博客搭建" scheme="https://ceru-007.github.io/tags/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown（或其他渲染引擎）解析文章，在几秒内，即可利用靓丽的主题生成静态网页。</p><p>本教程将带你从零开始搭建一个 Hexo 博客。</p><h2 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h2><h3 id="1-安装-Node-js"><a href="#1-安装-Node-js" class="headerlink" title="1. 安装 Node.js"></a>1. 安装 Node.js</h3><p>Hexo 基于 Node.js，所以首先需要安装 Node.js。</p><p><strong>Windows 用户：</strong></p><ul><li>访问 <a href="https://nodejs.org/">Node.js 官网</a></li><li>下载 LTS 版本（长期支持版）</li><li>运行安装程序，一路”下一步”即可</li></ul><p><strong>验证安装：</strong><br>打开命令行（CMD 或 PowerShell），输入：</p><figure class="highlight bash"><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">node -v</span><br><span class="line">npm -v</span><br></pre></td></tr></table></figure><p>如果显示版本号，说明安装成功。</p><h3 id="2-安装-Git"><a href="#2-安装-Git" class="headerlink" title="2. 安装 Git"></a>2. 安装 Git</h3><p>Hexo 需要使用 Git 进行版本控制和部署。</p><p><strong>Windows 用户：</strong></p><ul><li>访问 <a href="https://git-scm.com/">Git 官网</a></li><li>下载 Windows 版本</li><li>运行安装程序，使用默认配置即可</li></ul><p><strong>验证安装：</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git --version</span><br></pre></td></tr></table></figure><h2 id="安装-Hexo"><a href="#安装-Hexo" class="headerlink" title="安装 Hexo"></a>安装 Hexo</h2><h3 id="1-全局安装-Hexo"><a href="#1-全局安装-Hexo" class="headerlink" title="1. 全局安装 Hexo"></a>1. 全局安装 Hexo</h3><p>在命令行中执行：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install -g hexo-cli</span><br></pre></td></tr></table></figure><h3 id="2-初始化博客"><a href="#2-初始化博客" class="headerlink" title="2. 初始化博客"></a>2. 初始化博客</h3><p>选择一个目录，执行以下命令：</p><figure class="highlight bash"><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">hexo init myblog</span><br><span class="line"><span class="built_in">cd</span> myblog</span><br><span class="line">npm install</span><br></pre></td></tr></table></figure><p>这会在当前目录下创建一个 <code>myblog</code> 文件夹，并安装必要的依赖。</p><h3 id="3-启动本地服务器"><a href="#3-启动本地服务器" class="headerlink" title="3. 启动本地服务器"></a>3. 启动本地服务器</h3><figure class="highlight bash"><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">hexo server</span><br><span class="line"><span class="comment"># 或者简写</span></span><br><span class="line">hexo s</span><br></pre></td></tr></table></figure><p>打开浏览器访问 <a href="http://localhost:4000/">http://localhost:4000</a>，你将看到 Hexo 的默认欢迎页面。</p><h2 id="目录结构"><a href="#目录结构" class="headerlink" title="目录结构"></a>目录结构</h2><p>初始化后的博客目录结构如下：</p><figure class="highlight plaintext"><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">myblog/</span><br><span class="line">├── _config.yml       # 网站配置文件</span><br><span class="line">├── package.json      # 应用程序信息</span><br><span class="line">├── scaffolds/        # 模版文件夹</span><br><span class="line">├── source/           # 资源文件夹</span><br><span class="line">│   ├── _drafts/      # 草稿</span><br><span class="line">│   └── _posts/       # 文章</span><br><span class="line">├── themes/           # 主题文件夹</span><br><span class="line">└── public/           # 生成的静态文件（执行 hexo generate 后生成）</span><br></pre></td></tr></table></figure><h2 id="创建第一篇文章"><a href="#创建第一篇文章" class="headerlink" title="创建第一篇文章"></a>创建第一篇文章</h2><h3 id="1-创建文章"><a href="#1-创建文章" class="headerlink" title="1. 创建文章"></a>1. 创建文章</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo new <span class="string">&quot;我的第一篇文章&quot;</span></span><br></pre></td></tr></table></figure><p>这会在 <code>source/_posts/</code> 目录下创建一个 Markdown 文件。</p><h3 id="2-编辑文章"><a href="#2-编辑文章" class="headerlink" title="2. 编辑文章"></a>2. 编辑文章</h3><p>打开刚才创建的文件，编辑内容：</p><figure class="highlight markdown"><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></pre></td><td class="code"><pre><span class="line">---</span><br><span class="line">title: 我的第一篇文章</span><br><span class="line">date: 2026-01-02 21:00:00</span><br><span class="line">tags:</span><br><span class="line"><span class="bullet">  -</span> 测试</span><br><span class="line">categories:</span><br><span class="line"><span class="section">  - 随笔</span></span><br><span class="line"><span class="section">---</span></span><br><span class="line"></span><br><span class="line"><span class="section">## 欢迎来到我的博客</span></span><br><span class="line"></span><br><span class="line">这是我的第一篇文章，使用 Hexo 搭建的。</span><br><span class="line"></span><br><span class="line"><span class="section">### Markdown 语法</span></span><br><span class="line"></span><br><span class="line">Hexo 支持 Markdown 语法，你可以轻松编写格式化的内容。</span><br></pre></td></tr></table></figure><h3 id="3-查看效果"><a href="#3-查看效果" class="headerlink" title="3. 查看效果"></a>3. 查看效果</h3><p>保存文件后，刷新浏览器，你将看到新文章出现在首页。</p><h2 id="常用命令"><a href="#常用命令" class="headerlink" title="常用命令"></a>常用命令</h2><h3 id="创建文章"><a href="#创建文章" class="headerlink" title="创建文章"></a>创建文章</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo new <span class="string">&quot;文章标题&quot;</span></span><br></pre></td></tr></table></figure><h3 id="启动服务器"><a href="#启动服务器" class="headerlink" title="启动服务器"></a>启动服务器</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo server</span><br></pre></td></tr></table></figure><h3 id="生成静态文件"><a href="#生成静态文件" class="headerlink" title="生成静态文件"></a>生成静态文件</h3><figure class="highlight bash"><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">hexo generate</span><br><span class="line"><span class="comment"># 或者简写</span></span><br><span class="line">hexo g</span><br></pre></td></tr></table></figure><h3 id="部署"><a href="#部署" class="headerlink" title="部署"></a>部署</h3><figure class="highlight bash"><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">hexo deploy</span><br><span class="line"><span class="comment"># 或者简写</span></span><br><span class="line">hexo d</span><br></pre></td></tr></table></figure><h3 id="清理缓存"><a href="#清理缓存" class="headerlink" title="清理缓存"></a>清理缓存</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo clean</span><br></pre></td></tr></table></figure><h3 id="组合命令（生成并部署）"><a href="#组合命令（生成并部署）" class="headerlink" title="组合命令（生成并部署）"></a>组合命令（生成并部署）</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo clean &amp;&amp; hexo g &amp;&amp; hexo d</span><br></pre></td></tr></table></figure><h2 id="配置文件"><a href="#配置文件" class="headerlink" title="配置文件"></a>配置文件</h2><p>打开 <code>_config.yml</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><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></pre></td><td class="code"><pre><span class="line"><span class="comment"># 网站</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">我的博客</span></span><br><span class="line"><span class="attr">subtitle:</span> <span class="string">记录生活，分享知识</span></span><br><span class="line"><span class="attr">description:</span> <span class="string">基于</span> <span class="string">Hexo</span> <span class="string">的个人博客</span></span><br><span class="line"><span class="attr">keywords:</span> <span class="string">Hexo,</span> <span class="string">博客,</span> <span class="string">技术</span></span><br><span class="line"><span class="attr">author:</span> <span class="string">你的名字</span></span><br><span class="line"><span class="attr">language:</span> <span class="string">zh-CN</span></span><br><span class="line"><span class="attr">timezone:</span> <span class="string">Asia/Shanghai</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># URL</span></span><br><span class="line"><span class="attr">url:</span> <span class="string">https://yourname.github.io</span></span><br><span class="line"><span class="attr">permalink:</span> <span class="string">:year/:month/:day/:title/</span></span><br></pre></td></tr></table></figure><h2 id="配置-GitHub-Pages"><a href="#配置-GitHub-Pages" class="headerlink" title="配置 GitHub Pages"></a>配置 GitHub Pages</h2><h3 id="1-创建-GitHub-仓库"><a href="#1-创建-GitHub-仓库" class="headerlink" title="1. 创建 GitHub 仓库"></a>1. 创建 GitHub 仓库</h3><ol><li>登录 GitHub</li><li>创建一个新仓库，命名为 <code>yourname.github.io</code>（替换 yourname 为你的用户名）</li><li>设置仓库为 Public</li></ol><h3 id="2-安装部署插件"><a href="#2-安装部署插件" class="headerlink" title="2. 安装部署插件"></a>2. 安装部署插件</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure><h3 id="3-修改配置文件"><a href="#3-修改配置文件" class="headerlink" title="3. 修改配置文件"></a>3. 修改配置文件</h3><p>在 <code>_config.yml</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></pre></td><td class="code"><pre><span class="line"><span class="attr">deploy:</span></span><br><span class="line">  <span class="attr">type:</span> <span class="string">git</span></span><br><span class="line">  <span class="attr">repository:</span> <span class="string">https://github.com/yourname/yourname.github.io.git</span></span><br><span class="line">  <span class="attr">branch:</span> <span class="string">main</span></span><br></pre></td></tr></table></figure><h3 id="4-部署到-GitHub"><a href="#4-部署到-GitHub" class="headerlink" title="4. 部署到 GitHub"></a>4. 部署到 GitHub</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo clean &amp;&amp; hexo g &amp;&amp; hexo d</span><br></pre></td></tr></table></figure><p>首次部署时，可能需要输入 GitHub 账号和密码。</p><h3 id="5-访问博客"><a href="#5-访问博客" class="headerlink" title="5. 访问博客"></a>5. 访问博客</h3><p>等待几分钟后，访问 <code>https://yourname.github.io</code> 即可看到你的博客！</p><h2 id="常见问题"><a href="#常见问题" class="headerlink" title="常见问题"></a>常见问题</h2><h3 id="Q-如何更换端口？"><a href="#Q-如何更换端口？" class="headerlink" title="Q: 如何更换端口？"></a>Q: 如何更换端口？</h3><p>A: 使用 <code>hexo server -p 4001</code> 可以指定端口。</p><h3 id="Q-如何新建页面？"><a href="#Q-如何新建页面？" class="headerlink" title="Q: 如何新建页面？"></a>Q: 如何新建页面？</h3><p>A: 使用 <code>hexo new page &quot;about&quot;</code> 可以创建新页面。</p><h3 id="Q-如何安装主题？"><a href="#Q-如何安装主题？" class="headerlink" title="Q: 如何安装主题？"></a>Q: 如何安装主题？</h3><p>A: 下载主题到 <code>themes</code> 目录，然后在 <code>_config.yml</code> 中设置 <code>theme: 主题名称</code>。</p><h3 id="Q-如何删除文章？"><a href="#Q-如何删除文章？" class="headerlink" title="Q: 如何删除文章？"></a>Q: 如何删除文章？</h3><p>A: 直接删除 <code>source/_posts/</code> 下的对应文件，然后重新生成。</p><h2 id="下一步"><a href="#下一步" class="headerlink" title="下一步"></a>下一步</h2><p>恭喜你，已经成功搭建了 Hexo 博客！</p><p>接下来的教程将介绍：</p><ul><li><a href="/Hexo%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/">Hexo博客主题配置教程</a> - 美化你的博客</li><li><a href="/Hexo%E5%8D%9A%E5%AE%A2GitHub-Actions%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B/">Hexo博客GitHub Actions自动部署教程</a> - 实现自动化部署</li></ul><p>继续学习，打造一个更漂亮的博客吧！</p>]]>
    </content>
    <id>https://ceru-007.github.io/2026/01/02/%EF%BC%88%E4%B8%80%EF%BC%89Hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/</id>
    <link href="https://ceru-007.github.io/2026/01/02/%EF%BC%88%E4%B8%80%EF%BC%89Hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/"/>
    <published>2026-01-02T13:12:41.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown（或其他渲染引擎）解析文章，在几秒内，即可利用靓丽的主题生成静态]]>
    </summary>
    <title>（一）Hexo博客搭建教程</title>
    <updated>2026-07-05T14:59:10.375Z</updated>
  </entry>
  <entry>
    <author>
      <name>CeRu</name>
    </author>
    <category term="技术教程" scheme="https://ceru-007.github.io/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/"/>
    <category term="Hexo" scheme="https://ceru-007.github.io/tags/Hexo/"/>
    <category term="GitHub Actions" scheme="https://ceru-007.github.io/tags/GitHub-Actions/"/>
    <category term="自动部署" scheme="https://ceru-007.github.io/tags/%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>之前部署 Hexo 博客都是本地构建静态文件，然后手动推送到 GitHub Pages。这种方式有几个问题：</p><ul><li>源码只在本地，存在丢失风险</li><li>换电脑需要重新配置环境</li><li>每次更新都需要手动执行部署命令</li></ul><p>本文介绍如何使用 GitHub Actions 实现自动部署，解决这些问题。</p><h2 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h2><h3 id="1-两个仓库"><a href="#1-两个仓库" class="headerlink" title="1. 两个仓库"></a>1. 两个仓库</h3><p>我们将使用两个 GitHub 仓库：</p><ul><li><strong>源码仓库</strong>：存放 Hexo 源码（可以私有）</li><li><strong>Pages 仓库</strong>：存放生成的静态文件（必须公开）</li></ul><p>例如：</p><ul><li>源码：<code>https://github.com/CeRu-007/hexo-cerublog</code></li><li>Pages：<code>https://github.com/CeRu-007/CeRu-007.github.io</code></li></ul><h3 id="2-创建源码仓库"><a href="#2-创建源码仓库" class="headerlink" title="2. 创建源码仓库"></a>2. 创建源码仓库</h3><p>在 GitHub 上创建新仓库，用于存放 Hexo 源码。</p><h2 id="配置源码仓库"><a href="#配置源码仓库" class="headerlink" title="配置源码仓库"></a>配置源码仓库</h2><h3 id="1-初始化-Git-并推送"><a href="#1-初始化-Git-并推送" class="headerlink" title="1. 初始化 Git 并推送"></a>1. 初始化 Git 并推送</h3><p>在博客根目录执行：</p><figure class="highlight bash"><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">git init</span><br><span class="line">git add .</span><br><span class="line">git commit -m <span class="string">&quot;Initial commit: Hexo blog source code&quot;</span></span><br><span class="line">git branch -M main</span><br><span class="line">git remote add origin https://github.com/CeRu-007/hexo-cerublog.git</span><br><span class="line">git push -u origin main</span><br></pre></td></tr></table></figure><h3 id="2-配置-gitignore"><a href="#2-配置-gitignore" class="headerlink" title="2. 配置 .gitignore"></a>2. 配置 .gitignore</h3><p>确保 <code>.gitignore</code> 文件包含以下内容：</p><figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">.DS_Store</span><br><span class="line">Thumbs.db</span><br><span class="line">db.json</span><br><span class="line">*.log</span><br><span class="line">node_modules/</span><br><span class="line">public/</span><br><span class="line">.deploy*/</span><br><span class="line">_multiconfig.yml</span><br><span class="line">.sass-cache/</span><br><span class="line">.deploy_git/</span><br><span class="line">.idea/</span><br><span class="line">.vscode/</span><br><span class="line">*.swp</span><br><span class="line">*.swo</span><br><span class="line">*~</span><br></pre></td></tr></table></figure><p>这样可以避免推送不必要的文件：</p><h3 id="3-处理主题（Git-Submodule）"><a href="#3-处理主题（Git-Submodule）" class="headerlink" title="3. 处理主题（Git Submodule）"></a>3. 处理主题（Git Submodule）</h3><p>如果主题是通过 git clone 安装的（如 Butterfly），需要添加为 Git Submodule：</p><figure class="highlight bash"><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">git submodule add https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly</span><br><span class="line">git add .gitmodules</span><br><span class="line">git commit -m <span class="string">&quot;Add butterfly theme as submodule&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><p><strong>为什么要用 Submodule？</strong></p><ul><li>记录主题的具体版本，确保一致性</li><li>不存储主题完整代码，节省空间</li><li>GitHub Actions 会自动拉取子模块</li></ul><h2 id="创建-GitHub-Actions-工作流"><a href="#创建-GitHub-Actions-工作流" class="headerlink" title="创建 GitHub Actions 工作流"></a>创建 GitHub Actions 工作流</h2><h3 id="1-创建工作流文件"><a href="#1-创建工作流文件" class="headerlink" title="1. 创建工作流文件"></a>1. 创建工作流文件</h3><p>在项目根目录创建 <code>.github/workflows/deploy.yml</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><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></pre></td><td class="code"><pre><span class="line"><span class="attr">name:</span> <span class="string">Hexo</span> <span class="string">Deploy</span></span><br><span class="line"></span><br><span class="line"><span class="attr">on:</span></span><br><span class="line">  <span class="attr">push:</span></span><br><span class="line">    <span class="attr">branches:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">main</span></span><br><span class="line">  <span class="attr">workflow_dispatch:</span></span><br><span class="line"></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line">  <span class="attr">build-and-deploy:</span></span><br><span class="line">    <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line"></span><br><span class="line">    <span class="attr">steps:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Checkout</span> <span class="string">source</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/checkout@v4</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">submodules:</span> <span class="literal">true</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">Node.js</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/setup-node@v4</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">node-version:</span> <span class="string">&#x27;20&#x27;</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Install</span> <span class="string">dependencies</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string">          npm install -g hexo-cli</span></span><br><span class="line"><span class="string">          npm install</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Generate</span> <span class="string">static</span> <span class="string">files</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">hexo</span> <span class="string">generate</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Deploy</span> <span class="string">to</span> <span class="string">GitHub</span> <span class="string">Pages</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">peaceiris/actions-gh-pages@v3</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">personal_token:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.HEXO</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">external_repository:</span> <span class="string">CeRu-007/CeRu-007.github.io</span></span><br><span class="line">          <span class="attr">publish_dir:</span> <span class="string">./public</span></span><br><span class="line">          <span class="attr">publish_branch:</span> <span class="string">gh-pages</span></span><br><span class="line">          <span class="attr">force_orphan:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><p><strong>关键配置说明：</strong></p><ul><li><code>submodules: true</code>：自动拉取主题子模块</li><li><code>external_repository</code>：指定 Pages 仓库地址</li><li><code>personal_token</code>：使用 Personal Access Token（HEXO）用于跨仓库部署</li><li><code>publish_branch</code>：部署到 gh-pages 分支</li></ul><p><strong>注意：</strong> 这里必须使用 <code>personal_token</code> 而不是 <code>github_token</code>，因为 <code>github_token</code> 不能跨仓库推送。</p><h3 id="2-提交工作流文件"><a href="#2-提交工作流文件" class="headerlink" title="2. 提交工作流文件"></a>2. 提交工作流文件</h3><figure class="highlight bash"><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">git add .github/workflows/deploy.yml</span><br><span class="line">git commit -m <span class="string">&quot;Add GitHub Actions workflow for auto deployment&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><h2 id="配置-GitHub-Personal-Access-Token"><a href="#配置-GitHub-Personal-Access-Token" class="headerlink" title="配置 GitHub Personal Access Token"></a>配置 GitHub Personal Access Token</h2><p>由于要跨仓库部署，需要创建 Personal Access Token。</p><h3 id="1-创建-Token"><a href="#1-创建-Token" class="headerlink" title="1. 创建 Token"></a>1. 创建 Token</h3><ol><li>访问 <a href="https://github.com/settings/tokens">https://github.com/settings/tokens</a></li><li>点击 <strong>Generate new token (classic)</strong></li><li>填写信息：<ul><li>Note: <code>Hexo Deploy</code></li><li>Expiration: 选择过期时间</li><li>勾选权限：<code>repo</code>（完整的仓库访问权限）</li></ul></li><li>点击 <strong>Generate token</strong></li><li><strong>复制生成的 token</strong>（只显示一次）</li></ol><h3 id="2-添加-Secret"><a href="#2-添加-Secret" class="headerlink" title="2. 添加 Secret"></a>2. 添加 Secret</h3><ol><li>进入源码仓库：Settings → Secrets and variables → Actions</li><li>点击 <strong>New repository secret</strong></li><li>填写：<ul><li>Name: <code>HEXO</code></li><li>Value: 粘贴刚才复制的 token</li></ul></li><li>点击 <strong>Add secret</strong></li></ol><h2 id="配置-GitHub-Pages"><a href="#配置-GitHub-Pages" class="headerlink" title="配置 GitHub Pages"></a>配置 GitHub Pages</h2><p>进入 Pages 仓库（CeRu-007&#x2F;CeRu-007.github.io）：</p><ul><li>点击 <strong>Settings</strong> → <strong>Pages</strong></li><li>在 <strong>Build and deployment</strong> 部分：<ul><li>Source: <strong>Deploy from a branch</strong></li><li>Branch: <strong>gh-pages</strong>（第一次部署后会自动创建）</li><li>Folder: <strong>&#x2F; (root)</strong></li></ul></li><li>点击 <strong>Save</strong></li></ul><h2 id="测试自动部署"><a href="#测试自动部署" class="headerlink" title="测试自动部署"></a>测试自动部署</h2><p>现在推送代码就会自动触发部署：</p><figure class="highlight bash"><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">git add .</span><br><span class="line">git commit -m <span class="string">&quot;测试自动部署&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><p>查看部署状态：<a href="https://github.com/CeRu-007/hexo-cerublog/actions">https://github.com/CeRu-007/hexo-cerublog/actions</a></p><h2 id="工作流程"><a href="#工作流程" class="headerlink" title="工作流程"></a>工作流程</h2><p>自动部署的完整流程：</p><ol><li>推送代码到源码仓库的 main 分支</li><li>GitHub Actions 自动触发</li><li>拉取源码和主题子模块</li><li>安装依赖</li><li>生成静态文件</li><li>部署到 Pages 仓库的 gh-pages 分支</li><li>GitHub Pages 自动更新网站</li></ol><h2 id="优势对比"><a href="#优势对比" class="headerlink" title="优势对比"></a>优势对比</h2><h3 id="之前的方式"><a href="#之前的方式" class="headerlink" title="之前的方式"></a>之前的方式</h3><p>❌ 源码只在本地，容易丢失<br>❌ 换电脑需要重新配置<br>❌ 每次手动执行 <code>hexo deploy</code><br>❌ 无法查看历史修改</p><h3 id="现在的方式"><a href="#现在的方式" class="headerlink" title="现在的方式"></a>现在的方式</h3><p>✅ 源码备份在 GitHub，安全可靠<br>✅ 随时随地 <code>git clone</code> 即可工作<br>✅ 推送代码自动部署<br>✅ 完整的 Git 历史记录<br>✅ 多设备协作方便</p><h2 id="常见问题"><a href="#常见问题" class="headerlink" title="常见问题"></a>常见问题</h2><h3 id="Q-源码仓库可以是私有的吗？"><a href="#Q-源码仓库可以是私有的吗？" class="headerlink" title="Q: 源码仓库可以是私有的吗？"></a>Q: 源码仓库可以是私有的吗？</h3><p>A: 可以。源码仓库私有不影响自动部署，只有 Pages 仓库需要公开。</p><h3 id="Q-为什么不用同一个仓库？"><a href="#Q-为什么不用同一个仓库？" class="headerlink" title="Q: 为什么不用同一个仓库？"></a>Q: 为什么不用同一个仓库？</h3><p>A: 分开更清晰：</p><ul><li>源码仓库：只存放源代码</li><li>Pages 仓库：只存放静态文件</li><li>便于管理和协作</li></ul><h3 id="Q-如何更新主题？"><a href="#Q-如何更新主题？" class="headerlink" title="Q: 如何更新主题？"></a>Q: 如何更新主题？</h3><p>A: 更新子模块：</p><figure class="highlight bash"><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="built_in">cd</span> themes/butterfly</span><br><span class="line">git pull</span><br><span class="line"><span class="built_in">cd</span> ../..</span><br><span class="line">git add themes/butterfly</span><br><span class="line">git commit -m <span class="string">&quot;Update theme&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><h3 id="Q-如何在其他电脑上工作？"><a href="#Q-如何在其他电脑上工作？" class="headerlink" title="Q: 如何在其他电脑上工作？"></a>Q: 如何在其他电脑上工作？</h3><p>A: 克隆源码仓库：</p><figure class="highlight bash"><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">git <span class="built_in">clone</span> --recursive https://github.com/CeRu-007/hexo-cerublog.git</span><br><span class="line"><span class="built_in">cd</span> hexo-cerublog</span><br><span class="line">npm install</span><br></pre></td></tr></table></figure><h3 id="Q-为什么使用-personal-token-而不是-github-token？"><a href="#Q-为什么使用-personal-token-而不是-github-token？" class="headerlink" title="Q: 为什么使用 personal_token 而不是 github_token？"></a>Q: 为什么使用 personal_token 而不是 github_token？</h3><p>A: 因为我们要跨仓库部署（从源码仓库部署到 Pages 仓库），而 <code>github_token</code> 是 GitHub 自动生成的，只能访问当前仓库，无法跨仓库推送。<code>personal_token</code> 是你创建的 Personal Access Token，拥有完整的仓库访问权限，可以跨仓库操作。</p><details><summary><b>🔧 故障排查：主题中的图片无法加载</b></summary><h3 id="问题描述"><a href="#问题描述" class="headerlink" title="问题描述"></a>问题描述</h3><p>如果主题作为 Git Submodule 后，发现主题中的某些图片无法加载，可能是因为这些图片是在本地添加的新文件，没有包含在子模块的原始代码中。</p><h3 id="原因分析"><a href="#原因分析" class="headerlink" title="原因分析"></a>原因分析</h3><p>主题作为 Git Submodule 时，GitHub Actions 只会拉取子模块的原始代码（即官方仓库的内容），不会包含你在本地添加的新文件。</p><h3 id="解决方案"><a href="#解决方案" class="headerlink" title="解决方案"></a>解决方案</h3><p>将主题中新增的图片文件复制到博客的 <code>source/img/</code> 目录下：</p><figure class="highlight bash"><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="comment"># 复制主题中的图片到 source/img/</span></span><br><span class="line"><span class="built_in">cp</span> themes/butterfly/source/img/7.jpg <span class="built_in">source</span>/img/7.jpg</span><br><span class="line"><span class="built_in">cp</span> themes/butterfly/source/img/8.jpg <span class="built_in">source</span>/img/8.jpg</span><br><span class="line"><span class="built_in">cp</span> themes/butterfly/source/img/9.jpg <span class="built_in">source</span>/img/9.jpg</span><br><span class="line"><span class="built_in">cp</span> themes/butterfly/source/img/10.jpg <span class="built_in">source</span>/img/10.jpg</span><br><span class="line"></span><br><span class="line"><span class="comment"># 添加到 Git 仓库</span></span><br><span class="line">git add <span class="built_in">source</span>/img/7.jpg <span class="built_in">source</span>/img/8.jpg <span class="built_in">source</span>/img/9.jpg <span class="built_in">source</span>/img/10.jpg</span><br><span class="line">git commit -m <span class="string">&quot;Add missing images to source/img&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><h3 id="预防措施"><a href="#预防措施" class="headerlink" title="预防措施"></a>预防措施</h3><ul><li>对于主题中新增的图片、自定义样式等文件，建议放在 <code>source/</code> 目录下，而不是直接修改主题目录</li><li>如果必须修改主题文件，考虑创建一个子主题或者 fork 主题仓库</li></ul></details><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>通过 GitHub Actions 实现自动部署，大大简化了博客的维护工作。现在只需要专注于写文章，推送代码后一切自动完成。</p><p>同时，源码备份在 GitHub 上，再也不用担心数据丢失了！</p>]]>
    </content>
    <id>https://ceru-007.github.io/2026/01/02/%EF%BC%88%E4%B8%89%EF%BC%89Hexo%E5%8D%9A%E5%AE%A2GitHub-Actions%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B/</id>
    <link href="https://ceru-007.github.io/2026/01/02/%EF%BC%88%E4%B8%89%EF%BC%89Hexo%E5%8D%9A%E5%AE%A2GitHub-Actions%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B/"/>
    <published>2026-01-02T12:33:58.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>之前部署 Hexo 博客都是本地构建静态文件，然后手动推送到 GitHub Pages。这种方式有几个问题：</p>
<ul>
<li>源码]]>
    </summary>
    <title>（三）Hexo博客GitHub Actions自动部署教程</title>
    <updated>2026-07-05T14:59:10.375Z</updated>
  </entry>
  <entry>
    <author>
      <name>CeRu</name>
    </author>
    <category term="技术教程" scheme="https://ceru-007.github.io/categories/%E6%8A%80%E6%9C%AF%E6%95%99%E7%A8%8B/"/>
    <category term="教程" scheme="https://ceru-007.github.io/tags/%E6%95%99%E7%A8%8B/"/>
    <category term="Docker" scheme="https://ceru-007.github.io/tags/Docker/"/>
    <category term="Telegram" scheme="https://ceru-007.github.io/tags/Telegram/"/>
    <category term="115网盘" scheme="https://ceru-007.github.io/tags/115%E7%BD%91%E7%9B%98/"/>
    <content>
      <![CDATA[<h1 id="115-Bot搭建部署教程"><a href="#115-Bot搭建部署教程" class="headerlink" title="115-Bot搭建部署教程"></a>115-Bot搭建部署教程</h1><blockquote><p><strong>原文链接：</strong> <a href="https://xix.lol/archives/1717259753539">https://xix.lol/archives/1717259753539</a><br>本文为搬运文章，并在原文基础上根据自己折腾时进行了部分内容优化调整。</p></blockquote><p>有时候挺羡慕PikPak得官方Bot，可以绑定自己得TG账号和PP账号使用，因为转入了115大家庭，所以我找了一下，发现有一个115Bot得项目，基本功能如下：</p><ul><li>批量解压</li><li>视频转存115（</li><li><strong>新版本镜像已经增加了文件，图片等类型的转存，推荐搭配浏览器插件一起使用</strong>）</li><li>创建strm文件</li><li>订阅女优每日更新</li><li>许愿树自动许愿、助愿、采纳</li><li>添加磁力链、ed2k单条或多条到115，支持转发消息到机器人自动提取消息中的磁力链</li><li>离线任务监控：任务下载完成后移动到指定文件夹，删除指定广告文件，去除指定字符串重命名</li></ul><p>因为个人需求不一样，本博文只演示部分功能，首先准备一下东西：</p><p>一台Ubuntu&#x2F;Debian系统的服务器（最好是无限流量，硬盘比较大得，预留10G硬盘空间给bot使用，因为转存tg视频，是需要通过你得服务器下载再上传）</p><blockquote><p><strong>重要提示：服务器选择建议</strong></p><p>最好是使用国外服务器，否则无法正常使用。如果是国内服务器，使用时配置代理的话，会消耗大量代理流量。而且配置代理也较为麻烦。</p></blockquote><p>一个SSH工具（我演示使用FinalShell）</p><h2 id="创建配置文件"><a href="#创建配置文件" class="headerlink" title="创建配置文件"></a>创建配置文件</h2><p>首先在你电脑创建一个文档，写入以下内容</p><figure class="highlight properties"><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></pre></td><td class="code"><pre><span class="line"><span class="comment">#必填项、机器人token，不知道，自行google tg机器人创建</span></span><br><span class="line"><span class="attr">bot.token</span>=<span class="string"></span></span><br><span class="line"><span class="comment">#可选项</span></span><br><span class="line"><span class="comment">#开启tg视频转存115需要apiId、apiHash这两个参数，没有请到 https://my.telegram.org/ 申请</span></span><br><span class="line"><span class="attr">bot.apiId</span>=<span class="string"></span></span><br><span class="line"><span class="attr">bot.apiHash</span>=<span class="string"></span></span><br><span class="line"><span class="comment">#可选项</span></span><br><span class="line"><span class="comment">#许愿树开关</span></span><br><span class="line"><span class="attr">xyssWitch</span>=<span class="string">true</span></span><br><span class="line"><span class="comment">#答谢空间，单位：GB</span></span><br><span class="line"><span class="attr">rewardSpace</span>=<span class="string">5</span></span><br><span class="line"><span class="comment">#许愿定时器，从1点开始每8小时的10分钟执行</span></span><br><span class="line"><span class="attr">wishcron</span>=<span class="string">0 10 1/8 * * ?</span></span><br><span class="line"><span class="comment">#助愿定时器，从1点开始每8小时的15分钟执行</span></span><br><span class="line"><span class="attr">replycron</span>=<span class="string">0 15 1/8 * * ?</span></span><br><span class="line"><span class="comment">#采纳定时器，从1点开始每8小时的20分钟执行</span></span><br><span class="line"><span class="attr">adoptcron</span>=<span class="string">0 20 1/8 * * ?</span></span><br><span class="line"><span class="comment">#许愿树账号不能重复</span></span><br><span class="line"><span class="comment">#助愿账号</span></span><br><span class="line"><span class="attr">reply1</span>=<span class="string">cookie1</span></span><br><span class="line"><span class="attr">reply2</span>=<span class="string">cookie2</span></span><br><span class="line"><span class="comment">#许愿账号</span></span><br><span class="line"><span class="attr">wish1</span>=<span class="string">cookie1</span></span><br><span class="line"><span class="attr">wish2</span>=<span class="string">cookie2</span></span><br></pre></td></tr></table></figure><p>如果你不需要许愿，可以直接删除对应可选项的代码，例如我的</p><figure class="highlight properties"><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="comment">#必填项、机器人token，不知道，自行google tg机器人创建</span></span><br><span class="line"><span class="attr">bot.token</span>=<span class="string"></span></span><br><span class="line"><span class="comment">#可选项</span></span><br><span class="line"><span class="comment">#开启tg视频转存115需要apiId、apiHash这两个参数，没有请到 https://my.telegram.org/ 申请</span></span><br><span class="line"><span class="attr">bot.apiId</span>=<span class="string"></span></span><br><span class="line"><span class="attr">bot.apiHash</span>=<span class="string"></span></span><br></pre></td></tr></table></figure><p>注意，这里的bot.apiId&#x3D;和bot.apiHash&#x3D;是你自己TG账号的api，不是机器人的，你需要去<a href="https://my.telegram.org/%E7%94%B3%E8%AF%B7%E5%BC%80%E9%80%9A">https://my.telegram.org/申请开通</a> ，如果你申请不到，是无法使用转存功能的</p><p>然后保存文档，修改名字为：application.properties</p><h4 id="注意：-properties是后缀名"><a href="#注意：-properties是后缀名" class="headerlink" title="注意：.properties是后缀名"></a>注意：.properties是后缀名</h4><p>然后打开你的SSH工具，链接上服务器，在任意路径新建一个文件夹，名字叫115bot，我这里在root路径下新建了</p><p>把上面的 application.properties 文件上传到这个115bot文件夹中，并选择文件右键修改文件权限，如图</p><h2 id="安装docker"><a href="#安装docker" class="headerlink" title="安装docker"></a>安装docker</h2><figure class="highlight bash"><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="comment">#安装命令</span></span><br><span class="line">curl -fsSL https://test.docker.com -o test-docker.sh</span><br><span class="line"><span class="built_in">sudo</span> sh test-docker.sh</span><br></pre></td></tr></table></figure><p>安装完成之后，拉取115bot镜像</p><figure class="highlight bash"><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="comment">#拉取镜像命令</span></span><br><span class="line">docker pull len996/115bot:latest</span><br></pre></td></tr></table></figure><p>启动容器，这个是梭哈命令，只修改了映射路径和添加了自动重启命令，如果你上面路径设置不是在&#x2F;root&#x2F;115bot，请自己修改映射路径</p><figure class="highlight bash"><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="comment">#启动容器命令</span></span><br><span class="line">docker run -d --name 115bot -p 8001:8001 -v /root/115bot/application.properties:/application.properties -v /root/115bot:/115bot --restart=always len996/115bot:latest</span><br></pre></td></tr></table></figure><p>如果你的服务器内存不够，可以自己修改内存值，在len996&#x2F;115bot:latest前添加就可以</p><figure class="highlight bash"><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="comment">#限制容器内存，根据机器配置决定，我的机器128m已经是极限了，再低启动时间太长</span></span><br><span class="line">-m 128m</span><br><span class="line"><span class="comment">#如果启动时间太慢，可以增加内存分配-Xms 最小内存，-Xmx 最大内存，以下为默认值，倍数增加即可</span></span><br><span class="line">-e JAVA_OPTS=<span class="string">&quot;-Xms64m -Xmx128m&quot;</span></span><br><span class="line"><span class="comment">#自动重启容器</span></span><br><span class="line">--restart=always</span><br></pre></td></tr></table></figure><h2 id="更新bot版本的方法"><a href="#更新bot版本的方法" class="headerlink" title="更新bot版本的方法"></a>更新bot版本的方法</h2><p>首先通过images命令和ps命令查找镜像和容器的id</p><p>列出本机所有镜像</p><p><code>docker images</code>获取镜像id之后，删除当前的镜像</p><p>删除对应的镜像</p><p><code>docker rmi -f id</code>然后获取容器id</p><p><code>docker ps</code>停止容器的运作输入命令</p><p><code>docker stop id</code>然后删除当前的机器人容器</p><p><code>docker rm id</code>重新拉取最新的镜像</p><p><code>docker pull len996/115bot:latest</code>再次以启动命令生成新的容器，注意！你的原始映射路径是什么就改什么，如果不一致会丢失数据或者无法启动</p><figure class="highlight bash"><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="comment">#启动容器命令</span></span><br><span class="line">docker run -d --name 115bot -p 8001:8001 -v /root/115bot/application.properties:/application.properties -v /root/115bot:/115bot --restart=always len996/115bot:latest</span><br></pre></td></tr></table></figure><h2 id="附带一些常用docker命令"><a href="#附带一些常用docker命令" class="headerlink" title="附带一些常用docker命令"></a>附带一些常用docker命令</h2><figure class="highlight bash"><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></pre></td><td class="code"><pre><span class="line"><span class="comment">#查看当前状态</span></span><br><span class="line">docker ps</span><br><span class="line"><span class="comment">#查看日志，id在ps命令中获取</span></span><br><span class="line">docker logs <span class="built_in">id</span></span><br><span class="line"><span class="comment">#启动容器，id在ps命令中获取</span></span><br><span class="line">docker start <span class="built_in">id</span></span><br><span class="line"><span class="comment">#停止容器，id在ps命令中获取</span></span><br><span class="line">docker stop <span class="built_in">id</span></span><br><span class="line"><span class="comment">#重启容器，id在ps命令中获取</span></span><br><span class="line">docker restart <span class="built_in">id</span></span><br><span class="line"><span class="comment">#删除指定容器，id在ps命令中获取</span></span><br><span class="line">docker <span class="built_in">rm</span> <span class="built_in">id</span></span><br></pre></td></tr></table></figure><h2 id="最终成品图"><a href="#最终成品图" class="headerlink" title="最终成品图"></a>最终成品图</h2>]]>
    </content>
    <id>https://ceru-007.github.io/2026/01/02/115bot%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/</id>
    <link href="https://ceru-007.github.io/2026/01/02/115bot%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/"/>
    <published>2026-01-02T02:30:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="115-Bot搭建部署教程"><a href="#115-Bot搭建部署教程" class="headerlink" title="115-Bot搭建部署教程"></a>115-Bot搭建部署教程</h1><blockquote>
<p><strong>原文链接：]]>
    </summary>
    <title>115bot搭建教程</title>
    <updated>2026-07-05T14:59:10.375Z</updated>
  </entry>
</feed>
