<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>安小歪</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://blog.anxw.cn/</id>
  <link href="https://blog.anxw.cn/" rel="alternate"/>
  <link href="https://blog.anxw.cn/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, 安小歪</rights>
  <subtitle>1+1=2</subtitle>
  <title>安小歪の小窝</title>
  <updated>2025-09-02T09:50:58.000Z</updated>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="其它" scheme="https://blog.anxw.cn/categories/%E5%85%B6%E5%AE%83/"/>
    <category term="其它" scheme="https://blog.anxw.cn/tags/%E5%85%B6%E5%AE%83/"/>
    <content>
      <![CDATA[<h2 id="Hexo-AI-摘要插件（自用）"><a href="#Hexo-AI-摘要插件（自用）" class="headerlink" title="Hexo AI 摘要插件（自用）"></a>Hexo AI 摘要插件（自用）</h2><blockquote><p><a href="https://blog.liushen.fun/posts/40702a0d">参考博主LiuShen</a><br><a href="https://blog.liushen.fun/">灵感来源:LiuShen</a><br><a href="https://github.com/shangskr/hexo-ai-summary">插件仓库</a></p></blockquote><p>这是一个 Hexo 插件，用于自动生成文章的摘要。支持腾讯混元、OpenAI 或任何兼容 OpenAI 协议的模型接口，支持并发处理、自定义摘要字段、摘要覆盖控制等功能。</p><blockquote><p>该插件不能保证不造成错误问题以及混乱，使用前请注意备份！<br>此类文章摘要也可以本地运行，只需合适的 js 文件，博客根目录运行 <code>node ai.js</code> 也可以达到 AI 摘要的效果。</p></blockquote><hr><h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><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-ai-summary-anxiaowai --save</span><br></pre></td></tr></table></figure><h2 id="配置项"><a href="#配置项" class="headerlink" title="配置项"></a>配置项</h2><p>添加到 <code>_config.yml</code> 或主题配置文件中：</p><blockquote><p>token 可以自行申请免费的腾讯 Hunyuan 模型</p></blockquote><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></pre></td><td class="code"><pre><span class="line"><span class="attr">aisummary:</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">api:</span> <span class="string">https://api.hunyuan.cloud.tencent.com/v1/chat/completions</span> <span class="comment"># OpenAI 或腾讯云的 Hunyuan 模型</span></span><br><span class="line">  <span class="attr">token:</span> <span class="string">sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span>             <span class="comment"># OpenAI 或兼容模型的密钥</span></span><br><span class="line">  <span class="attr">model:</span> <span class="string">hunyuan-standard</span>                                        <span class="comment"># 使用模型名称</span></span><br><span class="line">  <span class="attr">summary_field:</span> <span class="string">summary</span>                                         <span class="comment"># 摘要字段</span></span><br><span class="line">  <span class="attr">cover_all:</span> <span class="literal">false</span>                                               <span class="comment"># 是否启用全部覆盖（即重新生成）</span></span><br><span class="line">  <span class="attr">concurrency:</span> <span class="number">2</span>                                                 <span class="comment"># 并发处理数</span></span><br><span class="line">  <span class="attr">max_input_length:</span> <span class="number">3000</span>  <span class="comment"># 输入文本长度限制（腾讯推荐 2000 字以内）</span></span><br><span class="line">  <span class="attr">prompt:</span> <span class="string">&quot;请用简体中文生成一段简洁的摘要，要求：1.长度在 80-120 字之间 2.包含文章核心观点 3.输出内容开头为&quot;</span><span class="string">这里小歪</span> <span class="string">AI，这篇文章&quot;4.</span> <span class="string">不要包含代码和公式&quot;</span></span><br><span class="line">  <span class="attr">max_tokens:</span> <span class="number">120</span>       <span class="comment"># 混元模型建议稍大的 token 限制</span></span><br><span class="line">  <span class="attr">temperature:</span> <span class="number">0.5</span>      <span class="comment"># 创造性稍高的温度值（0.1~2.0）</span></span><br><span class="line">  <span class="attr">timeout:</span> <span class="number">10000</span>        <span class="comment"># 腾讯 API 建议稍长的超时时间</span></span><br></pre></td></tr></table></figure><h2 id="指定文章禁用-AI-摘要"><a href="#指定文章禁用-AI-摘要" class="headerlink" title="指定文章禁用 AI 摘要"></a>指定文章禁用 AI 摘要</h2><p>在文章 front-matter 中添加：</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="meta">---</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">xxxxxxxxxxx</span></span><br><span class="line"><span class="attr">summary:</span> <span class="literal">false</span></span><br><span class="line"><span class="meta">---</span></span><br></pre></td></tr></table></figure><h2 id="修改文章模板"><a href="#修改文章模板" class="headerlink" title="修改文章模板"></a>修改文章模板</h2><p>修改文件：<code>hexo\themes\butterfly\layout\post.pug</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><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></pre></td><td class="code"><pre><span class="line">extends includes/layout.pug</span><br><span class="line"></span><br><span class="line">block content</span><br><span class="line">  #post</span><br><span class="line">    if top_img === false</span><br><span class="line">      include includes/header/post-info.pug</span><br><span class="line"></span><br><span class="line">+    //- AI 摘要卡片（含延迟动画）</span><br><span class="line">+    if page.summary &amp;&amp; page.summary !== false</span><br><span class="line">+      .ai-summary-wrapper</span><br><span class="line">+        .ai-summary-header</span><br><span class="line">+          .mac-window-dots</span><br><span class="line">+            span.dot.red</span><br><span class="line">+            span.dot.yellow</span><br><span class="line">+            span.dot.green</span><br><span class="line">+          .ai-source 安小歪のAI摘要</span><br><span class="line">+        .ai-summary-body</span><br><span class="line">+          .ai-loading 正在思考中ing…</span><br><span class="line">+          .ai-text(data-delay=&quot;2000&quot; data-text=page.summary)</span><br><span class="line">+        .ai-footer</span><br><span class="line">+          .ai-tip 此内容根据文章生成，并经过人工审核，仅用于文章内容的解释与总结</span><br><span class="line">+          .ai-model hunyuan-standard</span><br><span class="line"></span><br><span class="line">    article#article-container.container.post-content</span><br><span class="line">      if theme.noticeOutdate.enable &amp;&amp; page.noticeOutdate !== false </span><br><span class="line">        include includes/post/outdate-notice.pug</span><br><span class="line">      else</span><br><span class="line">        !=page.content</span><br><span class="line">    include includes/post/post-copyright.pug</span><br><span class="line">    .tag_share</span><br><span class="line">      if (page.tags.length &gt; 0 &amp;&amp; theme.post_meta.post.tags)</span><br><span class="line">        .post-meta__tag-list</span><br><span class="line">          each item, index in page.tags.data</span><br><span class="line">            a(href=url_for(item.path)).post-meta__tags #[=item.name]</span><br><span class="line">      include includes/third-party/share/index.pug</span><br><span class="line">        </span><br><span class="line">    if theme.reward.enable &amp;&amp; theme.reward.QR_code</span><br><span class="line">      !=partial(&#x27;includes/post/reward&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br><span class="line"></span><br><span class="line">    //- ad</span><br><span class="line">    if theme.ad &amp;&amp; theme.ad.post</span><br><span class="line">      .ads-wrap!=theme.ad.post</span><br><span class="line"></span><br><span class="line">    if theme.post_pagination</span><br><span class="line">      include includes/pagination.pug</span><br><span class="line">    if theme.related_post &amp;&amp; theme.related_post.enable</span><br><span class="line">      != related_posts(page,site.posts)</span><br><span class="line"></span><br><span class="line">    if page.comments !== false &amp;&amp; theme.comments.use</span><br><span class="line">      - var commentsJsLoad = true</span><br><span class="line">      !=partial(&#x27;includes/third-party/comments/index&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br></pre></td></tr></table></figure><h2 id="添加自定义-CSS"><a href="#添加自定义-CSS" class="headerlink" title="添加自定义 CSS"></a>添加自定义 CSS</h2><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><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* =====AI 摘要基础样式===== */</span></span><br><span class="line"><span class="selector-class">.ai-summary-wrapper</span> &#123;</span><br><span class="line">  <span class="attribute">position</span>: relative;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">1.5rem</span>;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">1rem</span> <span class="number">1.2rem</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">135deg</span>, <span class="number">#f5f7fa</span> <span class="number">0%</span>, <span class="number">#c3cfe2</span> <span class="number">100%</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">2px</span> <span class="number">8px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.08</span>);</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">0.95rem</span>;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">1.6</span>;</span><br><span class="line">  <span class="attribute">font-family</span>: -apple-system, BlinkMacSystemFont, <span class="string">&quot;Segoe UI&quot;</span>, Roboto, sans-serif;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.4s</span> ease; <span class="comment">/* 过渡动画 */</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-summary-header</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">gap</span>: <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">0.6rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.mac-window-dots</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">gap</span>: <span class="number">6px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.mac-window-dots</span> <span class="selector-class">.dot</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: inline-block;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">50%</span>;</span><br><span class="line">  <span class="attribute">transition</span>: background-color <span class="number">0.3s</span> ease; <span class="comment">/* 颜色过渡 */</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.mac-window-dots</span> <span class="selector-class">.red</span> &#123; <span class="attribute">background-color</span>: <span class="number">#ff5f56</span>; &#125;</span><br><span class="line"><span class="selector-class">.mac-window-dots</span> <span class="selector-class">.yellow</span> &#123; <span class="attribute">background-color</span>: <span class="number">#ffbd2e</span>; &#125;</span><br><span class="line"><span class="selector-class">.mac-window-dots</span> <span class="selector-class">.green</span> &#123; <span class="attribute">background-color</span>: <span class="number">#27c93f</span>; &#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-source</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">0.75rem</span>;</span><br><span class="line">  <span class="attribute">color</span>: white;</span><br><span class="line">  <span class="attribute">margin-left</span>: auto;</span><br><span class="line">  <span class="attribute">white-space</span>: nowrap;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">4px</span> <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">4px</span>;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">500</span>;</span><br><span class="line">  <span class="attribute">letter-spacing</span>: <span class="number">0.5px</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">135deg</span>, <span class="number">#6e8efb</span>, <span class="number">#a777e3</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">2px</span> <span class="number">8px</span> <span class="built_in">rgba</span>(<span class="number">106</span>, <span class="number">126</span>, <span class="number">247</span>, <span class="number">0.3</span>);</span><br><span class="line">  <span class="attribute">position</span>: relative;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.4s</span> ease;</span><br><span class="line">  <span class="attribute">z-index</span>: <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-source</span><span class="selector-pseudo">::before</span> &#123;</span><br><span class="line">  <span class="attribute">content</span>: <span class="string">&quot;&quot;</span>;</span><br><span class="line">  <span class="attribute">position</span>: absolute;</span><br><span class="line">  <span class="attribute">top</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">left</span>: -<span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">90deg</span>, transparent, <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.3</span>), transparent);</span><br><span class="line">  <span class="attribute">transition</span>: <span class="number">0.6s</span>;</span><br><span class="line">  <span class="attribute">z-index</span>: -<span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-source</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">transform</span>: <span class="built_in">translateY</span>(-<span class="number">1px</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">12px</span> <span class="built_in">rgba</span>(<span class="number">106</span>, <span class="number">126</span>, <span class="number">247</span>, <span class="number">0.4</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-source</span><span class="selector-pseudo">:hover</span><span class="selector-pseudo">::before</span> &#123;</span><br><span class="line">  <span class="attribute">left</span>: <span class="number">100%</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-source</span><span class="selector-pseudo">::after</span> &#123;</span><br><span class="line">  <span class="attribute">content</span>: <span class="string">&quot;&quot;</span>;</span><br><span class="line">  <span class="attribute">position</span>: absolute;</span><br><span class="line">  <span class="attribute">top</span>: -<span class="number">50%</span>;</span><br><span class="line">  <span class="attribute">right</span>: -<span class="number">20%</span>;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">20px</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100px</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.15</span>);</span><br><span class="line">  <span class="attribute">transform</span>: <span class="built_in">rotate</span>(<span class="number">30deg</span>);</span><br><span class="line">  <span class="attribute">pointer-events</span>: none;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-summary-body</span> &#123;</span><br><span class="line">  <span class="attribute">min-height</span>: <span class="number">1.6em</span>;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">0.2rem</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-loading</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#888</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: italic;</span><br><span class="line">  <span class="attribute">transition</span>: color <span class="number">0.3s</span> ease; <span class="comment">/* 颜色过渡 */</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-text</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: none;</span><br><span class="line">  <span class="attribute">word-break</span>: break-word;</span><br><span class="line">  <span class="attribute">white-space</span>: pre-wrap;</span><br><span class="line">  <span class="attribute">min-height</span>: <span class="number">1.2em</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.ai-footer</span> &#123;</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">0.8rem</span>;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">0.7rem</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#999</span>;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">justify-content</span>: space-between;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">border-top</span>: <span class="number">1px</span> dashed <span class="number">#ddd</span>;</span><br><span class="line">  <span class="attribute">padding-top</span>: <span class="number">0.5rem</span>;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.3s</span> ease; <span class="comment">/* 过渡动画 */</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@media</span> (<span class="attribute">max-width</span>: <span class="number">768px</span>) &#123;</span><br><span class="line">  <span class="selector-class">.ai-summary-wrapper</span> &#123;</span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">0.8rem</span> <span class="number">1rem</span>;</span><br><span class="line">    <span class="attribute">font-size</span>: <span class="number">0.9rem</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="selector-class">.ai-source</span> &#123;</span><br><span class="line">    <span class="attribute">font-size</span>: <span class="number">0.65rem</span>;</span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">3px</span> <span class="number">8px</span>;</span><br><span class="line">    <span class="attribute">letter-spacing</span>: normal;</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">/* ===== Butterfly 主题黑暗模式适配 ===== */</span></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.ai-summary-wrapper</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">135deg</span>, <span class="number">#1a202c</span> <span class="number">0%</span>, <span class="number">#2d3748</span> <span class="number">100%</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">2px</span> <span class="number">12px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.4</span>);</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#e2e8f0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.ai-source</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">135deg</span>, <span class="number">#5b67d8</span>, <span class="number">#805ad5</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">2px</span> <span class="number">10px</span> <span class="built_in">rgba</span>(<span class="number">91</span>, <span class="number">103</span>, <span class="number">216</span>, <span class="number">0.5</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.ai-source</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">4px</span> <span class="number">16px</span> <span class="built_in">rgba</span>(<span class="number">91</span>, <span class="number">103</span>, <span class="number">216</span>, <span class="number">0.7</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.ai-source</span><span class="selector-pseudo">::before</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">90deg</span>, transparent, <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>), transparent);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.ai-source</span><span class="selector-pseudo">::after</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.1</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.mac-window-dots</span> <span class="selector-class">.red</span> &#123; <span class="attribute">background-color</span>: <span class="number">#fc8181</span>; &#125;</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.mac-window-dots</span> <span class="selector-class">.yellow</span> &#123; <span class="attribute">background-color</span>: <span class="number">#f6ad55</span>; &#125;</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.mac-window-dots</span> <span class="selector-class">.green</span> &#123; <span class="attribute">background-color</span>: <span class="number">#68d391</span>; &#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.ai-loading</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#a0aec0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.ai-footer</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#a0aec0</span>;</span><br><span class="line">  <span class="attribute">border-top-color</span>: <span class="number">#4a5568</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">@media</span> (<span class="attribute">prefers-color-scheme</span>: dark) &#123;</span><br><span class="line">  <span class="selector-pseudo">:root</span><span class="selector-pseudo">:not</span>(<span class="selector-attr">[data-theme=<span class="string">&quot;light&quot;</span>]</span>) <span class="selector-class">.ai-summary-wrapper</span> &#123;</span><br><span class="line">    <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">135deg</span>, <span class="number">#1a202c</span> <span class="number">0%</span>, <span class="number">#2d3748</span> <span class="number">100%</span>);</span><br><span class="line">    <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">2px</span> <span class="number">12px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.4</span>);</span><br><span class="line">    <span class="attribute">color</span>: <span class="number">#e2e8f0</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="comment">/* 其他样式与 [data-theme=&quot;dark&quot;] 相同 */</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="添加自定义-JS"><a href="#添加自定义-JS" class="headerlink" title="添加自定义 JS"></a>添加自定义 JS</h2><figure class="highlight js"><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></pre></td><td class="code"><pre><span class="line">(<span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">  <span class="comment">// 配置参数</span></span><br><span class="line">  <span class="keyword">const</span> <span class="variable constant_">DEFAULT_DELAY</span> = <span class="number">0</span>;    <span class="comment">// 默认延迟时间 (ms)</span></span><br><span class="line">  <span class="keyword">const</span> <span class="variable constant_">TYPING_SPEED</span> = <span class="number">50</span>;    <span class="comment">// 打字速度 (ms/字符)</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">// 查找所有 AI 摘要元素</span></span><br><span class="line">  <span class="keyword">const</span> aiTextElements = <span class="variable language_">document</span>.<span class="title function_">querySelectorAll</span>(<span class="string">&#x27;.ai-text&#x27;</span>);</span><br><span class="line">  </span><br><span class="line">  <span class="keyword">if</span> (!aiTextElements.<span class="property">length</span>) <span class="keyword">return</span>;</span><br><span class="line"></span><br><span class="line">  aiTextElements.<span class="title function_">forEach</span>(<span class="function"><span class="params">el</span> =&gt;</span> &#123;</span><br><span class="line">    <span class="keyword">const</span> fullText = el.<span class="property">dataset</span>.<span class="property">text</span> || <span class="string">&#x27;&#x27;</span>;</span><br><span class="line">    <span class="keyword">const</span> delay = <span class="title class_">Math</span>.<span class="title function_">max</span>(<span class="number">0</span>, <span class="built_in">parseInt</span>(el.<span class="property">dataset</span>.<span class="property">delay</span>)) || <span class="variable constant_">DEFAULT_DELAY</span>;</span><br><span class="line">    <span class="keyword">const</span> loadingEl = el.<span class="property">previousElementSibling</span>?.<span class="property">classList</span>?.<span class="title function_">contains</span>(<span class="string">&#x27;ai-loading&#x27;</span>) </span><br><span class="line">      ? el.<span class="property">previousElementSibling</span> </span><br><span class="line">      : <span class="literal">null</span>;</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 初始设置 - 确保不会产生空行</span></span><br><span class="line">    el.<span class="property">style</span>.<span class="property">display</span> = <span class="string">&#x27;none&#x27;</span>;</span><br><span class="line">    el.<span class="property">style</span>.<span class="property">overflow</span> = <span class="string">&#x27;hidden&#x27;</span>;</span><br><span class="line">    el.<span class="property">style</span>.<span class="property">borderRight</span> = <span class="string">&#x27;none&#x27;</span>;</span><br><span class="line">    el.<span class="property">style</span>.<span class="property">margin</span> = <span class="string">&#x27;0&#x27;</span>;</span><br><span class="line">    el.<span class="property">style</span>.<span class="property">padding</span> = <span class="string">&#x27;0&#x27;</span>;</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">if</span> (!fullText.<span class="title function_">trim</span>()) &#123;</span><br><span class="line">      <span class="keyword">if</span> (loadingEl) loadingEl.<span class="property">style</span>.<span class="property">display</span> = <span class="string">&#x27;none&#x27;</span>;</span><br><span class="line">      <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">const</span> <span class="title function_">showContent</span> = (<span class="params"></span>) =&gt; &#123;</span><br><span class="line">      <span class="keyword">if</span> (loadingEl) &#123;</span><br><span class="line">        <span class="comment">// 平滑过渡：先隐藏&quot;正在思考中...&quot;</span></span><br><span class="line">        loadingEl.<span class="property">style</span>.<span class="property">opacity</span> = <span class="string">&#x27;0&#x27;</span>;</span><br><span class="line">        loadingEl.<span class="property">style</span>.<span class="property">transition</span> = <span class="string">&#x27;opacity 0.2s ease&#x27;</span>;</span><br><span class="line">        </span><br><span class="line">        <span class="comment">// 在过渡完成后完全移除 loading 元素</span></span><br><span class="line">        <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">          loadingEl.<span class="property">style</span>.<span class="property">display</span> = <span class="string">&#x27;none&#x27;</span>;</span><br><span class="line">          <span class="comment">// 立即显示内容，避免出现空白期</span></span><br><span class="line">          el.<span class="property">style</span>.<span class="property">display</span> = <span class="string">&#x27;block&#x27;</span>;</span><br><span class="line">          <span class="title function_">startTyping</span>();</span><br><span class="line">        &#125;, <span class="number">200</span>);</span><br><span class="line">      &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">        el.<span class="property">style</span>.<span class="property">display</span> = <span class="string">&#x27;block&#x27;</span>;</span><br><span class="line">        <span class="title function_">startTyping</span>();</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">const</span> <span class="title function_">startTyping</span> = (<span class="params"></span>) =&gt; &#123;</span><br><span class="line">      el.<span class="property">textContent</span> = <span class="string">&#x27;&#x27;</span>;</span><br><span class="line">      <span class="keyword">let</span> i = <span class="number">0</span>;</span><br><span class="line">      <span class="keyword">const</span> <span class="title function_">printChar</span> = (<span class="params"></span>) =&gt; &#123;</span><br><span class="line">        <span class="keyword">if</span> (i &lt; fullText.<span class="property">length</span>) &#123;</span><br><span class="line">          el.<span class="property">textContent</span> += fullText.<span class="title function_">charAt</span>(i);</span><br><span class="line">          i++;</span><br><span class="line">          <span class="built_in">setTimeout</span>(printChar, <span class="variable constant_">TYPING_SPEED</span>);</span><br><span class="line">        &#125;</span><br><span class="line">      &#125;;</span><br><span class="line">      <span class="title function_">printChar</span>();</span><br><span class="line">    &#125;;</span><br><span class="line"></span><br><span class="line">    delay &lt;= <span class="number">0</span> ? <span class="built_in">setTimeout</span>(showContent, <span class="number">0</span>) : <span class="built_in">setTimeout</span>(showContent, delay);</span><br><span class="line">  &#125;);</span><br><span class="line">&#125;)();</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://blog.anxw.cn/posts/13.html</id>
    <link href="https://blog.anxw.cn/posts/13.html"/>
    <published>2025-09-02T09:50:58.000Z</published>
    <summary>自用 Hexo 插件开源分享：一键接入 AI 摘要生成，支持多模型 + 并发处理 + 主题定制，含完整配置教程与前端代码。</summary>
    <title>HEXO-AI摘要插件</title>
    <updated>2025-09-02T09:50:58.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="教程" scheme="https://blog.anxw.cn/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="教程" scheme="https://blog.anxw.cn/tags/%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="我的世界联机"><a href="#我的世界联机" class="headerlink" title="我的世界联机"></a>我的世界联机</h2><blockquote><p>可能大多数玩家都用的局域网联机或者内网穿透的方法进行联机，但是缺点：必须装相同的 mod，而且有时候延迟高并且卡顿。</p></blockquote><h2 id="本地开服联机工具"><a href="#本地开服联机工具" class="headerlink" title="本地开服联机工具"></a>本地开服联机工具</h2><p>我原来使用的是以下工具：</p><ol><li><strong>樱花内网穿透</strong>：<a href="https://www.natfrp.com/">https://www.natfrp.com</a></li><li><strong>OPL 联机工具</strong>：<a href="https://blog.gldhn.top/2024/04/22/opl_mc">使用教程</a></li><li><strong>Radmin LAN</strong>：<a href="https://forum.mczwlt.net/topic/243/%E8%81%94%E6%9C%BA%E6%95%99%E7%A8%8B-mc-java%E7%89%88-%E4%BD%BF%E7%94%A8-radmin-lan-%E8%BF%9B%E8%A1%8C%E8%BF%9C%E7%A8%8B%E8%81%94%E6%9C%BA">联机教程 - MC Java 版 使用 Radmin LAN 进行远程联机</a></li></ol><blockquote><p>人少的话联机体验还是很好的，如果人多的话就会出现卡顿。</p></blockquote><h2 id="MCSManager"><a href="#MCSManager" class="headerlink" title="MCSManager"></a>MCSManager</h2><blockquote><p>官方文档：<a href="https://docs.mcsmanager.com/zh_cn">https://docs.mcsmanager.com/zh_cn</a></p></blockquote><p>MCSManager 是一款开源、分布式、一键部署、支持 Minecraft 和 Steam 游戏服务器的控制面板。</p><p>MCSManager 在 Minecraft 和其他游戏社区内已有一定的流行程度，它可以帮助你：</p><ul><li>集中管理多个物理服务器</li><li>动态在任何主机上创建游戏服务端</li><li>提供安全可靠的多用户权限系统</li><li>轻松管理多个服务器</li></ul><h2 id="开始部署"><a href="#开始部署" class="headerlink" title="开始部署"></a>开始部署</h2><h4 id="环境要求"><a href="#环境要求" class="headerlink" title="环境要求"></a>环境要求</h4><ul><li>安装 OpenJDK 环境</li><li>镜像部署需要有 Docker 环境</li></ul><h4 id="注意事项"><a href="#注意事项" class="headerlink" title="注意事项"></a>注意事项</h4><ol><li>如果通过脚本安装 MCSManager，需要在节点页面安装镜像，并且要应用上。</li><li>如果通过 Docker 部署，则不需要手动安装 JDK 环境，直接上传核心然后启动即可。</li></ol><h4 id="部署过程"><a href="#部署过程" class="headerlink" title="部署过程"></a>部署过程</h4><p>这里我用1Panel 来管理 MCSManager（用 1Panel 来管理 MCSManager 也是不错的选择）</p><blockquote><p>如果已经安装了 1Panel，就不用另外安装 Docker 环境了，1Panel 安装过程中会自动安装 Docker 环境。<br>1Panel 的<a href="https://1panel.cn/docs/v1/installation/online_installation">安装教程</a></p></blockquote><div class="tabs"><div class="nav-tabs"><button type="button" class="tab active">Linux自动安装</button><button type="button" class="tab">Docker安装</button></div><div class="tab-contents"><div class="tab-item-content active"><p>MCSManager 的 Linux 自动安装</p><blockquote><p>因为需要注册到系统服务，一键安装脚本必须使用 <strong>root 权限</strong> 运行。</p></blockquote><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">sudo</span> su -c <span class="string">&quot;wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash&quot;</span></span><br></pre></td></tr></table></figure><p>注意事项</p><ul><li>脚本安装的面板，大概率不用手动配置节点。</li><li>如果需要手动配置节点，请参考官方文档：<a href="https://docs.mcsmanager.com/advanced/distributed.html">节点配置文档</a></li></ul></div><div class="tab-item-content"><p>1Panel 使用 Docker 部署 MCSManager</p><blockquote><p>1Panel 应用商店内有 MCSManager，但不是最新版，因此我们还是使用 Docker 来一键部署 MCSManager。</p></blockquote><p>部署步骤</p><ol><li>进入 1Panel，选择 <strong>容器</strong> → <strong>编排</strong></li><li>输入以下内容创建 <code>docker-compose.yml</code></li></ol><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></pre></td><td class="code"><pre><span class="line"><span class="comment"># docker-compose.yml</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">web:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">githubyumao/mcsmanager-web:latest</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;23333:23333&quot;</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/etc/localtime:/etc/localtime:ro</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/opt/1panel/apps/mcsm/web/data:/opt/mcsmanager/web/data</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/opt/1panel/apps/mcsm/web/logs:/opt/mcsmanager/web/logs</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">daemon:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">githubyumao/mcsmanager-daemon:latest</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;24444:24444&quot;</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">MCSM_DOCKER_WORKSPACE_PATH=/opt/1panel/apps/mcsm/daemon/data/InstanceData</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/etc/localtime:/etc/localtime:ro</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/opt/1panel/apps/mcsm/daemon/data:/opt/mcsmanager/daemon/data</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/opt/1panel/apps/mcsm/daemon/logs:/opt/mcsmanager/daemon/logs</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/var/run/docker.sock:/var/run/docker.sock</span></span><br></pre></td></tr></table></figure><p>注意事项</p><ul><li>Docker 安装的面板需要手动配置节点。</li><li>节点配置请参考官方文档：<a href="https://docs.mcsmanager.com/advanced/distributed.html">节点配置文档</a></li></ul></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><p>记得在防火墙中开放以下端口：</p><ul><li><code>23333</code>：MCSManager Web 面板端口</li><li><code>24444</code>：MCSManager 守护进程端口</li><li><code>25565</code>：Minecraft 游戏内默认端口</li></ul><p>初始设置</p><p>安装完成后打开 MCSManager，第一步设置账号和密码。然后可以跳过教程（基本没什么用）。</p><p><img src="https://anxy.qyliu.top/2025/2025-06-27/01.webp" alt="初始设置 1"><br><img src="https://anxy.qyliu.top/2025/2025-06-27/02.webp" alt="初始设置 2"><br><img src="https://anxy.qyliu.top/2025/2025-06-27/03.webp" alt="初始设置 3"></p><hr><p>配置 JDK 环境镜像</p><ol><li>打开 <strong>节点页面</strong> → <strong>镜像管理</strong> → <strong>新增镜像</strong>，下载你需要的 JDK 版本</li><li>如果列表中没有你需要的版本，点击 <strong>使用 DockerFile 自定义创建</strong></li><li>打开<strong>创建 OpenJDK 17 环境镜像</strong>复制里面的内容到<strong>使用 DockerFile 自定义创建</strong></li><li>将 Dockerfile 中的 <code>17</code> 改为 <code>21</code> 即可创建 JDK21 环境</li><li>构建完成后即可使用</li></ol><hr><p>部署 Minecraft 服务器</p><ol><li>下载服务端核心</li></ol><p>首先选择你的加载器并下载服务端 <code>.jar</code> 文件：</p><ul><li>Forge：<a href="https://files.minecraftforge.net/net/minecraftforge/forge">https://files.minecraftforge.net/net/minecraftforge/forge</a></li><li>NeoForge：<a href="https://neoforged.net/">https://neoforged.net</a></li><li>Fabric：<a href="https://fabricmc.net/use/installer">https://fabricmc.net/use/installer</a></li></ul><blockquote><p>需要下载服务端（server）的 <code>.jar</code> 结尾文件。</p></blockquote><ol start="2"><li>打开 MCSManager 的 <strong>应用实例页面</strong>，点击 <strong>新增应用</strong>（前提你得有节点存在）</li><li>选择 <strong>Minecraft Java 版游戏服务器</strong> → <strong>继续</strong></li><li>选择 <strong>上传单个服务端软件</strong>，输入实例名称</li><li>将启动命令修改为：</li></ol><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">java -server -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.country=CN -jar <span class="variable">$&#123;ProgramName&#125;</span> -installServer</span><br></pre></td></tr></table></figure><ol start="6"><li><p>上传你下载的核心文件，此时启动命令会自动发生变化</p></li><li><p>创建完成后，点击 <strong>应用实例设置</strong> → <strong>容器化</strong></p></li><li><p>启用 Docker 容器，Docker 镜像选择合适的版本（例如 <code>mcsm-custom:21</code>）</p></li><li><p>网络模式改为 <code>host</code>，保存后点击 <strong>开启启动</strong></p></li><li><p>修改启动命令</p></li></ol><p>等待实例加载完成后会自动停止。打开 <strong>文件管理</strong>，找到以下文件之一：</p><ul><li><code>minecraft_server.1.12.2.jar</code>（版本号不同显示不同）</li><li><code>run.sh</code></li></ul><p>然后打开 <strong>应用实例设置</strong>，修改启动命令：</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></pre></td><td class="code"><pre><span class="line"><span class="comment"># 如果使用 jar 文件启动</span></span><br><span class="line">java -Dfile.encoding=UTF-8 -jar minecraft_server.1.12.2.jar</span><br><span class="line"></span><br><span class="line"><span class="comment"># 如果使用 run.sh 启动</span></span><br><span class="line">bash run.sh</span><br></pre></td></tr></table></figure><blockquote><p>根据文件管理内生成的不同文件自行选择或更改为合适的命令。</p></blockquote><ol start="11"><li>同意 EULA 并启动</li></ol><p>启动命令更改完成以后再次点击 <strong>开启运行实例</strong>，观察终端输出，系统会提示你打开服务端配置文件，将 <code>eula.txt</code> 中的：</p><figure class="highlight properties"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">eula</span>=<span class="string">false</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></pre></td><td class="code"><pre><span class="line"><span class="attr">eula</span>=<span class="string">true</span></span><br></pre></td></tr></table></figure><p>然后再次运行实例，成功后会显示加载世界等绿色成功信息。</p><ol start="12"><li>非正版玩家设置</li></ol><p>如果你不是正版玩家，打开服务端配置文件 <code>server.properties</code>，修改正版验证选项：</p><figure class="highlight properties"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">online-mode</span>=<span class="string">false</span></span><br></pre></td></tr></table></figure><blockquote><p>每次修改配置后需要重新启动实例才能生效。</p></blockquote><hr><h2 id="客户端连接"><a href="#客户端连接" class="headerlink" title="客户端连接"></a>客户端连接</h2><p>前面我们放行的游戏内端口是 <code>25565</code>，使用以下格式连接：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">你的服务器IP:25565</span><br></pre></td></tr></table></figure><p>在本地使用 PCL 启动器下载对应的 Minecraft 版本和 mod 加载器即可。</p><h3 id="IPv4-端口占用问题"><a href="#IPv4-端口占用问题" class="headerlink" title="IPv4 端口占用问题"></a>IPv4 端口占用问题</h3><p>如果你的服务器没有 IPv6 只有 IPv4，可能会报错提示端口被占用无法绑定 <code>25565</code>。此时可以打开服务端配置文件 <code>server.properties</code>，将 <code>server-ip</code> 设置为：</p><figure class="highlight properties"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">server-ip</span>=<span class="string">0.0.0.0</span></span><br></pre></td></tr></table></figure><h2 id="MOD-安装"><a href="#MOD-安装" class="headerlink" title="MOD 安装"></a>MOD 安装</h2><ol><li>在 MC 百科等平台查看该 MOD 是否需要双端安装，还是仅需客户端或服务端安装</li><li>服务端 MOD 放在文件管理内根目录的 <code>mods</code> 文件夹中</li><li>重启服务即可生效</li></ol><h2 id="整合包安装"><a href="#整合包安装" class="headerlink" title="整合包安装"></a>整合包安装</h2><ol><li>找到你想玩的整合包的 <code>.zip</code> 文件</li><li>在 MCSManager 中上传整合包服务端文件 <code>.zip</code></li><li>确保压缩包内包含 <code>server.jar</code> 核心文件</li><li>修改启动命令：</li></ol><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">java -jar server.jar --installServer</span><br></pre></td></tr></table></figure><ol start="5"><li>方法同上，首次运行后找到生成的启动文件，再次修改启动命令</li></ol><blockquote><p>如果服务端整合包内有<code>run.sh</code>也可以直接运行该命令</p></blockquote><ol start="6"><li>本地需要安装版本相同的客户端整合包才可以正常游玩</li></ol><h2 id="Minecraft-支持插件的服务端核心对比"><a href="#Minecraft-支持插件的服务端核心对比" class="headerlink" title="Minecraft 支持插件的服务端核心对比"></a>Minecraft 支持插件的服务端核心对比</h2><h3 id="仅支持插件（无模组）"><a href="#仅支持插件（无模组）" class="headerlink" title="仅支持插件（无模组）"></a>仅支持插件（无模组）</h3><table><thead><tr><th>核心</th><th>插件生态</th><th>模组</th><th>性能</th><th>维护状态</th><th>一句话总结</th></tr></thead><tbody><tr><td>Paper</td><td>Bukkit&#x2F;Spigot</td><td>❌</td><td>★★★★★</td><td>活跃</td><td>生产环境首选，极致优化</td></tr><tr><td>Spigot</td><td>Bukkit&#x2F;Spigot</td><td>❌</td><td>★★★☆☆</td><td>活跃</td><td>经典稳定，生态最老</td></tr><tr><td>Purpur</td><td>Bukkit&#x2F;Spigot</td><td>❌</td><td>★★★★☆</td><td>活跃</td><td>Paper 的超集，特性自由开关</td></tr><tr><td>Pufferfish</td><td>Bukkit&#x2F;Spigot</td><td>❌</td><td>★★★★☆</td><td>活跃</td><td>高并发优化，适合大服</td></tr><tr><td>Tuinity</td><td>Bukkit&#x2F;Spigot</td><td>❌</td><td>★★★★☆</td><td>已并入 Paper</td><td>多线程优化，已停更</td></tr><tr><td>Yatopia</td><td>Bukkit&#x2F;Spigot</td><td>❌</td><td>★★★★☆</td><td>已停更</td><td>Tuinity 的再优化版</td></tr></tbody></table><hr><h3 id="插件-Forge-模组（混合端）"><a href="#插件-Forge-模组（混合端）" class="headerlink" title="插件 + Forge 模组（混合端）"></a>插件 + Forge 模组（混合端）</h3><table><thead><tr><th>核心</th><th>插件生态</th><th>模组</th><th>版本范围</th><th>维护状态</th><th>一句话总结</th></tr></thead><tbody><tr><td>Mohist</td><td>Paper&#x2F;Spigot</td><td>Forge</td><td>1.16–1.21</td><td>活跃</td><td>最主流插件+Forge 混合端</td></tr><tr><td>Arclight</td><td>Paper&#x2F;Spigot</td><td>Forge</td><td>1.19–1.21</td><td>活跃</td><td>轻量级混合端，1.20+ 推荐</td></tr><tr><td>Sponge</td><td>SpongeAPI</td><td>Forge&#x2F;Fabric</td><td>1.16+</td><td>活跃</td><td>高版本 Mod 支持，插件生态小</td></tr><tr><td>CatServer</td><td>Bukkit&#x2F;Spigot</td><td>Forge</td><td>1.12.2–1.16.5</td><td>已停更</td><td>国内早期混合端</td></tr><tr><td>KCauldron&#x2F;Thermos&#x2F;Uranium</td><td>Bukkit&#x2F;Spigot</td><td>Forge</td><td>≤1.7.10</td><td>已停更</td><td>老版本专用</td></tr></tbody></table><hr><h3 id="快速选择指南"><a href="#快速选择指南" class="headerlink" title="快速选择指南"></a>快速选择指南</h3><table><thead><tr><th>需求场景</th><th>推荐核心</th></tr></thead><tbody><tr><td>只要插件</td><td>Paper &#x2F; Purpur</td></tr><tr><td>插件 + Forge Mod</td><td>Mohist（1.16–1.21） &#x2F; Arclight（1.20+）</td></tr><tr><td>插件 + Fabric Mod</td><td>Sponge（Fabric）</td></tr></tbody></table><h3 id="下载入口"><a href="#下载入口" class="headerlink" title="下载入口"></a>下载入口</h3><ul><li><a href="https://papermc.io/downloads/paper"><strong>Paper &amp; Purpur</strong></a></li><li><a href="https://mohistmc.com/"><strong>Mohist</strong></a></li><li><a href="https://github.com/IzzelAliz/Arclight"><strong>Arclight</strong></a></li><li><a href="https://spongepowered.org/"><strong>Sponge</strong></a></li></ul><h2 id="插件服安装（皮肤插件）"><a href="#插件服安装（皮肤插件）" class="headerlink" title="插件服安装（皮肤插件）"></a>插件服安装（皮肤插件）</h2><p>如果你学会了上面的安装教程，也可以看一下插件服的安装过程</p><div class="tabs"><div class="nav-tabs"><button type="button" class="tab active">paper核心部署</button><button type="button" class="tab">forge 服务器也能支持插件</button><button type="button" class="tab">SkinsRestorer(皮肤)文档</button></div><div class="tab-contents"><div class="tab-item-content active"><p>Paper 核心安装与插件部署</p><p>安装步骤</p><ol><li>在 MCSManager 中创建实例，上传下载好的 Paper 核心文件（例如 <code>paper-1.20.4.jar</code>）</li><li>修改启动命令为安装命令：</li></ol><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">java -jar server.jar --installServer</span><br></pre></td></tr></table></figure><blockquote><p>注意：请将 <code>server.jar</code> 替换为你实际上传的核心文件名称。</p></blockquote><ol start="3"><li>点击启动，等待安装完成后实例会自动停止</li></ol><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">java -jar server.jar -nogui</span><br></pre></td></tr></table></figure><blockquote><p>注意：请将 <code>server.jar</code> 替换为实际文件名称。</p></blockquote><p>插件安装</p><p>安装完成后，打开 <strong>文件管理</strong>，你会看到根目录下多了一个 <code>plugins</code> 文件夹，这就是存放插件的地方。</p><ul><li>将下载好的 <code>.jar</code> 格式插件文件上传至 <code>plugins</code></li></ul></div><div class="tab-item-content"><p>Fabric 服务端通过模组支持 Bukkit 插件</p><blockquote><p>通过 <a href="https://cardboardpowered.org/">Cardboard</a> 模组，Fabric 服务端可以兼容运行 Bukkit&#x2F;Spigot 插件。</p></blockquote><p>下载 Fabric 服务端</p><p>访问官方页面下载对应版本的 Fabric 服务端：</p><ul><li>下载地址：<a href="https://fabricmc.net/use/server">https://fabricmc.net/use/server</a></li></ul><p>按照与 Paper 服务端相同的方式部署并运行一次，完成基础环境初始化。</p><p>安装必要模组</p><p>在文件管理中找到 <code>mods</code> 文件夹，上传以下模组文件（需下载与服务器版本对应的版本）：</p><table><thead><tr><th>模组名称</th><th>说明</th><th>下载地址</th></tr></thead><tbody><tr><td>Fabric API</td><td>大多数 Fabric Mod 的依赖模组</td><td><a href="https://www.curseforge.com/minecraft/mc-mods/fabric-api">CurseForge</a></td></tr><tr><td>Cardboard</td><td>Bukkit 插件支持模组</td><td><a href="https://cardboardpowered.org/download">Cardboard 官网</a></td></tr><tr><td>iCommon API</td><td>Cardboard 的依赖模组</td><td><a href="https://modrinth.com/mod/icommon">Modrinth</a></td></tr></tbody></table><blockquote><p>请确保所有模组版本与你的 Minecraft 服务端版本一致。</p></blockquote><p>启动后观察终端输出，当出现以下内容时：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Downloading io.papermc:paper-api:1.17-dev...</span><br></pre></td></tr></table></figure><p>请耐心等待一段时间，就可以安装插件了。<br>插件安装</p><p>依赖下载完成后，打开 <strong>文件管理</strong>，根目录下会多出一个 <code>plugins</code> 文件夹，这就是存放插件的地方。</p><ul><li>将下载好的 <code>.jar</code> 格式插件文件上传至 <code>plugins</code> 文件夹</li><li>重启服务器实例即可加载插件</li></ul><p>注意事项</p><ol><li>并非所有 Bukkit&#x2F;Spigot 插件都能在 Cardboard 上完美运行，建议先在测试环境验证兼容性</li><li>部分依赖 NMS（Net Minecraft Server）的插件可能无法正常工作</li><li>Cardboard 目前仍在开发中，高版本支持可能不够稳定，建议优先选择 1.17-1.20 版本进行测试</li><li>如果遇到插件加载失败，可查看 <code>logs</code> 文件夹中的日志文件排查问题</li></ol></div><div class="tab-item-content"><p>下载皮肤插件<a href="https://skinsrestorer.net/docs">SkinsRestorer</a>文档下载对应版本的插件放进<code>plugins</code>，然后启动就好了。<br>游戏内设置皮肤的方法使用命令 <code>/skin set  皮肤名称 </code><a href="https://namemc.com/">我的世界皮肤站点</a></p></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><h2 id="Minecraft命令"><a href="#Minecraft命令" class="headerlink" title="Minecraft命令"></a>Minecraft命令</h2><p>在MCSManager终端设置你为管理员<code>op 你的名字然</code>后你就可以在游戏内<code>/op 玩家名字</code>来给予管理员作弊权限。<br>下面是一些有趣的命令</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><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">/gamerule keepInventory <span class="literal">true</span> :开启死亡不掉落</span><br><span class="line">/op ID ：给予玩家管理员 第一次需在后台输入</span><br><span class="line">/deop ID ：卸掉玩家管理员</span><br><span class="line">/list：列出在服务器上的玩家</span><br><span class="line">/whitelist add ID : 添加服务器白名单。（前提你开启的白名单权限）</span><br><span class="line">/whitelist list : 查看服务器白名单。</span><br><span class="line">/whitelist off : 在此服务器上禁用白名单验证。</span><br><span class="line">/whitelist on : 在此服务器上启用白名单验证。</span><br><span class="line">/ban ID : 将玩家封禁</span><br><span class="line">/ban-ip : 将IP地址封禁</span><br><span class="line">/tp <span class="built_in">id</span> :传送过去</span><br><span class="line">/tp <span class="built_in">id</span> :你自己的ip :将某人传送到你身边</span><br><span class="line">/scoreboard objectives add death deathCount <span class="string">&quot;死亡次数&quot;</span>  :显示玩家死亡次数，下面的命令和这个要一起用</span><br><span class="line">/scoreboard objectives setdisplay sidebar death  :将记分对象名称为desth的记分板显示在右侧</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://blog.anxw.cn/posts/12.html</id>
    <link href="https://blog.anxw.cn/posts/12.html"/>
    <published>2025-06-27T08:13:40.000Z</published>
    <summary>用 MCSManager 搭一个私人的 Minecraft 联机服务器，支持 Docker 或脚本一键部署，不用内网穿透也能低延迟联机。</summary>
    <title>MCSManager我的世界开服教程</title>
    <updated>2025-06-27T08:13:40.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="Butterfly" scheme="https://blog.anxw.cn/categories/Butterfly/"/>
    <category term="Butterfly" scheme="https://blog.anxw.cn/tags/Butterfly/"/>
    <content>
      <![CDATA[<h2 id="引入阿里矢量图标库"><a href="#引入阿里矢量图标库" class="headerlink" title="引入阿里矢量图标库"></a>引入阿里矢量图标库</h2><p>在控制台找到对应图标的 class，然后去 Hexo 根目录查找，大部分位于：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C:\hexo\themes\butterfly\layout\includes</span><br></pre></td></tr></table></figure><p>将原有引入方式：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#x27;i.fas.fa-arrow-up&#x27;</span><br></pre></td></tr></table></figure><p>修改为 SVG 图标引入方式：</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">svg(viewBox=&#x27;0 0 1024 1024&#x27; style=&#x27;width: 1em; height: 1em; margin: 0 -1px -2px 0;&#x27;)</span><br><span class="line">  use(xlink:href=&#x27;#你的图标名称&#x27;)</span><br></pre></td></tr></table></figure><blockquote><p>如果不确定具体目录，可在控制台找到 class 后，在 VSCode 中全局搜索项目，定位类似 <code>i.fas.fa-arrow-up</code> 的代码再进行修改。<br>阿里矢量图标库（iconfont）可在项目设置中开启彩色模式，采用 symbol 方式引用即可。</p></blockquote><hr><h2 id="自定义-CSS"><a href="#自定义-CSS" class="headerlink" title="自定义 CSS"></a>自定义 CSS</h2><ol><li>在博客目录创建自定义 CSS 文件：</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hexo\themes\butterfly\source\css\anxy.css</span><br></pre></td></tr></table></figure><ol start="2"><li>在 <code>hexo\themes\butterfly\_config.yml</code> 的 <code>inject.head</code> 部分添加：</li></ol><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/anxy.css&quot;&gt;</span></span><br></pre></td></tr></table></figure><hr><h2 id="配置文章链接转数字或字母"><a href="#配置文章链接转数字或字母" class="headerlink" title="配置文章链接转数字或字母"></a>配置文章链接转数字或字母</h2><p>仓库：<a href="https://github.com/ohroy/hexo-abbrlink">hexo-abbrlink</a></p><ol><li>安装插件：</li></ol><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-abbrlink --save</span><br></pre></td></tr></table></figure><ol start="2"><li>修改站点根目录 <code>config.yml</code> 中的永久链接配置：</li></ol><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">permalink:</span> <span class="string">posts/:abbrlink.html</span></span><br><span class="line"><span class="attr">abbrlink:</span></span><br><span class="line">  <span class="attr">alg:</span> <span class="string">crc16</span>   <span class="comment"># 算法：crc16(default) 和 crc32</span></span><br><span class="line">  <span class="attr">rep:</span> <span class="string">dec</span>     <span class="comment"># 进制：dec(default) 和 hex</span></span><br></pre></td></tr></table></figure><hr><h2 id="本地搜索依赖"><a href="#本地搜索依赖" class="headerlink" title="本地搜索依赖"></a>本地搜索依赖</h2><ol><li>安装插件：</li></ol><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-search --save</span><br></pre></td></tr></table></figure><ol start="2"><li>在站点根目录 <code>config.yml</code> 添加：</li></ol><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><ol start="3"><li>Butterfly 主题最新版需在主题配置文件 <code>config.yml</code> 中找到搜索选项，改为本地搜索（主题内有详细配置说明）。</li></ol><hr><h2 id="RSS-和-Sitemap-安装"><a href="#RSS-和-Sitemap-安装" class="headerlink" title="RSS 和 Sitemap 安装"></a>RSS 和 Sitemap 安装</h2><ol><li>安装插件：</li></ol><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></pre></td><td class="code"><pre><span class="line"><span class="comment"># RSS</span></span><br><span class="line">npm install hexo-generator-feed --save</span><br><span class="line"></span><br><span class="line"><span class="comment"># Sitemap</span></span><br><span class="line">npm install hexo-generator-sitemap --save</span><br><span class="line"></span><br><span class="line"><span class="comment"># 百度 Sitemap</span></span><br><span class="line">npm install hexo-generator-baidu-sitemap --save-dev</span><br></pre></td></tr></table></figure><ol start="2"><li>在站点根目录 <code>config.yml</code> 添加以下内容：</li></ol><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></pre></td><td class="code"><pre><span class="line"><span class="comment"># Extensions</span></span><br><span class="line"><span class="comment">## Plugins: http://hexo.io/plugins/</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># RSS 订阅</span></span><br><span class="line"><span class="attr">plugins:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">hexo-generator-feed</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">hexo-generator-baidu-sitemap</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">hexo-generator-sitemap</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Feed Atom</span></span><br><span class="line"><span class="attr">feed:</span></span><br><span class="line">  <span class="attr">type:</span> <span class="string">atom</span></span><br><span class="line">  <span class="attr">path:</span> <span class="string">atom.xml</span></span><br><span class="line">  <span class="attr">limit:</span> <span class="number">20</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Baidu Sitemap</span></span><br><span class="line"><span class="attr">baidusitemap:</span></span><br><span class="line">  <span class="attr">path:</span> <span class="string">baidusitemap.xml</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Sitemap</span></span><br><span class="line"><span class="attr">sitemap:</span></span><br><span class="line">  <span class="attr">path:</span> <span class="string">sitemap.xml</span></span><br></pre></td></tr></table></figure><hr><h2 id="页脚-GitHub-徽标和计时器"><a href="#页脚-GitHub-徽标和计时器" class="headerlink" title="页脚 GitHub 徽标和计时器"></a>页脚 GitHub 徽标和计时器</h2><ol><li>安装插件：</li></ol><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-butterfly-footer-beautify --save</span><br></pre></td></tr></table></figure><ol start="2"><li>在博客根目录配置文件添加：</li></ol><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="comment"># footer_beautify</span></span><br><span class="line"><span class="comment"># 页脚计时器：[Native JS Timer](https://akilar.top/posts/b941af/)</span></span><br><span class="line"><span class="comment"># 页脚徽标：[Add Github Badge](https://akilar.top/posts/e87ad7f8/)</span></span><br><span class="line"><span class="attr">footer_beautify:</span></span><br><span class="line">  <span class="attr">enable:</span></span><br><span class="line">    <span class="attr">timer:</span> <span class="literal">true</span> <span class="comment"># 计时器开关</span></span><br><span class="line">    <span class="attr">bdage:</span> <span class="literal">true</span> <span class="comment"># 徽标开关</span></span><br><span class="line">  <span class="attr">priority:</span> <span class="number">5</span> <span class="comment"># 过滤器优先权</span></span><br><span class="line">  <span class="attr">enable_page:</span> <span class="string">all</span> <span class="comment"># 应用页面</span></span><br><span class="line">  <span class="attr">exclude:</span> <span class="comment"># 屏蔽页面</span></span><br><span class="line">    <span class="comment"># - /posts/</span></span><br><span class="line">    <span class="comment"># - /about/</span></span><br><span class="line">  <span class="attr">layout:</span> <span class="comment"># 挂载容器类型</span></span><br><span class="line">    <span class="attr">type:</span> <span class="string">id</span></span><br><span class="line">    <span class="attr">name:</span> <span class="string">footer-wrap</span></span><br><span class="line">    <span class="attr">index:</span> <span class="number">0</span></span><br><span class="line">  <span class="comment"># 计时器部分配置项</span></span><br><span class="line">  <span class="attr">runtime_js:</span> <span class="string">https://npm.elemecdn.com/hexo-butterfly-footer-beautify@1.0.0/lib/runtime.js</span></span><br><span class="line">  <span class="attr">runtime_css:</span> <span class="string">https://npm.elemecdn.com/hexo-butterfly-footer-beautify@1.0.0/lib/runtime.css</span></span><br><span class="line">  <span class="comment"># 徽标部分配置项</span></span><br><span class="line">  <span class="attr">swiperpara:</span> <span class="number">3</span> <span class="comment"># 若非 0，则开启轮播功能，每行徽标个数</span></span><br><span class="line">  <span class="attr">bdageitem:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">link:</span> <span class="string">https://hexo.io/</span> <span class="comment"># 徽标指向网站链接</span></span><br><span class="line">      <span class="attr">shields:</span> <span class="string">https://img.shields.io/badge/Frame-Hexo-blue?style=flat&amp;logo=hexo</span> <span class="comment"># 徽标 API</span></span><br><span class="line">      <span class="attr">message:</span> <span class="string">博客框架为</span> <span class="string">Hexo_v5.4.0</span> <span class="comment"># 徽标提示语</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">link:</span> <span class="string">https://butterfly.js.org/</span></span><br><span class="line">      <span class="attr">shields:</span> <span class="string">https://img.shields.io/badge/Theme-Butterfly-6513df?style=flat&amp;logo=bitdefender</span></span><br><span class="line">      <span class="attr">message:</span> <span class="string">主题版本</span> <span class="string">Butterfly_v3.8.2</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">link:</span> <span class="string">https://www.jsdelivr.com/</span></span><br><span class="line">      <span class="attr">shields:</span> <span class="string">https://img.shields.io/badge/CDN-jsDelivr-orange?style=flat&amp;logo=jsDelivr</span></span><br><span class="line">      <span class="attr">message:</span> <span class="string">本站使用</span> <span class="string">JsDelivr</span> <span class="string">为静态资源提供</span> <span class="string">CDN</span> <span class="string">加速</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">link:</span> <span class="string">https://vercel.com/</span></span><br><span class="line">      <span class="attr">shields:</span> <span class="string">https://img.shields.io/badge/Hosted-Vercel-brightgreen?style=flat&amp;logo=Vercel</span></span><br><span class="line">      <span class="attr">message:</span> <span class="string">本站采用双线部署，默认线路托管于</span> <span class="string">Vercel</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">link:</span> <span class="string">https://vercel.com/</span></span><br><span class="line">      <span class="attr">shields:</span> <span class="string">https://img.shields.io/badge/Hosted-Coding-0cedbe?style=flat&amp;logo=Codio</span></span><br><span class="line">      <span class="attr">message:</span> <span class="string">本站采用双线部署，联通线路托管于</span> <span class="string">Coding</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">link:</span> <span class="string">https://github.com/</span></span><br><span class="line">      <span class="attr">shields:</span> <span class="string">https://img.shields.io/badge/Source-Github-d021d6?style=flat&amp;logo=GitHub</span></span><br><span class="line">      <span class="attr">message:</span> <span class="string">本站项目由</span> <span class="string">Github</span> <span class="string">托管</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">link:</span> <span class="string">http://creativecommons.org/licenses/by-nc-sa/4.0/</span></span><br><span class="line">      <span class="attr">shields:</span> <span class="string">https://img.shields.io/badge/Copyright-BY--NC--SA%204.0-d42328?style=flat&amp;logo=Claris</span></span><br><span class="line">      <span class="attr">message:</span> <span class="string">本站采用知识共享署名</span> <span class="bullet">-</span> <span class="string">非商业性使用</span> <span class="bullet">-</span> <span class="string">相同方式共享</span> <span class="number">4.0</span> <span class="string">国际许可协议进行许可</span></span><br><span class="line">  <span class="attr">swiper_css:</span> <span class="string">https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper.min.css</span></span><br><span class="line">  <span class="attr">swiper_js:</span> <span class="string">https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper.min.js</span></span><br><span class="line">  <span class="attr">swiperbdage_init_js:</span> <span class="string">https://npm.elemecdn.com/hexo-butterfly-footer-beautify/lib/swiperbdage_init.min.js</span></span><br></pre></td></tr></table></figure><hr><h2 id="页面样式调节"><a href="#页面样式调节" class="headerlink" title="页面样式调节"></a>页面样式调节</h2><blockquote><p>通过 CSS 样式调节各个页面透明度、模糊度（亚克力效果）、圆角、边框样式等。</p></blockquote><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><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></pre></td><td class="code"><pre><span class="line"><span class="selector-pseudo">:root</span> &#123;</span><br><span class="line">  <span class="attr">--trans-light</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.88</span>);</span><br><span class="line">  <span class="attr">--trans-dark</span>: <span class="built_in">rgba</span>(<span class="number">25</span>, <span class="number">25</span>, <span class="number">25</span>, <span class="number">0.88</span>);</span><br><span class="line">  <span class="attr">--border-style</span>: <span class="number">1px</span> solid <span class="built_in">rgb</span>(<span class="number">169</span>, <span class="number">169</span>, <span class="number">169</span>);</span><br><span class="line">  <span class="attr">--backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">5px</span>) <span class="built_in">saturate</span>(<span class="number">150%</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="selector-id">#recent-posts</span> &gt; <span class="selector-class">.recent-post-item</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--trans-light);</span><br><span class="line">  <span class="attribute">backdrop-filter</span>: <span class="built_in">var</span>(--backdrop-filter);</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">25px</span>;</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--border-style);</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="selector-id">#aside-content</span> <span class="selector-class">.card-widget</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--trans-light);</span><br><span class="line">  <span class="attribute">backdrop-filter</span>: <span class="built_in">var</span>(--backdrop-filter);</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">18px</span>;</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--border-style);</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="selector-tag">div</span><span class="selector-id">#post</span>,</span><br><span class="line"><span class="selector-tag">div</span><span class="selector-id">#page</span>,</span><br><span class="line"><span class="selector-tag">div</span><span class="selector-id">#archive</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--trans-light);</span><br><span class="line">  <span class="attribute">backdrop-filter</span>: <span class="built_in">var</span>(--backdrop-filter);</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--border-style);</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">20px</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="selector-id">#page-header</span><span class="selector-class">.nav-fixed</span> <span class="selector-id">#nav</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.75</span>);</span><br><span class="line">  <span class="attribute">backdrop-filter</span>: <span class="built_in">var</span>(--backdrop-filter);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#page-header</span><span class="selector-class">.nav-fixed</span> <span class="selector-id">#nav</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.7</span>) <span class="meta">!important</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="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#recent-posts</span> &gt; <span class="selector-class">.recent-post-item</span>,</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#aside-content</span> <span class="selector-class">.card-widget</span>,</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-tag">div</span><span class="selector-id">#post</span>,</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-tag">div</span><span class="selector-id">#archive</span>,</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-tag">div</span><span class="selector-id">#page</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--trans-dark);</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="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#footer</span><span class="selector-pseudo">::before</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: transparent <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#page-header</span><span class="selector-pseudo">::before</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: transparent <span class="meta">!important</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="selector-class">.read-mode</span> <span class="selector-id">#aside-content</span> <span class="selector-class">.card-widget</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">158</span>, <span class="number">204</span>, <span class="number">171</span>, <span class="number">0.5</span>) <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.read-mode</span> <span class="selector-tag">div</span><span class="selector-id">#post</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">158</span>, <span class="number">204</span>, <span class="number">171</span>, <span class="number">0.5</span>) <span class="meta">!important</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="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.read-mode</span> <span class="selector-id">#aside-content</span> <span class="selector-class">.card-widget</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">25</span>, <span class="number">25</span>, <span class="number">25</span>, <span class="number">0.9</span>) <span class="meta">!important</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#ffffff</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.read-mode</span> <span class="selector-tag">div</span><span class="selector-id">#post</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">rgba</span>(<span class="number">25</span>, <span class="number">25</span>, <span class="number">25</span>, <span class="number">0.9</span>) <span class="meta">!important</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#ffffff</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><hr><h2 id="个人卡片背景"><a href="#个人卡片背景" class="headerlink" title="个人卡片背景"></a>个人卡片背景</h2><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><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></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 个人信息卡片背景图 */</span></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;light&quot;</span>]</span> <span class="selector-id">#aside-content</span> &gt; <span class="selector-class">.card-widget</span><span class="selector-class">.card-info</span> &#123;</span><br><span class="line">    <span class="attribute">background-image</span>: <span class="built_in">url</span>(<span class="string">https://s11.ax1x.com/2023/05/02/p9GWEin.jpg</span>);</span><br><span class="line">    <span class="attribute">background-repeat</span>: no-repeat;</span><br><span class="line">    <span class="attribute">background-attachment</span>: inherit;</span><br><span class="line">    <span class="attribute">background-size</span>: <span class="number">100%</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#aside-content</span> &gt; <span class="selector-class">.card-widget</span><span class="selector-class">.card-info</span> &#123;</span><br><span class="line">    <span class="attribute">background-image</span>: <span class="built_in">url</span>(<span class="string">https://s11.ax1x.com/2023/05/02/p9GWVGq.jpg</span>);</span><br><span class="line">    <span class="attribute">background-repeat</span>: no-repeat;</span><br><span class="line">    <span class="attribute">background-attachment</span>: inherit;</span><br><span class="line">    <span class="attribute">background-size</span>: <span class="number">100%</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><hr><h2 id="侧边栏分类栏调整"><a href="#侧边栏分类栏调整" class="headerlink" title="侧边栏分类栏调整"></a>侧边栏分类栏调整</h2><ol><li>修改 <code>[blogRoot]/themes/butterfly/scripts/helpers/aside_categories.js</code> 第 58 行：</li></ol><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">result += <span class="string">`&lt;span class=&quot;card-category-list-count&quot;&gt;<span class="subst">$&#123;cat.length&#125;</span> 篇&lt;/span&gt;`</span></span><br></pre></td></tr></table></figure><ol start="2"><li>修改 <code>[blogRoot]/themes/butterfly/scripts/helpers/aside_archives.js</code> 第 92 行：</li></ol><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">result += <span class="string">`&lt;span class=&quot;card-archive-list-count&quot;&gt;<span class="subst">$&#123;item.count&#125;</span> 篇&lt;/span&gt;`</span></span><br></pre></td></tr></table></figure><ol start="3"><li>添加自定义 CSS：</li></ol><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><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></pre></td><td class="code"><pre><span class="line"><span class="selector-id">#aside-content</span> <span class="selector-class">.card-archives</span> <span class="selector-tag">ul</span><span class="selector-class">.card-archive-list</span>, <span class="selector-id">#aside-content</span> <span class="selector-class">.card-categories</span> <span class="selector-tag">ul</span><span class="selector-class">.card-category-list</span> &#123;</span><br><span class="line">    <span class="attribute">display</span>: -webkit-box;</span><br><span class="line">    <span class="attribute">display</span>: -moz-box;</span><br><span class="line">    <span class="attribute">display</span>: -webkit-flex;</span><br><span class="line">    <span class="attribute">display</span>: -ms-flexbox;</span><br><span class="line">    <span class="attribute">display</span>: box;</span><br><span class="line">    <span class="attribute">display</span>: flex;</span><br><span class="line">    -webkit-<span class="attribute">box-lines</span>: multiple;</span><br><span class="line">    -moz-<span class="attribute">box-lines</span>: multiple;</span><br><span class="line">    -o-<span class="attribute">box-lines</span>: multiple;</span><br><span class="line">    -webkit-<span class="attribute">flex-wrap</span>: wrap;</span><br><span class="line">    -ms-<span class="attribute">flex-wrap</span>: wrap;</span><br><span class="line">    <span class="attribute">flex-wrap</span>: wrap;</span><br><span class="line">    -webkit-<span class="attribute">box-pack</span>: justify;</span><br><span class="line">    -moz-<span class="attribute">box-pack</span>: justify;</span><br><span class="line">    -o-<span class="attribute">box-pack</span>: justify;</span><br><span class="line">    -ms-<span class="attribute">flex</span>-pack: justify;</span><br><span class="line">    -webkit-<span class="attribute">justify-content</span>: space-between;</span><br><span class="line">    <span class="attribute">justify-content</span>: space-between;</span><br><span class="line">    -webkit-<span class="attribute">box-pack</span>: justify;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#aside-content</span> <span class="selector-class">.card-archives</span> <span class="selector-tag">ul</span><span class="selector-class">.card-archive-list</span> &gt; <span class="selector-class">.card-archive-list-item</span>, <span class="selector-id">#aside-content</span> <span class="selector-class">.card-categories</span> <span class="selector-tag">ul</span><span class="selector-class">.card-category-list</span> &gt; <span class="selector-class">.card-category-list-item</span> &#123;</span><br><span class="line">    <span class="attribute">width</span>: <span class="number">48%</span>;</span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">3px</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#aside-content</span> <span class="selector-class">.card-archives</span> <span class="selector-tag">ul</span><span class="selector-class">.card-archive-list</span> &gt; <span class="selector-class">.card-archive-list-item</span> <span class="selector-tag">a</span>, <span class="selector-id">#aside-content</span> <span class="selector-class">.card-categories</span> <span class="selector-tag">ul</span><span class="selector-class">.card-category-list</span> &gt; <span class="selector-class">.card-category-list-item</span> <span class="selector-tag">a</span> &#123;</span><br><span class="line">    <span class="attribute">display</span>: -webkit-box;</span><br><span class="line">    <span class="attribute">display</span>: -moz-box;</span><br><span class="line">    <span class="attribute">display</span>: -webkit-flex;</span><br><span class="line">    <span class="attribute">display</span>: -ms-flexbox;</span><br><span class="line">    <span class="attribute">display</span>: box;</span><br><span class="line">    <span class="attribute">display</span>: flex;</span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">3px</span> <span class="number">10px</span>;</span><br><span class="line">    -webkit-<span class="attribute">box-orient</span>: vertical;</span><br><span class="line">    -moz-<span class="attribute">box-orient</span>: vertical;</span><br><span class="line">    -o-<span class="attribute">box-orient</span>: vertical;</span><br><span class="line">    -webkit-<span class="attribute">flex-direction</span>: column;</span><br><span class="line">    -ms-<span class="attribute">flex-direction</span>: column;</span><br><span class="line">    <span class="attribute">flex-direction</span>: column;</span><br><span class="line">    <span class="attribute">color</span>: <span class="built_in">var</span>(--font-color);</span><br><span class="line">    -webkit-<span class="attribute">transition</span>: all <span class="number">0.4s</span>;</span><br><span class="line">    -moz-<span class="attribute">transition</span>: all <span class="number">0.4s</span>;</span><br><span class="line">    -o-<span class="attribute">transition</span>: all <span class="number">0.4s</span>;</span><br><span class="line">    -ms-<span class="attribute">transition</span>: all <span class="number">0.4s</span>;</span><br><span class="line">    <span class="attribute">transition</span>: all <span class="number">0.4s</span>;</span><br><span class="line">    <span class="attribute">border</span>: <span class="number">1px</span> solid <span class="number">#cbcbcb</span>;</span><br><span class="line">    <span class="attribute">border-radius</span>: <span class="number">6px</span>;</span><br><span class="line">    -webkit-<span class="attribute">box-orient</span>: vertical;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 侧边栏分类（标签）样式调整 */</span></span><br></pre></td></tr></table></figure><hr><h2 id="资讯-文章数目（删除）"><a href="#资讯-文章数目（删除）" class="headerlink" title="资讯 - 文章数目（删除）"></a>资讯 - 文章数目（删除）</h2><blockquote><p>此模块与作者卡片内容重复，建议删除以保持简洁。</p></blockquote><p>删除 <code>[blogRoot]/themes/butterfly/layout/includes/widget/card_webinfo.pug</code> 第 7-10 行内容：</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></pre></td><td class="code"><pre><span class="line">    ···</span><br><span class="line"></span><br><span class="line">      span= _p(&#x27;aside.card_webinfo.headline&#x27;)</span><br><span class="line">    .webinfo</span><br><span class="line">-      if theme.aside.card_webinfo.post_count</span><br><span class="line">-        .webinfo-item</span><br><span class="line">-          .item-name= _p(&#x27;aside.card_webinfo.article_name&#x27;) + &quot; :&quot;</span><br><span class="line">-          .item-count= site.posts.length</span><br><span class="line">      if theme.runtimeshow.enable</span><br><span class="line">        .webinfo-item</span><br><span class="line"></span><br><span class="line">    ···</span><br></pre></td></tr></table></figure><blockquote><p>作者：亦小封<br>链接：<a href="https://meuicat.com/posts/73a5ae75.html">https://meuicat.com/posts/73a5ae75.html</a><br>来源：爱吃肉的猫<br>著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。</p></blockquote><hr><h2 id="渐变色版权美化（店长-微调）"><a href="#渐变色版权美化（店长-微调）" class="headerlink" title="渐变色版权美化（店长 + 微调）"></a>渐变色版权美化（店长 + 微调）</h2><blockquote><p>参考：<a href="https://www.fomal.cc/posts/5389e93f.html">Fomalhaut</a></p></blockquote><h3 id="修改-post-copyright-pug"><a href="#修改-post-copyright-pug" class="headerlink" title="修改 post-copyright.pug"></a>修改 post-copyright.pug</h3><p>修改文件：<code>[BlogRoot]\themes\butterfly\layout\includes\post\post-copyright.pug</code></p><p>直接复制以下内容替换原文件内容。此处多次用到了三元运算符作为默认项设置，在确保有主题配置文件的默认项的情况下，也可以在相应文章的 front-matter 中重新定义作者、原文链接、开源许可协议等内容。</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><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></pre></td><td class="code"><pre><span class="line">if theme.post_copyright.enable &amp;&amp; page.copyright !== false</span><br><span class="line">  - let author = page.copyright_author ? page.copyright_author : config.author</span><br><span class="line">  - let url = page.copyright_url ? page.copyright_url : page.permalink</span><br><span class="line">  - let license = page.license ? page.license : theme.post_copyright.license</span><br><span class="line">  - let license_url = page.license_url ? page.license_url : theme.post_copyright.license_url</span><br><span class="line">  .post-copyright</span><br><span class="line">    .post-copyright__title</span><br><span class="line">      span.post-copyright-info</span><br><span class="line">        h #[=page.title]</span><br><span class="line">    .post-copyright__type</span><br><span class="line">      span.post-copyright-info</span><br><span class="line">        a(href=url_for(url))= theme.post_copyright.decode ? decodeURI(url) : url</span><br><span class="line">    .post-copyright-m</span><br><span class="line">      .post-copyright-m-info</span><br><span class="line">        .post-copyright-a</span><br><span class="line">            h 作者</span><br><span class="line">            .post-copyright-cc-info</span><br><span class="line">                h=author</span><br><span class="line">        .post-copyright-c</span><br><span class="line">            h 发布于</span><br><span class="line">            .post-copyright-cc-info</span><br><span class="line">                h=date(page.date, config.date_format)</span><br><span class="line">        .post-copyright-u</span><br><span class="line">            h 更新于</span><br><span class="line">            .post-copyright-cc-info</span><br><span class="line">                h=date(page.updated, config.date_format)</span><br><span class="line">        .post-copyright-c</span><br><span class="line">            h 许可协议</span><br><span class="line">            .post-copyright-cc-info</span><br><span class="line">                a.icon(rel=&#x27;noopener&#x27; target=&#x27;_blank&#x27; title=&#x27;Creative Commons&#x27; href=&#x27;https://creativecommons.org/&#x27;)</span><br><span class="line">                  i.fab.fa-creative-commons</span><br><span class="line">                a(rel=&#x27;noopener&#x27; target=&#x27;_blank&#x27; title=license href=url_for(license_url))=license</span><br></pre></td></tr></table></figure><h3 id="修改-post-styl"><a href="#修改-post-styl" class="headerlink" title="修改 post.styl"></a>修改 post.styl</h3><p>修改文件：<code>[BlogRoot]\themes\butterfly\source\css\_layout\post.styl</code></p><p>直接复制以下内容替换原文件，这个文件就是自己调节样式的。其中，184 行是白天模式的背景色，这里默认是我网站的渐变色，大家可以根据自己的喜好调节；253 行是夜间模式的发光光圈颜色，大家也可以自行替换成自己喜欢的颜色：</p><figure class="highlight stylus"><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="title">beautify</span><span class="params">()</span></span></span><br><span class="line">  <span class="built_in">headStyle</span>(fontsize)</span><br><span class="line">    <span class="attribute">padding-left</span>: <span class="built_in">unit</span>(fontsize + <span class="number">12</span>, <span class="string">&#x27;px&#x27;</span>)</span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:before</span></span><br><span class="line">      <span class="attribute">margin-left</span>: <span class="built_in">unit</span>((<span class="built_in">-</span>(fontsize + <span class="number">6</span>)), <span class="string">&#x27;px&#x27;</span>)</span><br><span class="line">      <span class="attribute">font-size</span>: <span class="built_in">unit</span>(fontsize, <span class="string">&#x27;px&#x27;</span>)</span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">      <span class="attribute">padding-left</span>: <span class="built_in">unit</span>(fontsize + <span class="number">18</span>, <span class="string">&#x27;px&#x27;</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">h1</span>,</span><br><span class="line">  <span class="selector-tag">h2</span>,</span><br><span class="line">  <span class="selector-tag">h3</span>,</span><br><span class="line">  <span class="selector-tag">h4</span>,</span><br><span class="line">  <span class="selector-tag">h5</span>,</span><br><span class="line">  <span class="selector-tag">h6</span></span><br><span class="line">    <span class="attribute">transition</span>: all .<span class="number">2s</span> ease-out</span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:before</span></span><br><span class="line">      <span class="attribute">position</span>: absolute</span><br><span class="line">      <span class="attribute">top</span>: <span class="built_in">calc</span>(<span class="number">50%</span> - <span class="number">7px</span>)</span><br><span class="line">      <span class="attribute">color</span>: <span class="variable">$title</span>-prefix-icon-color</span><br><span class="line">      <span class="attribute">content</span>: <span class="variable">$title</span>-prefix-icon</span><br><span class="line">      <span class="attribute">line-height</span>: <span class="number">1</span></span><br><span class="line">      <span class="attribute">transition</span>: all .<span class="number">2s</span> ease-out</span><br><span class="line">      <span class="keyword">@extend</span> <span class="selector-class">.fontawesomeIcon</span></span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">      <span class="selector-pseudo">&amp;:before</span></span><br><span class="line">        <span class="attribute">color</span>: <span class="variable">$light</span>-blue</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">h1</span></span><br><span class="line">    <span class="built_in">headStyle</span>(<span class="number">20</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">h2</span></span><br><span class="line">    <span class="built_in">headStyle</span>(<span class="number">18</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">h3</span></span><br><span class="line">    <span class="built_in">headStyle</span>(<span class="number">16</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">h4</span></span><br><span class="line">    <span class="built_in">headStyle</span>(<span class="number">14</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">h5</span></span><br><span class="line">    <span class="built_in">headStyle</span>(<span class="number">12</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">h6</span></span><br><span class="line">    <span class="built_in">headStyle</span>(<span class="number">12</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">ol</span>,</span><br><span class="line">  <span class="selector-tag">ul</span></span><br><span class="line">    <span class="selector-tag">p</span></span><br><span class="line">      <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">8px</span></span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">li</span></span><br><span class="line">    <span class="selector-pseudo">&amp;::marker</span></span><br><span class="line">      <span class="attribute">color</span>: <span class="variable">$light</span>-blue</span><br><span class="line">      <span class="attribute">font-weight</span>: <span class="number">600</span></span><br><span class="line">      <span class="attribute">font-size</span>: <span class="number">1.05em</span></span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">      <span class="selector-pseudo">&amp;::marker</span></span><br><span class="line">        <span class="attribute">color</span>: <span class="built_in">var</span>(--pseudo-hover)</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">ul</span> &gt; <span class="selector-tag">li</span></span><br><span class="line">    <span class="attribute">list-style-type</span>: circle</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#article-container</span></span><br><span class="line">  <span class="attribute">word-wrap</span>: break-word</span><br><span class="line">  <span class="attribute">overflow-wrap</span>: break-word</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">a</span></span><br><span class="line">    <span class="attribute">color</span>: <span class="variable">$theme</span>-link-color</span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">      <span class="attribute">text-decoration</span>: underline</span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">img</span></span><br><span class="line">    <span class="attribute">display</span>: block</span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">0</span> auto <span class="number">20px</span></span><br><span class="line">    <span class="attribute">max-width</span>: <span class="number">100%</span></span><br><span class="line">    <span class="attribute">transition</span>: filter <span class="number">375ms</span> ease-in .<span class="number">2s</span></span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">p</span></span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">16px</span></span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">iframe</span></span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">20px</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> <span class="built_in">hexo-config</span>(<span class="string">&#x27;anchor&#x27;</span>)</span><br><span class="line">    <span class="selector-tag">a</span><span class="selector-class">.headerlink</span></span><br><span class="line">      <span class="selector-pseudo">&amp;:after</span></span><br><span class="line">        <span class="keyword">@extend</span> <span class="selector-class">.fontawesomeIcon</span></span><br><span class="line">        <span class="attribute">float</span>: right</span><br><span class="line">        <span class="attribute">color</span>: <span class="built_in">var</span>(--headline-presudo)</span><br><span class="line">        <span class="attribute">content</span>: <span class="string">&#x27;\f0c1&#x27;</span></span><br><span class="line">        <span class="attribute">font-size</span>: .<span class="number">95em</span></span><br><span class="line">        <span class="attribute">opacity</span>: <span class="number">0</span></span><br><span class="line">        <span class="attribute">transition</span>: all .<span class="number">3s</span></span><br><span class="line"></span><br><span class="line">      <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">        <span class="selector-pseudo">&amp;:after</span></span><br><span class="line">          <span class="attribute">color</span>: <span class="built_in">var</span>(--pseudo-hover)</span><br><span class="line"></span><br><span class="line">    <span class="selector-tag">h1</span>,</span><br><span class="line">    <span class="selector-tag">h2</span>,</span><br><span class="line">    <span class="selector-tag">h3</span>,</span><br><span class="line">    <span class="selector-tag">h4</span>,</span><br><span class="line">    <span class="selector-tag">h5</span>,</span><br><span class="line">    <span class="selector-tag">h6</span></span><br><span class="line">      <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">        <span class="selector-tag">a</span><span class="selector-class">.headerlink</span></span><br><span class="line">          <span class="selector-pseudo">&amp;:after</span></span><br><span class="line">            <span class="attribute">opacity</span>: <span class="number">1</span></span><br><span class="line"></span><br><span class="line">  <span class="selector-tag">ol</span>,</span><br><span class="line">  <span class="selector-tag">ul</span></span><br><span class="line">    <span class="selector-tag">ol</span>,</span><br><span class="line">    <span class="selector-tag">ul</span></span><br><span class="line">      <span class="attribute">padding-left</span>: <span class="number">20px</span></span><br><span class="line"></span><br><span class="line">    <span class="selector-tag">li</span></span><br><span class="line">      <span class="attribute">margin</span>: <span class="number">4px</span> <span class="number">0</span></span><br><span class="line"></span><br><span class="line">    <span class="selector-tag">p</span></span><br><span class="line">      <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">8px</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> <span class="built_in">hexo-config</span>(<span class="string">&#x27;beautify.enable&#x27;</span>)</span><br><span class="line">    <span class="keyword">if</span> <span class="built_in">hexo-config</span>(<span class="string">&#x27;beautify.field&#x27;</span>) == <span class="string">&#x27;site&#x27;</span></span><br><span class="line">      <span class="built_in">beautify</span>()</span><br><span class="line">    <span class="keyword">else</span> <span class="keyword">if</span> <span class="built_in">hexo-config</span>(<span class="string">&#x27;beautify.field&#x27;</span>) == <span class="string">&#x27;post&#x27;</span></span><br><span class="line">      &amp;<span class="selector-class">.post-content</span></span><br><span class="line">        <span class="built_in">beautify</span>()</span><br><span class="line"></span><br><span class="line">  &gt; <span class="selector-pseudo">:last-child</span></span><br><span class="line">    <span class="attribute">margin-bottom</span>: <span class="number">0</span> <span class="meta">!important</span></span><br><span class="line"></span><br><span class="line"><span class="selector-id">#post</span></span><br><span class="line">  <span class="selector-class">.tag_share</span></span><br><span class="line">    <span class="selector-class">.post-meta</span></span><br><span class="line">      &amp;__tag-list</span><br><span class="line">        <span class="attribute">display</span>: inline-block</span><br><span class="line"></span><br><span class="line">      &amp;__tags</span><br><span class="line">        <span class="attribute">display</span>: inline-block</span><br><span class="line">        <span class="attribute">margin</span>: <span class="number">8px</span> <span class="number">8px</span> <span class="number">8px</span> <span class="number">0</span></span><br><span class="line">        <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">12px</span></span><br><span class="line">        <span class="attribute">width</span>: fit-content</span><br><span class="line">        <span class="attribute">border</span>: <span class="number">1px</span> solid <span class="variable">$light</span>-blue</span><br><span class="line">        <span class="attribute">border-radius</span>: <span class="number">12px</span></span><br><span class="line">        <span class="attribute">color</span>: <span class="variable">$light</span>-blue</span><br><span class="line">        <span class="attribute">font-size</span>: .<span class="number">85em</span></span><br><span class="line">        <span class="attribute">transition</span>: all .<span class="number">2s</span> ease-in-out</span><br><span class="line"></span><br><span class="line">        <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">          <span class="attribute">background</span>: <span class="variable">$light</span>-blue</span><br><span class="line">          <span class="attribute">color</span>: <span class="built_in">var</span>(--white)</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.post_share</span></span><br><span class="line">      <span class="attribute">display</span>: inline-block</span><br><span class="line">      <span class="attribute">float</span>: right</span><br><span class="line">      <span class="attribute">margin</span>: <span class="number">8px</span> <span class="number">0</span></span><br><span class="line">      <span class="attribute">width</span>: fit-content</span><br><span class="line"></span><br><span class="line">      <span class="selector-class">.social-share</span></span><br><span class="line">        <span class="attribute">font-size</span>: .<span class="number">85em</span></span><br><span class="line"></span><br><span class="line">        <span class="selector-class">.social-share-icon</span></span><br><span class="line">          <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">4px</span></span><br><span class="line">          <span class="attribute">width</span>: w = <span class="number">1.85em</span></span><br><span class="line">          <span class="attribute">height</span>: w</span><br><span class="line">          <span class="attribute">font-size</span>: <span class="number">1.2em</span></span><br><span class="line">          <span class="attribute">line-height</span>: w</span><br><span class="line"></span><br><span class="line">  <span class="selector-class">.post-copyright</span></span><br><span class="line">    <span class="attribute">position</span>: relative</span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">40px</span> <span class="number">0</span> <span class="number">10px</span></span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">10px</span> <span class="number">16px</span></span><br><span class="line">    <span class="attribute">border</span>: <span class="number">1px</span> solid <span class="built_in">var</span>(--light-grey)</span><br><span class="line">    <span class="attribute">transition</span>: box-shadow .<span class="number">3s</span> ease-in-out</span><br><span class="line">    <span class="attribute">overflow</span>: hidden</span><br><span class="line">    <span class="attribute">border-radius</span>: <span class="number">12px</span><span class="meta">!important</span></span><br><span class="line">    <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">45deg</span>, <span class="number">#f6d8f5</span>, <span class="number">#c2f1f0</span>, <span class="number">#f0debf</span>);</span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:before</span></span><br><span class="line">      <span class="attribute">background</span> <span class="built_in">var</span>(--heo-post-blockquote-bg)</span><br><span class="line">      <span class="attribute">position</span> absolute</span><br><span class="line">      <span class="attribute">right</span> -<span class="number">26px</span></span><br><span class="line">      <span class="attribute">top</span> -<span class="number">120px</span></span><br><span class="line">      <span class="attribute">content</span> <span class="string">&#x27;\f25e&#x27;</span></span><br><span class="line">      <span class="attribute">font-size</span> <span class="number">200px</span></span><br><span class="line">      <span class="attribute">font-family</span> <span class="string">&#x27;Font Awesome 5 Brands&#x27;</span></span><br><span class="line">      <span class="attribute">opacity</span> .<span class="number">2</span></span><br><span class="line"></span><br><span class="line">    <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">      <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">8px</span> <span class="number">0</span> <span class="built_in">rgba</span>(<span class="number">232</span>, <span class="number">237</span>, <span class="number">250</span>, .<span class="number">6</span>), <span class="number">0</span> <span class="number">2px</span> <span class="number">4px</span> <span class="number">0</span> <span class="built_in">rgba</span>(<span class="number">232</span>, <span class="number">237</span>, <span class="number">250</span>, .<span class="number">5</span>)</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.post-copyright</span></span><br><span class="line">      &amp;-meta</span><br><span class="line">        <span class="attribute">color</span>: <span class="variable">$light</span>-blue</span><br><span class="line">        <span class="attribute">font-weight</span>: bold</span><br><span class="line"></span><br><span class="line">      &amp;-info</span><br><span class="line">        <span class="attribute">padding-left</span>: <span class="number">6px</span></span><br><span class="line"></span><br><span class="line">        <span class="selector-tag">a</span></span><br><span class="line">          <span class="attribute">text-decoration</span>: none</span><br><span class="line">          <span class="attribute">word-break</span>: break-word</span><br><span class="line"></span><br><span class="line">          <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">            <span class="attribute">text-decoration</span>: none</span><br><span class="line"></span><br><span class="line">  <span class="selector-class">.post-copyright-cc-info</span></span><br><span class="line">    <span class="attribute">color</span>: <span class="variable">$theme</span>-color;</span><br><span class="line"></span><br><span class="line">  <span class="selector-class">.post-outdate-notice</span></span><br><span class="line">    <span class="attribute">position</span>: relative</span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">20px</span></span><br><span class="line">    <span class="attribute">padding</span>: .<span class="number">5em</span> <span class="number">1.2em</span></span><br><span class="line">    <span class="attribute">border-radius</span>: <span class="number">3px</span></span><br><span class="line">    <span class="attribute">background-color</span>: <span class="variable">$noticeOutdate</span>-bg</span><br><span class="line">    <span class="attribute">color</span>: <span class="variable">$noticeOutdate</span>-color</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span> <span class="built_in">hexo-config</span>(<span class="string">&#x27;noticeOutdate.style&#x27;</span>) == <span class="string">&#x27;flat&#x27;</span></span><br><span class="line">      <span class="attribute">padding</span>: .<span class="number">5em</span> <span class="number">1em</span> .<span class="number">5em</span> <span class="number">2.6em</span></span><br><span class="line">      <span class="attribute">border-left</span>: <span class="number">5px</span> solid <span class="variable">$noticeOutdate</span>-border</span><br><span class="line"></span><br><span class="line">      <span class="selector-pseudo">&amp;:before</span></span><br><span class="line">        <span class="keyword">@extend</span> <span class="selector-class">.fontawesomeIcon</span></span><br><span class="line">        <span class="attribute">position</span>: absolute</span><br><span class="line">        <span class="attribute">top</span>: <span class="number">50%</span></span><br><span class="line">        <span class="attribute">left</span>: .<span class="number">9em</span></span><br><span class="line">        <span class="attribute">color</span>: <span class="variable">$noticeOutdate</span>-border</span><br><span class="line">        <span class="attribute">content</span>: <span class="string">&#x27;\f071&#x27;</span></span><br><span class="line">        <span class="attribute">transform</span>: <span class="built_in">translateY</span>(-<span class="number">50%</span>)</span><br><span class="line"></span><br><span class="line">  <span class="selector-class">.ads-wrap</span></span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">40px</span> <span class="number">0</span></span><br><span class="line"><span class="selector-class">.post-copyright-m-info</span></span><br><span class="line">  <span class="selector-class">.post-copyright-a</span>,</span><br><span class="line">  <span class="selector-class">.post-copyright-c</span>,</span><br><span class="line">  <span class="selector-class">.post-copyright-u</span></span><br><span class="line">    <span class="attribute">display</span> inline-block</span><br><span class="line">    <span class="attribute">width</span> fit-content</span><br><span class="line">    <span class="attribute">padding</span> <span class="number">2px</span> <span class="number">5px</span></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span></span><br><span class="line">  <span class="selector-id">#post</span></span><br><span class="line">    <span class="selector-class">.post-copyright</span></span><br><span class="line">      <span class="attribute">background</span> <span class="number">#07080a</span></span><br><span class="line">      <span class="attribute">text-shadow</span> <span class="number">#bfbeb8</span> <span class="number">0</span> <span class="number">0</span> <span class="number">2px</span></span><br><span class="line">      <span class="attribute">border</span> <span class="number">1px</span> solid <span class="built_in">rgb</span>(<span class="number">19</span> <span class="number">18</span> <span class="number">18</span> / <span class="number">35%</span>)</span><br><span class="line">      <span class="attribute">box-shadow</span> <span class="number">0</span> <span class="number">0</span> <span class="number">5px</span> <span class="built_in">var</span>(--theme-color)</span><br><span class="line">      <span class="attribute">animation</span> flashlight <span class="number">1s</span> linear infinite alternate</span><br><span class="line">  <span class="selector-class">.post-copyright-info</span></span><br><span class="line">    <span class="attribute">color</span> <span class="number">#e0e0e4</span></span><br><span class="line"></span><br><span class="line"><span class="selector-id">#post</span></span><br><span class="line">  <span class="selector-class">.post-copyright__title</span></span><br><span class="line">    <span class="attribute">font-size</span> <span class="number">22px</span></span><br><span class="line">  <span class="selector-class">.post-copyright__notice</span></span><br><span class="line">    <span class="attribute">font-size</span> <span class="number">15px</span></span><br><span class="line">  <span class="selector-class">.post-copyright</span></span><br><span class="line">    <span class="attribute">box-shadow</span> <span class="number">2px</span> <span class="number">2px</span> <span class="number">5px</span></span><br></pre></td></tr></table></figure><h3 id="默认项的配置"><a href="#默认项的配置" class="headerlink" title="默认项的配置"></a>默认项的配置</h3><p><strong>作者</strong>：<code>[BlogRoot]\_config.yml</code> 中的 <code>author</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></pre></td><td class="code"><pre><span class="line"><span class="comment"># Site</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">Akilar</span> <span class="string">の糖果屋</span></span><br><span class="line"><span class="attr">subtitle:</span> <span class="string">Akilar.top</span></span><br><span class="line"><span class="attr">description:</span></span><br><span class="line"><span class="attr">keywords:</span></span><br><span class="line"><span class="attr">author:</span> <span class="string">Akilar</span> <span class="comment"># 默认作者</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">&#x27;&#x27;</span></span><br></pre></td></tr></table></figure><p><strong>许可协议</strong>：<code>[BlogRoot]\_config.butterfly.yml</code> 中的 <code>license</code> 和 <code>license_url</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">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">true</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><h3 id="页面覆写配置项，修改对应文章的-front-matter"><a href="#页面覆写配置项，修改对应文章的-front-matter" class="headerlink" title="页面覆写配置项，修改对应文章的 front-matter"></a>页面覆写配置项，修改对应文章的 front-matter</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></pre></td><td class="code"><pre><span class="line"><span class="meta">---</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">Copyright-beautify</span> <span class="comment"># 文章名称</span></span><br><span class="line"><span class="attr">date:</span> <span class="number">2021-03-02 13:52:46</span> <span class="comment"># 文章发布日期</span></span><br><span class="line"><span class="attr">updated:</span> <span class="number">2021-03-02 13:52:46</span> <span class="comment"># 文章更新日期</span></span><br><span class="line"><span class="attr">copyright_author:</span> <span class="string">Nesxc</span> <span class="comment"># 作者覆写</span></span><br><span class="line"><span class="attr">copyright_url:</span> <span class="string">https://www.nesxc.com/post/hexocc.html</span> <span class="comment"># 原文链接覆写</span></span><br><span class="line"><span class="attr">license:</span> <span class="comment"># 许可协议名称覆写</span></span><br><span class="line"><span class="attr">license_url:</span> <span class="comment"># 许可协议链接覆写</span></span><br><span class="line"><span class="meta">---</span></span><br></pre></td></tr></table></figure><hr><h2 id="右边按钮阅读进度（Leonus）"><a href="#右边按钮阅读进度（Leonus）" class="headerlink" title="右边按钮阅读进度（Leonus）"></a>右边按钮阅读进度（Leonus）</h2><blockquote><p>参考：<a href="https://www.fomal.cc/posts/2d7ac914.html">Fomalhaut</a></p></blockquote><ol><li>旧版本的 butterfly 看上面链接的教程。</li><li>新版 butterfly 只需要配置主题文件就好了（大约在 464 行左右）</li><li>最新版看主题文件已有配置项支持开启</li></ol><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="comment"># 在返回顶部按钮中显示滚动百分比</span></span><br><span class="line"><span class="attr">rightside_scroll_percent:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><hr><h2 id="直达底部按钮"><a href="#直达底部按钮" class="headerlink" title="直达底部按钮"></a>直达底部按钮</h2><blockquote><p>参考：<a href="https://www.fomal.cc/posts/2d7ac914.html">Fomalhaut</a></p></blockquote><p>在 <code>[BlogRoot]\themes\butterfly\layout\includes\rightside.pug</code> 添加以下内容：</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">button#go-down(type=&quot;button&quot; title=&quot;直达底部&quot; onclick=&quot;btf.scrollToDest(document.body.scrollHeight, 500)&quot;)</span><br><span class="line">  i.fas.fa-arrow-down</span><br></pre></td></tr></table></figure><hr><h2 id="博客背景切换-弹窗版"><a href="#博客背景切换-弹窗版" class="headerlink" title="博客背景切换 - 弹窗版"></a>博客背景切换 - 弹窗版</h2><blockquote><p>参考：<a href="https://blog.leonus.cn/2022/bg2.html">Leonus</a>，本人使用的是 Leonus 博主的方案，这里微修一下。<br>使用的是阿里云图标库，自行修改，并引入阿里云提供的链接。</p></blockquote><h3 id="修改-nav-pug"><a href="#修改-nav-pug" class="headerlink" title="修改 nav.pug"></a>修改 nav.pug</h3><p>修改文件：<code>hexo\themes\butterfly\layout\includes\header\nav.pug</code></p><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></pre></td><td class="code"><pre><span class="line">div</span><br><span class="line">        a.site-page.social-icon.search(href=&quot;javascript:;&quot; onclick=&quot;toggleWinbox()&quot; title=&quot;切换背景 - 换一种感觉。&quot;)</span><br><span class="line">          svg.icon(aria-hidden=&quot;true&quot; style=&quot;width: 21px;height: 21px;margin-bottom: -4.5px;margin-left: 10px;&quot;)</span><br><span class="line">            use(xlink:href=&quot;#icon-xiangce&quot;)</span><br></pre></td></tr></table></figure><p>这是<code>nav.pug</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><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></pre></td><td class="code"><pre><span class="line">nav#nav</span><br><span class="line">  span#blog-info</span><br><span class="line">    a.nav-site-title(href=url_for(&#x27;/&#x27;))</span><br><span class="line">      if theme.nav.logo</span><br><span class="line">        img.site-icon(src=url_for(theme.nav.logo) alt=&#x27;Logo&#x27;)</span><br><span class="line">      if theme.nav.display_title</span><br><span class="line">        span.site-name=config.title</span><br><span class="line">    if is_post()</span><br><span class="line">      a.nav-page-title(href=url_for(&#x27;/&#x27;))</span><br><span class="line">        span.site-name=(page.title || config.title)</span><br><span class="line">  #menus</span><br><span class="line">    if theme.menu</span><br><span class="line">      != partial(&#x27;includes/header/menu_item&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br><span class="line">  #nav-right</span><br><span class="line">    if theme.search.use</span><br><span class="line">      #search-button</span><br><span class="line">        span.site-page.social-icon.search</span><br><span class="line">          svg.icon(aria-hidden=&quot;true&quot; style=&quot;width: 1.25em;height: 1.25em;margin-bottom: -4.5px;margin-bottom: -4.5px;&quot;)</span><br><span class="line">            use(xlink:href=&quot;#icon-icon-sousuo&quot;)   </span><br><span class="line">            </span><br><span class="line">      div</span><br><span class="line">        a.site-page.social-icon.search(href=&quot;javascript:;&quot; onclick=&quot;toggleWinbox()&quot; title=&quot;切换背景 - 换一种感觉。&quot;)</span><br><span class="line">          svg.icon(aria-hidden=&quot;true&quot; style=&quot;width: 21px;height: 21px;margin-bottom: -4.5px;margin-left: 10px;&quot;)</span><br><span class="line">            use(xlink:href=&quot;#icon-xiangce&quot;)</span><br><span class="line"></span><br><span class="line">      #toggle-menu</span><br><span class="line">        span.site-page</span><br><span class="line">          svg(viewBox=&#x27;0 0 1024 1024&#x27; style=&#x27;width: 1em; height: 1em; margin: 0 -1px -2px 0;&#x27;)</span><br><span class="line">            use(xlink:href=&#x27;#icon-mulu&#x27;)</span><br></pre></td></tr></table></figure><h3 id="引入-JS"><a href="#引入-JS" class="headerlink" title="引入 JS"></a>引入 JS</h3><p>在主题配置文件里的 <code>inject</code> 下的 <code>bottom</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">inject:</span></span><br><span class="line">  <span class="attr">head:</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">bottom:</span></span><br><span class="line">    <span class="comment"># winbox</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">&lt;script</span> <span class="string">src=&quot;https://cdn.jsdelivr.net/gh/nextapps-de/winbox/dist/winbox.bundle.min.js&quot;&gt;&lt;/script&gt;</span> <span class="comment"># 添加此行</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">&lt;script</span> <span class="string">src=&quot;xxx.js&quot;&gt;&lt;/script&gt;</span> <span class="comment"># 这个代表自定义 js，放在最下面</span></span><br></pre></td></tr></table></figure><h3 id="添加自定义-JS"><a href="#添加自定义-JS" class="headerlink" title="添加自定义 JS"></a>添加自定义 JS</h3><blockquote><p>里面的图片是 Leonus 的 cdn，请自行下载，上传到自己的图床。</p></blockquote><figure class="highlight js"><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 切换背景弹窗版</span></span><br><span class="line"><span class="comment">// 存数据</span></span><br><span class="line"><span class="comment">// name：命名 data：数据</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">saveData</span>(<span class="params">name, data</span>) &#123;</span><br><span class="line">    <span class="variable language_">localStorage</span>.<span class="title function_">setItem</span>(name, <span class="title class_">JSON</span>.<span class="title function_">stringify</span>(&#123; <span class="string">&#x27;time&#x27;</span>: <span class="title class_">Date</span>.<span class="title function_">now</span>(), <span class="string">&#x27;data&#x27;</span>: data &#125;))</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="comment">// name：命名 time：过期时长，单位分钟，如传入 30,即加载数据时如果超出 30 分钟返回 0,否则返回数据</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">loadData</span>(<span class="params">name, time</span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> d = <span class="title class_">JSON</span>.<span class="title function_">parse</span>(<span class="variable language_">localStorage</span>.<span class="title function_">getItem</span>(name));</span><br><span class="line">    <span class="comment">// 过期或有错误返回 0 否则返回数据</span></span><br><span class="line">    <span class="keyword">if</span> (d) &#123;</span><br><span class="line">        <span class="keyword">let</span> t = <span class="title class_">Date</span>.<span class="title function_">now</span>() - d.<span class="property">time</span></span><br><span class="line">        <span class="keyword">if</span> (t &lt; (time * <span class="number">60</span> * <span class="number">1000</span>) &amp;&amp; t &gt; -<span class="number">1</span>) <span class="keyword">return</span> d.<span class="property">data</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</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><br><span class="line"><span class="comment">// 读取背景</span></span><br><span class="line"><span class="keyword">try</span> &#123;</span><br><span class="line">    <span class="keyword">let</span> data = <span class="title function_">loadData</span>(<span class="string">&#x27;blogbg&#x27;</span>, <span class="number">1440</span>)</span><br><span class="line">    <span class="keyword">if</span> (data) <span class="title function_">changeBg</span>(data, <span class="number">1</span>)</span><br><span class="line">    <span class="keyword">else</span> <span class="variable language_">localStorage</span>.<span class="title function_">removeItem</span>(<span class="string">&#x27;blogbg&#x27;</span>);</span><br><span class="line">&#125; <span class="keyword">catch</span> (error) &#123; <span class="variable language_">localStorage</span>.<span class="title function_">removeItem</span>(<span class="string">&#x27;blogbg&#x27;</span>); &#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">// 切换背景函数</span></span><br><span class="line"><span class="comment">// 此处的 flag 是为了每次读取时都重新存储一次，导致过期时间不稳定</span></span><br><span class="line"><span class="comment">// 如果 flag 为 0 则存储，即设置背景. 为 1 则不存储，即每次加载自动读取背景.</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">changeBg</span>(<span class="params">s, flag</span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> bg = <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;web_bg&#x27;</span>)</span><br><span class="line">    <span class="keyword">if</span> (s.<span class="title function_">charAt</span>(<span class="number">0</span>) == <span class="string">&#x27;#&#x27;</span>) &#123;</span><br><span class="line">        bg.<span class="property">style</span>.<span class="property">backgroundColor</span> = s</span><br><span class="line">        bg.<span class="property">style</span>.<span class="property">backgroundImage</span> = <span class="string">&#x27;none&#x27;</span></span><br><span class="line">    &#125; <span class="keyword">else</span> bg.<span class="property">style</span>.<span class="property">backgroundImage</span> = s</span><br><span class="line">    <span class="keyword">if</span> (!flag) &#123; <span class="title function_">saveData</span>(<span class="string">&#x27;blogbg&#x27;</span>, s) &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">// 以下为 2.0 新增内容</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 创建窗口</span></span><br><span class="line"><span class="keyword">var</span> winbox = <span class="string">&#x27;&#x27;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">createWinbox</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> div = <span class="variable language_">document</span>.<span class="title function_">createElement</span>(<span class="string">&#x27;div&#x27;</span>)</span><br><span class="line">    <span class="variable language_">document</span>.<span class="property">body</span>.<span class="title function_">appendChild</span>(div)</span><br><span class="line">    winbox = <span class="title class_">WinBox</span>(&#123;</span><br><span class="line">        <span class="attr">id</span>: <span class="string">&#x27;changeBgBox&#x27;</span>,</span><br><span class="line">        <span class="attr">index</span>: <span class="number">999</span>,</span><br><span class="line">        <span class="attr">title</span>: <span class="string">&quot;切换背景&quot;</span>,</span><br><span class="line">        <span class="attr">x</span>: <span class="string">&quot;center&quot;</span>,</span><br><span class="line">        <span class="attr">y</span>: <span class="string">&quot;center&quot;</span>,</span><br><span class="line">        <span class="attr">minwidth</span>: <span class="string">&#x27;300px&#x27;</span>,</span><br><span class="line">        <span class="attr">height</span>: <span class="string">&quot;60%&quot;</span>,</span><br><span class="line">        <span class="attr">background</span>: <span class="string">&#x27;#49b1f5&#x27;</span>,</span><br><span class="line">        <span class="attr">onmaximize</span>: <span class="function">() =&gt;</span> &#123; div.<span class="property">innerHTML</span> = <span class="string">`&lt;style&gt;body::-webkit-scrollbar &#123;display: none;&#125;div#changeBgBox &#123;width: 100% !important;&#125;&lt;/style&gt;`</span> &#125;,</span><br><span class="line">        <span class="attr">onrestore</span>: <span class="function">() =&gt;</span> &#123; div.<span class="property">innerHTML</span> = <span class="string">&#x27;&#x27;</span> &#125;</span><br><span class="line">    &#125;);</span><br><span class="line">    <span class="title function_">winResize</span>();</span><br><span class="line">    <span class="variable language_">window</span>.<span class="title function_">addEventListener</span>(<span class="string">&#x27;resize&#x27;</span>, winResize)</span><br><span class="line">    <span class="comment">// 每一类我放了一个演示，直接往下复制粘贴 a 标签就可以，需要注意的是 函数里面的链接 冒号前面需要添加反斜杠\进行转义</span></span><br><span class="line">    winbox.<span class="property">body</span>.<span class="property">innerHTML</span> = <span class="string">`</span></span><br><span class="line"><span class="string">    &lt;div id=&quot;article-container&quot; style=&quot;padding:10px;&quot;&gt;</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">    &lt;div class=&quot;note info flat&quot;&gt;</span></span><br><span class="line"><span class="string">        点击对应样式即可切换背景。</span></span><br><span class="line"><span class="string">    &lt;/div&gt;</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">    &lt;div class=&quot;note success flat&quot;&gt;</span></span><br><span class="line"><span class="string">        有效期为一天，到期切回默认壁纸。</span></span><br><span class="line"><span class="string">    &lt;/div&gt;</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">    &lt;p&gt;&lt;button onclick=&quot;localStorage.removeItem(&#x27;blogbg&#x27;);location.reload();&quot; style=&quot;background:#5fcdff;display:block;width:100%;padding: 15px 0;border-radius:6px;color:white;&quot;&gt;&lt;i class=&quot;fa-solid fa-arrows-rotate&quot;&gt;&lt;/i&gt; 点我恢复默认背景&lt;/button&gt;&lt;/p&gt;</span></span><br><span class="line"><span class="string">    &lt;h2 id=&quot;图片&quot;&gt;&lt;a href=&quot;#图片&quot; class=&quot;headerlink&quot; title=&quot;图片&quot;&gt;&lt;/a&gt; 图片&lt;/h2&gt;</span></span><br><span class="line"><span class="string">     &lt;details class=&quot;toggle&quot; style=&quot;background-color:white; border: 2px solid black; border-radius: 5px;&quot;&gt;</span></span><br><span class="line"><span class="string">         &lt;summary class=&quot;toggle-button&quot; style=&quot;padding: 10px; cursor: pointer; font-weight: bold;&quot;&gt;查看电脑壁纸&lt;/summary&gt;</span></span><br><span class="line"><span class="string">         &lt;div class=&quot;toggle-content&quot;&gt;</span></span><br><span class="line"><span class="string">             &lt;div class=&quot;bgbox&quot;&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/dd4aee16880411ebb6edd017c2d2eca2.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/dd4aee16880411ebb6edd017c2d2eca2.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/66a0f1473a0f4ae7850ac8607774eb03.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/66a0f1473a0f4ae7850ac8607774eb03.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/058fe486bd784f28875a7a01f68d09de.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/058fe486bd784f28875a7a01f68d09de.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/c9d3deb2880411ebb6edd017c2d2eca2.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/c9d3deb2880411ebb6edd017c2d2eca2.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/0d73ff1af5c149c2af78a4c7280c9ac9.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/0d73ff1af5c149c2af78a4c7280c9ac9.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/08206a3879f9467f93eb18e279dd2642.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/08206a3879f9467f93eb18e279dd2642.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/14d9904fe2ac4961b203c3eb2f2f467f.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/14d9904fe2ac4961b203c3eb2f2f467f.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/f048e9726518419fa15dd365902500c4.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/f048e9726518419fa15dd365902500c4.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/bab9141327ca48e39abef6229b79cf9c.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/bab9141327ca48e39abef6229b79cf9c.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/a26f66658e014e06aa70e2753742bef3.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/a26f66658e014e06aa70e2753742bef3.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/35d9316f450041b89232893f083a57f1.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/35d9316f450041b89232893f083a57f1.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">                 &lt;a href=&quot;javascript:;&quot; style=&quot;background-image:url(https://cdn.leonus.cn/other/6143778327db4d17adbb63c0f6c0a8af.webp)&quot; class=&quot;imgbox&quot; onclick=&quot;changeBg(&#x27;url(https://cdn.leonus.cn/other/6143778327db4d17adbb63c0f6c0a8af.webp)&#x27;)&quot;&gt;&lt;/a&gt;</span></span><br><span class="line"><span class="string">             &lt;/div&gt;</span></span><br><span class="line"><span class="string">         &lt;/div&gt;</span></span><br><span class="line"><span class="string">     &lt;/details&gt;</span></span><br><span class="line"><span class="string"> &lt;/div&gt;</span></span><br><span class="line"><span class="string"> `</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">function</span> <span class="title function_">winResize</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">let</span> box = <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&#x27;#changeBgBox&#x27;</span>)</span><br><span class="line">    <span class="keyword">if</span> (!box || box.<span class="property">classList</span>.<span class="title function_">contains</span>(<span class="string">&#x27;min&#x27;</span>) || box.<span class="property">classList</span>.<span class="title function_">contains</span>(<span class="string">&#x27;max&#x27;</span>)) <span class="keyword">return</span> <span class="comment">// 2023-02-10 更新</span></span><br><span class="line">    <span class="keyword">var</span> offsetWid = <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">clientWidth</span>;</span><br><span class="line">    <span class="keyword">if</span> (offsetWid &lt;= <span class="number">768</span>) &#123;</span><br><span class="line">        winbox.<span class="title function_">resize</span>(offsetWid * <span class="number">0.95</span> + <span class="string">&quot;px&quot;</span>, <span class="string">&quot;90%&quot;</span>).<span class="title function_">move</span>(<span class="string">&quot;center&quot;</span>, <span class="string">&quot;center&quot;</span>);</span><br><span class="line">    &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">        winbox.<span class="title function_">resize</span>(offsetWid * <span class="number">0.6</span> + <span class="string">&quot;px&quot;</span>, <span class="string">&quot;70%&quot;</span>).<span class="title function_">move</span>(<span class="string">&quot;center&quot;</span>, <span class="string">&quot;center&quot;</span>);</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">// 切换状态，窗口已创建则控制窗口显示和隐藏，没窗口则创建窗口</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">toggleWinbox</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">if</span> (<span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&#x27;#changeBgBox&#x27;</span>)) winbox.<span class="title function_">toggleClass</span>(<span class="string">&#x27;hide&#x27;</span>);</span><br><span class="line">    <span class="keyword">else</span> <span class="title function_">createWinbox</span>();</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="添加自定义-CSS"><a href="#添加自定义-CSS" class="headerlink" title="添加自定义 CSS"></a>添加自定义 CSS</h3><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><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></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 切换弹窗版 */</span></span><br><span class="line"><span class="comment">/* 由于全屏会出 bug，所以直接给他隐藏 */</span></span><br><span class="line"></span><br><span class="line"><span class="selector-class">.winbox</span> &#123;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.wb-full</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: none;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.wb-min</span> &#123;</span><br><span class="line">  <span class="attribute">background-position</span>: center;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&#x27;dark&#x27;</span>]</span> <span class="selector-class">.wb-body</span>,</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&#x27;dark&#x27;</span>]</span> <span class="selector-id">#changeBgBox</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="number">#333</span> <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.bgbox</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-wrap</span>: wrap;</span><br><span class="line">  <span class="attribute">justify-content</span>: space-between;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.pimgbox</span>,</span><br><span class="line"><span class="selector-class">.imgbox</span>,</span><br><span class="line"><span class="selector-class">.box</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">166px</span>;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">background-size</span>: cover</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.pimgbox</span>,</span><br><span class="line"><span class="selector-class">.imgbox</span> &#123;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.pimgbox</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">240px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.imgbox</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">95px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.box</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@media</span> screen <span class="keyword">and</span> (<span class="attribute">max-width</span>: <span class="number">768px</span>) &#123;</span><br><span class="line">  <span class="comment">/* 背景 */</span></span><br><span class="line">  <span class="selector-class">.pimgbox</span>,</span><br><span class="line">  <span class="selector-class">.imgbox</span>,</span><br><span class="line">  <span class="selector-class">.box</span> &#123;</span><br><span class="line">    <span class="attribute">height</span>: <span class="number">73px</span>;</span><br><span class="line">    <span class="attribute">width</span>: <span class="number">135px</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="selector-class">.pimgbox</span> &#123;</span><br><span class="line">    <span class="attribute">height</span>: <span class="number">205px</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="comment">/* 2.0 新增内容 */</span>    </span><br><span class="line">  <span class="selector-class">.wb-min</span> &#123;</span><br><span class="line">    <span class="attribute">display</span>: none;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="selector-id">#changeBgBox</span> <span class="selector-class">.wb-body</span>::-webkit-scrollbar &#123;</span><br><span class="line">    <span class="attribute">display</span>: none;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><hr><h2 id="首页文章推荐"><a href="#首页文章推荐" class="headerlink" title="首页文章推荐"></a>首页文章推荐</h2><blockquote><p>参考：<a href="https://meuicat.com/posts/edc13bd6.html">MeuiCat</a><br>感谢 MeuiCat 给予的帮助，由于自己的版本与博主的不同，所以会有一些奇怪的问题。以下是解决后的教程。这里可能和原作者的不太一样，针对自己的喜好，我做出了一些修改。</p></blockquote><h3 id="修改-index-pug"><a href="#修改-index-pug" class="headerlink" title="修改 index.pug"></a>修改 index.pug</h3><p>在 <code>[blogRoot]/themes/butterfly/layout/includes/header/index.pug</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">if is_home()</span><br><span class="line">  .banner-random</span><br><span class="line">    .random-list</span><br></pre></td></tr></table></figure><h3 id="新建-banner-random-styl"><a href="#新建-banner-random-styl" class="headerlink" title="新建 banner-random.styl"></a>新建 banner-random.styl</h3><p>新建 <code>[blogRoot]/themes/butterfly/source/css/_page/banner-random.styl</code> 样式文件，并新增以下内容：</p><figure class="highlight stylus"><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.banner-random</span></span><br><span class="line">    <span class="attribute">margin</span>: <span class="number">15px</span> auto <span class="number">0</span></span><br><span class="line">    <span class="attribute">width</span> <span class="number">100%</span></span><br><span class="line">    <span class="attribute">max-width</span> <span class="number">1170px</span></span><br><span class="line"></span><br><span class="line">    +<span class="built_in">maxWidth768</span>()</span><br><span class="line">        <span class="attribute">padding-left</span>: <span class="number">10px</span>;</span><br><span class="line">        <span class="attribute">padding-right</span>: <span class="number">10px</span>;</span><br><span class="line">    </span><br><span class="line">    <span class="selector-class">.random-title</span></span><br><span class="line">        <span class="attribute">display</span>: flex</span><br><span class="line">        <span class="attribute">justify-content</span>: space-between</span><br><span class="line">        <span class="attribute">align-items</span>: center</span><br><span class="line"></span><br><span class="line">        <span class="selector-class">.title</span></span><br><span class="line">            <span class="attribute">font-size</span>: <span class="number">1.25rem</span></span><br><span class="line">            <span class="attribute">font-weight</span>: <span class="number">600</span></span><br><span class="line">            <span class="attribute">margin</span>: <span class="number">0</span></span><br><span class="line">            <span class="attribute">min-width</span>: <span class="number">80px</span></span><br><span class="line"></span><br><span class="line">        <span class="selector-class">.botton-box</span></span><br><span class="line">            <span class="attribute">display</span>: flex</span><br><span class="line">            <span class="attribute">font-weight</span>: <span class="number">600</span></span><br><span class="line"></span><br><span class="line">            +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                <span class="attribute">width</span>: <span class="number">100%</span></span><br><span class="line">                <span class="attribute">justify-content</span>: space-between</span><br><span class="line">                <span class="attribute">align-items</span>: center</span><br><span class="line"></span><br><span class="line">            <span class="selector-class">.refresh</span></span><br><span class="line">                <span class="attribute">opacity</span>: .<span class="number">5</span></span><br><span class="line">                <span class="attribute">transition</span>: .<span class="number">6s</span></span><br><span class="line"></span><br><span class="line">                +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                    <span class="attribute">margin-left</span>: <span class="number">8px</span></span><br><span class="line"></span><br><span class="line">                <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">                    <span class="attribute">color</span>: <span class="built_in">var</span>(--icat-blue)</span><br><span class="line">                    <span class="attribute">opacity</span>: <span class="number">1</span></span><br><span class="line"></span><br><span class="line">                <span class="selector-tag">i</span></span><br><span class="line">                    <span class="attribute">margin-right</span>: <span class="number">6px</span></span><br><span class="line"></span><br><span class="line">                    +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                        <span class="attribute">font-size</span>: <span class="number">18px</span></span><br><span class="line"></span><br><span class="line">                <span class="selector-tag">span</span></span><br><span class="line">                    +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                        <span class="attribute">display</span>: none</span><br><span class="line"></span><br><span class="line">            <span class="selector-class">.slide</span></span><br><span class="line">                <span class="attribute">display</span>: none</span><br><span class="line"></span><br><span class="line">                +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                    <span class="attribute">display</span>: flex</span><br><span class="line"></span><br><span class="line">                <span class="selector-tag">i</span></span><br><span class="line">                    <span class="attribute">margin-left</span>: <span class="number">4px</span></span><br><span class="line">                    <span class="attribute">font-size</span>: <span class="number">14px</span></span><br><span class="line">                    <span class="attribute">width</span>: <span class="number">28px</span></span><br><span class="line">                    <span class="attribute">height</span>: <span class="number">28px</span></span><br><span class="line">                    <span class="attribute">display</span>: flex</span><br><span class="line">                    <span class="attribute">align-items</span>: center</span><br><span class="line">                    <span class="attribute">justify-content</span>: center</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.random-list</span></span><br><span class="line">        <span class="attribute">margin-top</span>: <span class="number">15px</span></span><br><span class="line">        <span class="attribute">display</span>: flex</span><br><span class="line"></span><br><span class="line">        +<span class="built_in">maxWidth768</span>()</span><br><span class="line">            <span class="attribute">overflow-x</span>: scroll</span><br><span class="line">            <span class="attribute">overflow-y</span>: hidden</span><br><span class="line">            <span class="attribute">scroll-behavior</span>: smooth</span><br><span class="line">        </span><br><span class="line">        &amp;::-webkit-scrollbar</span><br><span class="line">            <span class="attribute">display</span>: none</span><br><span class="line"></span><br><span class="line">        <span class="selector-class">.post_item</span></span><br><span class="line">            <span class="attribute">width</span>: <span class="built_in">calc</span>(<span class="number">100%</span> / <span class="number">4</span> - <span class="number">8px</span>)</span><br><span class="line">            <span class="attribute">margin-right</span>: <span class="number">15px</span></span><br><span class="line">            <span class="attribute">border-radius</span>: <span class="number">8px</span></span><br><span class="line">            <span class="attribute">background</span>: <span class="built_in">var</span>(--card-bg)</span><br><span class="line">            <span class="attribute">box-shadow</span>: <span class="built_in">var</span>(--icat-shadow-border)</span><br><span class="line">            <span class="attribute">transition</span>: .<span class="number">6s</span></span><br><span class="line">            <span class="attribute">border</span>: <span class="built_in">var</span>(--style-border)</span><br><span class="line">            <span class="attribute">height</span>: <span class="number">110px</span></span><br><span class="line">            <span class="attribute">animation</span>: barrageIn .<span class="number">6s</span> .<span class="number">4s</span> backwards</span><br><span class="line"></span><br><span class="line">            +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                <span class="attribute">width</span>: <span class="number">240px</span></span><br><span class="line">                <span class="attribute">min-width</span>: <span class="number">240px</span></span><br><span class="line"></span><br><span class="line">            <span class="selector-pseudo">&amp;:last-child</span></span><br><span class="line">                <span class="attribute">margin-right</span>: <span class="number">0</span></span><br><span class="line"></span><br><span class="line">            <span class="selector-pseudo">&amp;:hover</span></span><br><span class="line">                <span class="attribute">background</span>: <span class="built_in">var</span>(--icat-blue)</span><br><span class="line">                <span class="attribute">box-shadow</span>: <span class="built_in">var</span>(--icat-shadow-blue)</span><br><span class="line"></span><br><span class="line">                <span class="selector-class">.post_box</span></span><br><span class="line">                    <span class="selector-class">.post-info</span></span><br><span class="line">                        <span class="attribute">opacity</span>: <span class="number">0</span></span><br><span class="line"></span><br><span class="line">                    <span class="selector-class">.post_description</span></span><br><span class="line">                        <span class="attribute">opacity</span>: <span class="number">1</span></span><br><span class="line"></span><br><span class="line">            <span class="selector-tag">a</span><span class="selector-pseudo">:hover</span></span><br><span class="line">                <span class="attribute">color</span>: <span class="built_in">var</span>(--font-color)</span><br><span class="line"></span><br><span class="line">            <span class="selector-class">.post_box</span></span><br><span class="line">                <span class="attribute">width</span>: <span class="number">100%</span></span><br><span class="line">                <span class="attribute">height</span>: <span class="number">100%</span></span><br><span class="line">                <span class="attribute">display</span>: flex</span><br><span class="line">                <span class="attribute">position</span>: relative</span><br><span class="line">                <span class="attribute">align-items</span>: center</span><br><span class="line">                <span class="attribute">justify-content</span>: center</span><br><span class="line"></span><br><span class="line">                <span class="selector-class">.post-info</span></span><br><span class="line">                    <span class="attribute">display</span>: flex</span><br><span class="line">                    <span class="attribute">align-items</span>: center</span><br><span class="line">                    <span class="attribute">justify-content</span>: center</span><br><span class="line">                    <span class="attribute">flex-direction</span>: column</span><br><span class="line">                    <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">15px</span></span><br><span class="line">                    <span class="attribute">transition</span>: .<span class="number">6s</span></span><br><span class="line">                    <span class="attribute">opacity</span>: <span class="number">1</span></span><br><span class="line"></span><br><span class="line">                    +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                        <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">8px</span></span><br><span class="line"></span><br><span class="line">                    <span class="selector-class">.post-title</span></span><br><span class="line">                        <span class="attribute">margin</span>: <span class="number">0</span></span><br><span class="line">                        <span class="attribute">font-size</span>: <span class="number">1rem</span></span><br><span class="line">                        <span class="attribute">font-weight</span>: <span class="number">600</span></span><br><span class="line">                        <span class="attribute">line-height</span>: <span class="number">1.5</span></span><br><span class="line">                        -webkit-line-clamp: <span class="number">1</span></span><br><span class="line">                        <span class="attribute">overflow</span>: hidden</span><br><span class="line">                        -webkit-<span class="attribute">box-orient</span>: vertical</span><br><span class="line">                        <span class="attribute">display</span>: -webkit-box</span><br><span class="line"></span><br><span class="line">                    <span class="selector-class">.info-box</span></span><br><span class="line">                        <span class="attribute">font-size</span>: <span class="number">13px</span></span><br><span class="line">                        <span class="attribute">color</span>: <span class="number">#858585</span></span><br><span class="line">                        <span class="attribute">display</span>: flex</span><br><span class="line"></span><br><span class="line">                <span class="selector-class">.post_description</span></span><br><span class="line">                    <span class="attribute">position</span>: absolute</span><br><span class="line">                    <span class="attribute">opacity</span>: <span class="number">0</span></span><br><span class="line">                    <span class="attribute">color</span>: white</span><br><span class="line">                    <span class="attribute">transition</span>: .<span class="number">6s</span></span><br><span class="line">                    <span class="attribute">text-align</span>: center</span><br><span class="line">                    <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">15px</span></span><br><span class="line">                    <span class="attribute">line-height</span>: <span class="number">1.6</span></span><br><span class="line">                    -webkit-line-clamp: <span class="number">2</span></span><br><span class="line">                    <span class="attribute">overflow</span>: hidden</span><br><span class="line">                    -webkit-<span class="attribute">box-orient</span>: vertical</span><br><span class="line">                    <span class="attribute">display</span>: -webkit-box</span><br><span class="line">                    <span class="attribute">margin</span>: <span class="number">0</span></span><br><span class="line"></span><br><span class="line">                    +<span class="built_in">maxWidth768</span>()</span><br><span class="line">                        <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">8px</span></span><br></pre></td></tr></table></figure><h3 id="创建-random-articles-js"><a href="#创建-random-articles-js" class="headerlink" title="创建 random-articles.js"></a>创建 random-articles.js</h3><p>创建 <code>[blogRoot]/themes/butterfly/scripts/helpers/random-articles.js</code> 文件，并新增以下内容：</p><figure class="highlight js"><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></pre></td><td class="code"><pre><span class="line"><span class="meta">&#x27;use strict&#x27;</span></span><br><span class="line"></span><br><span class="line">hexo.<span class="property">extend</span>.<span class="property">generator</span>.<span class="title function_">register</span>(<span class="string">&#x27;thePosts&#x27;</span>, <span class="keyword">function</span>(<span class="params">locals</span>) &#123;</span><br><span class="line"><span class="keyword">const</span> jsonData = locals.<span class="property">posts</span></span><br><span class="line">.<span class="title function_">filter</span>(<span class="function"><span class="params">post</span> =&gt;</span> post.<span class="property">random</span> !== <span class="literal">false</span>)</span><br><span class="line">.<span class="title function_">map</span>(<span class="function"><span class="params">post</span> =&gt;</span> &#123;</span><br><span class="line"><span class="keyword">const</span> date = <span class="keyword">new</span> <span class="title class_">Date</span>(post.<span class="property">date</span>);</span><br><span class="line"><span class="keyword">const</span> categories = post.<span class="property">categories</span>.<span class="title function_">map</span>(<span class="function"><span class="params">category</span> =&gt;</span> category.<span class="property">name</span>);</span><br><span class="line">            <span class="keyword">const</span> formattedDate = date.<span class="title function_">toISOString</span>().<span class="title function_">split</span>(<span class="string">&#x27;T&#x27;</span>)[<span class="number">0</span>];</span><br><span class="line"><span class="keyword">return</span> &#123;</span><br><span class="line"><span class="attr">title</span>: post.<span class="property">title</span> || <span class="string">&quot;暂无标题&quot;</span>,</span><br><span class="line"><span class="attr">time</span>: formattedDate,</span><br><span class="line"><span class="attr">categories</span>: categories[<span class="number">0</span>],</span><br><span class="line"><span class="attr">description</span>: post.<span class="property">description</span> || <span class="string">&quot;暂无简介&quot;</span>,</span><br><span class="line">                <span class="attr">link</span>: post.<span class="property">permalink</span>.<span class="title function_">replace</span>(<span class="regexp">/^(?:\/\/|[^/]+)*\//</span>, <span class="string">&#x27;/&#x27;</span>)</span><br><span class="line">&#125;;</span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line"><span class="keyword">return</span> &#123;</span><br><span class="line"><span class="attr">path</span>: <span class="string">&#x27;articles-random.json&#x27;</span>,</span><br><span class="line"><span class="attr">data</span>: <span class="title class_">JSON</span>.<span class="title function_">stringify</span>(jsonData)</span><br><span class="line">&#125;;</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><h3 id="创建-anxy-js"><a href="#创建-anxy-js" class="headerlink" title="创建 anxy.js"></a>创建 anxy.js</h3><p>创建 <code>[blogRoot]/source/js/anxy.js</code> 文件 (或写在自建的公共 js 中也可以)，并新增以下内容：</p><figure class="highlight js"><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></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> <span class="variable constant_">CACHE_EXPIRATION_TIME</span> = <span class="number">12</span> * <span class="number">60</span> * <span class="number">60</span> * <span class="number">1000</span>;  <span class="comment">// 缓存过期时间，12 小时</span></span><br><span class="line"><span class="comment">// 随机文章 js</span></span><br><span class="line"><span class="keyword">const</span> anxy = &#123;</span><br><span class="line">    <span class="attr">getRandomElementsFromArray</span>: <span class="keyword">function</span>(<span class="params">arr, num</span>) &#123;</span><br><span class="line">        <span class="keyword">const</span> shuffled = arr.<span class="title function_">sort</span>(<span class="function">() =&gt;</span> <span class="number">0.5</span> - <span class="title class_">Math</span>.<span class="title function_">random</span>()); <span class="comment">// 打乱数组顺序</span></span><br><span class="line">        <span class="keyword">return</span> shuffled.<span class="title function_">slice</span>(<span class="number">0</span>, num); <span class="comment">// 返回前 num 个元素</span></span><br><span class="line">    &#125;,</span><br><span class="line"></span><br><span class="line">    <span class="attr">renderingPosts</span>: <span class="keyword">function</span>(<span class="params">data</span>) &#123;</span><br><span class="line">        <span class="keyword">const</span> randomElements = anxy.<span class="title function_">getRandomElementsFromArray</span>(data, <span class="number">4</span>);</span><br><span class="line">        <span class="keyword">const</span> postsHtml = randomElements.<span class="title function_">map</span>(<span class="function">(<span class="params">i</span>) =&gt;</span> <span class="string">`</span></span><br><span class="line"><span class="string">            &lt;div class=&quot;post_item&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;a class=&quot;post_box&quot; title=&quot;<span class="subst">$&#123;i.title&#125;</span>&quot; href=&quot;<span class="subst">$&#123;i.link&#125;</span>&quot; onclick=&quot;pjax.loadUrl(&#x27;<span class="subst">$&#123;i.link&#125;</span>&#x27;)&quot;&gt;</span></span><br><span class="line"><span class="string">                    &lt;div class=&quot;post-info&quot;&gt;</span></span><br><span class="line"><span class="string">                        &lt;p class=&quot;post-title&quot;&gt;<span class="subst">$&#123;i.title&#125;</span>&lt;/p&gt;</span></span><br><span class="line"><span class="string">                        &lt;div class=&quot;info-box&quot;&gt;</span></span><br><span class="line"><span class="string">                            &lt;span&gt;<span class="subst">$&#123;i.time&#125;</span>&lt;/span&gt;</span></span><br><span class="line"><span class="string">                            &lt;span style=&quot;margin: 0 6px&quot;&gt;|&lt;/span&gt;</span></span><br><span class="line"><span class="string">                            &lt;span&gt;<span class="subst">$&#123;i.categories&#125;</span>&lt;/span&gt;</span></span><br><span class="line"><span class="string">                        &lt;/div&gt;</span></span><br><span class="line"><span class="string">                    &lt;/div&gt;</span></span><br><span class="line"><span class="string">                    &lt;p class=&quot;post_description&quot;&gt;<span class="subst">$&#123;i.description&#125;</span>&lt;/p&gt;</span></span><br><span class="line"><span class="string">                &lt;/a&gt;</span></span><br><span class="line"><span class="string">            &lt;/div&gt;`</span>).<span class="title function_">join</span>(<span class="string">&#x27;&#x27;</span>);</span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> randomList = <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;.banner-random&gt;.random-list&quot;</span>);</span><br><span class="line">        <span class="keyword">if</span> (randomList) &#123;</span><br><span class="line">            randomList.<span class="property">innerHTML</span> = postsHtml;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;,</span><br><span class="line"></span><br><span class="line">    <span class="attr">loadData</span>: <span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">        <span class="title function_">fetch</span>(<span class="string">&quot;/articles-random.json&quot;</span>)</span><br><span class="line">            .<span class="title function_">then</span>(<span class="function"><span class="params">res</span> =&gt;</span> res.<span class="property">ok</span> ? res.<span class="title function_">json</span>() : <span class="title class_">Promise</span>.<span class="title function_">reject</span>(<span class="string">&#x27;请求失败&#x27;</span>))</span><br><span class="line">            .<span class="title function_">then</span>(<span class="function"><span class="params">data</span> =&gt;</span> &#123;</span><br><span class="line">                <span class="variable language_">sessionStorage</span>.<span class="title function_">setItem</span>(<span class="string">&quot;postsInfo&quot;</span>, <span class="title class_">JSON</span>.<span class="title function_">stringify</span>(data));</span><br><span class="line">                <span class="variable language_">sessionStorage</span>.<span class="title function_">setItem</span>(<span class="string">&quot;postsInfoTimestamp&quot;</span>, <span class="title class_">Date</span>.<span class="title function_">now</span>());</span><br><span class="line">                anxy.<span class="title function_">renderingPosts</span>(data);</span><br><span class="line">                <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="string">&quot;随机文章加载成功&quot;</span>);</span><br><span class="line">            &#125;)</span><br><span class="line">            .<span class="title function_">catch</span>(<span class="function"><span class="params">err</span> =&gt;</span> &#123;</span><br><span class="line">                <span class="variable language_">console</span>.<span class="title function_">error</span>(<span class="string">&quot;随机文章加载失败:&quot;</span>, err);</span><br><span class="line">                <span class="built_in">setTimeout</span>(anxy.<span class="property">loadData</span>, <span class="number">3000</span>);  <span class="comment">// 错误时重试</span></span><br><span class="line">            &#125;);</span><br><span class="line">    &#125;,</span><br><span class="line"></span><br><span class="line">    <span class="title class_">RandomPosts</span>: <span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">        <span class="keyword">const</span> cachedData = <span class="variable language_">sessionStorage</span>.<span class="title function_">getItem</span>(<span class="string">&quot;postsInfo&quot;</span>);</span><br><span class="line">        <span class="keyword">const</span> cachedTimestamp = <span class="variable language_">sessionStorage</span>.<span class="title function_">getItem</span>(<span class="string">&quot;postsInfoTimestamp&quot;</span>);</span><br><span class="line"></span><br><span class="line">        <span class="keyword">if</span> (cachedData &amp;&amp; cachedTimestamp &amp;&amp; (<span class="title class_">Date</span>.<span class="title function_">now</span>() - cachedTimestamp &lt; <span class="variable constant_">CACHE_EXPIRATION_TIME</span>)) &#123;</span><br><span class="line">            <span class="keyword">try</span> &#123;</span><br><span class="line">                anxy.<span class="title function_">renderingPosts</span>(<span class="title class_">JSON</span>.<span class="title function_">parse</span>(cachedData));</span><br><span class="line">            &#125; <span class="keyword">catch</span> (e) &#123;</span><br><span class="line">                <span class="variable language_">console</span>.<span class="title function_">error</span>(<span class="string">&quot;缓存数据解析失败:&quot;</span>, e);</span><br><span class="line">                anxy.<span class="title function_">loadData</span>();  <span class="comment">// 如果解析失败，重新加载数据</span></span><br><span class="line">            &#125;</span><br><span class="line">        &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">            anxy.<span class="title function_">loadData</span>();  <span class="comment">// 缓存无效或不存在时，加载新数据</span></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">// 页面加载时加载随机文章</span></span><br><span class="line"><span class="variable language_">window</span>.<span class="title function_">addEventListener</span>(<span class="string">&#x27;load&#x27;</span>, <span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">    anxy.<span class="title class_">RandomPosts</span>();  <span class="comment">// 确保在页面完全加载后执行</span></span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 初始化 pjax</span></span><br><span class="line"><span class="keyword">const</span> pjax = <span class="keyword">new</span> <span class="title class_">Pjax</span>(&#123;</span><br><span class="line">    <span class="attr">elements</span>: <span class="string">&#x27;a&#x27;</span>,</span><br><span class="line">    <span class="attr">selectors</span>: [<span class="string">&#x27;#pjax-container&#x27;</span>],</span><br><span class="line">    <span class="attr">cache</span>: <span class="literal">true</span>,</span><br><span class="line">    <span class="attr">history</span>: <span class="literal">true</span>,</span><br><span class="line">    <span class="attr">scrollTo</span>: <span class="literal">false</span>,</span><br><span class="line">    <span class="attr">transition</span>: <span class="string">&#x27;fade&#x27;</span>,</span><br><span class="line">    <span class="attr">transitionTime</span>: <span class="number">300</span></span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line"><span class="variable language_">document</span>.<span class="title function_">addEventListener</span>(<span class="string">&#x27;pjax:complete&#x27;</span>, <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> anxy.<span class="title class_">RandomPosts</span>(), <span class="number">500</span>);  <span class="comment">// 等待 500ms 再渲染随机文章，确保内容渲染完毕</span></span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><hr><h2 id="Butterfly-主题魔改-404-页面图片背景"><a href="#Butterfly-主题魔改-404-页面图片背景" class="headerlink" title="Butterfly 主题魔改 404 页面图片背景"></a>Butterfly 主题魔改 404 页面图片背景</h2><h3 id="修改-config-yml"><a href="#修改-config-yml" class="headerlink" title="修改 _config.yml"></a>修改 _config.yml</h3><p>修改 <code>hexo\themes\butterfly\_config.yml</code> 第 126~139 行的内容，将 <code>background:</code> 后修改为图片 url。</p><h3 id="修改-404-styl"><a href="#修改-404-styl" class="headerlink" title="修改 404.styl"></a>修改 404.styl</h3><p>背景颜色修改：<code>hexo\themes\butterfly\source\css\_page\404.styl</code>，把里面最后面的 <code>background-color</code> 修改为自己喜欢的颜色就好了（这里我默认白色）：</p><figure class="highlight stylus"><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></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> <span class="built_in">hexo-config</span>(<span class="string">&#x27;error_404.enable&#x27;</span>)</span><br><span class="line">  <span class="selector-class">.type-404</span></span><br><span class="line">    <span class="selector-class">.error-content</span></span><br><span class="line">      <span class="keyword">@extend</span> <span class="selector-class">.cardHover</span></span><br><span class="line">      <span class="attribute">overflow</span>: hidden</span><br><span class="line">      <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">20px</span></span><br><span class="line">      <span class="attribute">height</span>: <span class="number">360px</span></span><br><span class="line"></span><br><span class="line">      +<span class="built_in">maxWidth768</span>()</span><br><span class="line">        <span class="attribute">margin</span>: <span class="number">0</span></span><br><span class="line">        <span class="attribute">height</span>: <span class="number">500px</span></span><br><span class="line"></span><br><span class="line">      <span class="selector-class">.error-img</span></span><br><span class="line">        <span class="attribute">display</span>: inline-block</span><br><span class="line">        <span class="attribute">overflow</span>: hidden</span><br><span class="line">        <span class="attribute">width</span>: <span class="number">50%</span></span><br><span class="line">        <span class="attribute">height</span>: <span class="number">100%</span></span><br><span class="line"></span><br><span class="line">        +<span class="built_in">maxWidth768</span>()</span><br><span class="line">          <span class="attribute">width</span>: <span class="number">100%</span></span><br><span class="line">          <span class="attribute">height</span>: <span class="number">45%</span></span><br><span class="line"></span><br><span class="line">        <span class="selector-tag">img</span></span><br><span class="line">          <span class="keyword">@extend</span> <span class="selector-class">.imgHover</span></span><br><span class="line">          <span class="attribute">background-color</span>: <span class="number">#ffffff</span></span><br></pre></td></tr></table></figure><h2 id="项目启动自定义字符画"><a href="#项目启动自定义字符画" class="headerlink" title="项目启动自定义字符画"></a>项目启动自定义字符画</h2><blockquote><p>参考：<a href="https://www.fomal.cc/posts/d739261b.html#%E9%A1%B9%E7%9B%AE%E5%90%AF%E5%8A%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E5%AD%97%E7%AC%A6%E7%94%BB">Fomalhaut</a></p></blockquote><p>ASCII 字符画生成器参考：<a href="https://blog.csdn.net/qq_31708763/article/details/119712041">CSDN: 在线生成 ascii 字符画网站字符图案在线生成工具</a></p><p>替换主题源码：<code>[BlogRoot]\themes\butterfly\scripts\events\welcome.js</code></p><figure class="highlight js"><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">hexo.<span class="title function_">on</span>(<span class="string">&#x27;ready&#x27;</span>, <span class="function">() =&gt;</span> &#123;</span><br><span class="line">  <span class="keyword">const</span> &#123; version &#125; = <span class="built_in">require</span>(<span class="string">&#x27;../../package.json&#x27;</span>)</span><br><span class="line">  hexo.<span class="property">log</span>.<span class="title function_">info</span>(<span class="string">`</span></span><br><span class="line"><span class="string">  ======================================================================</span></span><br><span class="line"><span class="string">                                                                     </span></span><br><span class="line"><span class="string">██████  ██    ██ ████████ ████████ ███████ ██████  ███████ ██      ██    ██ </span></span><br><span class="line"><span class="string">██   ██ ██    ██    ██       ██    ██      ██   ██ ██      ██       ██  ██  </span></span><br><span class="line"><span class="string">██████  ██    ██    ██       ██    █████   ██████  █████   ██        ████   </span></span><br><span class="line"><span class="string">██   ██ ██    ██    ██       ██    ██      ██   ██ ██      ██         ██    </span></span><br><span class="line"><span class="string">██████   ██████     ██       ██    ███████ ██   ██ ██      ███████    ██    </span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">                            主题版本：<span class="subst">$&#123;version&#125;</span></span></span><br><span class="line"><span class="string">  ======================================================================`</span>)</span><br><span class="line">&#125;)</span><br></pre></td></tr></table></figure><hr><h2 id="控制台样式自定义（安知鱼）"><a href="#控制台样式自定义（安知鱼）" class="headerlink" title="控制台样式自定义（安知鱼）"></a>控制台样式自定义（安知鱼）</h2><blockquote><p>参考：<a href="https://www.fomal.cc/posts/d739261b.html#%E6%8E%A7%E5%88%B6%E5%8F%B0%E6%A0%B7%E5%BC%8F%E8%87%AA%E5%AE%9A%E4%B9%89%EF%BC%88%E5%AE%89%E7%9F%A5%E9%B1%BC%EF%BC%89">Fomalhaut</a></p></blockquote><p>ASCII 字符画生成器参考：<a href="https://blog.csdn.net/qq_31708763/article/details/119712041">CSDN: 在线生成 ascii 字符画网站字符图案在线生成工具</a></p><h3 id="新建-console-js"><a href="#新建-console-js" class="headerlink" title="新建 console.js"></a>新建 console.js</h3><p>新建文件：<code>[BlogRoot]\source\js\console.js</code></p><figure class="highlight js"><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></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> now1 = <span class="keyword">new</span> <span class="title class_">Date</span>();</span><br><span class="line"></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">createtime1</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">var</span> grt = <span class="keyword">new</span> <span class="title class_">Date</span>(<span class="string">&quot;11/28/2022 14:00:00&quot;</span>); <span class="comment">// 此处修改你的建站时间或者网站上线时间</span></span><br><span class="line">    now1.<span class="title function_">setTime</span>(now1.<span class="title function_">getTime</span>() + <span class="number">250</span>);</span><br><span class="line">    <span class="keyword">var</span> days = (now1 - grt) / <span class="number">1000</span> / <span class="number">60</span> / <span class="number">60</span> / <span class="number">24</span>;</span><br><span class="line">    <span class="keyword">var</span> dnum = <span class="title class_">Math</span>.<span class="title function_">floor</span>(days);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">var</span> ascll = [</span><br><span class="line">        <span class="string">`欢迎来到安小歪の小家!`</span>,</span><br><span class="line">        <span class="string">`Future is now 🍭🍭🍭`</span>,</span><br><span class="line">        <span class="string">`</span></span><br><span class="line"><span class="string"> █████╗ ███╗   ██╗██╗  ██╗██╗ █████╗  ██████╗ ██╗    ██╗ █████╗ ██╗</span></span><br><span class="line"><span class="string">██╔══██╗████╗  ██║╚██╗██╔╝██║██╔══██╗██╔═══██╗██║    ██║██╔══██╗██║</span></span><br><span class="line"><span class="string">███████║██╔██╗ ██║ ╚███╔╝ ██║███████║██║   ██║██║ █╗ ██║███████║██║</span></span><br><span class="line"><span class="string">██╔══██║██║╚██╗██║ ██╔██╗ ██║██╔══██║██║   ██║██║███╗██║██╔══██║██║</span></span><br><span class="line"><span class="string">██║  ██║██║ ╚████║██╔╝ ██╗██║██║  ██║╚██████╔╝╚███╔███╔╝██║  ██║██║</span></span><br><span class="line"><span class="string">╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝╚═╝  ╚═╝ ╚═════╝  ╚══╝╚══╝ ╚═╝  ╚═╝╚═╝</span></span><br><span class="line"><span class="string">                                                                   </span></span><br><span class="line"><span class="string">`</span>,</span><br><span class="line">        <span class="string">&quot;小站已经苟活&quot;</span>,</span><br><span class="line">        dnum,</span><br><span class="line">        <span class="string">&quot;天啦!&quot;</span>,</span><br><span class="line">        <span class="string">&quot;©2022~2026 By 安小歪&quot;</span>,</span><br><span class="line">    ];</span><br><span class="line"></span><br><span class="line">    <span class="built_in">setTimeout</span>(</span><br><span class="line">        <span class="variable language_">console</span>.<span class="property">log</span>.<span class="title function_">bind</span>(</span><br><span class="line">            <span class="variable language_">console</span>,</span><br><span class="line">            <span class="string">`\n%c<span class="subst">$&#123;ascll[<span class="number">0</span>]&#125;</span> %c <span class="subst">$&#123;ascll[<span class="number">1</span>]&#125;</span> %c <span class="subst">$&#123;ascll[<span class="number">2</span>]&#125;</span> %c<span class="subst">$&#123;ascll[<span class="number">3</span>]&#125;</span>%c <span class="subst">$&#123;ascll[<span class="number">4</span>]&#125;</span>%c <span class="subst">$&#123;ascll[<span class="number">5</span>]&#125;</span>\n\n%c <span class="subst">$&#123;ascll[<span class="number">6</span>]&#125;</span>\n`</span>,</span><br><span class="line">            <span class="string">&quot;color:#39c5bb&quot;</span>,</span><br><span class="line">            <span class="string">&quot;&quot;</span>,</span><br><span class="line">            <span class="string">&quot;color:#39c5bb&quot;</span>,</span><br><span class="line">            <span class="string">&quot;color:#39c5bb&quot;</span>,</span><br><span class="line">            <span class="string">&quot;&quot;</span>,</span><br><span class="line">            <span class="string">&quot;color:#39c5bb&quot;</span>,</span><br><span class="line">            <span class="string">&quot;&quot;</span></span><br><span class="line">        )</span><br><span class="line">    );</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="title function_">createtime1</span>();</span><br><span class="line"></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">createtime2</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">var</span> ascll2 = [<span class="string">`NCC2-036`</span>, <span class="string">`调用前置摄像头拍照成功，识别为「大聪明」`</span>, <span class="string">`Photo captured: `</span>, <span class="string">` 🤪 `</span>];</span><br><span class="line"></span><br><span class="line">    <span class="built_in">setTimeout</span>(</span><br><span class="line">        <span class="variable language_">console</span>.<span class="property">log</span>.<span class="title function_">bind</span>(</span><br><span class="line">            <span class="variable language_">console</span>,</span><br><span class="line">            <span class="string">`%c <span class="subst">$&#123;ascll2[<span class="number">0</span>]&#125;</span> %c <span class="subst">$&#123;ascll2[<span class="number">1</span>]&#125;</span> %c \n<span class="subst">$&#123;ascll2[<span class="number">2</span>]&#125;</span> %c\n<span class="subst">$&#123;ascll2[<span class="number">3</span>]&#125;</span>`</span>,</span><br><span class="line">            <span class="string">&quot;color:white; background-color:#10bcc0&quot;</span>,</span><br><span class="line">            <span class="string">&quot;&quot;</span>,</span><br><span class="line">            <span class="string">&quot;&quot;</span>,</span><br><span class="line">            <span class="string">&#x27;background:url(&quot;https://cdn.cbd.int/anzhiyu-assets@1.0.11/image/common/tinggge.gif&quot;) no-repeat;font-size:450%&#x27;</span></span><br><span class="line">        )</span><br><span class="line">    );</span><br><span class="line"></span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="variable language_">console</span>.<span class="property">log</span>.<span class="title function_">bind</span>(<span class="variable language_">console</span>, <span class="string">&quot;%c WELCOME %c 欢迎光临，大聪明&quot;</span>, <span class="string">&quot;color:white; background-color:#23c682&quot;</span>, <span class="string">&quot;&quot;</span>));</span><br><span class="line"></span><br><span class="line">    <span class="built_in">setTimeout</span>(</span><br><span class="line">        <span class="variable language_">console</span>.<span class="property">warn</span>.<span class="title function_">bind</span>(</span><br><span class="line">            <span class="variable language_">console</span>,</span><br><span class="line">            <span class="string">&quot;%c ⚡ Powered by 安小歪 %c 你正在访问安小歪の小家&quot;</span>,</span><br><span class="line">            <span class="string">&quot;color:white; background-color:#f0ad4e&quot;</span>,</span><br><span class="line">            <span class="string">&quot;&quot;</span></span><br><span class="line">        )</span><br><span class="line">    );</span><br><span class="line"></span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="variable language_">console</span>.<span class="property">log</span>.<span class="title function_">bind</span>(<span class="variable language_">console</span>, <span class="string">&quot;%c W23-12 %c 系统监测到你已打开控制台&quot;</span>, <span class="string">&quot;color:white; background-color:#4f90d9&quot;</span>, <span class="string">&quot;&quot;</span>));</span><br><span class="line">    <span class="built_in">setTimeout</span>(</span><br><span class="line">        <span class="variable language_">console</span>.<span class="property">warn</span>.<span class="title function_">bind</span>(<span class="variable language_">console</span>, <span class="string">&quot;%c S013-782 %c 你现在正处于监控中&quot;</span>, <span class="string">&quot;color:white; background-color:#d9534f&quot;</span>, <span class="string">&quot;&quot;</span>)</span><br><span class="line">    );</span><br><span class="line">&#125;</span><br><span class="line"><span class="title function_">createtime2</span>();</span><br><span class="line"></span><br><span class="line"><span class="comment">// 重写 console 方法</span></span><br><span class="line"><span class="variable language_">console</span>.<span class="property">log</span> = <span class="keyword">function</span> (<span class="params"></span>) &#123; &#125;;</span><br><span class="line"><span class="variable language_">console</span>.<span class="property">error</span> = <span class="keyword">function</span> (<span class="params"></span>) &#123; &#125;;</span><br><span class="line"><span class="variable language_">console</span>.<span class="property">warn</span> = <span class="keyword">function</span> (<span class="params"></span>) &#123; &#125;;</span><br></pre></td></tr></table></figure><h3 id="在主题配置文件中引入该-JS-文件"><a href="#在主题配置文件中引入该-JS-文件" class="headerlink" title="在主题配置文件中引入该 JS 文件"></a>在主题配置文件中引入该 JS 文件</h3><p>修改文件：<code>[BlogRoot]\_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">bottom:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">&lt;script</span> <span class="string">async</span> <span class="string">src=&quot;/js/console.js&quot;&gt;&lt;/script&gt;</span></span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://blog.anxw.cn/posts/11.html</id>
    <link href="https://blog.anxw.cn/posts/11.html"/>
    <published>2025-03-31T08:02:24.000Z</published>
    <summary>汇总 Butterfly 主题的常用魔改片段，包含图标替换、亚克力样式、版权卡片、背景切换、随机文章及控制台字符画。</summary>
    <title>Butterfly重装日记</title>
    <updated>2025-03-31T08:02:24.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="Butterfly" scheme="https://blog.anxw.cn/categories/Butterfly/"/>
    <category term="Butterfly" scheme="https://blog.anxw.cn/tags/Butterfly/"/>
    <content>
      <![CDATA[<blockquote><p>参考方案：<a href="https://blog.anheyu.com/posts/c248.html#%E9%A6%96%E9%A1%B5%E6%BB%9A%E5%8A%A8%E6%98%BE%E7%A4%BA%E5%8D%B3%E5%88%BB-%E5%8F%AF%E9%80%89%EF%BC%81">安知鱼的即刻方案</a></p></blockquote><p>因为静态的即刻加载太慢了，所以决定删去这一部分。</p><h2 id="添加-CSS-变量"><a href="#添加-CSS-变量" class="headerlink" title="添加 CSS 变量"></a>添加 CSS 变量</h2><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><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></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 颜色 */</span></span><br><span class="line"><span class="selector-pseudo">:root</span> &#123;</span><br><span class="line">  <span class="attr">--anzhiyu-theme-op</span>: <span class="number">#4259ef23</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-gray-op</span>: <span class="number">#9999992b</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-theme-top</span>: <span class="built_in">var</span>(--anzhiyu-theme);</span><br><span class="line">  <span class="attr">--anzhiyu-white</span>: <span class="number">#fff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-white-op</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.2</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-black</span>: <span class="number">#000</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-black-op</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.2</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-none</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-gray</span>: <span class="number">#999999</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-yellow</span>: <span class="number">#ffc93e</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-border-radius</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-main</span>: <span class="built_in">var</span>(--anzhiyu-theme);</span><br><span class="line">  <span class="attr">--anzhiyu-main-op</span>: <span class="built_in">var</span>(--anzhiyu-theme-op);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-theme</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">var</span>(--anzhiyu-theme-op);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-main</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">var</span>(--anzhiyu-main-op);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-blue</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">40</span>, <span class="number">109</span>, <span class="number">234</span>, <span class="number">0.2</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-white</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.2</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-black</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">12px</span> <span class="number">4px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.05</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-yellow</span>: <span class="number">0px</span> <span class="number">38px</span> <span class="number">77px</span> -<span class="number">26px</span> <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">201</span>, <span class="number">62</span>, <span class="number">0.12</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-red</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="number">#ee7d7936</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-green</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="number">#87ee7936</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-border</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">16px</span> -<span class="number">4px</span> <span class="number">#2c2d300c</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-blackdeep</span>: <span class="number">0</span> <span class="number">2px</span> <span class="number">16px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.15</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-logo-color</span>: <span class="built_in">linear-gradient</span>(<span class="number">215deg</span>, <span class="number">#4584ff</span> <span class="number">30%</span>, <span class="number">#ff7676</span> <span class="number">70%</span>);</span><br><span class="line">  <span class="attr">--style-border</span>: <span class="number">1px</span> solid <span class="built_in">var</span>(--anzhiyu-card-border);</span><br><span class="line">  <span class="attr">--anzhiyu-blue-main</span>: <span class="number">#3b70fc</span>;</span><br><span class="line">  <span class="attr">--style-border-hover</span>: <span class="number">1px</span> solid <span class="built_in">var</span>(--anzhiyu-main);</span><br><span class="line">  <span class="attr">--style-border-dashed</span>: <span class="number">1px</span> dashed <span class="built_in">var</span>(--anzhiyu-theme-op);</span><br><span class="line">  <span class="attr">--style-border-avatar</span>: <span class="number">4px</span> solid <span class="built_in">var</span>(--anzhiyu-background);</span><br><span class="line">  <span class="attr">--style-border-always</span>: <span class="number">1px</span> solid <span class="built_in">var</span>(--anzhiyu-card-border);</span><br><span class="line">  <span class="attr">--style-border-none</span>: <span class="number">1px</span> solid transparent;</span><br><span class="line">  <span class="attr">--anzhiyu-white-acrylic1</span>: <span class="number">#fefeff</span> <span class="meta">!important</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-white-acrylic2</span>: <span class="number">#fcfdff</span> <span class="meta">!important</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-black-acrylic2</span>: <span class="number">#08080a</span> <span class="meta">!important</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-black-acrylic1</span>: <span class="number">#0b0b0e</span> <span class="meta">!important</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-main-none</span>: <span class="number">#b8b8b800</span> <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;light&quot;</span>]</span> &#123;</span><br><span class="line">  <span class="attr">--anzhiyu-theme</span>: <span class="number">#3b70fc</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-theme-deep</span>: <span class="number">#1856fb</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-theme-op</span>: <span class="number">#4259ef23</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-blue</span>: <span class="number">#3b70fc</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-red</span>: <span class="number">#d8213c</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-pink</span>: <span class="number">#ff7c7c</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-green</span>: <span class="number">#57bd6a</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-fontcolor</span>: <span class="number">#363636</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-background</span>: <span class="number">#f7f9fe</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-reverse</span>: <span class="number">#000</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-maskbg</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.6</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-maskbgdeep</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.85</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-hovertext</span>: <span class="built_in">var</span>(--anzhiyu-theme);</span><br><span class="line">  <span class="attr">--anzhiyu-ahoverbg</span>: <span class="number">#f7f7fa</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-lighttext</span>: <span class="built_in">var</span>(--anzhiyu-main);</span><br><span class="line">  <span class="attr">--anzhiyu-secondtext</span>: <span class="built_in">rgba</span>(<span class="number">60</span>, <span class="number">60</span>, <span class="number">67</span>, <span class="number">0.6</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-scrollbar</span>: <span class="built_in">rgba</span>(<span class="number">60</span>, <span class="number">60</span>, <span class="number">67</span>, <span class="number">0.4</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-card-btn-bg</span>: <span class="number">#edf0f7</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-post-blockquote-bg</span>: <span class="number">#fafcff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-post-tabs-bg</span>: <span class="number">#f2f5f8</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-secondbg</span>: <span class="number">#f1f3f8</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-nav</span>: <span class="number">0</span> <span class="number">5px</span> <span class="number">12px</span> -<span class="number">5px</span> <span class="built_in">rgba</span>(<span class="number">102</span>, <span class="number">68</span>, <span class="number">68</span>, <span class="number">0.05</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-card-bg</span>: <span class="number">#fff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-lightblack</span>: <span class="number">0</span> <span class="number">5px</span> <span class="number">12px</span> -<span class="number">5px</span> <span class="built_in">rgba</span>(<span class="number">102</span>, <span class="number">68</span>, <span class="number">68</span>, <span class="number">0</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-light2black</span>: <span class="number">0</span> <span class="number">5px</span> <span class="number">12px</span> -<span class="number">5px</span> <span class="built_in">rgba</span>(<span class="number">102</span>, <span class="number">68</span>, <span class="number">68</span>, <span class="number">0</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-card-border</span>: <span class="number">#e3e8f7</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> &#123;</span><br><span class="line">  <span class="attr">--global-bg</span>: <span class="number">#191919</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-theme</span>: <span class="number">#0084ff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-theme-deep</span>: <span class="number">#0076e5</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-theme-op</span>: <span class="number">#0084ff23</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-blue</span>: <span class="number">#0084ff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-red</span>: <span class="number">#ff3842</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-pink</span>: <span class="number">#ff7c7c</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-green</span>: <span class="number">#57bd6a</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-fontcolor</span>: <span class="number">#f7f7fa</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-background</span>: <span class="number">#18171d</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-reverse</span>: <span class="number">#fff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-maskbg</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.6</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-maskbgdeep</span>: <span class="built_in">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.85</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-hovertext</span>: <span class="number">#0a84ff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-ahoverbg</span>: <span class="number">#fff</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-lighttext</span>: <span class="number">#f2b94b</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-secondtext</span>: <span class="number">#a1a2b8</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-scrollbar</span>: <span class="built_in">rgba</span>(<span class="number">200</span>, <span class="number">200</span>, <span class="number">223</span>, <span class="number">0.4</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-card-btn-bg</span>: <span class="number">#30343f</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-post-blockquote-bg</span>: <span class="number">#000</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-post-tabs-bg</span>: <span class="number">#121212</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-secondbg</span>: <span class="number">#30343f</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-nav</span>: <span class="number">0</span> <span class="number">5px</span> <span class="number">20px</span> <span class="number">0px</span> <span class="built_in">rgba</span>(<span class="number">28</span>, <span class="number">28</span>, <span class="number">28</span>, <span class="number">0.4</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-card-bg</span>: <span class="number">#1d1b26</span>;</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-lightblack</span>: <span class="number">0</span> <span class="number">5px</span> <span class="number">12px</span> -<span class="number">5px</span> <span class="built_in">rgba</span>(<span class="number">102</span>, <span class="number">68</span>, <span class="number">68</span>, <span class="number">0</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-shadow-light2black</span>: <span class="number">0</span> <span class="number">5px</span> <span class="number">12px</span> -<span class="number">5px</span> <span class="built_in">rgba</span>(<span class="number">102</span>, <span class="number">68</span>, <span class="number">68</span>, <span class="number">0</span>);</span><br><span class="line">  <span class="attr">--anzhiyu-card-border</span>: <span class="number">#42444a</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="创建数据文件"><a href="#创建数据文件" class="headerlink" title="创建数据文件"></a>创建数据文件</h2><p>创建 <code>source/_data/essay.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></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="attr">class_name:</span> <span class="string">即刻短文</span></span><br><span class="line">  <span class="attr">essay_list:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">朋友圈钓鱼样式修复</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2024</span><span class="string">/6/17</span> <span class="number">16</span><span class="string">:45:00</span></span><br><span class="line">      <span class="attr">from:</span> <span class="string">安小歪</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">高考结束了，等待出分！</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2024</span><span class="string">/6/9</span> <span class="number">19</span><span class="string">:45:00</span></span><br><span class="line">      <span class="attr">from:</span> <span class="string">安小歪</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">下午就要开学了！面临高考，要加油了~</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2024</span><span class="string">/2/25</span> <span class="number">10</span><span class="string">:45:00</span></span><br><span class="line">      <span class="attr">from:</span> <span class="string">安小歪</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="number">15</span> <span class="string">天假期过完了，要开学了！（哭死）</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2023</span><span class="string">/8/22</span> <span class="number">20</span><span class="string">:40:00</span></span><br><span class="line">      <span class="attr">from:</span> <span class="string">安小歪</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">山东平原发生了</span> <span class="number">6.4</span> <span class="string">级地震，周围部分地区有震感，我也是半夜被震醒了，当时以为做梦火车从旁边经过捏</span> <span class="string">emmm，迷迷糊糊的我感觉到地和床晃了。希望大家都平安~</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2023</span><span class="string">/8/6</span> <span class="number">02</span><span class="string">:33:59</span></span><br><span class="line">      <span class="attr">from:</span> <span class="string">安小歪</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">用</span> <span class="string">vercel</span> <span class="string">部署了一个</span> <span class="string">uptimerobot(*^▽^*)</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2023</span><span class="string">/7/15</span> <span class="number">08</span><span class="string">:00:00</span></span><br><span class="line">      <span class="attr">from:</span> <span class="string">安小歪</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">在</span> <span class="string">SZ・Ninty</span> <span class="string">的帮助下，也是把即刻短文整好了，(｡◕◡◕｡)</span> <span class="string">ﾉ</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2023</span><span class="string">/7/14</span></span><br><span class="line">      <span class="attr">link:</span> <span class="string">https://blog.sinzmise.top/</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">遇见彩虹🌈吃定彩虹</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2022</span><span class="string">/10/23</span> <span class="number">10</span><span class="string">:00:00</span></span><br><span class="line">      <span class="attr">image:</span></span><br><span class="line">        <span class="bullet">-</span> <span class="string">https://img02.anheyu.com/adminuploads/1/2022/10/23/6354ea92960ef.webp</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">ThreeJs</span> <span class="string">API</span> <span class="string">真多丫</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2022</span><span class="string">/10/19</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">content:</span> <span class="string">歌曲推荐</span></span><br><span class="line">      <span class="attr">date:</span> <span class="number">2022</span><span class="string">/09/25</span></span><br><span class="line">      <span class="attr">aplayer:</span></span><br><span class="line">        <span class="attr">server:</span> <span class="string">tencent</span></span><br><span class="line">        <span class="attr">id:</span> <span class="string">001FGQba3i10mw</span></span><br></pre></td></tr></table></figure><h2 id="创建-MD-页面文件"><a href="#创建-MD-页面文件" class="headerlink" title="创建 MD 页面文件"></a>创建 MD 页面文件</h2><p>创建 <code>source/essay/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">date: 2020-07-22 22:06:17</span><br><span class="line">comments: true</span><br><span class="line">aside: false</span><br><span class="line">top<span class="emphasis">_img: false</span></span><br><span class="line"><span class="emphasis">type: essay</span></span><br><span class="line"><span class="emphasis">---</span></span><br></pre></td></tr></table></figure><h2 id="创建-Pug-模板文件"><a href="#创建-Pug-模板文件" class="headerlink" title="创建 Pug 模板文件"></a>创建 Pug 模板文件</h2><p>创建 <code>themes/butterfly/layout/includes/page/essay.pug</code>，页面内容，注意该页面中可能存在部分 fontawesome 图标需要自行替换：</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><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></pre></td><td class="code"><pre><span class="line">#essay_page</span><br><span class="line">  .author-content.author-content-item.essayPage.single</span><br><span class="line">    .card-content</span><br><span class="line">      .author-content-item-tips 即刻短文</span><br><span class="line">      span.author-content-item-title 安小歪的日常生活。</span><br><span class="line">      .content-bottom</span><br><span class="line">        .tips 使用 即刻短文静态部署版 构建</span><br><span class="line">      .banner-button-group</span><br><span class="line">        a.banner-button(onclick=&#x27;pjax.loadUrl(&quot;/about/&quot;)&#x27;, data-pjax-state)</span><br><span class="line">          i.fas.fa-circle-right(style=&#x27;font-size: 1.5rem&#x27;)</span><br><span class="line">          span.banner-button-text 关于我</span><br><span class="line">  #bber</span><br><span class="line">    section.timeline.page-1</span><br><span class="line">      ul#waterfall.list</span><br><span class="line">        each i in site.data.essay</span><br><span class="line">          each item, index in i.essay_list</span><br><span class="line">            if index &lt; 30</span><br><span class="line">              li.bber-item</span><br><span class="line">                .bber-content</span><br><span class="line">                  p.datacont= item.content</span><br><span class="line">                    if item.image</span><br><span class="line">                      .bber-container-img</span><br><span class="line">                        each iten, indey in item.image</span><br><span class="line">                          a.bber-content-img(href=item.image[indey], target=&quot;_blank&quot;, data-fancybox=&quot;gallery&quot;, data-caption=&quot;&quot;)</span><br><span class="line">                            img(src=item.image[indey])</span><br><span class="line">                        .bber-content-noimg</span><br><span class="line">                        .bber-content-noimg</span><br><span class="line">                        .bber-content-noimg</span><br><span class="line">                    if item.aplayer</span><br><span class="line">                      .bber-music</span><br><span class="line">                        .aplayer.no-destroy(data-id=item.aplayer.id data-server=item.aplayer.server data-type=&quot;song&quot;  data-order=&quot;list&quot; data-preload=&quot;none&quot; data-autoplay=&quot;false&quot; data-mutex=&quot;true&quot; data-theme=&#x27;var(--anzhiyu-main)&#x27;)</span><br><span class="line">                hr</span><br><span class="line">                .bber-bottom</span><br><span class="line">                  .bber-info</span><br><span class="line">                    .bber-info-time</span><br><span class="line">                      - var datedata = new Date(item.date).toISOString()</span><br><span class="line">                      i.far.fa-clock</span><br><span class="line">                      time.datatime(datetime= item.date)= datedata</span><br><span class="line">                    if item.link</span><br><span class="line">                      a.bber-content-link(target=&quot;_blank&quot;, title=&quot;跳转到短文指引的链接&quot;, href=item.link, rel=&quot;external nofollow&quot;)</span><br><span class="line">                        i.fas.fa-link</span><br><span class="line">                        | 链接</span><br><span class="line">                    if item.from</span><br><span class="line">                      .bber-info-from</span><br><span class="line">                        i.fas.fa-fire</span><br><span class="line">                        span=item.from</span><br><span class="line">                  .bber-reply(onclick=&quot;anzhiyu.commentText(&quot; + `&#x27;$&#123;item.content&#125;&#x27;` + &quot;)&quot;)</span><br><span class="line">                    i.fa-solid.fa-message</span><br><span class="line">  #bber-tips(style=&#x27;color: var(--anzhiyu-secondtext);&#x27;)</span><br><span class="line">    | - 只展示最近 30 条短文 -</span><br></pre></td></tr></table></figure><h2 id="修改-Page-文件"><a href="#修改-Page-文件" class="headerlink" title="修改 Page 文件"></a>修改 Page 文件</h2><p>修改 <code>themes/butterfly/layout/page.pug</code> 来使页面内容匹配，在 <code>case page.type</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><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></pre></td><td class="code"><pre><span class="line">extends includes/layout.pug</span><br><span class="line"></span><br><span class="line">block content</span><br><span class="line">  #page</span><br><span class="line">    if top_img === false</span><br><span class="line">      h1.page-title= page.title</span><br><span class="line"></span><br><span class="line">    case page.type</span><br><span class="line">      when &#x27;essay&#x27;</span><br><span class="line">        include includes/page/essay.pug</span><br><span class="line">      when &#x27;tags&#x27;</span><br><span class="line">        include includes/page/tags.pug</span><br><span class="line">      when &#x27;about&#x27;</span><br><span class="line">        include includes/page/about.pug</span><br><span class="line">      when &#x27;tags&#x27;</span><br><span class="line">        include includes/page/tags.pug</span><br><span class="line">      when &#x27;link&#x27;</span><br><span class="line">        include includes/page/flink.pug</span><br><span class="line">      when &#x27;categories&#x27;</span><br><span class="line">        include includes/page/categories.pug</span><br><span class="line">      default</span><br><span class="line">        include includes/page/default-page.pug</span><br><span class="line"></span><br><span class="line">    if page.comments !== false &amp;&amp; theme.comments &amp;&amp; theme.comments.use</span><br><span class="line">      - var commentsJsLoad = true</span><br><span class="line">      !=partial(&#x27;includes/third-party/comments/index&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br></pre></td></tr></table></figure><h2 id="添加-CSS-样式"><a href="#添加-CSS-样式" class="headerlink" title="添加 CSS 样式"></a>添加 CSS 样式</h2><p>创建 <code>source/css/essay_page/essay_page.css</code>，然后在 <code>_config.butterfly.yml</code> 中的 <code>inject</code> 下的 <code>head</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><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-id">#page</span><span class="selector-pseudo">:has</span>(<span class="selector-id">#essay_page</span>) &#123;</span><br><span class="line">  <span class="attribute">border</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">box-shadow</span>: none <span class="meta">!important</span>;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">0</span> <span class="meta">!important</span>;</span><br><span class="line">  <span class="attribute">background</span>: transparent <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#page</span><span class="selector-pseudo">:has</span>(<span class="selector-id">#essay_page</span>) <span class="selector-class">.page-title</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: none;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#web_bg</span> ~ <span class="selector-class">.page</span><span class="selector-pseudo">:has</span>(<span class="selector-id">#essay_page</span>) &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--anzhiyu-background);</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-container-img</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">justify-content</span>: space-around;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">flex-wrap</span>: wrap;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">0.3rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-container-img</span> <span class="selector-class">.bber-content-noimg</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="built_in">calc</span>(<span class="number">100%</span> / <span class="number">4</span> - <span class="number">5px</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-content-img</span> <span class="selector-tag">img</span> &#123;</span><br><span class="line">  <span class="attribute">object-fit</span>: cover;</span><br><span class="line">  <span class="attribute">max-height</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-content-img</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">position</span>: relative;</span><br><span class="line">  <span class="attribute">width</span>: <span class="built_in">calc</span>(<span class="number">100%</span> / <span class="number">4</span> - <span class="number">5px</span>);</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">10px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-content</span> <span class="selector-class">.datacont</span> &#123;</span><br><span class="line">  <span class="attribute">order</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">0.8rem</span>;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">700</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-fontcolor);</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">1.38</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">0.5rem</span>;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-direction</span>: column;</span><br><span class="line">  <span class="attribute">text-align</span>: justify;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-tag">p</span> &#123;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">0px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-tag">div</span><span class="selector-class">.bber-content</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-flow</span>: wrap;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100%</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.timeline</span> <span class="selector-tag">ul</span> <span class="selector-tag">li</span><span class="selector-class">.bber-item</span> &#123;</span><br><span class="line">  <span class="attribute">position</span>: relative;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">32%</span>;</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--style-border-always);</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">1rem</span> <span class="number">1rem</span> <span class="number">0.5rem</span>;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.3s</span> ease <span class="number">0s</span>;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-flow</span>: column nowrap;</span><br><span class="line">  <span class="attribute">justify-content</span>: space-between;</span><br><span class="line">  <span class="attribute">align-items</span>: flex-start;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--anzhiyu-card-bg);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="built_in">var</span>(--anzhiyu-shadow-border);</span><br><span class="line">  <span class="attribute">margin-right</span>: <span class="number">2%</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.timeline</span> <span class="selector-id">#waterfall</span><span class="selector-class">.show</span> &#123;</span><br><span class="line">  <span class="attribute">opacity</span>: <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.timeline</span> <span class="selector-id">#waterfall</span> &#123;</span><br><span class="line">  <span class="attribute">opacity</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.3s</span> ease <span class="number">0s</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-tag">ul</span><span class="selector-class">.list</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-flow</span>: row wrap;</span><br><span class="line">  <span class="attribute">justify-content</span>: space-between;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> &#123;</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">1rem</span>;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> &gt; <span class="selector-tag">section</span> &gt; <span class="selector-tag">ul</span> &gt; <span class="selector-tag">li</span><span class="selector-class">.bber-item</span> &#123;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">1rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber-tips</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">14px</span>;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">justify-content</span>: center;</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">1rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.timeline</span> <span class="selector-tag">ul</span> <span class="selector-tag">li</span><span class="selector-class">.bber-item</span> hr &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">position</span>: relative;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">8px</span> <span class="number">0px</span>;</span><br><span class="line">  <span class="attribute">border</span>: <span class="number">1px</span> dashed <span class="built_in">var</span>(--anzhiyu-theme-op);</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-info</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> &gt; <span class="selector-tag">section</span> &gt; <span class="selector-tag">ul</span> &gt; <span class="selector-tag">li</span> &gt; <span class="selector-tag">div</span> <span class="selector-class">.bber-info-time</span>,</span><br><span class="line"><span class="selector-id">#bber</span> &gt; <span class="selector-tag">section</span> &gt; <span class="selector-tag">ul</span> &gt; <span class="selector-tag">li</span> &gt; <span class="selector-tag">div</span> <span class="selector-class">.bber-info-from</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-fontcolor);</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">0.7rem</span>;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="built_in">var</span>(--anzhiyu-gray-op);</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">0px</span> <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">20px</span>;</span><br><span class="line">  <span class="attribute">cursor</span>: default;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-info</span> <span class="selector-class">.far</span><span class="selector-class">.fa-clock</span> &#123;</span><br><span class="line">  <span class="attribute">margin-right</span>: <span class="number">4px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> &gt; <span class="selector-tag">section</span> &gt; <span class="selector-tag">ul</span> &gt; <span class="selector-tag">li</span> &gt; <span class="selector-tag">div</span> <span class="selector-class">.bber-info-from</span> <span class="selector-tag">span</span>,</span><br><span class="line"><span class="selector-id">#bber</span> &gt; <span class="selector-tag">section</span> &gt; <span class="selector-tag">ul</span> &gt; <span class="selector-tag">li</span> &gt; <span class="selector-tag">div</span> <span class="selector-class">.bber-info-from</span> &#123;</span><br><span class="line">  <span class="attribute">margin-left</span>: <span class="number">4px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-bottom</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">justify-content</span>: space-between;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">10px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-bottom</span> <span class="selector-class">.bber-reply</span> &#123;</span><br><span class="line">  <span class="attribute">cursor</span>: pointer;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.timeline</span> <span class="selector-tag">ul</span> <span class="selector-tag">li</span><span class="selector-class">.bber-item</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--style-border-hover);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-content-link</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">margin-left</span>: <span class="number">0.5rem</span>;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">0.7rem</span>;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">245</span>, <span class="number">108</span>, <span class="number">108</span>, <span class="number">0.13</span>);</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">rgb</span>(<span class="number">245</span>, <span class="number">108</span>, <span class="number">108</span>);</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">0px</span> <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">20px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-content-link</span> <span class="selector-tag">i</span> &#123;</span><br><span class="line">  <span class="attribute">margin-right</span>: <span class="number">3px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-content-link</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="built_in">var</span>(--anzhiyu-main);</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-white);</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.bber-music</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">90px</span>;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">0.5rem</span> <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--style-border-always);</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--anzhiyu-secondbg);</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> &#123;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span><span class="selector-class">.aplayer-withlrc</span> <span class="selector-class">.aplayer-pic</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">82px</span>;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">82px</span>;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">4px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">4px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.bber-music</span> <span class="selector-class">.aplayer</span><span class="selector-class">.aplayer-withlrc</span> <span class="selector-class">.aplayer-info</span> &#123;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">5px</span> <span class="number">7px</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-music</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">23px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-music</span> <span class="selector-class">.aplayer-title</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">0.8rem</span>;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">700</span>;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-fontcolor);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> &#123;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> <span class="selector-class">.aplayer-bar-wrap</span> &#123;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> <span class="selector-class">.aplayer-time</span> &#123;</span><br><span class="line">  <span class="attribute">position</span>: initial;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> <span class="selector-class">.aplayer-bar-wrap</span> <span class="selector-class">.aplayer-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--anzhiyu-gray);</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">transition</span>: <span class="number">0.3s</span>;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> <span class="selector-class">.aplayer-bar-wrap</span> <span class="selector-class">.aplayer-bar</span> <span class="selector-class">.aplayer-loaded</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> <span class="selector-class">.aplayer-bar-wrap</span> <span class="selector-class">.aplayer-bar</span> <span class="selector-class">.aplayer-played</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> <span class="selector-class">.aplayer-bar-wrap</span> <span class="selector-class">.aplayer-bar</span> <span class="selector-class">.aplayer-played</span> <span class="selector-class">.aplayer-thumb</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: none;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-info</span> <span class="selector-class">.aplayer-controller</span> <span class="selector-class">.aplayer-time</span> &#123;</span><br><span class="line">  <span class="attribute">position</span>: initial;</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="selector-class">.author-content</span><span class="selector-class">.author-content-item</span><span class="selector-class">.essayPage</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">19rem</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">url</span>(<span class="string">https://hexo.anxy.top/img/guangyu.jpg</span>) left <span class="number">28%</span> / cover no-repeat;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-white);</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">0px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#page</span><span class="selector-pseudo">:has</span>(<span class="selector-id">#essay_page</span>) <span class="selector-class">.author-content-item</span> <span class="selector-class">.card-content</span> <span class="selector-class">.banner-button-group</span> <span class="selector-class">.banner-button</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-white);</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">20px</span> <span class="meta">!important</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">@media</span> screen <span class="keyword">and</span> (<span class="attribute">max-width</span>: <span class="number">1300px</span>) &#123;</span><br><span class="line">  <span class="selector-id">#bber</span> <span class="selector-class">.timeline</span> <span class="selector-tag">ul</span> <span class="selector-tag">li</span><span class="selector-class">.bber-item</span> &#123;</span><br><span class="line">    <span class="attribute">width</span>: <span class="number">49%</span>;</span><br><span class="line">    <span class="attribute">margin-right</span>: <span class="number">1%</span>;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">@media</span> screen <span class="keyword">and</span> (<span class="attribute">max-width</span>: <span class="number">768px</span>) &#123;</span><br><span class="line">  <span class="selector-id">#bber</span> <span class="selector-class">.timeline</span> <span class="selector-tag">ul</span> <span class="selector-tag">li</span><span class="selector-class">.bber-item</span> &#123;</span><br><span class="line">    <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">    <span class="attribute">margin-right</span>: <span class="number">0px</span>;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#bber</span> <span class="selector-class">.bber-music</span> <span class="selector-class">.aplayer</span>,</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-lrc</span><span class="selector-pseudo">:before</span>,</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-lrc</span><span class="selector-pseudo">:after</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--anzhiyu-card-bg);</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-fontcolor);</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber</span> <span class="selector-class">.aplayer</span> <span class="selector-class">.aplayer-lrc</span> <span class="selector-tag">p</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-fontcolor);</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/essay_page/essay_page.css&quot;&gt;</span></span><br></pre></td></tr></table></figure><h2 id="JS-处理"><a href="#JS-处理" class="headerlink" title="JS 处理"></a>JS 处理</h2><p>新建一个 js 文件用来处理即刻短文的逻辑，或者写在公共 js 中也可以。博主写在公共 js 中，即 <code>custom.js</code>，该 js 在 <code>_config.butterfly.yml</code> 中的 <code>inject</code> 使用如下方式引入，加入了 <code>data-pjax</code>，并且开启了站点的 <code>pjax</code>，然后再引入 <code>waterfall.js</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">inject:</span></span><br><span class="line">  <span class="attr">bottom:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">&lt;script</span> <span class="string">async</span> <span class="string">data-pjax</span> <span class="string">src=&quot;/js/custom.js&quot;&gt;&lt;/script&gt;</span></span><br><span class="line">    <span class="comment"># 即刻依赖 waterfall</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">&lt;script</span> <span class="string">async</span> <span class="string">data-pjax</span> <span class="string">src=&quot;/js/waterfall/waterfall.js&quot;&gt;&lt;/script&gt;</span></span><br></pre></td></tr></table></figure><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="comment"># Pjax</span></span><br><span class="line"><span class="comment"># It may contain bugs and unstable, give feedback when you find the bugs.</span></span><br><span class="line"><span class="comment"># https://github.com/MoOx/pjax</span></span><br><span class="line"><span class="attr">pjax:</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">exclude:</span></span><br></pre></td></tr></table></figure><p>新建 <code>source/js/waterfall/waterfall.js</code> 内容如下：</p><figure class="highlight javascript"><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></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">waterfall</span>(<span class="params">a</span>) &#123;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">b</span>(<span class="params">a, b</span>) &#123;</span><br><span class="line">    <span class="keyword">var</span> c = <span class="variable language_">window</span>.<span class="title function_">getComputedStyle</span>(b);</span><br><span class="line">    <span class="keyword">return</span> <span class="built_in">parseFloat</span>(c[<span class="string">&quot;margin&quot;</span> + a]) || <span class="number">0</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">c</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> a + <span class="string">&quot;px&quot;</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">d</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="built_in">parseFloat</span>(a.<span class="property">style</span>.<span class="property">top</span>);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">e</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="built_in">parseFloat</span>(a.<span class="property">style</span>.<span class="property">left</span>);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">f</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> a.<span class="property">clientWidth</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">g</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> a.<span class="property">clientHeight</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">h</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="title function_">d</span>(a) + <span class="title function_">g</span>(a) + <span class="title function_">b</span>(<span class="string">&quot;Bottom&quot;</span>, a);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">i</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="title function_">e</span>(a) + <span class="title function_">f</span>(a) + <span class="title function_">b</span>(<span class="string">&quot;Right&quot;</span>, a);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">j</span>(<span class="params">a</span>) &#123;</span><br><span class="line">    a = a.<span class="title function_">sort</span>(<span class="keyword">function</span> (<span class="params">a, b</span>) &#123;</span><br><span class="line">      <span class="keyword">return</span> <span class="title function_">h</span>(a) === <span class="title function_">h</span>(b) ? <span class="title function_">e</span>(b) - <span class="title function_">e</span>(a) : <span class="title function_">h</span>(b) - <span class="title function_">h</span>(a);</span><br><span class="line">    &#125;);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">function</span> <span class="title function_">k</span>(<span class="params">b</span>) &#123;</span><br><span class="line">    <span class="title function_">f</span>(a) != t &amp;&amp; (b.<span class="property">target</span>.<span class="title function_">removeEventListener</span>(b.<span class="property">type</span>, <span class="variable language_">arguments</span>.<span class="property">callee</span>), <span class="title function_">waterfall</span>(a));</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="string">&quot;string&quot;</span> == <span class="keyword">typeof</span> a &amp;&amp; (a = <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(a));</span><br><span class="line">  <span class="keyword">var</span> l = [].<span class="property">map</span>.<span class="title function_">call</span>(a.<span class="property">children</span>, <span class="keyword">function</span> (<span class="params">a</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> (a.<span class="property">style</span>.<span class="property">position</span> = <span class="string">&quot;absolute&quot;</span>), a;</span><br><span class="line">  &#125;);</span><br><span class="line">  a.<span class="property">style</span>.<span class="property">position</span> = <span class="string">&quot;relative&quot;</span>;</span><br><span class="line">  <span class="keyword">var</span> m = [];</span><br><span class="line">  l.<span class="property">length</span> &amp;&amp; ((l[<span class="number">0</span>].<span class="property">style</span>.<span class="property">top</span> = <span class="string">&quot;0px&quot;</span>), (l[<span class="number">0</span>].<span class="property">style</span>.<span class="property">left</span> = <span class="title function_">c</span>(<span class="title function_">b</span>(<span class="string">&quot;Left&quot;</span>, l[<span class="number">0</span>]))), m.<span class="title function_">push</span>(l[<span class="number">0</span>]));</span><br><span class="line">  <span class="keyword">for</span> (<span class="keyword">var</span> n = <span class="number">1</span>; n &lt; l.<span class="property">length</span>; n++) &#123;</span><br><span class="line">    <span class="keyword">var</span> o = l[n - <span class="number">1</span>],</span><br><span class="line">      p = l[n],</span><br><span class="line">      q = <span class="title function_">i</span>(o) + <span class="title function_">f</span>(p) &lt;= <span class="title function_">f</span>(a);</span><br><span class="line">    <span class="keyword">if</span> (!q) <span class="keyword">break</span>;</span><br><span class="line">    (p.<span class="property">style</span>.<span class="property">top</span> = o.<span class="property">style</span>.<span class="property">top</span>), (p.<span class="property">style</span>.<span class="property">left</span> = <span class="title function_">c</span>(<span class="title function_">i</span>(o) + <span class="title function_">b</span>(<span class="string">&quot;Left&quot;</span>, p))), m.<span class="title function_">push</span>(p);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">for</span> (; n &lt; l.<span class="property">length</span>; n++) &#123;</span><br><span class="line">    <span class="title function_">j</span>(m);</span><br><span class="line">    <span class="keyword">var</span> p = l[n],</span><br><span class="line">      r = m.<span class="title function_">pop</span>();</span><br><span class="line">    (p.<span class="property">style</span>.<span class="property">top</span> = <span class="title function_">c</span>(<span class="title function_">h</span>(r) + <span class="title function_">b</span>(<span class="string">&quot;Top&quot;</span>, p))), (p.<span class="property">style</span>.<span class="property">left</span> = <span class="title function_">c</span>(<span class="title function_">e</span>(r))), m.<span class="title function_">push</span>(p);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="title function_">j</span>(m);</span><br><span class="line">  <span class="keyword">var</span> s = m[<span class="number">0</span>];</span><br><span class="line">  a.<span class="property">style</span>.<span class="property">height</span> = <span class="title function_">c</span>(<span class="title function_">h</span>(s) + <span class="title function_">b</span>(<span class="string">&quot;Bottom&quot;</span>, s));</span><br><span class="line">  <span class="keyword">var</span> t = <span class="title function_">f</span>(a);</span><br><span class="line">  <span class="variable language_">window</span>.<span class="property">addEventListener</span> ? <span class="variable language_">window</span>.<span class="title function_">addEventListener</span>(<span class="string">&quot;resize&quot;</span>, k) : (<span class="variable language_">document</span>.<span class="property">body</span>.<span class="property">onresize</span> = k);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p><code>custom.js</code> 内容如下：</p><figure class="highlight javascript"><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></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> percentFlag = <span class="literal">false</span>; <span class="comment">// 节流阀</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">essayScroll</span>(<span class="params"></span>) &#123;</span><br><span class="line">  <span class="keyword">let</span> a = <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">scrollTop</span> || <span class="variable language_">window</span>.<span class="property">pageYOffset</span>; <span class="comment">// 卷去高度</span></span><br><span class="line">  <span class="keyword">const</span> waterfallResult = a % <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">clientHeight</span>; <span class="comment">// 卷去一个视口</span></span><br><span class="line">  result &lt;= <span class="number">99</span> || (result = <span class="number">99</span>);</span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> (</span><br><span class="line">    !percentFlag &amp;&amp;</span><br><span class="line">    waterfallResult + <span class="number">100</span> &gt;= <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">clientHeight</span> &amp;&amp;</span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#waterfall&quot;</span>)</span><br><span class="line">  ) &#123;</span><br><span class="line">    <span class="comment">// console.info(waterfallResult, document.documentElement.clientHeight);</span></span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">      <span class="title function_">waterfall</span>(<span class="string">&quot;#waterfall&quot;</span>);</span><br><span class="line">    &#125;, <span class="number">500</span>);</span><br><span class="line">  &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">      <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#waterfall&quot;</span>) &amp;&amp; <span class="title function_">waterfall</span>(<span class="string">&quot;#waterfall&quot;</span>);</span><br><span class="line">    &#125;, <span class="number">500</span>);</span><br><span class="line">  &#125;</span><br><span class="line"></span><br><span class="line">  <span class="keyword">const</span> r = <span class="variable language_">window</span>.<span class="property">scrollY</span> + <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">clientHeight</span>;</span><br><span class="line"></span><br><span class="line">  <span class="keyword">let</span> p = <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;post-comment&quot;</span>) || <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;footer&quot;</span>);</span><br><span class="line"></span><br><span class="line">  (p.<span class="property">offsetTop</span> + p.<span class="property">offsetHeight</span> / <span class="number">2</span> &lt; r || <span class="number">90</span> &lt; result) &amp;&amp; (percentFlag = <span class="literal">true</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">function</span> <span class="title function_">replaceAll</span>(<span class="params">e, n, t</span>) &#123;</span><br><span class="line">  <span class="keyword">return</span> e.<span class="title function_">split</span>(n).<span class="title function_">join</span>(t);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> anzhiyu = &#123;</span><br><span class="line">  <span class="attr">diffDate</span>: <span class="keyword">function</span> (<span class="params">d, more = <span class="literal">false</span></span>) &#123;</span><br><span class="line">    <span class="keyword">const</span> dateNow = <span class="keyword">new</span> <span class="title class_">Date</span>();</span><br><span class="line">    <span class="keyword">const</span> datePost = <span class="keyword">new</span> <span class="title class_">Date</span>(d);</span><br><span class="line">    <span class="keyword">const</span> dateDiff = dateNow.<span class="title function_">getTime</span>() - datePost.<span class="title function_">getTime</span>();</span><br><span class="line">    <span class="keyword">const</span> minute = <span class="number">1000</span> * <span class="number">60</span>;</span><br><span class="line">    <span class="keyword">const</span> hour = minute * <span class="number">60</span>;</span><br><span class="line">    <span class="keyword">const</span> day = hour * <span class="number">24</span>;</span><br><span class="line">    <span class="keyword">const</span> month = day * <span class="number">30</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">let</span> result;</span><br><span class="line">    <span class="keyword">if</span> (more) &#123;</span><br><span class="line">      <span class="keyword">const</span> monthCount = dateDiff / month;</span><br><span class="line">      <span class="keyword">const</span> dayCount = dateDiff / day;</span><br><span class="line">      <span class="keyword">const</span> hourCount = dateDiff / hour;</span><br><span class="line">      <span class="keyword">const</span> minuteCount = dateDiff / minute;</span><br><span class="line"></span><br><span class="line">      <span class="keyword">if</span> (monthCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = datePost.<span class="title function_">toLocaleDateString</span>().<span class="title function_">replace</span>(<span class="regexp">/\//g</span>, <span class="string">&quot;-&quot;</span>);</span><br><span class="line">      &#125; <span class="keyword">else</span> <span class="keyword">if</span> (dayCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = <span class="built_in">parseInt</span>(dayCount) + <span class="string">&quot; &quot;</span> + <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">day</span>;</span><br><span class="line">      &#125; <span class="keyword">else</span> <span class="keyword">if</span> (hourCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = <span class="built_in">parseInt</span>(hourCount) + <span class="string">&quot; &quot;</span> + <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">hour</span>;</span><br><span class="line">      &#125; <span class="keyword">else</span> <span class="keyword">if</span> (minuteCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = <span class="built_in">parseInt</span>(minuteCount) + <span class="string">&quot; &quot;</span> + <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">min</span>;</span><br><span class="line">      &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">        result = <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">just</span>;</span><br><span class="line">      &#125;</span><br><span class="line">    &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">      result = <span class="built_in">parseInt</span>(dateDiff / day);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> result;</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="attr">changeTimeInEssay</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#bber&quot;</span>) &amp;&amp;</span><br><span class="line">      <span class="variable language_">document</span>.<span class="title function_">querySelectorAll</span>(<span class="string">&quot;#bber time&quot;</span>).<span class="title function_">forEach</span>(<span class="keyword">function</span> (<span class="params">e</span>) &#123;</span><br><span class="line">        <span class="keyword">var</span> t = e,</span><br><span class="line">          datetime = t.<span class="title function_">getAttribute</span>(<span class="string">&quot;datetime&quot;</span>);</span><br><span class="line">        (t.<span class="property">innerText</span> = anzhiyu.<span class="title function_">diffDate</span>(datetime, <span class="literal">true</span>)), (t.<span class="property">style</span>.<span class="property">display</span> = <span class="string">&quot;inline&quot;</span>);</span><br><span class="line">      &#125;);</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="attr">reflashEssayWaterFall</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#waterfall&quot;</span>) &amp;&amp;</span><br><span class="line">      <span class="built_in">setTimeout</span>(<span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">        <span class="title function_">waterfall</span>(<span class="string">&quot;#waterfall&quot;</span>);</span><br><span class="line">        <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;waterfall&quot;</span>).<span class="property">classList</span>.<span class="title function_">add</span>(<span class="string">&quot;show&quot;</span>);</span><br><span class="line">      &#125;, <span class="number">500</span>);</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="attr">commentText</span>: <span class="keyword">function</span> (<span class="params">e</span>) &#123;</span><br><span class="line">    <span class="keyword">if</span> (e == <span class="string">&quot;undefined&quot;</span> || e == <span class="string">&quot;null&quot;</span>) e = <span class="string">&quot;好棒！&quot;</span>;</span><br><span class="line">    <span class="keyword">var</span> n = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&quot;el-textarea__inner&quot;</span>)[<span class="number">0</span>],</span><br><span class="line">      t = <span class="variable language_">document</span>.<span class="title function_">createEvent</span>(<span class="string">&quot;HTMLEvents&quot;</span>);</span><br><span class="line">    <span class="keyword">if</span> (!n) <span class="keyword">return</span>;</span><br><span class="line">    t.<span class="title function_">initEvent</span>(<span class="string">&quot;input&quot;</span>, !<span class="number">0</span>, !<span class="number">0</span>);</span><br><span class="line">    <span class="keyword">var</span> o = <span class="title function_">replaceAll</span>(e, <span class="string">&quot;\n&quot;</span>, <span class="string">&quot;\n&gt; &quot;</span>);</span><br><span class="line">    (n.<span class="property">value</span> = <span class="string">&quot;&gt; &quot;</span> + o + <span class="string">&quot;\n\n&quot;</span>), n.<span class="title function_">dispatchEvent</span>(t);</span><br><span class="line">    <span class="keyword">var</span> i = <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#post-comment&quot;</span>).<span class="property">offsetTop</span>;</span><br><span class="line">    <span class="variable language_">window</span>.<span class="title function_">scrollTo</span>(<span class="number">0</span>, i - <span class="number">80</span>),</span><br><span class="line">      n.<span class="title function_">focus</span>(),</span><br><span class="line">      n.<span class="title function_">setSelectionRange</span>(-<span class="number">1</span>, -<span class="number">1</span>),</span><br><span class="line">      <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;comment-tips&quot;</span>) &amp;&amp; <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;comment-tips&quot;</span>).<span class="property">classList</span>.<span class="title function_">add</span>(<span class="string">&quot;show&quot;</span>);</span><br><span class="line">  &#125;,</span><br><span class="line">&#125;;</span><br><span class="line"></span><br><span class="line">anzhiyu.<span class="title function_">changeTimeInEssay</span>();</span><br><span class="line">anzhiyu.<span class="title function_">reflashEssayWaterFall</span>();</span><br></pre></td></tr></table></figure><p>其中 <code>anzhiyu</code> 变量中存储的四个方法：</p><ul><li><code>diffDate</code> 为处理时间的方法，其实 btf 中也有，只是不太喜欢那个的显示方式，就改成现在这个了。</li><li><code>changeTimeInEssay</code> 初始化即刻时间</li><li><code>reflashEssayWaterFall</code> 处理瀑布流显示</li><li><code>commentText</code> 处理点击跳转评论并添加评论</li></ul><p>方法 <code>essayScroll</code> 为检查滚动条卷去一个视口高度的 100 范围内执行一次，滑动到底部或评论区取消监听执行。此处博主未做 else 处理取消监听，如果有写 percent 函数监听滑动可以一起写在同一个方法里面。（博主就是写在同一个方法里面），如果即刻文章很少的话其实是可以不监听滑动的，即只显示近 30 条，因为进入页面后会执行一次瀑布流，页面不会乱，但是如果您把 <code>essay.pug</code> 中 17 行左右修改后可以达到无限的效果就会出现 dom 结构还没渲染瀑布流就已经执行完了的情况就需要监听滚动来再次执行瀑布流以完成布局。</p><h2 id="首页滚动显示即刻（可选）"><a href="#首页滚动显示即刻（可选）" class="headerlink" title="首页滚动显示即刻（可选）"></a>首页滚动显示即刻（可选）</h2><p>创建 <code>themes/butterfly/layout/includes/bbTimeList.pug</code>，部分 fontawesome 图标可能需要您自行修改：</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></pre></td><td class="code"><pre><span class="line">#bbTimeList.bbTimeList.container</span><br><span class="line">    i.anzhiyufont.anzhiyu-icon-jike.bber-logo.fontbold(onclick=`pjax.loadUrl(&quot;/essay/&quot;)`,title=&quot;即刻短文&quot;, aria-hidden=&quot;true&quot;)</span><br><span class="line">    #bbtalk.swiper-container.swiper-no-swiping.essay_bar_swiper_container(tabindex=&quot;-1&quot;)</span><br><span class="line">      #bber-talk.swiper-wrapper(onclick=`pjax.loadUrl(&quot;/essay/&quot;)`)</span><br><span class="line">        each i in site.data.essay</span><br><span class="line">          each item, index in i.essay_list</span><br><span class="line">            if index &lt; 10</span><br><span class="line">              - var contentText = item.image ? item.content + &#x27; [图片]&#x27; : item.content</span><br><span class="line">              .li-style.swiper-slide= contentText</span><br><span class="line"></span><br><span class="line">    i.bber-gotobb.fas.fa-arrow-circle-right(onclick=`pjax.loadUrl(&quot;/essay/&quot;)`,title=&quot;查看全文&quot;)</span><br></pre></td></tr></table></figure><h3 id="引入到主页"><a href="#引入到主页" class="headerlink" title="引入到主页"></a>引入到主页</h3><p>修改 <code>themes/butterfly/layout/index.pug</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></pre></td><td class="code"><pre><span class="line">extends includes/layout.pug</span><br><span class="line"></span><br><span class="line">block content</span><br><span class="line">  include ./includes/mixins/post-ui.pug</span><br><span class="line">  #recent-posts.recent-posts</span><br><span class="line">    include includes/categoryBar.pug</span><br><span class="line">    +postUI</span><br><span class="line">    include includes/pagination.pug</span><br></pre></td></tr></table></figure><p>如果需要像本站一样在整个顶部引入的话可以参考下面的代码，修改 <code>themes/butterfly/layout/includes/layout.pug</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><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></pre></td><td class="code"><pre><span class="line">- var htmlClassHideAside = theme.aside.enable &amp;&amp; theme.aside.hide ? &#x27;hide-aside&#x27; : &#x27;&#x27;</span><br><span class="line">- page.aside = is_archive() ? theme.aside.display.archive: is_category() ? theme.aside.display.category : is_tag() ? theme.aside.display.tag : page.aside</span><br><span class="line">- var hideAside = !theme.aside.enable || page.aside === false ? &#x27;hide-aside&#x27; : &#x27;&#x27;</span><br><span class="line">- var pageType = is_post() ? &#x27;post&#x27; : &#x27;page&#x27;</span><br><span class="line"></span><br><span class="line">doctype html</span><br><span class="line">html(lang=config.language data-theme=theme.display_mode class=htmlClassHideAside)</span><br><span class="line">  head</span><br><span class="line">    include ./head.pug</span><br><span class="line">  body</span><br><span class="line">    if theme.preloader.enable</span><br><span class="line">      !=partial(&#x27;includes/loading/index&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br><span class="line"></span><br><span class="line">    if theme.background</span><br><span class="line">      #web_bg</span><br><span class="line">      </span><br><span class="line">    !=partial(&#x27;includes/sidebar&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br><span class="line">    </span><br><span class="line">    if theme.background</span><br><span class="line">      #svg_bg</span><br><span class="line">      </span><br><span class="line">    !=partial(&#x27;includes/sidebar&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br><span class="line"></span><br><span class="line">    if page.type !== &#x27;404&#x27;</span><br><span class="line">      #body-wrap(class=pageType)</span><br><span class="line">        include ./header/index.pug</span><br><span class="line">        if (is_home())</span><br><span class="line">          include ./bbTimeList.pug</span><br><span class="line">        </span><br><span class="line"></span><br><span class="line">        main#content-inner.layout(class=hideAside)</span><br><span class="line">          if body</span><br><span class="line">            div!= body</span><br><span class="line">          else</span><br><span class="line">            block content</span><br><span class="line">            if theme.aside.enable &amp;&amp; page.aside !== false</span><br><span class="line">              include widget/index.pug</span><br><span class="line"></span><br><span class="line">        - var footerBg = theme.footer_bg</span><br><span class="line">        if (footerBg)</span><br><span class="line">          if (footerBg === true)</span><br><span class="line">            - var footer_bg = bg_img</span><br><span class="line">          else</span><br><span class="line">            - var footer_bg = isImgOrUrl(theme.footer_bg) ? `background-image: url(&#x27;$&#123;url_for(footerBg)&#125;&#x27;)` : `background: $&#123;footerBg&#125;`</span><br><span class="line">        else</span><br><span class="line">          - var footer_bg = &#x27;&#x27;</span><br><span class="line"></span><br><span class="line">        footer#footer(style=footer_bg)</span><br><span class="line">          !=partial(&#x27;includes/footer&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br><span class="line"></span><br><span class="line">    else</span><br><span class="line">      include ./404.pug</span><br><span class="line"></span><br><span class="line">    include ./rightside.pug</span><br><span class="line">    include ./additional-js.pug</span><br><span class="line">    !=partial(&#x27;includes/third-party/search/index&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br></pre></td></tr></table></figure><h3 id="引入-Swiper-依赖"><a href="#引入-Swiper-依赖" class="headerlink" title="引入 Swiper 依赖"></a>引入 Swiper 依赖</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></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;https://npm.elemecdn.com/hexo-butterfly-swiper-anzhiyu@1.0.4/lib/swiper.min.css&quot;&gt;</span></span><br><span class="line">  <span class="attr">bottom:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">&lt;script</span> <span class="string">data-pjax</span> <span class="string">src=&quot;https://npm.elemecdn.com/anzhiyu-blog@1.1.6/js/swiper.min.js&quot;&gt;&lt;/script&gt;</span></span><br></pre></td></tr></table></figure><h3 id="添加自定义-CSS"><a href="#添加自定义-CSS" class="headerlink" title="添加自定义 CSS"></a>添加自定义 CSS</h3><p>创建 <code>source/css/essay_page/home_essay_bar.css</code>，然后在 <code>_config.butterfly.yml</code> 中的 <code>inject</code> 下的 <code>head</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/essay_page/home_essay_bar.css&quot;&gt;</span></span><br></pre></td></tr></table></figure><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><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></pre></td><td class="code"><pre><span class="line"><span class="selector-id">#bbTimeList</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--anzhiyu-white);</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--anzhiyu-fontcolor);</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">0.5rem</span> <span class="number">1rem</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">30px</span>;</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="built_in">var</span>(--anzhiyu-shadow-lightblack);</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.3s</span> ease <span class="number">0s</span>;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">1rem</span> auto <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">border</span>: <span class="number">3px</span> solid <span class="number">#19a5c1</span>;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">75%</span>;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">8px</span> <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">max-width</span>: <span class="number">1170px</span>;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">97%</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#bbTimeList</span>,<span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-id">#category-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="number">#000</span> <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bbtalk</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">text-overflow</span>: ellipsis;</span><br><span class="line">  <span class="attribute">white-space</span>: nowrap;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-id">#bber-talk</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">25px</span>;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">25px</span>;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-direction</span>: column;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.bber-logo</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">2rem</span>;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">22px</span>;</span><br><span class="line">  <span class="attribute">margin-right</span>: <span class="number">1rem</span>;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.3s</span> ease <span class="number">0s</span>;</span><br><span class="line">  <span class="attribute">cursor</span>: pointer;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">500</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.bber-gotobb</span> &#123;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">25px</span>;</span><br><span class="line">  <span class="attribute">margin-left</span>: <span class="number">1rem</span>;</span><br><span class="line">  <span class="attribute">transition</span>: all <span class="number">0.3s</span> ease <span class="number">0s</span>;</span><br><span class="line">  <span class="attribute">cursor</span>: pointer;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bber-talk</span> <span class="selector-class">.li-style</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">max-width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">25px</span>;</span><br><span class="line">  <span class="attribute">text-align</span>: center;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">text-overflow</span>: ellipsis;</span><br><span class="line">  <span class="attribute">transition</span>: <span class="number">0.3s</span>;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">700</span>;</span><br><span class="line">  <span class="attribute">margin</span>: auto;</span><br><span class="line">  <span class="attribute">cursor</span>: pointer;</span><br><span class="line">  <span class="attribute">white-space</span>: nowrap;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#bbTimeList</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--style-border-hover);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="built_in">var</span>(--anzhiyu-shadow-main);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@-webkit-keyframes</span> rotate &#123;</span><br><span class="line">  <span class="number">0%</span> &#123;</span><br><span class="line">    -webkit-<span class="attribute">transform</span>: <span class="built_in">rotate</span>(<span class="number">0deg</span>);</span><br><span class="line">    <span class="attribute">transform</span>: <span class="built_in">rotate</span>(<span class="number">0deg</span>);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="selector-tag">to</span> &#123;</span><br><span class="line">    -webkit-<span class="attribute">transform</span>: <span class="built_in">rotate</span>(-<span class="number">1turn</span>);</span><br><span class="line">    <span class="attribute">transform</span>: <span class="built_in">rotate</span>(-<span class="number">1turn</span>);</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">@keyframes</span> rotate &#123;</span><br><span class="line">  <span class="number">0%</span> &#123;</span><br><span class="line">    -webkit-<span class="attribute">transform</span>: <span class="built_in">rotate</span>(<span class="number">0deg</span>);</span><br><span class="line">    <span class="attribute">transform</span>: <span class="built_in">rotate</span>(<span class="number">0deg</span>);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="selector-tag">to</span> &#123;</span><br><span class="line">    -webkit-<span class="attribute">transform</span>: <span class="built_in">rotate</span>(-<span class="number">1turn</span>);</span><br><span class="line">    <span class="attribute">transform</span>: <span class="built_in">rotate</span>(-<span class="number">1turn</span>);</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="修改自定义-JS"><a href="#修改自定义-JS" class="headerlink" title="修改自定义 JS"></a>修改自定义 JS</h3><p>修改 <code>custom.js</code>：</p><figure class="highlight javascript"><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> percentFlag = <span class="literal">false</span>; <span class="comment">// 节流阀</span></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">essayScroll</span>(<span class="params"></span>) &#123;</span><br><span class="line">  <span class="keyword">let</span> a = <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">scrollTop</span> || <span class="variable language_">window</span>.<span class="property">pageYOffset</span>; <span class="comment">// 卷去高度</span></span><br><span class="line">  <span class="keyword">const</span> waterfallResult = a % <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">clientHeight</span>; <span class="comment">// 卷去一个视口</span></span><br><span class="line">  result &lt;= <span class="number">99</span> || (result = <span class="number">99</span>);</span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> (</span><br><span class="line">    !percentFlag &amp;&amp;</span><br><span class="line">    waterfallResult + <span class="number">100</span> &gt;= <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">clientHeight</span> &amp;&amp;</span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#waterfall&quot;</span>)</span><br><span class="line">  ) &#123;</span><br><span class="line">    <span class="comment">// console.info(waterfallResult, document.documentElement.clientHeight);</span></span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">      <span class="title function_">waterfall</span>(<span class="string">&quot;#waterfall&quot;</span>);</span><br><span class="line">    &#125;, <span class="number">500</span>);</span><br><span class="line">  &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">      <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#waterfall&quot;</span>) &amp;&amp; <span class="title function_">waterfall</span>(<span class="string">&quot;#waterfall&quot;</span>);</span><br><span class="line">    &#125;, <span class="number">500</span>);</span><br><span class="line">  &#125;</span><br><span class="line"></span><br><span class="line">  <span class="keyword">const</span> r = <span class="variable language_">window</span>.<span class="property">scrollY</span> + <span class="variable language_">document</span>.<span class="property">documentElement</span>.<span class="property">clientHeight</span>;</span><br><span class="line"></span><br><span class="line">  <span class="keyword">let</span> p = <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;post-comment&quot;</span>) || <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;footer&quot;</span>);</span><br><span class="line"></span><br><span class="line">  (p.<span class="property">offsetTop</span> + p.<span class="property">offsetHeight</span> / <span class="number">2</span> &lt; r || <span class="number">90</span> &lt; result) &amp;&amp; (percentFlag = <span class="literal">true</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">function</span> <span class="title function_">replaceAll</span>(<span class="params">e, n, t</span>) &#123;</span><br><span class="line">  <span class="keyword">return</span> e.<span class="title function_">split</span>(n).<span class="title function_">join</span>(t);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> anzhiyu = &#123;</span><br><span class="line">  <span class="attr">diffDate</span>: <span class="keyword">function</span> (<span class="params">d, more = <span class="literal">false</span></span>) &#123;</span><br><span class="line">    <span class="keyword">const</span> dateNow = <span class="keyword">new</span> <span class="title class_">Date</span>();</span><br><span class="line">    <span class="keyword">const</span> datePost = <span class="keyword">new</span> <span class="title class_">Date</span>(d);</span><br><span class="line">    <span class="keyword">const</span> dateDiff = dateNow.<span class="title function_">getTime</span>() - datePost.<span class="title function_">getTime</span>();</span><br><span class="line">    <span class="keyword">const</span> minute = <span class="number">1000</span> * <span class="number">60</span>;</span><br><span class="line">    <span class="keyword">const</span> hour = minute * <span class="number">60</span>;</span><br><span class="line">    <span class="keyword">const</span> day = hour * <span class="number">24</span>;</span><br><span class="line">    <span class="keyword">const</span> month = day * <span class="number">30</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">let</span> result;</span><br><span class="line">    <span class="keyword">if</span> (more) &#123;</span><br><span class="line">      <span class="keyword">const</span> monthCount = dateDiff / month;</span><br><span class="line">      <span class="keyword">const</span> dayCount = dateDiff / day;</span><br><span class="line">      <span class="keyword">const</span> hourCount = dateDiff / hour;</span><br><span class="line">      <span class="keyword">const</span> minuteCount = dateDiff / minute;</span><br><span class="line"></span><br><span class="line">      <span class="keyword">if</span> (monthCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = datePost.<span class="title function_">toLocaleDateString</span>().<span class="title function_">replace</span>(<span class="regexp">/\//g</span>, <span class="string">&quot;-&quot;</span>);</span><br><span class="line">      &#125; <span class="keyword">else</span> <span class="keyword">if</span> (dayCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = <span class="built_in">parseInt</span>(dayCount) + <span class="string">&quot; &quot;</span> + <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">day</span>;</span><br><span class="line">      &#125; <span class="keyword">else</span> <span class="keyword">if</span> (hourCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = <span class="built_in">parseInt</span>(hourCount) + <span class="string">&quot; &quot;</span> + <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">hour</span>;</span><br><span class="line">      &#125; <span class="keyword">else</span> <span class="keyword">if</span> (minuteCount &gt;= <span class="number">1</span>) &#123;</span><br><span class="line">        result = <span class="built_in">parseInt</span>(minuteCount) + <span class="string">&quot; &quot;</span> + <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">min</span>;</span><br><span class="line">      &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">        result = <span class="variable constant_">GLOBAL_CONFIG</span>.<span class="property">date_suffix</span>.<span class="property">just</span>;</span><br><span class="line">      &#125;</span><br><span class="line">    &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">      result = <span class="built_in">parseInt</span>(dateDiff / day);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> result;</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="attr">changeTimeInEssay</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#bber&quot;</span>) &amp;&amp;</span><br><span class="line">      <span class="variable language_">document</span>.<span class="title function_">querySelectorAll</span>(<span class="string">&quot;#bber time&quot;</span>).<span class="title function_">forEach</span>(<span class="keyword">function</span> (<span class="params">e</span>) &#123;</span><br><span class="line">        <span class="keyword">var</span> t = e,</span><br><span class="line">          datetime = t.<span class="title function_">getAttribute</span>(<span class="string">&quot;datetime&quot;</span>);</span><br><span class="line">        (t.<span class="property">innerText</span> = anzhiyu.<span class="title function_">diffDate</span>(datetime, <span class="literal">true</span>)), (t.<span class="property">style</span>.<span class="property">display</span> = <span class="string">&quot;inline&quot;</span>);</span><br><span class="line">      &#125;);</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="attr">reflashEssayWaterFall</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#waterfall&quot;</span>) &amp;&amp;</span><br><span class="line">      <span class="built_in">setTimeout</span>(<span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">        <span class="title function_">waterfall</span>(<span class="string">&quot;#waterfall&quot;</span>);</span><br><span class="line">        <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;waterfall&quot;</span>).<span class="property">classList</span>.<span class="title function_">add</span>(<span class="string">&quot;show&quot;</span>);</span><br><span class="line">      &#125;, <span class="number">500</span>);</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="attr">commentText</span>: <span class="keyword">function</span> (<span class="params">txt</span>) &#123;</span><br><span class="line">    <span class="keyword">const</span> postCommentDom = <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;#post-comment&quot;</span>);</span><br><span class="line">    <span class="keyword">var</span> domTop = postCommentDom.<span class="property">offsetTop</span>;</span><br><span class="line">    <span class="variable language_">window</span>.<span class="title function_">scrollTo</span>(<span class="number">0</span>, domTop - <span class="number">80</span>);</span><br><span class="line">    <span class="keyword">if</span> (txt == <span class="string">&quot;undefined&quot;</span> || txt == <span class="string">&quot;null&quot;</span>) txt = <span class="string">&quot;好棒！&quot;</span>;</span><br><span class="line">    <span class="keyword">function</span> <span class="title function_">setText</span>(<span class="params"></span>) &#123;</span><br><span class="line">      <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">        <span class="keyword">var</span> input = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&quot;el-textarea__inner&quot;</span>)[<span class="number">0</span>];</span><br><span class="line">        <span class="keyword">if</span> (!input) <span class="title function_">setText</span>();</span><br><span class="line">        <span class="keyword">let</span> evt = <span class="variable language_">document</span>.<span class="title function_">createEvent</span>(<span class="string">&quot;HTMLEvents&quot;</span>);</span><br><span class="line">        evt.<span class="title function_">initEvent</span>(<span class="string">&quot;input&quot;</span>, <span class="literal">true</span>, <span class="literal">true</span>);</span><br><span class="line">        <span class="keyword">let</span> inputValue = <span class="title function_">replaceAll</span>(txt, <span class="string">&quot;\n&quot;</span>, <span class="string">&quot;\n&gt; &quot;</span>);</span><br><span class="line">        input.<span class="property">value</span> = <span class="string">&quot;&gt; &quot;</span> + inputValue + <span class="string">&quot;\n\n&quot;</span>;</span><br><span class="line">        input.<span class="title function_">dispatchEvent</span>(evt);</span><br><span class="line">        input.<span class="title function_">focus</span>();</span><br><span class="line">        input.<span class="title function_">setSelectionRange</span>(-<span class="number">1</span>, -<span class="number">1</span>);</span><br><span class="line">        <span class="keyword">if</span> (<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;comment-tips&quot;</span>)) &#123;</span><br><span class="line">          <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;comment-tips&quot;</span>).<span class="property">classList</span>.<span class="title function_">add</span>(<span class="string">&quot;show&quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">      &#125;, <span class="number">100</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="title function_">setText</span>();</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="attr">initIndexEssay</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">    <span class="built_in">setTimeout</span>(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">      <span class="keyword">let</span> essay_bar_swiper = <span class="keyword">new</span> <span class="title class_">Swiper</span>(<span class="string">&quot;.essay_bar_swiper_container&quot;</span>, &#123;</span><br><span class="line">        <span class="attr">passiveListeners</span>: <span class="literal">true</span>,</span><br><span class="line">        <span class="attr">direction</span>: <span class="string">&quot;vertical&quot;</span>,</span><br><span class="line">        <span class="attr">loop</span>: <span class="literal">true</span>,</span><br><span class="line">        <span class="attr">autoplay</span>: &#123;</span><br><span class="line">          <span class="attr">disableOnInteraction</span>: <span class="literal">true</span>,</span><br><span class="line">          <span class="attr">delay</span>: <span class="number">3000</span>,</span><br><span class="line">        &#125;,</span><br><span class="line">        <span class="attr">mousewheel</span>: <span class="literal">true</span>,</span><br><span class="line">      &#125;);</span><br><span class="line"></span><br><span class="line">      <span class="keyword">let</span> essay_bar_comtainer = <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;bbtalk&quot;</span>);</span><br><span class="line">      <span class="keyword">if</span> (essay_bar_comtainer !== <span class="literal">null</span>) &#123;</span><br><span class="line">        essay_bar_comtainer.<span class="property">onmouseenter</span> = <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">          essay_bar_swiper.<span class="property">autoplay</span>.<span class="title function_">stop</span>();</span><br><span class="line">        &#125;;</span><br><span class="line">        essay_bar_comtainer.<span class="property">onmouseleave</span> = <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">          essay_bar_swiper.<span class="property">autoplay</span>.<span class="title function_">start</span>();</span><br><span class="line">        &#125;;</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;, <span class="number">100</span>);</span><br><span class="line">  &#125;,</span><br><span class="line">&#125;;</span><br><span class="line"></span><br><span class="line">anzhiyu.<span class="title function_">initIndexEssay</span>();</span><br><span class="line">anzhiyu.<span class="title function_">changeTimeInEssay</span>();</span><br><span class="line">anzhiyu.<span class="title function_">reflashEssayWaterFall</span>();</span><br></pre></td></tr></table></figure><p>主要是新增了在 <code>anzhiyu</code> 变量中的 <code>initIndexEssay</code> 方法，该方法用于初始化 swiper 轮播。</p>]]>
    </content>
    <id>https://blog.anxw.cn/posts/10.html</id>
    <link href="https://blog.anxw.cn/posts/10.html"/>
    <published>2024-06-29T07:28:59.000Z</published>
    <summary>此文章作为备份，收录常用配置、代码片段与零散笔记，方便随时查阅，不保证排版与持续更新。</summary>
    <title>静态即刻备份</title>
    <updated>2024-06-29T07:28:59.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="Butterfly" scheme="https://blog.anxw.cn/categories/Butterfly/"/>
    <category term="Butterfly" scheme="https://blog.anxw.cn/tags/Butterfly/"/>
    <content>
      <![CDATA[<h1 id="Butterfly-友链自动检查工具（GitHub-Action-Vercel-部署）"><a href="#Butterfly-友链自动检查工具（GitHub-Action-Vercel-部署）" class="headerlink" title="Butterfly 友链自动检查工具（GitHub Action + Vercel 部署）"></a>Butterfly 友链自动检查工具（GitHub Action + Vercel 部署）</h1><blockquote><p>参考方案：<a href="https://blog.zhheo.com/p/baa6b18b.html">Heo 方案地址</a></p></blockquote><h2 id="方案介绍"><a href="#方案介绍" class="headerlink" title="方案介绍"></a>方案介绍</h2><p>通过发送 HEAD 请求来检查友链链接是否可访问，使用 GitHub Action + Vercel 自动运行并生成检查结果页面。</p><h2 id="其他方案遇到的问题"><a href="#其他方案遇到的问题" class="headerlink" title="其他方案遇到的问题"></a>其他方案遇到的问题</h2><h3 id="Python-方案"><a href="#Python-方案" class="headerlink" title="Python 方案"></a>Python 方案</h3><p>Heo 哥的方案是使用 Python 脚本运行的，奈何我的老 Windows 7 安装 Python 总是那么困难。</p><ul><li>Python 3.4 版本完美安装了 pyyaml，结果运行时告诉我 Python 版本太低无法解析某些字符。</li><li>升级到 Python 3.8.6（Windows 7 的极限），但不自带 pip（明明说好的 Python 3.4 以上版本自带 pip）。</li></ul><p>Python 方案就此结束了——这些问题实在是让我一辈子都没遇到过。</p><h3 id="PowerShell-方案"><a href="#PowerShell-方案" class="headerlink" title="PowerShell 方案"></a>PowerShell 方案</h3><p>换了一种方案，使用 Windows 7 自带的 PowerShell，结果版本太低不行。</p><ul><li>升级 PowerShell 到 5.1 后可以了，但安装 pyyaml 失败了，网络错误，代理也走了（没道理）。</li></ul><p>PowerShell 方案也就结束了。</p><h2 id="GitHub-Action-方案"><a href="#GitHub-Action-方案" class="headerlink" title="GitHub Action 方案"></a>GitHub Action 方案</h2><p>难道就这样结束了吗？突然想到了 GitHub Action，直接开始搞，结果成功运行并生成了无法访问的 .txt 文件（产物）。</p><p>但必须下载并解压才能查看——这实在是太麻烦了。</p><p>然后灵光一闪，决定将输出结果改为 HTML 格式，这样就可以以网页形式展示了。后期就可以通过 Cloudflare、GitHub Pages 或 Vercel 来部署了。</p><p><img src="https://anxy.qyliu.top/2024/2024-06-17/00.webp" alt="运行效果"></p><blockquote><p>至于轻笑大佬的链接为何出现在这里，是因为 GitHub Action 本来就是国外的服务，轻笑大佬的域名屏蔽了国外服务，所以就出现了无法访问的结果。后续仍然需要手动去检查。</p></blockquote><h2 id="项目地址"><a href="#项目地址" class="headerlink" title="项目地址"></a>项目地址</h2><p><a href="https://github.com/shangskr/butterfly-link-check">项目仓库</a></p><h2 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h2><h3 id="Fork-项目"><a href="#Fork-项目" class="headerlink" title="Fork 项目"></a>Fork 项目</h3><p>首先 fork 该项目并创建一个不过期的 Token。</p><p>Token 必须包含 repo 的所有选项，并且具备以下权限：</p><ul><li>workflow</li><li>write:packages</li><li>delete:packages</li><li>project</li></ul><p>保存 Token 后，回到仓库的 Settings 中的 Secrets and variables，添加变量 <code>PAT_TOKEN</code> 并填写 Token。</p><h3 id="设置-GitHub-Actions"><a href="#设置-GitHub-Actions" class="headerlink" title="设置 GitHub Actions"></a>设置 GitHub Actions</h3><p>打开仓库的 Settings -&gt; Actions 页面，勾选：</p><ul><li>Allow all actions and reusable workflows</li><li>Read and write permissions</li><li>Allow GitHub Actions to create and approve pull requests</li></ul><p>然后保存。</p><h3 id="修改配置文件"><a href="#修改配置文件" class="headerlink" title="修改配置文件"></a>修改配置文件</h3><p>在 fork 后的项目中，可以删除 <code>index.html</code>（后期会自动生成）。</p><p>修改 <code>link.yml</code> 文件，将其中的内容替换为你的博客友链 YAML 配置即可。</p><h3 id="运行-GitHub-Actions"><a href="#运行-GitHub-Actions" class="headerlink" title="运行 GitHub Actions"></a>运行 GitHub Actions</h3><p>打开 Action，运行工程流文件即可。如果出现问题，可以回到仓库的任何一个文件夹，随便修改一个文本文件，保存后重新运行。</p><h3 id="部署到-Vercel"><a href="#部署到-Vercel" class="headerlink" title="部署到 Vercel"></a>部署到 Vercel</h3><ol><li>登录 <a href="https://vercel.com/">Vercel 官网</a></li><li>点击 New Project，导入你 fork 的仓库</li><li>保持默认配置，点击 Deploy 即可</li><li>部署完成后，即可通过 Vercel 分配的域名访问检查结果页面</li></ol>]]>
    </content>
    <id>https://blog.anxw.cn/posts/9.html</id>
    <link href="https://blog.anxw.cn/posts/9.html"/>
    <published>2024-06-17T05:47:59.000Z</published>
    <summary>友链失效手动排查太麻烦。基于 GitHub Action 定期自动检测链接状态，生成 HTML 结果页，支持部署到 Vercel。只需替换 link.yml 即可运行，免配本地环境，省时省心。</summary>
    <title>Butterfly主题友情链接可用性检测</title>
    <updated>2024-06-17T05:47:59.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="Butterfly" scheme="https://blog.anxw.cn/categories/Butterfly/"/>
    <category term="Butterfly" scheme="https://blog.anxw.cn/tags/Butterfly/"/>
    <content>
      <![CDATA[<h1 id="Butterfly-主题友链页轮播头像功能教程"><a href="#Butterfly-主题友链页轮播头像功能教程" class="headerlink" title="Butterfly 主题友链页轮播头像功能教程"></a>Butterfly 主题友链页轮播头像功能教程</h1><blockquote><p>原作者站点：shineyu 的博客（已失效）<br>参考文章：<a href="https://blog.shineyu.cn/flink-avatar-Carousel.html">原教程链接</a></p></blockquote><p>经过不懈努力终于找到了这篇文章，然后就开始抄了，但是抄完发现有一个函数没有效果。于是给大佬发了一下反馈，然后想起来王九弦 SZ·Ninty 用的也是 anzhiyu 主题，应该有这个 js。但是我面临开学，九弦不在家所有我暂时弄不了，最后帮我找到了类似的 js。最后我还是没有时间搞，所以开学了。</p><p><img src="https://anxy.qyliu.top/2024/2024-04-21/02.webp" alt="效果预览"></p><p>回家以后发现 shineyu 给我回复了，好好好。这下又省事了~</p><p><img src="https://anxy.qyliu.top/2024/2024-04-21/01.webp" alt="作者回复"></p><p>抄完以后发现有一个跳转函数：<code>shine.scrollTo(&quot;#post-comment&quot;);</code> 还是没有效果。简单改一下就可以食用了（仅可跳转 twikoo 评论，并且请关闭评论懒加载）。</p><h2 id="修改友链页代码"><a href="#修改友链页代码" class="headerlink" title="修改友链页代码"></a>修改友链页代码</h2><p>找到友链页面的代码文件 <code>themes\butterfly\layout\includes\page\flink.pug</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><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></pre></td><td class="code"><pre><span class="line">#article-container</span><br><span class="line">  .flink</span><br><span class="line">+    if site.data.link</span><br><span class="line">+      .flink-card</span><br><span class="line">+        .flink-card-title</span><br><span class="line">+          .flink-card-title-small 友情链接</span><br><span class="line">+          .flink-card-title-big 与各类技术博主共同进步</span><br><span class="line">+        .flink-card-container</span><br><span class="line">+          .flink-card-wrapper</span><br><span class="line">+            if site.data.link</span><br><span class="line">+              - let linkList = []</span><br><span class="line">+              - site.data.link.map(function (list) &#123; if (list.class_name != &quot;友链认领检查&quot;) list.link_list.map(function (item) &#123; linkList.push(item) &#125;) &#125;)</span><br><span class="line">+              - if (linkList.length % 2 !== 0) linkList.shift()</span><br><span class="line">+              - let evenList = linkList.filter((x, index) =&gt; index % 2 === 0)</span><br><span class="line">+              - let oddList = linkList.filter((x, index) =&gt; index % 2 === 1)</span><br><span class="line">+              each item, index in evenList</span><br><span class="line">+                .flink-icon-pair</span><br><span class="line">+                  .flink-icon </span><br><span class="line">+                    a(href=url_for(evenList[index].link) target=&#x27;_blank&#x27; title=evenList[index].name)</span><br><span class="line">+                      img.no-lightbox(src=url_for(evenList[index].avatar) onerror=`this.onerror=null;this.src=&#x27;` + url_for(theme.error_img.flink) + `&#x27;`)</span><br><span class="line">+                  .flink-icon </span><br><span class="line">+                    a(href=url_for(oddList[index].link) target=&#x27;_blank&#x27; title=oddList[index].name)</span><br><span class="line">+                      img.no-lightbox(src=url_for(oddList[index].avatar) onerror=`this.onerror=null;this.src=&#x27;` + url_for(theme.error_img.flink) + `&#x27;`)</span><br><span class="line">+              each item, index in evenList</span><br><span class="line">+                .flink-icon-pair</span><br><span class="line">+                  .flink-icon </span><br><span class="line">+                    a(href=url_for(evenList[index].link) target=&#x27;_blank&#x27; title=evenList[index].name)</span><br><span class="line">+                      img.no-lightbox(src=url_for(evenList[index].avatar) onerror=`this.onerror=null;this.src=&#x27;` + url_for(theme.error_img.flink) + `&#x27;`)</span><br><span class="line">+                  .flink-icon </span><br><span class="line">+                    a(href=url_for(oddList[index].link) target=&#x27;_blank&#x27; title=oddList[index].name)</span><br><span class="line">+                      img.no-lightbox(src=url_for(oddList[index].avatar) onerror=`this.onerror=null;this.src=&#x27;` + url_for(theme.error_img.flink) + `&#x27;`)</span><br><span class="line">+        .flink-card-btn-group</span><br><span class="line">+          .flink-card-btn.secondary</span><br><span class="line">+            a(href=&quot;javascript:toRandomFlink();&quot; title=&#x27;随机访问&#x27;)</span><br><span class="line">+              i.fas.fa-random</span><br><span class="line">+              span= _p(&#x27;随机访问&#x27;)</span><br><span class="line">+          .flink-card-btn</span><br><span class="line">+            a(href=&quot;javascript:shangskr.applyFlink();&quot; title=&#x27;申请友链&#x27;)</span><br><span class="line">+              i.fas.fa-plus-circle</span><br><span class="line">+              span= _p(&#x27;申请友链&#x27;)</span><br><span class="line"></span><br><span class="line">    - let pageContent = page.content</span><br><span class="line">      if site.data.link</span><br><span class="line">      each i in site.data.link</span><br></pre></td></tr></table></figure><blockquote><p>上述代码只要删掉 <code>+</code> 加号，就是正常的缩进格式了。</p></blockquote><h2 id="添加随机访问功能"><a href="#添加随机访问功能" class="headerlink" title="添加随机访问功能"></a>添加随机访问功能</h2><p>在上述的 <code>themes\butterfly\layout\includes\page\flink.pug</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">//- 省略上面所有代码...</span><br><span class="line">//- 在末尾添加如下代码</span><br><span class="line">script.</span><br><span class="line">  var flinks = [</span><br><span class="line">    &quot;https://www.qcqx.cn/&quot;,</span><br><span class="line">    &quot;https://blog.sinzmise.top/&quot;,</span><br><span class="line">    &quot;https://blog.opeach.cn/&quot;,</span><br><span class="line">    &quot;https://hexo.dreamerhe.online/&quot;,</span><br><span class="line">    &quot;https://ffbf.top/&quot;,</span><br><span class="line">    &quot;https://www.anxkj.top/&quot;,</span><br><span class="line">    &quot;https://www.crowhsu.top&quot;</span><br><span class="line">  ];</span><br><span class="line">  function toRandomFlink() &#123;</span><br><span class="line">      window.open(flinks[Math.floor(Math.random() * flinks.length)])</span><br><span class="line">  &#125;</span><br></pre></td></tr></table></figure><p>需要自行修改 <code>flinks</code> 数组中的 url，随机访问就是从该数组中随机获取一个元素进行跳转访问。</p><h2 id="添加申请友链功能"><a href="#添加申请友链功能" class="headerlink" title="添加申请友链功能"></a>添加申请友链功能</h2><p>新建 <code>source\js\shangskr.js</code> 文件，在文件中添加如下功能函数，即可实现申请友链的功能：</p><figure class="highlight javascript"><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"><span class="keyword">var</span> shangskr = &#123;</span><br><span class="line">    <span class="attr">applyFlink</span>: <span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">        <span class="keyword">var</span> input = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;el-textarea__inner&#x27;</span>)[<span class="number">0</span>];</span><br><span class="line">        <span class="keyword">let</span> evt = <span class="variable language_">document</span>.<span class="title function_">createEvent</span>(<span class="string">&#x27;HTMLEvents&#x27;</span>);</span><br><span class="line">        evt.<span class="title function_">initEvent</span>(<span class="string">&#x27;input&#x27;</span>, <span class="literal">true</span>, <span class="literal">true</span>);</span><br><span class="line">        input.<span class="property">value</span> = <span class="string">&#x27;昵称（请勿包含博客等字样）：\n网站地址（要求博客地址，请勿提交个人主页）：\n头像图片 url（请提供尽可能清晰的图片，我会上传到我自己的图床）：\n描述：\n&#x27;</span>;</span><br><span class="line">        input.<span class="title function_">dispatchEvent</span>(evt);</span><br><span class="line">        <span class="keyword">var</span> targetElement = <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;post-comment&quot;</span>);</span><br><span class="line">        <span class="keyword">if</span> (targetElement) &#123;</span><br><span class="line">            targetElement.<span class="title function_">scrollIntoView</span>(&#123; <span class="attr">behavior</span>: <span class="string">&quot;smooth&quot;</span>, <span class="attr">block</span>: <span class="string">&quot;start&quot;</span> &#125;);</span><br><span class="line">        &#125;</span><br><span class="line">        input.<span class="title function_">focus</span>();</span><br><span class="line">        input.<span class="title function_">setSelectionRange</span>(-<span class="number">1</span>, -<span class="number">1</span>);</span><br><span class="line">    &#125;,</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><h2 id="添加-CSS-样式"><a href="#添加-CSS-样式" class="headerlink" title="添加 CSS 样式"></a>添加 CSS 样式</h2><p>自行创建 css 文件或者引入已有的 css 文件：</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><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">@keyframes</span> rowup &#123;</span><br><span class="line">  <span class="number">0%</span> &#123;</span><br><span class="line">    <span class="attribute">transform</span>: <span class="built_in">translateX</span>(<span class="number">0</span>);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="number">100%</span> &#123;</span><br><span class="line">    <span class="attribute">transform</span>: <span class="built_in">translateX</span>(-<span class="number">50%</span>);</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card</span> &#123;</span><br><span class="line">  <span class="attribute">position</span>: relative;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">20px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">border</span>: <span class="built_in">var</span>(--style-border);</span><br><span class="line">  <span class="comment">/* background-image: url(/img/flink_page.webp); */</span></span><br><span class="line">  <span class="attribute">background-color</span>: <span class="built_in">var</span>(--heo-card-bg);;</span><br><span class="line">  <span class="attribute">background-size</span>: cover;</span><br><span class="line">  -webkit-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -moz-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -ms-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -o-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">16px</span> -<span class="number">4px</span> <span class="number">#2c2d300c</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-title</span> &#123;</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">2rem</span>;</span><br><span class="line">  <span class="attribute">margin-left</span>: <span class="number">2rem</span>;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">flex-direction</span>: column;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-title</span> <span class="selector-class">.flink-card-title-small</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">1</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">var</span>(--heo-secondtext);</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">0.5rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-title</span> <span class="selector-class">.flink-card-title-big</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">36px</span>;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">1</span>;</span><br><span class="line">  <span class="attribute">font-weight</span>: bold;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">8px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-btn-group</span> <span class="selector-tag">a</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">text-decoration</span>: unset <span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-desc</span> &#123;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">80%</span>;</span><br><span class="line">  <span class="attribute">opacity</span>: .<span class="number">8</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-btn-group</span> &#123;</span><br><span class="line">  <span class="attribute">position</span>: absolute;</span><br><span class="line">  <span class="attribute">top</span>: <span class="number">2.5rem</span>;</span><br><span class="line">  <span class="attribute">right</span>: <span class="number">2rem</span>;</span><br><span class="line">  <span class="attribute">display</span>: flex</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-btn</span> &#123;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">3em</span>;</span><br><span class="line">  <span class="attribute">padding</span>: .<span class="number">5em</span> .<span class="number">8em</span>;</span><br><span class="line">  <span class="attribute">margin-left</span>: <span class="number">1.5rem</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">var</span>(--font-color);</span><br><span class="line">  <span class="comment">/* background: rgba(125,125,125,.2); */</span></span><br><span class="line">  <span class="attribute">backdrop-filter</span>: <span class="built_in">var</span>(--backdrop-filter);</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">justify-content</span>: center;</span><br><span class="line">  -webkit-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  -moz-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  -ms-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  -o-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  <span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-btn</span> * &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#F2F6FC</span>;</span><br><span class="line">  <span class="attribute">margin</span>: .<span class="number">2em</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-btn</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">background</span>: <span class="number">#425AEF</span>;</span><br><span class="line">  -webkit-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -moz-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -ms-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -o-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>)</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-btn</span><span class="selector-pseudo">:hover</span> * &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#fff</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-container</span> &#123;</span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">padding-bottom</span>: <span class="number">2rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-card-wrapper</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">1.5rem</span>;</span><br><span class="line">  <span class="attribute">flex-wrap</span>: nowrap;</span><br><span class="line">  <span class="attribute">animation</span>: rowup <span class="number">120s</span> linear infinite;</span><br><span class="line">  -webkit-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  -moz-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  -ms-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  -o-<span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">  <span class="attribute">transition</span>: all .<span class="number">3s</span> ease-in-out;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-icon-pair</span> &#123;</span><br><span class="line">  <span class="attribute">margin-left</span>: <span class="number">1rem</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-icon-pair</span> <span class="selector-class">.flink-icon</span><span class="selector-pseudo">:nth-child</span>(even) &#123;</span><br><span class="line">  -webkit-<span class="attribute">transform</span>: <span class="built_in">translate</span>(-<span class="number">60px</span>);</span><br><span class="line">  -moz-<span class="attribute">transform</span>: <span class="built_in">translate</span>(-<span class="number">60px</span>);</span><br><span class="line">  -ms-<span class="attribute">transform</span>: <span class="built_in">translate</span>(-<span class="number">60px</span>);</span><br><span class="line">  -o-<span class="attribute">transform</span>: <span class="built_in">translate</span>(-<span class="number">60px</span>);</span><br><span class="line">  <span class="attribute">transform</span>: <span class="built_in">translate</span>(-<span class="number">60px</span>);</span><br><span class="line">  <span class="attribute">margin-top</span>: <span class="number">1rem</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-icon</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: flex;</span><br><span class="line">  <span class="attribute">align-items</span>: center;</span><br><span class="line">  <span class="attribute">justify-content</span>: center;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">120px</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">120px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">50%</span>;</span><br><span class="line">  <span class="attribute">margin</span>: .<span class="number">5rem</span> <span class="number">0</span>;</span><br><span class="line">  -webkit-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -moz-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -ms-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  -o-<span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>);</span><br><span class="line">  <span class="attribute">box-shadow</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">12px</span> -<span class="number">3px</span> <span class="built_in">rgba</span>(<span class="number">45</span>, <span class="number">45</span>, <span class="number">45</span>, .<span class="number">05</span>)</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.flink-icon</span> <span class="selector-tag">img</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">120px</span>;</span><br><span class="line">  <span class="attribute">height</span>: <span class="number">120px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">50%</span><span class="meta">!important</span>;</span><br><span class="line">  <span class="attribute">margin</span>: auto<span class="meta">!important</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#article-container</span> <span class="selector-class">.flink-list</span> <span class="selector-class">.flink-item-circle</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#57bd6a</span>;</span><br><span class="line">  <span class="attribute">opacity</span>: .<span class="number">8</span>;</span><br><span class="line">  <span class="attribute">position</span>: absolute;</span><br><span class="line">  <span class="attribute">top</span>: <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">right</span>: <span class="number">10px</span>;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">1.5rem</span>;</span><br><span class="line">  <span class="attribute">z-index</span>: <span class="number">1</span>;</span><br><span class="line">  <span class="attribute">cursor</span>: <span class="built_in">url</span>(<span class="string">https://npm.elemecdn.com/eurkon-cdn/hexo/images/user/pointer.cur</span>),pointer<span class="meta">!important</span>;</span><br><span class="line">  -webkit-<span class="attribute">transition</span>: all .<span class="number">5s</span> ease;</span><br><span class="line">  -moz-<span class="attribute">transition</span>: all .<span class="number">5s</span> ease;</span><br><span class="line">  -ms-<span class="attribute">transition</span>: all .<span class="number">5s</span> ease;</span><br><span class="line">  -o-<span class="attribute">transition</span>: all .<span class="number">5s</span> ease;</span><br><span class="line">  <span class="attribute">transition</span>: all .<span class="number">5s</span> ease</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-id">#article-container</span> <span class="selector-class">.flink-list</span> <span class="selector-class">.flink-item-circle</span><span class="selector-pseudo">:hover</span> &#123;</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#397d45</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@media</span> screen <span class="keyword">and</span> (<span class="attribute">max-width</span>: <span class="number">768px</span>) &#123;</span><br><span class="line">  <span class="selector-id">#article-container</span> &gt; <span class="selector-tag">div</span><span class="selector-class">.flink</span> &gt; <span class="selector-tag">div</span><span class="selector-class">.flink-card</span> &gt; <span class="selector-tag">div</span><span class="selector-class">.flink-card-btn-group</span> &#123;</span><br><span class="line">    <span class="attribute">margin-top</span>: <span class="number">20px</span>;</span><br><span class="line">    <span class="attribute">right</span>: <span class="number">2rem</span>;</span><br><span class="line">    <span class="attribute">top</span>: unset <span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">bottom</span>: <span class="number">20px</span>;</span><br><span class="line">  &#125;</span><br><span class="line"></span><br><span class="line">  <span class="selector-class">.flink-card</span> &#123;</span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">0px</span> <span class="number">0px</span> <span class="number">80px</span> <span class="number">0px</span>;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><blockquote><p><code>animation: rowup 120s linear infinite;</code> 属性可以调整头像轮播的速度，只需要将 <code>120s</code> 调成自己想要的速度即可，时间越小越快。</p></blockquote><h2 id="引入-CSS-样式和-JS-脚本"><a href="#引入-CSS-样式和-JS-脚本" class="headerlink" title="引入 CSS 样式和 JS 脚本"></a>引入 CSS 样式和 JS 脚本</h2><p>css 自行引入，在主题配置文件 <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="comment"># Inject</span></span><br><span class="line"><span class="comment"># Insert the code to head (before &#x27;&lt;/head&gt;&#x27; tag) and the bottom (before &#x27;&lt;/body&gt;&#x27; tag)</span></span><br><span class="line"><span class="comment"># 插入代码到头部 &lt;/head&gt; 之前 和 底部 &lt;/body&gt; 之前</span></span><br><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="comment"># 自定义 css</span></span><br><span class="line"><span class="string">+</span>    <span class="bullet">-</span> <span class="string">&lt;link</span> <span class="string">rel=&quot;stylesheet&quot;</span> <span class="string">href=&quot;/css/css</span> <span class="string">文件名称&quot;&gt;</span>  <span class="comment">#添加的自定义 css 文件</span></span><br><span class="line">  <span class="attr">bottom:</span></span><br><span class="line">    <span class="comment"># 自定义 js</span></span><br><span class="line"><span class="string">+</span>    <span class="bullet">-</span> <span class="string">&lt;script</span> <span class="string">async</span> <span class="string">data-pjax</span> <span class="string">src=&quot;/js/shangskr.js&quot;&gt;&lt;/script&gt;</span>  <span class="comment">#添加的自定义 js 文件</span></span><br></pre></td></tr></table></figure><h2 id="生成预览"><a href="#生成预览" class="headerlink" title="生成预览"></a>生成预览</h2><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 s</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://blog.anxw.cn/posts/8.html</id>
    <link href="https://blog.anxw.cn/posts/8.html"/>
    <published>2024-04-21T11:31:06.000Z</published>
    <summary>给 Butterfly 主题友链页加头像轮播效果，支持随机访问和一键申请友链。修改 flink.pug 模板 + 添加 JS 函数 + CSS 滚动动画，配置简单，让友链展示更灵动有趣。</summary>
    <title>友链头像轮播图教程</title>
    <updated>2024-04-21T11:31:06.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="Butterfly" scheme="https://blog.anxw.cn/categories/Butterfly/"/>
    <category term="Butterfly" scheme="https://blog.anxw.cn/tags/Butterfly/"/>
    <content>
      <![CDATA[<h2 id="Butterfly-主题添加最新文章-最近更新标签"><a href="#Butterfly-主题添加最新文章-最近更新标签" class="headerlink" title="Butterfly 主题添加最新文章&#x2F;最近更新标签"></a>Butterfly 主题添加最新文章&#x2F;最近更新标签</h2><blockquote><p>原作者：<a href="https://www.qcqx.cn/">轻笑</a></p></blockquote><h3 id="实现步骤"><a href="#实现步骤" class="headerlink" title="实现步骤"></a>实现步骤</h3><h4 id="修改-post-ui-pug"><a href="#修改-post-ui-pug" class="headerlink" title="修改 post-ui.pug"></a>修改 post-ui.pug</h4><p>修改 <code>themes\butterfly\layout\includes\mixins\post-ui.pug</code>，添加 <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><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></pre></td><td class="code"><pre><span class="line">mixin postUI(posts)</span><br><span class="line">+  - let newTitle= newPost()</span><br><span class="line">+  - let updateTitle= updatePost()</span><br><span class="line">  each article , index in page.posts.data</span><br><span class="line">    .recent-post-item</span><br><span class="line">      -</span><br><span class="line">        let link = article.link || article.path</span><br><span class="line">        let title = article.title || _p(&#x27;no_title&#x27;)</span><br><span class="line">        const position = theme.cover.position</span><br><span class="line">        let leftOrRight = position === &#x27;both&#x27;</span><br><span class="line">          ? index%2 == 0 ? &#x27;left&#x27; : &#x27;right&#x27;</span><br><span class="line">          : position === &#x27;left&#x27; ? &#x27;left&#x27; : &#x27;right&#x27;</span><br><span class="line">        let post_cover = article.cover</span><br><span class="line">        let no_cover = article.cover === false || !theme.cover.index_enable ? &#x27;no-cover&#x27; : &#x27;&#x27;</span><br><span class="line">      -</span><br><span class="line">+      if newTitle == title</span><br><span class="line">+        span(class=`newPost-$&#123;leftOrRight==&#x27;left&#x27;?&#x27;right&#x27;:&#x27;left&#x27;&#125;`) 最新文章</span><br><span class="line">+      if updateTitle == title</span><br><span class="line">+        span(class=`updatePost-$&#123;leftOrRight==&#x27;left&#x27;?&#x27;right&#x27;:&#x27;left&#x27;&#125;`) 最近更新</span><br></pre></td></tr></table></figure><h4 id="添加-helpers-函数"><a href="#添加-helpers-函数" class="headerlink" title="添加 helpers 函数"></a>添加 helpers 函数</h4><p>添加内容到 <code>themes\butterfly\scripts\helpers\page.js</code>：</p><figure class="highlight javascript"><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 class="comment">// 最新文章</span></span><br><span class="line">hexo.<span class="property">extend</span>.<span class="property">helper</span>.<span class="title function_">register</span>(<span class="string">&#x27;newPost&#x27;</span>, <span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">  <span class="keyword">let</span> name, time;</span><br><span class="line">  hexo.<span class="property">locals</span>.<span class="title function_">get</span>(<span class="string">&#x27;posts&#x27;</span>).<span class="title function_">map</span>(<span class="function">(<span class="params">item, index</span>) =&gt;</span> &#123;</span><br><span class="line">      <span class="keyword">if</span> (index == <span class="number">0</span>) name = item.<span class="property">title</span>, time = item.<span class="property">date</span></span><br><span class="line">      <span class="keyword">else</span> <span class="keyword">if</span> (item.<span class="property">date</span> &gt; time) &#123; name = item.<span class="property">title</span>, time = item.<span class="property">date</span> &#125;</span><br><span class="line">  &#125;);</span><br><span class="line">  <span class="keyword">return</span> name</span><br><span class="line">&#125;)</span><br><span class="line">hexo.<span class="property">extend</span>.<span class="property">helper</span>.<span class="title function_">register</span>(<span class="string">&#x27;updatePost&#x27;</span>, <span class="keyword">function</span>(<span class="params"></span>) &#123;</span><br><span class="line">  <span class="keyword">let</span> name, time=<span class="number">0</span>;</span><br><span class="line">  hexo.<span class="property">locals</span>.<span class="title function_">get</span>(<span class="string">&#x27;posts&#x27;</span>).<span class="title function_">map</span>(<span class="function">(<span class="params">item, index</span>) =&gt;</span> &#123;</span><br><span class="line">      <span class="keyword">if</span> (item.<span class="property">updated</span> &gt; time &amp;&amp; item.<span class="property">updated</span> &gt; item.<span class="property">date</span>) &#123; name = item.<span class="property">title</span>, time = item.<span class="property">updated</span>&#125;</span><br><span class="line">  &#125;);</span><br><span class="line">  <span class="keyword">return</span> name</span><br><span class="line">&#125;)</span><br></pre></td></tr></table></figure><h4 id="添加-CSS-样式"><a href="#添加-CSS-样式" class="headerlink" title="添加 CSS 样式"></a>添加 CSS 样式</h4><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><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></pre></td><td class="code"><pre><span class="line"><span class="selector-id">#recent-posts</span>&gt;<span class="selector-class">.recent-post-item</span> &#123;</span><br><span class="line">    <span class="attribute">position</span>: relative;</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="selector-class">.newPost-left</span>, <span class="selector-class">.newPost-right</span> &#123;</span><br><span class="line">    <span class="attribute">z-index</span>: <span class="number">1</span>;</span><br><span class="line">    <span class="attribute">position</span>: absolute;</span><br><span class="line">    <span class="attribute">top</span>: <span class="number">0</span>;</span><br><span class="line">    <span class="attribute">color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, .<span class="number">92</span>);</span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">15px</span>;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="number">#49b0f5b9</span>;</span><br><span class="line">    <span class="attribute">border-radius</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">10px</span> <span class="number">10px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.newPost-left</span> &#123;</span><br><span class="line">    <span class="attribute">left</span>: <span class="number">15px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.newPost-right</span> &#123;</span><br><span class="line">    <span class="attribute">right</span>: <span class="number">15px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* 最近更新图标 */</span></span><br><span class="line"><span class="selector-class">.updatePost-left</span>, <span class="selector-class">.updatePost-right</span> &#123;</span><br><span class="line">    <span class="attribute">z-index</span>: <span class="number">1</span>;</span><br><span class="line">    <span class="attribute">position</span>: absolute;</span><br><span class="line">    <span class="attribute">top</span>: <span class="number">0</span>;</span><br><span class="line">    <span class="attribute">color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, .<span class="number">92</span>);</span><br><span class="line">    <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">15px</span>;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="number">#25d8b1b9</span>;</span><br><span class="line">    <span class="attribute">border-radius</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">10px</span> <span class="number">10px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.updatePost-left</span> &#123;</span><br><span class="line">    <span class="attribute">left</span>: <span class="number">15px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.updatePost-right</span> &#123;</span><br><span class="line">    <span class="attribute">right</span>: <span class="number">15px</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@media</span> screen <span class="keyword">and</span>(<span class="attribute">max-width</span>: <span class="number">600px</span>) &#123;</span><br><span class="line">    <span class="selector-id">#nav</span> &#123;</span><br><span class="line">        <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">15px</span> <span class="number">0</span> <span class="number">11px</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-id">#nav</span> <span class="selector-id">#blog_name</span> &#123;</span><br><span class="line">        <span class="attribute">margin-left</span>: -<span class="number">6.5px</span> <span class="meta">!important</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.newPost-left</span>, <span class="selector-class">.newPost-right</span> &#123;</span><br><span class="line">        <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">12px</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.newPost-left</span> &#123;</span><br><span class="line">        <span class="attribute">left</span>: <span class="number">0</span>;</span><br><span class="line">        <span class="attribute">border-radius</span>: <span class="number">10px</span> <span class="number">0</span> <span class="number">10px</span> <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.newPost-right</span> &#123;</span><br><span class="line">        <span class="attribute">right</span>: <span class="number">0</span>;</span><br><span class="line">        <span class="attribute">border-radius</span>: <span class="number">0</span> <span class="number">10px</span> <span class="number">0</span> <span class="number">10px</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.recent-post-item</span> <span class="selector-class">.recent-post-content</span> <span class="selector-class">.recent-post-info</span> <span class="selector-class">.recent-post-meta</span> &#123;</span><br><span class="line">        <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">5px</span> <span class="number">0</span> <span class="number">5px</span>;</span><br><span class="line">        <span class="attribute">margin-top</span>: -<span class="number">7px</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.updatePost-left</span>, <span class="selector-class">.updatePost-right</span> &#123;</span><br><span class="line">        <span class="attribute">padding</span>: <span class="number">0</span> <span class="number">12px</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.updatePost-left</span> &#123;</span><br><span class="line">        <span class="attribute">left</span>: <span class="number">0</span>;</span><br><span class="line">        <span class="attribute">border-radius</span>: <span class="number">10px</span> <span class="number">0</span> <span class="number">10px</span> <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="selector-class">.updatePost-right</span> &#123;</span><br><span class="line">        <span class="attribute">right</span>: <span class="number">0</span>;</span><br><span class="line">        <span class="attribute">border-radius</span>: <span class="number">0</span> <span class="number">10px</span> <span class="number">0</span> <span class="number">10px</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="注意事项"><a href="#注意事项" class="headerlink" title="注意事项"></a>注意事项</h3><ul><li>修改完成后请执行 <code>hexo clean &amp;&amp; hexo g -d</code> 重新生成并部署</li><li>如果标签位置显示异常，请检查主题配置中的 <code>cover.position</code> 设置</li><li>移动端样式已适配，可根据实际需求调整间距和圆角</li></ul><h2 id="Butterfly-主题添加文章标签"><a href="#Butterfly-主题添加文章标签" class="headerlink" title="Butterfly 主题添加文章标签"></a>Butterfly 主题添加文章标签</h2><blockquote><p>原作者：<a href="https://byer.top/posts/d90a9014.html">byer’s Blog</a></p></blockquote><h3 id="实现步骤-1"><a href="#实现步骤-1" class="headerlink" title="实现步骤"></a>实现步骤</h3><h4 id="修改-post-ui-pug-1"><a href="#修改-post-ui-pug-1" class="headerlink" title="修改 post-ui.pug"></a>修改 post-ui.pug</h4><p>找到 <code>themes\butterfly\layout\includes\mixins\post-ui.pug</code> 文件，在文件的约 21 行的位置添加如下内容：</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">if article.cardtag</span><br><span class="line">  .card-tag= article.cardtag  </span><br><span class="line">if post_cover &amp;&amp; theme.cover.index_enable</span><br></pre></td></tr></table></figure><h4 id="在文章-Front-Matter-中添加-tag"><a href="#在文章-Front-Matter-中添加-tag" class="headerlink" title="在文章 Front Matter 中添加 tag"></a>在文章 Front Matter 中添加 tag</h4><p>打开你的文章，添加 <code>cardtag</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="meta">---</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">你的文章标题</span></span><br><span class="line"><span class="attr">date:</span> <span class="number">2024-01-01</span></span><br><span class="line"><span class="attr">cardtag:</span> <span class="string">魔改</span></span><br><span class="line"><span class="meta">---</span></span><br></pre></td></tr></table></figure><h4 id="添加-CSS-样式-1"><a href="#添加-CSS-样式-1" class="headerlink" title="添加 CSS 样式"></a>添加 CSS 样式</h4><p>创建一个 css 文件，或者写入你自己的 css 中：</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><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="selector-id">#recent-posts</span> <span class="selector-class">.recent-post-item</span> <span class="selector-class">.card-tag</span> &#123;</span><br><span class="line">  <span class="attribute">left</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">border-bottom-right-radius</span>: <span class="number">12px</span>;</span><br><span class="line">  <span class="attribute">position</span>: absolute;</span><br><span class="line">  <span class="attribute">top</span>: <span class="number">0</span>;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">3px</span> <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="built_in">linear-gradient</span>(<span class="number">90deg</span>,<span class="number">#e5b085</span>,<span class="number">#d48f16</span>);</span><br><span class="line">  <span class="attribute">color</span>: <span class="number">#fff</span>;</span><br><span class="line">  <span class="attribute">font-size</span>: .<span class="number">85em</span>;</span><br><span class="line">  <span class="attribute">z-index</span>: <span class="number">1</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="注意事项-1"><a href="#注意事项-1" class="headerlink" title="注意事项"></a>注意事项</h3><ul><li>修改完成后请执行 <code>hexo clean &amp;&amp; hexo g -d</code> 重新生成并部署</li><li><code>cardtag</code> 的内容可以自定义，支持任意文本</li><li>如需修改标签样式，可调整 CSS 中的 <code>background</code> 渐变颜色或 <code>padding</code> 间距</li></ul>]]>
    </content>
    <id>https://blog.anxw.cn/posts/7.html</id>
    <link href="https://blog.anxw.cn/posts/7.html"/>
    <published>2024-02-09T02:12:27.000Z</published>
    <summary>给 Butterfly 主题加&quot;最新文章&quot;、&quot;最近更新&quot;角标，支持自定义文章标签。修改 pug 模板 + 添加 helper 函数 + CSS 样式即可，移动端已适配，配置简单，让文章列表更直观好看。</summary>
    <title>文章卡片标签美化</title>
    <updated>2026-04-09T09:12:27.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="教程" scheme="https://blog.anxw.cn/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="教程" scheme="https://blog.anxw.cn/tags/%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<blockquote><p>原作者链接 <a href="https://saika.us.kg/">Saika’s Blog</a></p></blockquote><p><a href="https://www.serv00.com/">serv00</a> 是一个提供免费的 Virtual Host 的平台，其托管平台使用的是 FreeBSD 系统，并不是 Linux。每个账号有效期 10 年，超过三个月不登入 Panel 以及 SSH 则会被删除账号。</p><table><thead><tr><th>名称</th><th>Serv00 免费提供</th></tr></thead><tbody><tr><td>存储空间</td><td>3 GB</td></tr><tr><td>每月流量</td><td>unlimited</td></tr><tr><td>网站数量</td><td>100</td></tr><tr><td>MySQL</td><td>10</td></tr><tr><td>MySQL</td><td>3</td></tr><tr><td>MongoDB</td><td>3</td></tr><tr><td>GIT&#x2F;SVN&#x2F;HG 仓库</td><td>3</td></tr><tr><td>TCP&#x2F;UDP 端口</td><td>3</td></tr><tr><td>PHP 解释器</td><td>3</td></tr><tr><td>系统进程</td><td>15</td></tr><tr><td>RAM</td><td>512MB</td></tr><tr><td>备份</td><td>7 天</td></tr><tr><td>服务器放置</td><td>欧盟</td></tr><tr><td>免费子域名</td><td>login.serv00.net</td></tr><tr><td>技术支持</td><td>只有论坛</td></tr><tr><td>SLA</td><td>不支持</td></tr><tr><td>现代技术</td><td>支持</td></tr><tr><td>SSH 访问</td><td>支持</td></tr><tr><td>SSH 隧道</td><td>不支持</td></tr><tr><td>远程数据库访问</td><td>不支持</td></tr><tr><td>固态硬盘</td><td>支持</td></tr><tr><td>没有广告</td><td>支持</td></tr><tr><td>价格</td><td>免费</td></tr></tbody></table><details class="toggle" ><summary class="toggle-button" style="">Alist详细部署记录</summary><div class="toggle-content"><h2 id="注册账号"><a href="#注册账号" class="headerlink" title="注册账号"></a>注册账号</h2><p>首先去 serv00 的官网注册一个账号：<a href="https://www.serv00.com/offer/create_new_account">注册页面</a></p><blockquote><p>最好不要使用国内邮箱，注册信息请尽可能真实填写。(What is the cost of hosting on serv00.com? 这一项填 0&#x2F;free)</p></blockquote><p>接着你可以在邮箱里收到你的注册信息的邮件；邮件最末有 Panel 的入口地址和文档链接（<a href="https://docs.serv00.com/">官方文档</a>）以及论坛链接（<a href="https://forum.serv00.com/">官方论坛</a>），接下来登入 Panel 进行操作：</p><ol><li>首先去左侧的 <strong>Additional Service</strong> 选项卡中，找到 <strong>Run your own applications</strong> 选项，将其设置为允许</li><li>接着去 <strong>Port reservation</strong> 选项卡，使用 <strong>Add port</strong> 功能，随机添加一个 TCP 端口</li></ol><p>接着使用 SSH 登入到你的账户，我使用的 SSH 客户端是 <a href="https://termius.com/">Termius</a></p><hr><h2 id="部署-Alist"><a href="#部署-Alist" class="headerlink" title="部署 Alist"></a>部署 Alist</h2><p><a href="https://github.com/alist-org/alist">Alist</a> 的官方仓库并没有提供 FreeBSD 版本的可执行文件构筑，Alist 构筑 FreeBSD 版本的仓库</p><p>Serv00 本身提供的网站托管在 <code>~/domains</code> 路径下，所以我建议把 Alist 也部署到这个路径下的子目录：</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">mkdir</span> -p ~/domains/alist &amp;&amp; <span class="built_in">cd</span> ~/domains/alist</span><br></pre></td></tr></table></figure><p>接着下载目前 <a href="https://github.com/shangskr/alist-freebsd">shangskr&#x2F;alist-freebsd</a> 提供的最新版的 Alist 的可执行二进制文件构筑：</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">wget https://github.com/shangskr/alist-freebsd/releases/download/v3.30.0/alist &amp;&amp; <span class="built_in">chmod</span> +x alist</span><br></pre></td></tr></table></figure><p>然后需要先启动一次 Alist 以生成配置文件，此次启动一定会失败，请不用在意：</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">./alist server</span><br></pre></td></tr></table></figure><p>接着回到 Panel 中，找到 <strong>MySQL</strong> 选项卡，使用 <strong>Add database</strong> 功能新建一个数据库：</p><blockquote><p>密码要求含有大写字母、小写字母和数字三种字符，且长度必须超过 6 个字符。</p></blockquote><p>接下来进入 <strong>File manager</strong> 选项卡，进入 <code>~/domains/alist/data</code> 路径，可以看到一个名为 <code>config.json</code> 的文件，右键点击，选择 <strong>View&#x2F;Edit &gt; Source Editor</strong>，进行编辑：</p><p><img src="https://anxy.qyliu.top/2024/2024-02-08/01.webp" alt="配置示例"></p><p>修改 <code>CDN</code>、<code>database</code>、<code>scheme</code> 三个部分：</p><ul><li><p><strong>CDN</strong>: <code>https://jsd.onmicrosoft.cn/npm/alist-web@$version/dist/</code></p><blockquote><p>版本号的话自己指定，不指定有可能加载不出来页面</p></blockquote></li><li><p><strong>database 部分</strong>：</p><ul><li><code>type</code> 需要改成 <code>mysql</code></li><li><code>host</code> 填写你在注册邮件中看到的 mysql 的地址</li><li><code>port</code> 是默认的 <code>3306</code></li><li>用户名、密码、数据库名则按照你创建的情况进行填写</li></ul></li><li><p><strong>scheme 部分</strong>：</p><ul><li>修改 <code>address</code> 为 <code>127.0.0.1</code> 本地回环，是为了避免被他人使用 <code>http://ip:port</code> 的方式进行访问。至于自己怎么访问，本文后面的部分会进行介绍。</li><li><code>http_port</code> 要改成自己前面放行的端口。</li></ul></li></ul><p>改完之后，点击 <strong>save</strong> 保存，接着回到 SSH 窗口中进行操作。</p><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">./alist server</span><br></pre></td></tr></table></figure><p>运行正常，记得把管理员用户的密码记住。接着使用 <code>Ctrl+c</code> 停止运行。</p><hr><h2 id="绑定域名"><a href="#绑定域名" class="headerlink" title="绑定域名"></a>绑定域名</h2><p>此时还没有访问 Alist 的方法，因为监听的地址是本地回环，所以需要将其反向代理出来。我选择使用 Cloudflare 提供的 Argo 通道，顺带给 Alist 绑定自己的域名。</p><p>Cloudflared 官方仓库没有提供 FreeBSD 平台的客户端，但是和 Alist 一样的，我找到了 Unofficial 的 FreeBSD 版本的构筑：<a href="https://cloudflared.bowring.uk/">cloudflared-freebsd</a>，接下来使用它打隧道：</p><p>新建并进入 Cloudflared 的工作目录：</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">mkdir</span> -p ~/domains/cloudflared &amp;&amp; <span class="built_in">cd</span> ~/domains/cloudflared</span><br></pre></td></tr></table></figure><p>下载 Cloudflared：</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">wget https://cloudflared.bowring.uk/binaries/cloudflared-freebsd-2023.10.0.7z &amp;&amp; 7z x cloudflared-freebsd-2023.10.0.7z &amp;&amp; <span class="built_in">rm</span> cloudflared-freebsd-2023.10.0.7z &amp;&amp; <span class="built_in">mv</span> -f ./temp/cloudflared-freebsd-2023.10.0 ./cloudflared &amp;&amp; <span class="built_in">rm</span> -rf temp</span><br></pre></td></tr></table></figure><p>然后在 Cloudflare 的面板（<a href="https://one.dash.cloudflare.com/">Cloudflare Dash</a>）中，找到 <strong>Networks</strong> 分类下的 <strong>Tunnels</strong> 功能，点击 <strong>Create a tunnel</strong>，选择 <strong>Cloudflared</strong>，Next，随便取个名字，Next，往下翻，可以看到 <strong>Run the following command</strong>，然后给了一串命令，将其复制出来，大概是这样的：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cloudflared.exe service install eyJhIjoiNzh...............V5TWpBeSJ9</span><br></pre></td></tr></table></figure><p>前面的不需要管，只需要保留最后 <code>ey</code> 开头的那串很长的 TOKEN，去 SSH 中测试运行 Cloudflared：</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">./cloudflared tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token eyJhIjoiNzh...............V5TWpBeSJ9</span><br></pre></td></tr></table></figure><blockquote><p>记得把最后的那一串替换成你的 TOKEN。</p></blockquote><p>接着回到 Cloudflare 的面板，继续点击 Next，然后添加一个自己的域名，Service 中，Type 选择 <strong>HTTP</strong>，URL 填写 <code>localhost:PORT</code>，其中 PORT 为你的 Alist 对应的端口。点击 <strong>Save Tunnel</strong> 后，可以看到自己新建的 Tunnel 上线。</p><p>接着使用 <code>Ctrl+c</code> 停止运行。然后安装进程管理工具 pm2：</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">bash &lt;(curl -s https://raw.githubusercontent.com/shangskr/alist_repl/main/serv00/install-pm2.sh)</span><br></pre></td></tr></table></figure><p>然后使用 pm2 启动 Cloudflared：</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-global/bin/pm2 start ./cloudflared -- tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token eyJhIjoiNzh...............V5TWpBeSJ9</span><br></pre></td></tr></table></figure><blockquote><p>记得把最后的那一串替换成你的 TOKEN。</p></blockquote><p>再启动 Alist：</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">cd</span> ~/domains/alist &amp;&amp; ~/.npm-global/bin/pm2 start ./alist -- server</span><br></pre></td></tr></table></figure><p>到这里，就可以直接通过你的域名访问刚刚部署的 Alist 了。</p><hr><h2 id="收尾工作"><a href="#收尾工作" class="headerlink" title="收尾工作"></a>收尾工作</h2><p>听说 Serv00 会不定时重启机器，所以我们把 pm2 添加开机自启，可以保证每次重启都能由 pm2 调动 Alist 和 Cloudflared。而且 Serv00 每三个月内必须要有一次登录面板或者 SSH 连接，不然会删号，也可以通过一个脚本解决问题，接下来我会详细说明。</p><h3 id="自动定时-SSH"><a href="#自动定时-SSH" class="headerlink" title="自动定时 SSH"></a>自动定时 SSH</h3><p>在 Panel 中找到 <strong>File manager</strong> 选项卡，进入 alist 所在的路径，然后找到上方 <strong>Send</strong> 按钮左边的 <strong>+</strong>，选择 <strong>New empty file</strong>，文件名命名为 <code>auto-renew.sh</code>，右键点击 <code>auto-renew.sh</code>，选择 <strong>View&#x2F;Edit &gt; Source Editor</strong>，进行编辑，把下面的代码块的内容都复制进去：</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="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">while</span> <span class="literal">true</span>; <span class="keyword">do</span></span><br><span class="line">  sshpass -p <span class="string">&#x27;密码&#x27;</span> ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 <span class="string">&quot;exit&quot;</span> &amp;</span><br><span class="line">  <span class="built_in">sleep</span> 2592000  <span class="comment">#30 天为 2592000 秒</span></span><br><span class="line"><span class="keyword">done</span></span><br></pre></td></tr></table></figure><blockquote><p>记得把其中的密码、用户名、ssh 的地址修改为你自己的。</p></blockquote><p>保存后回到 SSH 中，进入 <code>auto-renew.sh</code> 所在的路径，并使用 pm2 管理运行它：</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">cd</span>  ~/domains/alist &amp;&amp; <span class="built_in">chmod</span> +x auto-renew.sh &amp;&amp; ~/.npm-global/bin/pm2 start ./auto-renew.sh</span><br></pre></td></tr></table></figure><p>这样就会每隔一个月自动执行一次 SSH 连接，自己 SSH 自己进行续期。</p><h3 id="添加开机自启"><a href="#添加开机自启" class="headerlink" title="添加开机自启"></a>添加开机自启</h3><p>在 Panel 中找到 <strong>Cron jobs</strong> 选项卡，使用 <strong>Add cron job</strong> 功能添加任务：</p><p><img src="https://anxy.qyliu.top/2024/2024-02-08/02.webp" alt="Cron 任务配置"></p><ul><li><strong>Specify time</strong> 选择 <strong>After reboot</strong>，即为重启后运行。</li><li><strong>Form type</strong> 选择 <strong>Advanced</strong>，Command 写：</li></ul><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">/home/你的用户名/.npm-global/bin/pm2 resurrect</span><br></pre></td></tr></table></figure><blockquote><p>记得把你的用户名改为你的用户名</p></blockquote><p>添加完之后，在 SSH 窗口保存 pm2 的当前任务列表快照：</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-global/bin/pm2 save</span><br></pre></td></tr></table></figure><p>这样每次 serv00 不定时重启任务时，都能自动调用 pm2 读取保存的任务列表快照，恢复任务列表。</p></div></details><h2 id="更多玩法"><a href="#更多玩法" class="headerlink" title="更多玩法"></a>更多玩法</h2><blockquote><p>参考来源：<a href="https://blog.rappit.site/">Saika’s Blog</a></p></blockquote><p><a href="https://docs.serv00.com/">serv00 官方文档</a> 中有搭建网站的示例，示例就有 WordPress。文档中还详细介绍了以下服务的搭建方法：</p><ul><li>Redis</li><li>Memcached</li><li>Imapsync</li><li>WP-CLI</li><li>Tomcat</li></ul><p>你可以根据自己的需求，参考官方文档部署更多服务。</p><details class="toggle" ><summary class="toggle-button" style="">KodBox</summary><div class="toggle-content"><h2 id="KodBox"><a href="#KodBox" class="headerlink" title="KodBox"></a>KodBox</h2><p>虽然 Serv00 能够部署 KodBox，但是实在是不太好用。最直观的感受就是卡，因为 KodBox 运行期间需要调用多个 PHP 组件，而 Serv00 限制同时处理三个 PHP 进程，所以显得特别慢。其次，Serv00 没有 Root 权限，部分 PHP 插件没有安装，也无法安装，导致有一些 KodBox 的插件无法正常运行。</p><h3 id="安装步骤"><a href="#安装步骤" class="headerlink" title="安装步骤"></a>安装步骤</h3><p>进入 PHP 网站路径：</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">cd</span> ~/domains/用户名.serv00.net/public_html/</span><br></pre></td></tr></table></figure><p>安装 KodBox：</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">bash &lt;(curl -s https://pan.rappit.site/d/shell/kodbox1.49/serv00-kodbox-install.sh)</span><br></pre></td></tr></table></figure><p>然后去 Panel 中的 MySQL 选项卡，新建数据库和用户，用以接入 KodBox。再去 WWW Websites 选项卡中找到 用户名.serv00.net，点击右侧的 Manage &gt; Details 进入设置，把以下三个功能打开：</p><ul><li>GZIP compression</li><li>Allow PHP eval() function</li><li>Allow PHP exec() function</li></ul><p>再打开 <code>https://用户名.serv00.net/</code> 进行 KodBox 的安装，数据库填写你刚刚新建的数据库即可。初次启动需要较长的时间，请耐心等待。</p><p>如果你看明白了面板的功能，也可以使用自己的域名或者子域部署 KodBox，这里仅用 <code>https://用户名.serv00.net/</code> 举例。</p><p>注意：</p><ul><li>上面的应用（KodBox）不需要占用端口</li><li>下面的应用每一个都需要占用端口</li></ul></div></details><details class="toggle" ><summary class="toggle-button" style="">Vless</summary><div class="toggle-content"><h2 id="VLESS"><a href="#VLESS" class="headerlink" title="VLESS"></a>VLESS</h2><p>创建并进入 vless 工作路径，并克隆源仓库：</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">cd</span> ~/domains &amp;&amp; git <span class="built_in">clone</span> https://github.com/qwer-search/serv00-vless &amp;&amp; <span class="built_in">mv</span> -f serv00-vless vless &amp;&amp; <span class="built_in">cd</span> vless &amp;&amp; <span class="built_in">rm</span> -f README.md</span><br></pre></td></tr></table></figure><p>在 Panel 中 <strong>Port Reservation</strong> 选项卡中放行一个 TCP 端口，随机即可，记住端口号。</p><p>使用 vim 编辑或者直接去 Panel 中的 <strong>File Manager</strong> 选项卡在线编辑 <code>app.js</code> 文件，修改端口为刚刚放行的端口。</p><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</span><br></pre></td></tr></table></figure><p>安装完毕后，使用 pm2 启动并守护 vless 进程：</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-global/bin/pm2 start app.js --name vless</span><br></pre></td></tr></table></figure><p>接着去你的代理客户端软件中手动添加 vless 配置即可：（下表没有给出的可以不填。）</p><table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody><tr><td>地址</td><td>Panel 中 WWW Websites 选项卡里的你的 Domain name</td></tr><tr><td>端口</td><td>你放行的端口</td></tr><tr><td>用户 id</td><td>37a0bd7c-8b9f-4693-8916-bd1e2da0a817</td></tr><tr><td>传输协议</td><td>ws</td></tr><tr><td>伪装域名</td><td>同地址</td></tr><tr><td>ws path</td><td>&#x2F;</td></tr></tbody></table></div></details><details class="toggle" ><summary class="toggle-button" style="">Alist</summary><div class="toggle-content"><h2 id="Alist（FreeBSD-版本）"><a href="#Alist（FreeBSD-版本）" class="headerlink" title="Alist（FreeBSD 版本）"></a>Alist（FreeBSD 版本）</h2><p>Alist 官方仓库没有构筑 FreeBSD 系统下能够运行的 Alist 可执行文件，但是我在 Github 上发现了一个使用 Github Workflow 自动构筑 FreeBSD 适用的 Alist 的仓库：<a href="https://github.com/shangskr/alist-freebsd">shangskr&#x2F;alist-freebsd</a>，使用这个仓库就可以很便利的在 Serv00 上部署 Alist。</p><h3 id="部署步骤"><a href="#部署步骤" class="headerlink" title="部署步骤"></a>部署步骤</h3><p>新建并进入 Alist 的工作目录：</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">mkdir</span> -p ~/domains/alist &amp;&amp; <span class="built_in">cd</span> ~/domains/alist</span><br></pre></td></tr></table></figure><p>接着下载目前 <a href="https://github.com/shangskr/alist-freebsd">shangskr&#x2F;alist-freebsd</a> 提供的最新版的 Alist 的可执行二进制文件构筑：</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">wget https://github.com/shangskr/alist-freebsd/releases/download/v3.30.0/alist &amp;&amp; <span class="built_in">chmod</span> +x alist</span><br></pre></td></tr></table></figure><p>然后需要先启动一次 Alist 以生成配置文件，此次启动一定会失败，请不用在意：</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">./alist server</span><br></pre></td></tr></table></figure><p>接着回到 Panel 中，找到 <strong>MySQL</strong> 选项卡，使用 <strong>Add database</strong> 功能新建一个数据库：</p><blockquote><p>密码要求含有大写字母、小写字母和数字三种字符，且长度必须超过 6 个字符。</p></blockquote><p>接下来进入 <strong>File manager</strong> 选项卡，进入 <code>~/domains/alist/data</code> 路径，可以看到一个名为 <code>config.json</code> 的文件，右键点击，选择 <strong>View&#x2F;Edit &gt; Source Editor</strong>，进行编辑：</p><p><img src="https://anxy.qyliu.top/2024/2024-02-08/01.webp" alt="配置示例"></p><p>修改 <code>CDN</code>、<code>database</code>、<code>scheme</code> 三个部分：</p><ul><li><p><strong>CDN</strong>: <code>https://jsd.onmicrosoft.cn/npm/alist-web@$version/dist/</code></p><blockquote><p>版本号的话自己指定，不指定有可能加载不出来页面</p></blockquote></li><li><p><strong>database 部分</strong>：</p><ul><li><code>type</code> 需要改成 <code>mysql</code></li><li><code>host</code> 填写你在注册邮件中看到的 mysql 的地址</li><li><code>port</code> 是默认的 <code>3306</code></li><li>用户名、密码、数据库名则按照你创建的情况进行填写</li></ul></li><li><p><strong>scheme 部分</strong>：</p><ul><li>修改 <code>address</code> 为 <code>127.0.0.1</code> 本地回环，是为了避免被他人使用 <code>http://ip:port</code> 的方式进行访问。至于自己怎么访问，本文后面的部分会进行介绍。</li><li><code>http_port</code> 要改成自己前面放行的端口。</li></ul></li></ul><p>改完之后，点击 <strong>save</strong> 保存，接着回到 SSH 窗口中进行操作。</p><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">./alist server</span><br></pre></td></tr></table></figure><p>运行正常，记得把管理员用户的密码记住。接着使用 <code>Ctrl+c</code> 停止运行。</p><p>你可以选择使用面板中的 <strong>Proxy</strong> 功能添加域名，或者 <strong>Cloudflared</strong> 隧道添加域名。</p></div></details><details class="toggle" ><summary class="toggle-button" style="">Synctv</summary><div class="toggle-content"><h2 id="SyncTV"><a href="#SyncTV" class="headerlink" title="SyncTV"></a>SyncTV</h2><p>因为用 koyeb 部署这个项目把我 Koyeb 账号封了所以没办法玩了，我想到了 serv00 于是通过仿照 alist-freebsd 的仓库的 workflow 进行构筑的。</p><h3 id="部署步骤"><a href="#部署步骤" class="headerlink" title="部署步骤"></a>部署步骤</h3><p>首先放行一个端口，然后创建并进入 synctv 的工作目录：</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">mkdir</span> -p ~/domains/synctv &amp;&amp; <span class="built_in">cd</span> ~/domains/synctv</span><br></pre></td></tr></table></figure><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">release_info=$(curl -s https://api.github.com/repos/shangskr/synctv-freebsd/releases/latest)</span><br><span class="line">asset_url=$(<span class="built_in">echo</span> <span class="string">&quot;<span class="variable">$release_info</span>&quot;</span> | jq -r <span class="string">&#x27;.assets[] | select(.name != &quot;source code&quot;) | .browser_download_url&#x27;</span>)</span><br><span class="line">curl -L -o synctv <span class="string">&quot;<span class="variable">$asset_url</span>&quot;</span> &amp;&amp; <span class="built_in">chmod</span> +x synctv</span><br></pre></td></tr></table></figure><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">touch</span> start.sh &amp;&amp; <span class="built_in">chmod</span> +x start.sh</span><br></pre></td></tr></table></figure><p>接着在 Panel 中进入 <strong>File manager</strong> 选项卡，进入 synctv 的工作目录，找到 <code>start.sh</code> 文件，右键选择 <strong>View&#x2F;Edit &gt; Choose other &gt; Source Editor</strong> 进行编辑，填入以下内容：</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></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/sh</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 如果不希望被使用 http://ip:port 的方式访问，取消注释下一行</span></span><br><span class="line"><span class="comment"># export SYNCTV_SERVER_LISTEN=127.0.0.1</span></span><br><span class="line"><span class="comment"># 把下一行的最末的 PORT 改成自己放行的端口</span></span><br><span class="line"><span class="built_in">export</span> SYNCTV_SERVER_PORT=PORT</span><br><span class="line">./synctv server --data-dir ./</span><br></pre></td></tr></table></figure><p>保存后回到 terminal 中，给予权限：</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">chmod</span> +x synctv</span><br></pre></td></tr></table></figure><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">./start.sh</span><br></pre></td></tr></table></figure><p>确定运行没有问题后，按 <code>Ctrl+c</code> 即可停止运行。</p><p>使用 pm2 启动并管理：</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-global/bin/pm2 start ./start.sh --name synctv</span><br></pre></td></tr></table></figure></div></details><details class="toggle" ><summary class="toggle-button" style="">One-api</summary><div class="toggle-content"><h2 id="One-API"><a href="#One-API" class="headerlink" title="One-API"></a>One-API</h2><p>源仓库没有提供 freebsd 平台的二进制文件，需要自己构建，但是很简单。先在面板中放行一个端口。</p><h3 id="部署步骤"><a href="#部署步骤" class="headerlink" title="部署步骤"></a>部署步骤</h3><p>新建并进入 one-api 的工作目录：</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">mkdir</span> -p ~/domains/one-api &amp;&amp; <span class="built_in">cd</span> ~/domains/one-api</span><br></pre></td></tr></table></figure><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><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"><span class="comment"># 下载源代码</span></span><br><span class="line">git <span class="built_in">clone</span> https://github.com/songquanpeng/one-api</span><br><span class="line"><span class="comment"># 构建前端</span></span><br><span class="line"><span class="built_in">cd</span> one-api/web/default</span><br><span class="line">npm install</span><br><span class="line">npm run build</span><br><span class="line"><span class="comment"># 构建后端</span></span><br><span class="line"><span class="built_in">cd</span> ../..</span><br><span class="line">go mod download</span><br><span class="line">go build -ldflags <span class="string">&quot;-s -w&quot;</span> -o one-api</span><br><span class="line"><span class="built_in">chmod</span> u+x one-api</span><br><span class="line"><span class="comment"># 清理文件</span></span><br><span class="line"><span class="built_in">cd</span> .. &amp;&amp; <span class="built_in">mv</span> -f one-api/one-api ./temp</span><br><span class="line"><span class="built_in">rm</span> -rf one-api</span><br><span class="line"><span class="built_in">mv</span> -f temp one-api</span><br></pre></td></tr></table></figure><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">touch</span> start.sh &amp;&amp; <span class="built_in">chmod</span> +x start.sh</span><br></pre></td></tr></table></figure><p>接着在 Panel 中进入 File manager 选项卡，进入 one-api 的工作目录，找到 start.sh 文件，右键选择 View&#x2F;Edit &gt; Choose other &gt; Source Editor 进行编辑，填入以下内容：</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></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/sh</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">export</span> TIKTOKEN_CACHE_DIR=<span class="string">&quot;<span class="variable">$PWD</span>&quot;</span></span><br><span class="line"><span class="comment"># 把下一行的 PORT 改为自己放行的端口</span></span><br><span class="line">./one-api --port PORT --log-dir ./logs</span><br></pre></td></tr></table></figure><p>保存后回到 terminal 中，测试运行：</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">./start.sh</span><br></pre></td></tr></table></figure><p>确定运行没有问题后，按 Ctrl+c 即可停止运行。</p><p>使用 pm2 启动并管理：</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-global/bin/pm2 start ./start.sh --name one-api</span><br></pre></td></tr></table></figure></div></details><details class="toggle" ><summary class="toggle-button" style="">Uptime-Kuma</summary><div class="toggle-content"><h2 id="Uptime-Kuma"><a href="#Uptime-Kuma" class="headerlink" title="Uptime Kuma"></a>Uptime Kuma</h2><p>受限于 FreeBSD 的平台限制，1.23 版本内置了 PlayWright，无法运行，所以只能安装 1.22 版本。切记先去 Panel 中放行 TCP 端口。</p><h3 id="部署步骤"><a href="#部署步骤" class="headerlink" title="部署步骤"></a>部署步骤</h3><p>下载 1.22.1 版本源代码并进入工作路径：</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">cd</span> ~/domains &amp;&amp; wget https://github.com/louislam/uptime-kuma/archive/refs/tags/1.22.1.zip &amp;&amp; unzip 1.22.1.zip &amp;&amp; <span class="built_in">mv</span> -f uptime-kuma-1.22.1 kuma &amp;&amp; <span class="built_in">rm</span> -f 1.22.1.zip &amp;&amp; <span class="built_in">cd</span> kuma</span><br></pre></td></tr></table></figure><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 ci --production</span><br></pre></td></tr></table></figure><p>下载 dist 文件：</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">wget https://github.com/louislam/uptime-kuma/releases/download/1.22.1/dist.tar.gz &amp;&amp; tar -xzvf dist.tar.gz &amp;&amp; <span class="built_in">rm</span> dist.tar.gz</span><br></pre></td></tr></table></figure><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</span><br></pre></td></tr></table></figure><p>安装过程中多少会有报错，无视就好，实际上最后可以正常运行。内置的 Cloudflared 反向代理在 FreeBSD 平台上无法使用，但是可以使用上述的外置的 Cloudflared 进行反代，使用自己的域名。</p><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">node server/server.js --port=PORT</span><br></pre></td></tr></table></figure><p>记得把 PORT 替换成你放行的端口。确定运行没有问题后，按 Ctrl+c 即可停止运行。</p><p>使用 pm2 管理后台运行：</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-global/bin/pm2 start server/server.js --name uptime-kuma -- --port=PORT</span><br></pre></td></tr></table></figure><p>记得把 PORT 替换成你放行的端口。</p><p>如果你不希望自己的 Uptime-Kuma 被人使用 <code>http://IP:PORT</code> 的方式访问，你可以在最后的执行命令添加 –host&#x3D;127.0.0.1 的尾缀，这样就只能通过反向代理的域名进行访问了：</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-global/bin/pm2 start server/server.js --name uptime-kuma -- --port=PORT --host=127.0.0.1</span><br></pre></td></tr></table></figure></div></details><details class="toggle" ><summary class="toggle-button" style="">Bingo</summary><div class="toggle-content"><h2 id="Bingo"><a href="#Bingo" class="headerlink" title="Bingo"></a>Bingo</h2><p>先放行一个端口。在 Panel 中进入 <strong>File manager</strong> 选项卡，点击左侧的 <strong>My Files</strong> 进入你的用户根目录，找到 <code>.bashrc</code> 文件，右键选择 <strong>View&#x2F;Edit &gt; Choose other &gt; Source Editor</strong> 进行编辑，在最末加上以下两行并保存：</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="built_in">alias</span> node=<span class="string">&#x27;node20&#x27;</span></span><br><span class="line"><span class="built_in">alias</span> npm=<span class="string">&#x27;npm20&#x27;</span></span><br></pre></td></tr></table></figure><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">source</span> ~/.bashrc</span><br></pre></td></tr></table></figure><p>先新建一个目录用于存放 halo 的相关文件，进入目录后执行下述操作。</p><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> https://github.com/weaigc/bingo</span><br></pre></td></tr></table></figure><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">cd</span> bingo</span><br></pre></td></tr></table></figure><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">npm20 install</span><br></pre></td></tr></table></figure><p>下载 build 好的 <code>.next</code> 资源：</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">wget -O next.tar.gz https://pan.saika.free.hr/d/local/next.tar.gz &amp;&amp; tar -xzvf next.tar.gz &amp;&amp; <span class="built_in">rm</span> next.tar.gz</span><br></pre></td></tr></table></figure><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> .env.example .<span class="built_in">env</span></span><br></pre></td></tr></table></figure><p>接着在 Panel 中进入 <strong>File manager</strong> 选项卡，进入 Bingo 源码所在的目录，找到 <code>server.js</code> 文件，右键选择 <strong>View&#x2F;Edit &gt; Choose other &gt; Source Editor</strong> 进行编辑，修改第 7 行中的端口为你放行的端口。再编辑 <code>.env</code> 文件，添加你的 <code>BING_HEADER</code>。</p><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">npm20 run start</span><br></pre></td></tr></table></figure><p>确定运行没有问题后，按 <code>Ctrl+c</code> 即可停止运行。</p><p>使用 pm2 启动并管理：</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-global/bin/pm2 start npm --name bingo -- run start</span><br></pre></td></tr></table></figure></div></details><details class="toggle" ><summary class="toggle-button" style="">Refresh-gpt-chat</summary><div class="toggle-content"><h2 id="refresh-gpt-chat"><a href="#refresh-gpt-chat" class="headerlink" title="refresh-gpt-chat"></a>refresh-gpt-chat</h2><p>创建并进入 refresh-gpt-chat 的工作目录：</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">mkdir</span> -p ~/domains/refresh-gpt-chat &amp;&amp; <span class="built_in">cd</span> ~/domains/refresh-gpt-chat</span><br></pre></td></tr></table></figure><p>下载 refresh-gpt-chat：</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"># 本文成文时，refresh-gpt-chat 的最新版本为 0.0.3</span></span><br><span class="line">wget -O refresh-gpt-chat.jar https://github.com/Yanyutin753/refresh-gpt-chat/releases/download/v0.0.3/refresh-gpt-chat-0.0.3-SNAPSHOT.jar</span><br></pre></td></tr></table></figure><p>使用 pm2 启动：</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-global/bin/pm2 start java19 --name refresh-gpt-chat -- -jar refresh-gpt-chat.jar --server.port=端口 --server.servlet.context-path=/ --getAccessTokenUrl=https://你的 ninja 地址/auth/refresh_token --chatUrl=https://你的 ninja 地址/v1/chat/completions</span><br></pre></td></tr></table></figure><p>再套域名，接下来就可以直接使用 <code>https://你套的域名/v1/chat/completions/</code> 当作 API 端点，使用 <code>refresh_token</code> 做 <code>API_Keys</code>，使用 ChatGPT 了。</p><p>然后在 one-api 中添加自定义渠道，Base URL 填写你 <code>https://你套的域名</code>，模型填入你的 <code>refresh_token</code> 对应的账号所支持的模型，如果和我一样手持大把 3.5 的账号想用来做 API 用，可以选择全部 GPT3.5 的相关模型，然后在模型重定向中填入以下内容：</p><figure class="highlight json"><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="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;gpt-3.5-turbo-0301&quot;</span><span class="punctuation">:</span> <span class="string">&quot;gpt-3.5-turbo&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;gpt-3.5-turbo-0613&quot;</span><span class="punctuation">:</span> <span class="string">&quot;gpt-3.5-turbo&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;gpt-3.5-turbo-16k&quot;</span><span class="punctuation">:</span> <span class="string">&quot;gpt-3.5-turbo&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;gpt-3.5-turbo-16k-0613&quot;</span><span class="punctuation">:</span> <span class="string">&quot;gpt-3.5-turbo&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;gpt-3.5-turbo-1106&quot;</span><span class="punctuation">:</span> <span class="string">&quot;gpt-3.5-turbo&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;gpt-3.5-turbo-instruct&quot;</span><span class="punctuation">:</span> <span class="string">&quot;gpt-3.5-turbo&quot;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>密钥填写你的 <code>refresh_token</code> 即可，如果你有多个账号，可以将批量勾选上，然后一行写一个 <code>refresh_token</code>。</p></div></details><details class="toggle" ><summary class="toggle-button" style="">gpt4-copilot-java</summary><div class="toggle-content"><h2 id="gpt4-copilot-java"><a href="#gpt4-copilot-java" class="headerlink" title="gpt4-copilot-java"></a>gpt4-copilot-java</h2><p>支持 cocopilot 的 ccu 和 copilot 的 ghu 调用 copilot 转 GPT-4 的接口转换工具。Java 写的，可以在 Serv00 运行。依旧是在 Panel 中先开放端口。</p><h3 id="部署步骤"><a href="#部署步骤" class="headerlink" title="部署步骤"></a>部署步骤</h3><p>新建并进入 gpt4-copilot-java 的工作目录：</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">mkdir</span> -p ~/domains/gpt4-copilot-java &amp;&amp; <span class="built_in">cd</span> ~/domains/gpt4-copilot-java</span><br></pre></td></tr></table></figure><p>下载 fat jar 包：</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">RELEASE_INFO=$(curl -s <span class="string">&quot;https://api.github.com/repos/Yanyutin753/gpt4-copilot-java-sh/releases/latest&quot;</span>)</span><br><span class="line">JAR_DOWNLOAD_URL=$(<span class="built_in">echo</span> <span class="string">&quot;<span class="variable">$RELEASE_INFO</span>&quot;</span> | jq -r <span class="string">&#x27;.assets[] | select(.name|test(&quot;.jar$&quot;)) | .browser_download_url&#x27;</span>)</span><br><span class="line">curl -L -o gpt4-copilot-java.jar <span class="string">&quot;<span class="variable">$JAR_DOWNLOAD_URL</span>&quot;</span></span><br></pre></td></tr></table></figure><p>测试运行：</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"># 把 PORT 改为自己放行的端口，最后的 server.servlet.context-path 参数可以改成自己喜欢的尾缀</span></span><br><span class="line">java19 -jar gpt4-copilot-java.jar --server.port=PORT --server.servlet.context-path=/</span><br></pre></td></tr></table></figure><p>测试没有问题之后，按 Ctrl+c 即可停止运行。</p><p>使用 pm2 启动并管理：</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-global/bin/pm2 start java19 --name gpt4-copilot-java -- -jar gpt4-copilot-java.jar --server.port=PORT --server.servlet.context-path=/</span><br></pre></td></tr></table></figure><h3 id="使用示例"><a href="#使用示例" class="headerlink" title="使用示例"></a>使用示例</h3><p>始皇的公车：<code>ghu_ThisIsARealFreeCopilotKeyByCoCopilot</code></p><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><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">curl --location <span class="string">&#x27;http(s)://ip:port_or_URL/cocopilot/v1/chat/completions&#x27;</span> \</span><br><span class="line">--header <span class="string">&#x27;Content-Type: application/json&#x27;</span> \</span><br><span class="line">--header <span class="string">&#x27;Authorization: Bearer ghu_ThisIsARealFreeCopilotKeyByCoCopilot&#x27;</span> \</span><br><span class="line">--data <span class="string">&#x27;&#123;</span></span><br><span class="line"><span class="string">&quot;model&quot;: &quot;gpt-4&quot;,</span></span><br><span class="line"><span class="string">&quot;messages&quot;: [&#123;&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;鲁迅打周树人&quot;&#125;]</span></span><br><span class="line"><span class="string">&#125;&#x27;</span></span><br></pre></td></tr></table></figure></div></details><details class="toggle" ><summary class="toggle-button" style="">Zfile</summary><div class="toggle-content"><h2 id="ZFile"><a href="#ZFile" class="headerlink" title="ZFile"></a>ZFile</h2><p>同理，先放行端口。然后新建并进入 zfile 的工作路径：</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">mkdir</span> -p ~/domains/zfile &amp;&amp; <span class="built_in">cd</span> ~/domains/zfile</span><br></pre></td></tr></table></figure><p>下载 fat jar 包：</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">wget --no-check-certificate -O zfile.jar https://c.jun6.net/ZFILE/zfile-release.jar</span><br></pre></td></tr></table></figure><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">java19 -jar -Duser.timezone=Asia/Shanghai zfile.jar --zfile.log.path=<span class="variable">$PWD</span>/logs --zfile.db.path=<span class="variable">$PWD</span>/zfile --server.port=PORT</span><br></pre></td></tr></table></figure><p>记得把端口改成自己的。测试没有问题之后，按 Ctrl+c 即可停止运行。</p><p>使用 pm2 启动并管理：</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-global/bin/pm2 start java19 --name zfile -- -jar -Duser.timezone=Asia/Shanghai zfile.jar --zfile.log.path=<span class="variable">$PWD</span>/logs --zfile.db.path=<span class="variable">$PWD</span>/zfile --server.port=PORT</span><br></pre></td></tr></table></figure></div></details><details class="toggle" ><summary class="toggle-button" style="">Halo</summary><div class="toggle-content"><h2 id="Halo"><a href="#Halo" class="headerlink" title="Halo"></a>Halo</h2><blockquote><p>慎重部署，内存会超 100%，不知道会不会封号</p></blockquote><p><a href="https://github.com/halo-dev/halo">Halo</a> 自从升级 2.0 版本开始，很长时间内都没有提供构筑好的 jar 包，甚至于在 GitHub 上都出现了第三方的，使用 GitHub workflow 自动化构筑 jar 包的仓库：<a href="https://github.com/Lu7fer/Jar4Halo">Jar4Halo</a>。但是，自从 2.12.0-alpha.1 版本开始，Halo 的官方仓库又开始提供构筑好的 jar 包了。</p><h3 id="部署步骤"><a href="#部署步骤" class="headerlink" title="部署步骤"></a>部署步骤</h3><p>先放行一个端口，并新建一个目录用于存放 halo 的相关文件，进入目录后执行下述操作。</p><p>下载 jar 包：</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">wget -O halo.jar https://github.com/halo-dev/halo/releases/download/v2.12.0/halo-2.12.0.jar</span><br></pre></td></tr></table></figure><p>在面板中新建 MySQL 数据库，用于填入 <code>application.yaml</code>，<code>application.yaml</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></pre></td><td class="code"><pre><span class="line"><span class="attr">server:</span></span><br><span class="line">  <span class="attr">port:</span> <span class="string">你在面板中放行的端口</span></span><br><span class="line">  <span class="comment"># Response data gzip.</span></span><br><span class="line">  <span class="attr">compression:</span></span><br><span class="line">    <span class="attr">enabled:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">spring:</span></span><br><span class="line">  <span class="comment">#sql:</span></span><br><span class="line">  <span class="comment">#  init.platform: mysql</span></span><br><span class="line">  <span class="attr">r2dbc:</span></span><br><span class="line">    <span class="attr">url:</span> <span class="string">r2dbc:pool:mysql://数据库地址:3306/数据库名</span></span><br><span class="line">    <span class="attr">username:</span> <span class="string">数据库用户名</span></span><br><span class="line">    <span class="attr">password:</span> <span class="string">数据库密码</span></span><br><span class="line"><span class="attr">halo:</span></span><br><span class="line">  <span class="comment"># Your admin client path is https://your-domain/&#123;admin-path&#125;</span></span><br><span class="line">  <span class="attr">admin-path:</span> <span class="string">admin</span></span><br><span class="line">  <span class="comment"># memory or level</span></span><br><span class="line">  <span class="attr">cache:</span> <span class="string">level</span></span><br></pre></td></tr></table></figure><p>在 <code>halo.jar</code> 所在路径下新建 <code>.halo2</code> 文件夹，进入其中，新建文件 <code>application.yaml</code> 然后把上述内容填入其中。</p><p>在 <code>halo.jar</code> 所在路径下新建 <code>run.sh</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></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"><span class="built_in">export</span> HALO_WORK_DIR=<span class="string">&quot;<span class="variable">$PWD</span>/.halo2&quot;</span></span><br><span class="line"><span class="built_in">export</span> HALO_EXTERNAL_URL=<span class="string">&quot;https://你的域名&quot;</span></span><br><span class="line">java17 -server -Xms128m -Xmx256m -jar -Duser.timezone=Asia/Shanghai <span class="variable">$PWD</span>/halo.jar --spring.config.additional-location=<span class="variable">$PWD</span>/.halo2/application.yaml</span><br></pre></td></tr></table></figure><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">chmod</span> +x run.sh &amp;&amp; ./run.sh</span><br></pre></td></tr></table></figure><p>确定运行没有问题后，按 Ctrl+c 即可停止运行。</p><p>使用 pm2 管理运行：</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">chmod</span> +x run.sh &amp;&amp; ~/.npm-global/bin/pm2 start ./run.sh --name halo</span><br></pre></td></tr></table></figure></div></details><details class="toggle" ><summary class="toggle-button" style="">自动续期</summary><div class="toggle-content"><h2 id="自动续期方法"><a href="#自动续期方法" class="headerlink" title="自动续期方法"></a>自动续期方法</h2><h3 id="方法一：使用青龙面板"><a href="#方法一：使用青龙面板" class="headerlink" title="方法一：使用青龙面板"></a>方法一：使用青龙面板</h3><p>可以用青龙面板的自动任务定期登录 SSH 解决。在青龙面板中添加 Linux 依赖 <code>sshpass</code>，然后添加定时任务：</p><ul><li>名称：随意</li><li>命令&#x2F;脚本：</li></ul><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">sshpass -p <span class="string">&#x27;密码&#x27;</span> ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 <span class="string">&quot;exit&quot;</span></span><br></pre></td></tr></table></figure><ul><li>定时规则：<code>1 1 1 * *</code></li></ul><p>这样就会每个月自动 ssh 连接一次，实现续期。</p><h3 id="方法二：自身-SSH-自身自动续期"><a href="#方法二：自身-SSH-自身自动续期" class="headerlink" title="方法二：自身 SSH 自身自动续期"></a>方法二：自身 SSH 自身自动续期</h3><p>你还可以使用自身 SSH 自身的方式进行自动续期，操作如下：</p><p>在 Panel 中找到 <strong>File manager</strong> 选项卡，进入一个自己喜欢的路径，然后找到上方 <strong>Send</strong> 按钮左边的 <strong>+</strong>，选择 <strong>New empty file</strong>，文件名命名为 <code>auto-renew.sh</code>，右键点击 <code>auto-renew.sh</code>，选择 <strong>View&#x2F;Edit &gt; Source Editor</strong>，进行编辑，把下面的代码块的内容都复制进去：</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="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">while</span> <span class="literal">true</span>; <span class="keyword">do</span></span><br><span class="line">  sshpass -p <span class="string">&#x27;密码&#x27;</span> ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 <span class="string">&quot;exit&quot;</span> &amp;</span><br><span class="line">  <span class="built_in">sleep</span> 259200  <span class="comment">#30 天为 259200 秒</span></span><br><span class="line"><span class="keyword">done</span></span><br></pre></td></tr></table></figure><p>记得把其中的密码、用户名、ssh 的地址修改为你自己的。</p><p>保存后回到 SSH 中，进入 <code>auto-renew.sh</code> 所在的路径：</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">cd</span> xxx    <span class="comment">#其中 xxx 为你的 auto-renew.sh 文件的存放路径</span></span><br></pre></td></tr></table></figure><p>给 <code>auto-renew.sh</code> 添加可执行权限：</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">chmod</span> +x auto-renew.sh</span><br></pre></td></tr></table></figure><p>使用 pm2 启动：</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-global/bin/pm2 start ./auto-renew.sh</span><br></pre></td></tr></table></figure><p>这样就会每隔一个月自动执行一次 SSH 连接，自己 SSH 自己进行续期。</p></div></details><details class="toggle" ><summary class="toggle-button" style="">自动启动</summary><div class="toggle-content"><h2 id="添加开机自启"><a href="#添加开机自启" class="headerlink" title="添加开机自启"></a>添加开机自启</h2><p>在 Panel 中找到 <strong>Cron jobs</strong> 选项卡，使用 <strong>Add cron job</strong> 功能添加任务：</p><p><img src="https://anxy.qyliu.top/2024/2024-02-08/02.webp" alt="Cron 任务配置"></p><ul><li><strong>Specify time</strong> 选择 <strong>After reboot</strong>，即为重启后运行。</li><li><strong>Form type</strong> 选择 <strong>Advanced</strong>，Command 写：</li></ul><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">/home/你的用户名/.npm-global/bin/pm2 resurrect</span><br></pre></td></tr></table></figure><p>记得把你的用户名改为你的用户名。</p><p>添加完之后，在 SSH 窗口保存 pm2 的当前任务列表快照：</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-global/bin/pm2 save</span><br></pre></td></tr></table></figure><p>这样每次 serv00 不定时重启任务时，都能自动调用 pm2 读取保存的任务列表快照，恢复任务列表。</p></div></details>]]>
    </content>
    <id>https://blog.anxw.cn/posts/6.html</id>
    <link href="https://blog.anxw.cn/posts/6.html"/>
    <published>2024-02-08T02:54:00.000Z</published>
    <summary>3GB 空间 + 不限流量 + 10 年有效期，部署 Alist / VLESS / One-API 等应用，配隧道反代 + PM2 守护 + 自动续期。</summary>
    <title>用serv00部署Alist以及其它项目</title>
    <updated>2025-07-16T02:58:26.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="教程" scheme="https://blog.anxw.cn/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="教程" scheme="https://blog.anxw.cn/tags/%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<p>美化后的效果：</p><p><img src="https://anxy.qyliu.top/2023/2023-08-14/1.webp" alt="美化效果1"></p><p><img src="https://anxy.qyliu.top/2023/2023-08-14/2.webp" alt="美化效果2"></p><p>接下来就开始美化吧！</p><p>首先你要进入 alist 后台中的设置然后是全局，你会看到自定义头部和自定义内容</p><p>我们的自定义头部用来加载一些 css 后期可以自行添加~</p><p><a href="https://blog.liushen.fun/">ALIST_V3 样式参考 liushen</a></p><p>新版本的 alist 结构发生了变化，不再使用 alist_v2 的样式，请使用 alist_v3 样式</p><h2 id="ALIST-V3-自定义头部代码"><a href="#ALIST-V3-自定义头部代码" class="headerlink" title="ALIST_V3 自定义头部代码"></a>ALIST_V3 自定义头部代码</h2><figure class="highlight html"><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"><span class="comment">&lt;!-- 字体引入 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;preconnect&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://fontsapi.zeoseven.com&quot;</span> <span class="attr">crossorigin</span> /&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span></span></span><br><span class="line"><span class="tag">    <span class="attr">href</span>=<span class="string">&quot;https://fontsapi.zeoseven.com/7/main/result.css&quot;</span></span></span><br><span class="line"><span class="tag">    <span class="attr">onerror</span>=<span class="string">&quot;this.href=&#x27;https://fontsapi-storage.zeoseven.com/7/main/result.css&#x27;&quot;</span> /&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- 图标库 Font6 Pro --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.elemecdn.com/font6pro@6.0.1/css/fontawesome.min.css&quot;</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.elemecdn.com/font6pro@6.0.1/css/all.min.css&quot;</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- 不蒜子计数器 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">async</span> <span class="attr">src</span>=<span class="string">&quot;//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- 一言 API --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://v1.hitokoto.cn/?encode=js&amp;select=%23hitokoto&quot;</span> <span class="attr">defer</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="ALIST-V3-自定义内容代码"><a href="#ALIST-V3-自定义内容代码" class="headerlink" title="ALIST_V3 自定义内容代码"></a>ALIST_V3 自定义内容代码</h2><figure class="highlight html"><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">&quot;customize&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: none;&quot;</span>&gt;</span></span><br><span class="line">    <span class="comment">&lt;!-- 底部信息栏 --&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">footer</span> <span class="attr">class</span>=<span class="string">&quot;copyright&quot;</span> <span class="attr">style</span>=<span class="string">&quot;margin-top: 3rem; padding: 1rem 0; text-align: center;&quot;</span>&gt;</span></span><br><span class="line">      <span class="comment">&lt;!-- 一言 --&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">&quot;hitokoto&quot;</span>&gt;</span>你现在的气质里，藏着你走过的路，读过的书和爱过的人。<span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">  </span><br><span class="line">      <span class="comment">&lt;!-- 友链 --&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">&quot;margin-bottom: 0rem; display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem;&quot;</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;https://xxxx.top/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: flex; align-items: center; text-decoration: none; color: #409EFF;&quot;</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fas fa-home&quot;</span> <span class="attr">style</span>=<span class="string">&quot;margin-right: 0.4rem;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">i</span>&gt;</span>主页</span><br><span class="line">        <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;https://xxxx.top/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: flex; align-items: center; text-decoration: none; color: #409EFF;&quot;</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fas fa-edit&quot;</span> <span class="attr">style</span>=<span class="string">&quot;margin-right: 0.4rem;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">i</span>&gt;</span>博客</span><br><span class="line">        <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;https://github.com/shangskr&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: flex; align-items: center; text-decoration: none; color: #409EFF;&quot;</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fab fa-github&quot;</span> <span class="attr">style</span>=<span class="string">&quot;margin-right: 0.4rem;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">i</span>&gt;</span>GitHub</span><br><span class="line">        <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;https://xxxx.com/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: flex; align-items: center; text-decoration: none; color: #409EFF;&quot;</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fas fa-comment-lines&quot;</span> <span class="attr">style</span>=<span class="string">&quot;margin-right: 0.4rem;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">i</span>&gt;</span>留言</span><br><span class="line">        <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;/@manage&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: flex; align-items: center; text-decoration: none; color: #409EFF;&quot;</span>&gt;</span></span><br><span class="line">          <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fa-solid fa-folder-gear&quot;</span> <span class="attr">style</span>=<span class="string">&quot;margin-right: 0.4rem;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">i</span>&gt;</span>管理</span><br><span class="line">        <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">  </span><br><span class="line">      <span class="comment">&lt;!-- 访问统计 --&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">&quot;margin-bottom: 0rem;&quot;</span>&gt;</span></span><br><span class="line">        本<span class="tag">&lt;<span class="name">span</span> <span class="attr">style</span>=<span class="string">&quot;color: #0d6efd;&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;#&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: #0d6efd; text-decoration: none;&quot;</span>&gt;</span>目录<span class="tag">&lt;/<span class="name">a</span>&gt;</span><span class="tag">&lt;/<span class="name">span</span>&gt;</span>访问量：</span><br><span class="line">        <span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;busuanzi_value_page_pv&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: #0d6efd;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">span</span>&gt;</span> 次，</span><br><span class="line">        总访问量：</span><br><span class="line">        <span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;busuanzi_value_site_pv&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: #0d6efd;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">span</span>&gt;</span> 次，</span><br><span class="line">        总访客数：</span><br><span class="line">        <span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;busuanzi_value_site_uv&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: #0d6efd;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">span</span>&gt;</span> 人</span><br><span class="line">      <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">      <span class="comment">&lt;!-- 版权信息 --&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">&quot;margin-bottom: 0rem;&quot;</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fa-solid fa-copyright&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">        2021 -</span><br><span class="line">        <span class="tag">&lt;<span class="name">script</span>&gt;</span><span class="language-javascript"><span class="variable language_">document</span>.<span class="title function_">write</span>((<span class="keyword">new</span> <span class="title class_">Date</span>()).<span class="title function_">getFullYear</span>());</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line">        Powered by <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;https://xxxx.top/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span> <span class="attr">style</span>=<span class="string">&quot;text-decoration: none; color: inherit;&quot;</span>&gt;</span>安小歪<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">  </span><br><span class="line">      <span class="comment">&lt;!-- 运行时间 --&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;runtime&quot;</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fa fa-alarm-clock&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF;&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;runtime_span&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">footer</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line">  </span><br><span class="line">  <span class="comment">&lt;!-- 样式优化 --&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">style</span>&gt;</span><span class="language-css"></span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-ui-light</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attr">--my-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.4</span>);</span></span><br><span class="line"><span class="language-css">      <span class="attr">--color-main-custom</span>: <span class="number">#ffffff9e</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-ui-dark</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attr">--my-color</span>: <span class="built_in">rgba</span>(<span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>,<span class="number">0.4</span>);</span></span><br><span class="line"><span class="language-css">      <span class="attr">--color-main-custom</span>: <span class="number">#2e2e2e70</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  * &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">font-family</span>: <span class="string">&quot;Zhuque Fangsong (technical preview)&quot;</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">letter-spacing</span>: <span class="number">2px</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="comment">/* 背景里面的 url 可以替换为自己的图片 url 地址 */</span></span></span><br><span class="line"><span class="language-css">  <span class="selector-tag">body</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background-image</span>: <span class="built_in">linear-gradient</span>(to bottom, <span class="built_in">var</span>(--my-color), <span class="built_in">var</span>(--my-color)), <span class="built_in">url</span>(<span class="string">&quot;https://www.loliapi.com/acg&quot;</span>) <span class="meta">!important</span>; </span></span><br><span class="line"><span class="language-css">      <span class="attribute">background-repeat</span>: no-repeat <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background-size</span>: cover <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background-attachment</span>: fixed <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background-position-x</span>: center <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">  <span class="comment">/*目录模糊背景*/</span></span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-breadcrumb__list</span><span class="selector-class">.hope-c-cPYwgm</span><span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-iehpHsP-css</span> &#123;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">background-color</span>: <span class="built_in">var</span>(--color-main-custom) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    -webkit-<span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>) <span class="meta">!important</span>; <span class="comment">/* 兼容 Safari */</span></span></span><br><span class="line"><span class="language-css">    <span class="attribute">border-radius</span>: <span class="number">8px</span> <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">padding</span>: <span class="number">0.5rem</span> <span class="number">1rem</span> <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">&#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="comment">/* 列表、Readme 区域透明度 */</span></span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-c-PJLV-igScBhH-css</span>,</span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-c-PJLV-ikSuVsl-css</span>,</span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-c-PJLV-ieGWMbI-css</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background-color</span>: <span class="number">#ffffff9e</span> <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-PJLV-ieGWMbI-css</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background-color</span>: <span class="built_in">var</span>(--hope-colors-neutral3) <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="comment">/* 隐藏顶部 header 和底部 footer 背景 */</span></span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-c-PJLV-idaeksS-css</span>,</span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.hope-c-PJLV-ikaMhsQ-css</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background</span>: none <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.footer</span><span class="selector-class">.hope-stack</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">display</span>: none <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-pseudo">::selection</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background</span>: <span class="number">#fbc2eb</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">color</span>: <span class="number">#fff</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> <span class="selector-tag">a</span>,</span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> <span class="selector-class">.by</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">text-decoration</span>: none;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> <span class="selector-class">.by</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">display</span>: flex;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">align-items</span>: center;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">justify-content</span>: center;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">margin-top</span>: <span class="number">20px</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> <span class="selector-tag">a</span><span class="selector-pseudo">:hover</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">color</span>: pink;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> <span class="selector-class">.run_item</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">display</span>: flex;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">align-items</span>: center;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">margin</span>: <span class="number">10px</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> <span class="selector-class">.link</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">padding</span>: <span class="number">4px</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background</span>: <span class="number">#479fff96</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">      <span class="attribute">border-radius</span>: <span class="number">0</span> <span class="number">8px</span> <span class="number">8px</span> <span class="number">0</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> <span class="selector-class">.name</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">padding</span>: <span class="number">4px</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>);</span></span><br><span class="line"><span class="language-css">      <span class="attribute">background</span>: <span class="built_in">var</span>(--color-main-custom);</span></span><br><span class="line"><span class="language-css">      <span class="attribute">border-radius</span>: <span class="number">8px</span> <span class="number">0</span> <span class="number">0</span> <span class="number">8px</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.copyright</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">padding</span>: <span class="number">50px</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.runtime</span> &#123;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">width</span>: <span class="number">100%</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">padding</span>: <span class="number">0px</span>;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">box-sizing</span>: border-box;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">display</span>: flex;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">justify-content</span>: center;</span></span><br><span class="line"><span class="language-css">      <span class="attribute">align-items</span>: center;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css">  </span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span><br><span class="line">  </span><br><span class="line">  <span class="comment">&lt;!-- 脚本逻辑 --&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">script</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">      <span class="comment">// 站点运行时间</span></span></span><br><span class="line"><span class="language-javascript">      <span class="keyword">function</span> <span class="title function_">show_runtime</span>(<span class="params"></span>) &#123;</span></span><br><span class="line"><span class="language-javascript">          <span class="variable language_">window</span>.<span class="built_in">setTimeout</span>(<span class="string">&quot;show_runtime()&quot;</span>, <span class="number">1000</span>);</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">const</span> X = <span class="keyword">new</span> <span class="title class_">Date</span>(<span class="string">&quot;11/28/2022 14:00:00&quot;</span>);  <span class="comment">//这里填写你的建站时间</span></span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">const</span> Y = <span class="keyword">new</span> <span class="title class_">Date</span>();</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> T = (Y.<span class="title function_">getTime</span>() - X.<span class="title function_">getTime</span>());</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">const</span> M = <span class="number">24</span> * <span class="number">60</span> * <span class="number">60</span> * <span class="number">1000</span>;</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> a = T / M;</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> A = <span class="title class_">Math</span>.<span class="title function_">floor</span>(a);</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> b = (a - A) * <span class="number">24</span>;</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> B = <span class="title class_">Math</span>.<span class="title function_">floor</span>(b);</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> c = (b - B) * <span class="number">60</span>;</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> C = <span class="title class_">Math</span>.<span class="title function_">floor</span>(c);</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">let</span> D = <span class="title class_">Math</span>.<span class="title function_">floor</span>((c - C) * <span class="number">60</span>);</span></span><br><span class="line"><span class="language-javascript">          <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;runtime_span&#x27;</span>).<span class="property">innerHTML</span> = <span class="string">&quot;本站已运行 &quot;</span> + A + <span class="string">&quot;天&quot;</span> + B + <span class="string">&quot;小时&quot;</span> + C + <span class="string">&quot;分&quot;</span> + D + <span class="string">&quot;秒&quot;</span>;</span></span><br><span class="line"><span class="language-javascript">      &#125;</span></span><br><span class="line"><span class="language-javascript">      <span class="title function_">show_runtime</span>();</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">      <span class="comment">// 延迟加载逻辑</span></span></span><br><span class="line"><span class="language-javascript">      <span class="keyword">let</span> interval = <span class="built_in">setInterval</span>(<span class="function">() =&gt;</span> &#123;</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">const</span> bodyContainer = <span class="variable language_">document</span>.<span class="title function_">querySelector</span>(<span class="string">&quot;.body.hope-stack&quot;</span>);</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">if</span> (bodyContainer) &#123;</span></span><br><span class="line"><span class="language-javascript">              bodyContainer.<span class="title function_">appendChild</span>(<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;customize&quot;</span>));</span></span><br><span class="line"><span class="language-javascript">              <span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&quot;customize&quot;</span>).<span class="property">style</span>.<span class="property">display</span> = <span class="string">&quot;block&quot;</span>;</span></span><br><span class="line"><span class="language-javascript">              <span class="built_in">clearInterval</span>(interval);</span></span><br><span class="line"><span class="language-javascript">          &#125;</span></span><br><span class="line"><span class="language-javascript">      &#125;, <span class="number">200</span>);</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">      <span class="comment">// 鼠标点击爱心特效</span></span></span><br><span class="line"><span class="language-javascript">      !<span class="keyword">function</span> (<span class="params">e, t, a</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">function</span> <span class="title function_">r</span>(<span class="params"></span>) &#123;</span></span><br><span class="line"><span class="language-javascript">              <span class="keyword">for</span> (<span class="keyword">var</span> e = <span class="number">0</span>; e &lt; s.<span class="property">length</span>; e++) s[e].<span class="property">alpha</span> &lt;= <span class="number">0</span> ? (t.<span class="property">body</span>.<span class="title function_">removeChild</span>(s[e].<span class="property">el</span>), s.<span class="title function_">splice</span>(e, <span class="number">1</span>)) : (s[e].<span class="property">y</span>--, s[e].<span class="property">scale</span> += <span class="number">.004</span>, s[e].<span class="property">alpha</span> -= <span class="number">.013</span>, s[e].<span class="property">el</span>.<span class="property">style</span>.<span class="property">cssText</span> = <span class="string">&quot;left:&quot;</span> + s[e].<span class="property">x</span> + <span class="string">&quot;px;top:&quot;</span> + s[e].<span class="property">y</span> + <span class="string">&quot;px;opacity:&quot;</span> + s[e].<span class="property">alpha</span> + <span class="string">&quot;;transform:scale(&quot;</span> + s[e].<span class="property">scale</span> + <span class="string">&quot;,&quot;</span> + s[e].<span class="property">scale</span> + <span class="string">&quot;) rotate(45deg);background:&quot;</span> + s[e].<span class="property">color</span> + <span class="string">&quot;;z-index:99999&quot;</span>);</span></span><br><span class="line"><span class="language-javascript">              <span class="title function_">requestAnimationFrame</span>(r)</span></span><br><span class="line"><span class="language-javascript">          &#125;</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">function</span> <span class="title function_">n</span>(<span class="params"></span>) &#123;</span></span><br><span class="line"><span class="language-javascript">              <span class="keyword">var</span> t = <span class="string">&quot;function&quot;</span> == <span class="keyword">typeof</span> e.<span class="property">onclick</span> &amp;&amp; e.<span class="property">onclick</span>;</span></span><br><span class="line"><span class="language-javascript">              e.<span class="property">onclick</span> = <span class="keyword">function</span> (<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                  t &amp;&amp; <span class="title function_">t</span>(), <span class="title function_">o</span>(e)</span></span><br><span class="line"><span class="language-javascript">              &#125;</span></span><br><span class="line"><span class="language-javascript">          &#125;</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">function</span> <span class="title function_">o</span>(<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">              <span class="keyword">var</span> a = t.<span class="title function_">createElement</span>(<span class="string">&quot;div&quot;</span>);</span></span><br><span class="line"><span class="language-javascript">              a.<span class="property">className</span> = <span class="string">&quot;heart&quot;</span>, s.<span class="title function_">push</span>(&#123;</span></span><br><span class="line"><span class="language-javascript">                  <span class="attr">el</span>: a,</span></span><br><span class="line"><span class="language-javascript">                  <span class="attr">x</span>: e.<span class="property">clientX</span> - <span class="number">5</span>,</span></span><br><span class="line"><span class="language-javascript">                  <span class="attr">y</span>: e.<span class="property">clientY</span> - <span class="number">5</span>,</span></span><br><span class="line"><span class="language-javascript">                  <span class="attr">scale</span>: <span class="number">1</span>,</span></span><br><span class="line"><span class="language-javascript">                  <span class="attr">alpha</span>: <span class="number">1</span>,</span></span><br><span class="line"><span class="language-javascript">                  <span class="attr">color</span>: <span class="title function_">c</span>()</span></span><br><span class="line"><span class="language-javascript">              &#125;), t.<span class="property">body</span>.<span class="title function_">appendChild</span>(a)</span></span><br><span class="line"><span class="language-javascript">          &#125;</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">function</span> <span class="title function_">i</span>(<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">              <span class="keyword">var</span> a = t.<span class="title function_">createElement</span>(<span class="string">&quot;style&quot;</span>);</span></span><br><span class="line"><span class="language-javascript">              a.<span class="property">type</span> = <span class="string">&quot;text/css&quot;</span>;</span></span><br><span class="line"><span class="language-javascript">              <span class="keyword">try</span> &#123;</span></span><br><span class="line"><span class="language-javascript">                  a.<span class="title function_">appendChild</span>(t.<span class="title function_">createTextNode</span>(e))</span></span><br><span class="line"><span class="language-javascript">              &#125; <span class="keyword">catch</span> (t) &#123;</span></span><br><span class="line"><span class="language-javascript">                  a.<span class="property">styleSheet</span>.<span class="property">cssText</span> = e</span></span><br><span class="line"><span class="language-javascript">              &#125;</span></span><br><span class="line"><span class="language-javascript">              <span class="variable language_">document</span>.<span class="property">head</span>.<span class="title function_">appendChild</span>(a)</span></span><br><span class="line"><span class="language-javascript">          &#125;</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">function</span> <span class="title function_">c</span>(<span class="params"></span>) &#123;</span></span><br><span class="line"><span class="language-javascript">              <span class="keyword">return</span> <span class="string">&quot;rgb(&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span>.<span class="title function_">random</span>()) + <span class="string">&quot;,&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span>.<span class="title function_">random</span>()) + <span class="string">&quot;,&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span>.<span class="title function_">random</span>()) + <span class="string">&quot;)&quot;</span></span></span><br><span class="line"><span class="language-javascript">          &#125;</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">          <span class="keyword">var</span> s = [];</span></span><br><span class="line"><span class="language-javascript">          e.<span class="property">requestAnimationFrame</span> = e.<span class="property">requestAnimationFrame</span> || e.<span class="property">webkitRequestAnimationFrame</span> || e.<span class="property">mozRequestAnimationFrame</span> || e.<span class="property">oRequestAnimationFrame</span> || e.<span class="property">msRequestAnimationFrame</span> || <span class="keyword">function</span> (<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">              <span class="built_in">setTimeout</span>(e, <span class="number">1e3</span> / <span class="number">60</span>)</span></span><br><span class="line"><span class="language-javascript">          &#125;;</span></span><br><span class="line"><span class="language-javascript">  </span></span><br><span class="line"><span class="language-javascript">          <span class="title function_">i</span>(<span class="string">&quot;.heart&#123;width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);&#125;.heart:after,.heart:before&#123;content: &#x27;&#x27;;width: inherit;height: inherit;background: inherit;border-radius: 50%;position: fixed;&#125;.heart:after&#123;top: -5px;&#125;.heart:before&#123;left: -5px;&#125;&quot;</span>), <span class="title function_">n</span>(), <span class="title function_">r</span>()</span></span><br><span class="line"><span class="language-javascript">      &#125;(<span class="variable language_">window</span>, <span class="variable language_">document</span>);</span></span><br><span class="line"><span class="language-javascript">  </span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="替换自定义头部中的所有内容"><a href="#替换自定义头部中的所有内容" class="headerlink" title="替换自定义头部中的所有内容"></a>替换自定义头部中的所有内容</h2><figure class="highlight html"><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!-- Alist V3 建议添加的，已经默认添加了，如果你的没有建议加上 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 引入字体，全局字体使用 --&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.elemecdn.com/lxgw-wenkai-webfont@1.1.0/lxgwwenkai-regular.css&quot;</span> /&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!--不蒜子计数器--&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">async</span> <span class="attr">src</span>=<span class="string">&quot;//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 评论系统使用的 js --&gt;</span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.onmicrosoft.cn/@waline/client/dist/waline.css&quot;</span> /&gt;</span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://npm.onmicrosoft.cn/@waline/client/dist/waline.js&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- Font6，自定义底部使用和看板娘使用的图标和字体文件--&gt;</span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">link</span> <span class="attr">type</span>=<span class="string">&#x27;text/css&#x27;</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.elemecdn.com/font6pro@6.0.1/css/fontawesome.min.css&quot;</span></span></span></span></span></span></span></span></span><br><span class="line"><span class="tag"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attr">media</span>=<span class="string">&#x27;all&#x27;</span>&gt;</span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">link</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.elemecdn.com/font6pro@6.0.1/css/all.min.css&quot;</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span>&gt;</span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 音乐播放器所用的文件 --&gt;</span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- require APlayer --&gt;</span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">&quot;stylesheet&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.css&quot;</span>&gt;</span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.js&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- require MetingJS --&gt;</span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://npm.elemecdn.com/meting@2.0.1/dist/Meting.min.js&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 站点运行时间 --&gt;</span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">type</span>=<span class="string">&quot;text/javascript&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml"></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    function show_runtime() &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        window.setTimeout(&quot;show_runtime()&quot;, 1000);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        X = new Date(&quot;11/28/2022 14:00:00&quot;);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        Y = new Date();</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        T = (Y.getTime() - X.getTime());</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        M = 24 * 60 * 60 * 1000;</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        a = T / M;</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        A = Math.floor(a);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        b = (a - A) * 24;</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        B = Math.floor(b);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        c = (b - B) * 60;</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        C = Math.floor((b - B) * 60);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        D = Math.floor((c - C) * 60);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        runtime_span.innerHTML = &quot;本站已运行 &quot; + A +  &quot;天&quot; + B + &quot;小时&quot; + C + &quot;分&quot; + D + &quot;秒&quot;</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    show_runtime();</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&lt;/script＞</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">style</span>&gt;</span><span class="language-css"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 去除通知栏 右上角 X */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.notify-render</span> <span class="selector-class">.hope-close-button</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">display</span>: none;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 白天背景图 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-ui-light</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-image</span>: <span class="built_in">url</span>(<span class="string">https://xxxx.png</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-repeat</span>: no-repeat;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-size</span>: cover;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-attachment</span>: fixed;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-position-x</span>: center;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 夜间背景图 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-ui-dark</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-image</span>: <span class="built_in">url</span>(<span class="string">https://xxxx.png</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-repeat</span>: no-repeat;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-size</span>: cover;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-attachment</span>: fixed;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-position-x</span>: center;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 主列表夜间模式透明，50% 这数值是控制透明度大小的 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.obj-box</span><span class="selector-class">.hope-stack</span><span class="selector-class">.hope-c-dhzjXW</span><span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-iigjoxS-css</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">50%</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* readme 夜间模式透明，50% 这数值是控制透明度大小的 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-iiuDLME-css</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">50%</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 主列表透明 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.obj-box</span><span class="selector-class">.hope-stack</span><span class="selector-class">.hope-c-dhzjXW</span><span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-igScBhH-css</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.5</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* readme 透明 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-c-PJLV</span><span class="selector-class">.hope-c-PJLV-ikSuVsl-css</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.5</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 顶部右上角切换按钮透明 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-c-ivMHWx-hZistB-cv</span><span class="selector-class">.hope-icon-button</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.3</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 右下角侧边栏按钮透明 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-c-PJLV-ijgzmFG-css</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.5</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 白天模式代码块透明 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-ui-light</span> pre &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.1</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 夜间模式代码块透明 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.hope-ui-dark</span> pre &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0</span>) <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 底部 CSS，.App .table 这三个一起的 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    dibu &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">border-top</span>: <span class="number">0px</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">position</span>: absolute;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">bottom</span>: <span class="number">0</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">width</span>: <span class="number">100%</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">margin</span>: <span class="number">0px</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">padding</span>: <span class="number">0px</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.App</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">min-height</span>: <span class="number">85vh</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.table</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">margin</span>: auto;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 去掉底部 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-class">.footer</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">display</span>: none <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">/* 全局字体 */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    * &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">font-family</span>: LXGW WenKai</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    * &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">font-weight</span>: bold</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-tag">body</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">font-family</span>: LXGW WenKai;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/*以下为 waline 评论系统专用*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/*适配大小契合度*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.comments</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">width</span>: <span class="built_in">min</span>(<span class="number">96%</span>, <span class="number">940px</span>);</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">flex-direction</span>: column;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">row-gap</span>: <span class="built_in">var</span>(--hope-space-<span class="number">2</span>);</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">border-radius</span>: <span class="built_in">var</span>(--hope-radii-xl);</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">padding</span>: <span class="built_in">var</span>(--hope-space-<span class="number">2</span>);</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">box-shadow</span>: <span class="built_in">var</span>(--hope-shadows-lg);</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/*评论区 - 白天模式透明度*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.hope-ui-light</span> <span class="selector-class">.comments</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.8</span>)<span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/*评论区 - 夜间模式透明度*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.hope-ui-dark</span> <span class="selector-class">.comments</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">background-color</span>:<span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">80%</span>)<span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/* waline 评论系统右侧的 gif */</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.wl-editor</span>, <span class="selector-class">.wl-input</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">background-size</span>: contain<span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-id">#wl-edit</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">background</span>: <span class="built_in">url</span>(<span class="string">https://hexo.anxy.top/img/waline-bg.gif</span>) <span class="number">100%</span> <span class="number">100%</span> no-repeat;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/*Waline 表情自适应*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.wl-emoji-popup</span>&#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">width</span>: <span class="number">100%</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/*渐变背景 CSS*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-id">#canvas-basic</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">position</span>: fixed;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">display</span>: block;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">width</span>: <span class="number">100%</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">height</span>: <span class="number">100%</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">top</span>: <span class="number">0</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">right</span>: <span class="number">0</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">bottom</span>: <span class="number">0</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">left</span>: <span class="number">0</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">z-index</span>: -<span class="number">999</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.hope-c-PJLV-iiHckfM-css</span>&#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">min-height</span>: <span class="number">20vh</span><span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">/*音乐播放器进一步进行隐藏*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.aplayer</span><span class="selector-class">.aplayer-fixed</span><span class="selector-class">.aplayer-narrow</span> <span class="selector-class">.aplayer-body</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">left</span>: -<span class="number">66px</span><span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="selector-class">.aplayer</span><span class="selector-class">.aplayer-fixed</span><span class="selector-class">.aplayer-narrow</span> <span class="selector-class">.aplayer-body</span><span class="selector-pseudo">:hover</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="attribute">left</span>: <span class="number">0</span><span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 看板娘 -自定义大小，隐藏对话框和对话框高度 --&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">style</span> <span class="attr">type</span>=<span class="string">&quot;text/css&quot;</span>&gt;</span><span class="language-css"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-id">#waifu</span> <span class="selector-id">#live2d</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">height</span>: <span class="number">350px</span> <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">width</span>: <span class="number">350px</span> <span class="meta">!important</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="selector-id">#waifu-tips</span> &#123;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="attribute">top</span>: -<span class="number">60px</span>;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="comment">/*display:none !important;隐藏对话框*/</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-css"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 看板娘加载指定模型 --&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&lt;script＞</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    localStorage.setItem(&#x27;modelId&#x27;, &#x27;7&#x27;);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    localStorage.setItem(&#x27;modelTexturesId&#x27;, &#x27;3&#x27;);</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&lt;/script＞</span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 看板娘 --&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://xxxxxx.js&quot;</span>&gt;</span>&lt;/script＞</span></span></span></span></span></span></span></span></span></span></span></span></span><br></pre></td></tr></table></figure><blockquote><p>waline 的表情适配 css 是由<code>SZ・Ninty</code>提供的，从前我以为这是个 bug</p></blockquote><h2 id="替换自定义内容中的所有内容"><a href="#替换自定义内容中的所有内容" class="headerlink" title="替换自定义内容中的所有内容"></a>替换自定义内容中的所有内容</h2><figure class="highlight html"><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><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!--延迟加载--&gt;</span></span><br><span class="line"><span class="comment">&lt;!--如果要写自定义内容建议都加到这个延迟加载的范围内--&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">&quot;customize&quot;</span> <span class="attr">style</span>=<span class="string">&quot;display: none;&quot;</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">div</span>&gt;</span></span><br><span class="line">        <span class="comment">&lt;!--音乐播放器--&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">meting-js</span> <span class="attr">fixed</span>=<span class="string">&quot;true&quot;</span> <span class="attr">autoplay</span>=<span class="string">&quot;false&quot;</span> <span class="attr">theme</span>=<span class="string">&quot;#409EFF&quot;</span> <span class="attr">list-folded</span>=<span class="string">&quot;true&quot;</span> <span class="attr">auto</span>=<span class="string">&quot;QQ 音乐或者网易云的链接&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">meting-js</span>&gt;</span></span><br><span class="line"> </span><br><span class="line">        <span class="comment">&lt;!--评论模块还有下面的 script 也是--&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">center</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;comments&quot;</span> <span class="attr">id</span>=<span class="string">&quot;waline&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">center</span>&gt;</span></span><br><span class="line">        &lt;script＞</span><br><span class="line">            Waline.init(&#123;</span><br><span class="line">                el: &#x27;#waline&#x27;,</span><br><span class="line">                serverURL: &#x27;&#x27;,</span><br><span class="line">                search: false,</span><br><span class="line">                meta: [&quot;nick&quot;, &quot;mail&quot;, &quot;link&quot;],</span><br><span class="line">                requiredMeta: [&quot;nick&quot;, &quot;mail&quot;],</span><br><span class="line">                locale:&#123;</span><br><span class="line">                    placeholder: &#x27;&#x27;</span><br><span class="line">                &#125;,</span><br><span class="line">                emoji: []</span><br><span class="line">            &#125;);</span><br><span class="line">        &lt;/script＞</span><br><span class="line"> </span><br><span class="line">        <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">center</span> <span class="attr">class</span>=<span class="string">&quot;dibu&quot;</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">&quot; line-height: 30px;font-size: 13pt;font-weight: bold;&quot;</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">style</span>=<span class="string">&quot;color: rgb(255, 255, 255); font-weight: bold;&quot;</span> <span class="attr">id</span>=<span class="string">&quot;hitokoto&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;#&quot;</span> <span class="attr">id</span>=<span class="string">&quot;hitokoto_text&quot;</span>&gt;</span></span><br><span class="line">                        &quot;一言 API 没有请求到啦~~&quot;</span><br><span class="line">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">p</span> <span class="attr">style</span>=<span class="string">&quot;margin-left: 10rem;font-size: 8pt;&quot;</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">            <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">&quot;font-size: 16px; font-weight: bold;&quot;</span>&gt;</span></span><br><span class="line">                <span class="comment">&lt;!-- 友链信息 --&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://hexo.anxy.top/about/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fas fa-home&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">                        主页 |</span><br><span class="line">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://hexo.anxy.top/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fas fa-edit&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">                        博客 |</span><br><span class="line">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://github.com/shangskr&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fab fa-github&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF;&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">                        GitHub </span><br><span class="line">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://xxxx.com/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fas fa-comment-lines&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF;&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">                        留言 |</span><br><span class="line">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="comment">&lt;!--后台入口--&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;/@manage&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fa-solid fa-folder-gear&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF;&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span><br><span class="line">                        <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">                        管理</span><br><span class="line">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span><br><span class="line">                <span class="comment">&lt;!-- 版权信息 --&gt;</span></span><br><span class="line">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fa-solid fa-copyright&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF;&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span><br><span class="line">                    <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span><br><span class="line">                    2021-<span class="tag">&lt;<span class="name">script</span> <span class="attr">type</span>=<span class="string">&quot;text/javascript&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">document.write((new Date()).getFullYear());&lt;/script＞ Powered by</span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;<span class="name">a</span> <span class="attr">class</span>=<span class="string">&quot;nav-link&quot;</span> <span class="attr">href</span>=<span class="string">&quot;https://hexo.anxy.top/&quot;</span> <span class="attr">target</span>=<span class="string">&quot;_blank&quot;</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                        <span class="tag">&lt;<span class="name">i</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF;&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                            安小歪</span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                        <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;/<span class="name">a</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="comment">&lt;!--添加一个访问量--&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;<span class="name">span</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                本&quot;</span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;<span class="name">span</span> <span class="attr">style</span>=<span class="string">&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;#&quot;</span>&gt;</span>目录<span class="tag">&lt;/<span class="name">a</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                &quot;访问量 </span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;busuanzi_value_page_pv&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;/<span class="name">span</span>&gt;</span> 次 </span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                本站总访问量 </span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;busuanzi_value_site_pv&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;/<span class="name">span</span>&gt;</span> 次 </span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                本站总访客数 </span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;busuanzi_value_site_uv&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                    <span class="tag">&lt;/<span class="name">span</span>&gt;</span> 人</span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="comment">&lt;!-- 站点运行时间 --&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&quot;fa fa-alarm-clock&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color:#409EFF&quot;</span> <span class="attr">aria-hidden</span>=<span class="string">&quot;true&quot;</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;/<span class="name">i</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;<span class="name">span</span> <span class="attr">class</span>=<span class="string">&quot;nav-item&quot;</span> <span class="attr">id</span>=<span class="string">&quot;runtime_span&quot;</span> <span class="attr">style</span>=<span class="string">&quot;color: rgb(255, 255, 255); font-weight: bold;&quot;</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">                <span class="tag">&lt;/<span class="name">span</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">            <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">        <span class="tag">&lt;/<span class="name">center</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">        <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">        <span class="tag">&lt;<span class="name">br</span> /&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">    <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">    <span class="comment">&lt;!--一言 API--&gt;</span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars">    <span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://v1.hitokoto.cn/?encode=js&amp;select=%23hitokoto&quot;</span> <span class="attr">defer</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    <span class="comment">&lt;!-- 延迟加载配套使用 JS --&gt;</span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&lt;script＞</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    let interval = setInterval(() =&gt; &#123;</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        if (document.querySelector(&quot;.footer&quot;)) &#123;</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            document.querySelector(&quot;#customize&quot;).style.display = &quot;&quot;;</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            clearInterval(interval);</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        &#125;</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;, 200);</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&lt;/script＞</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="comment">&lt;!-- 网页鼠标点击特效 - 爱心 --&gt;</span></span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">type</span>=<span class="string">&quot;text/javascript&quot;</span>&gt;</span><span class="language-javascript"></span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    ! <span class="keyword">function</span> (<span class="params">e, t, a</span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="keyword">function</span> <span class="title function_">r</span>(<span class="params"></span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            <span class="keyword">for</span> (<span class="keyword">var</span> e = <span class="number">0</span>; e &lt; s.<span class="property">length</span>; e++) s[e].<span class="property">alpha</span> &lt;= <span class="number">0</span> ? (t.<span class="property">body</span>.<span class="title function_">removeChild</span>(s[e].<span class="property">el</span>), s.<span class="title function_">splice</span>(e, <span class="number">1</span>)) : (s[</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                e].<span class="property">y</span>--, s[e].<span class="property">scale</span> += <span class="number">.004</span>, s[e].<span class="property">alpha</span> -= <span class="number">.013</span>, s[e].<span class="property">el</span>.<span class="property">style</span>.<span class="property">cssText</span> = <span class="string">&quot;left:&quot;</span> + s[e].<span class="property">x</span> +</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="string">&quot;px;top:&quot;</span> + s[e].<span class="property">y</span> + <span class="string">&quot;px;opacity:&quot;</span> + s[e].<span class="property">alpha</span> + <span class="string">&quot;;transform:scale(&quot;</span> + s[e].<span class="property">scale</span> + <span class="string">&quot;,&quot;</span> + s[e]</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                    .<span class="property">scale</span> + <span class="string">&quot;) rotate(45deg);background:&quot;</span> + s[e].<span class="property">color</span> + <span class="string">&quot;;z-index:99999&quot;</span>);</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            <span class="title function_">requestAnimationFrame</span>(r)</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        &#125;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="keyword">function</span> <span class="title function_">n</span>(<span class="params"></span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            <span class="keyword">var</span> t = <span class="string">&quot;function&quot;</span> == <span class="keyword">typeof</span> e.<span class="property">onclick</span> &amp;&amp; e.<span class="property">onclick</span>;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            e.<span class="property">onclick</span> = <span class="keyword">function</span> (<span class="params">e</span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                t &amp;&amp; <span class="title function_">t</span>(), <span class="title function_">o</span>(e)</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            &#125;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        &#125;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="keyword">function</span> <span class="title function_">o</span>(<span class="params">e</span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            <span class="keyword">var</span> a = t.<span class="title function_">createElement</span>(<span class="string">&quot;div&quot;</span>);</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            a.<span class="property">className</span> = <span class="string">&quot;heart&quot;</span>, s.<span class="title function_">push</span>(&#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="attr">el</span>: a,</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="attr">x</span>: e.<span class="property">clientX</span> - <span class="number">5</span>,</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="attr">y</span>: e.<span class="property">clientY</span> - <span class="number">5</span>,</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="attr">scale</span>: <span class="number">1</span>,</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="attr">alpha</span>: <span class="number">1</span>,</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="attr">color</span>: <span class="title function_">c</span>()</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            &#125;), t.<span class="property">body</span>.<span class="title function_">appendChild</span>(a)</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        &#125;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="keyword">function</span> <span class="title function_">i</span>(<span class="params">e</span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            <span class="keyword">var</span> a = t.<span class="title function_">createElement</span>(<span class="string">&quot;style&quot;</span>);</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            a.<span class="property">type</span> = <span class="string">&quot;text/css&quot;</span>;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            <span class="keyword">try</span> &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                a.<span class="title function_">appendChild</span>(t.<span class="title function_">createTextNode</span>(e))</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            &#125; <span class="keyword">catch</span> (t) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                a.<span class="property">styleSheet</span>.<span class="property">cssText</span> = e</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            &#125;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            t.<span class="title function_">getElementsByTagName</span>(<span class="string">&quot;head&quot;</span>)[<span class="number">0</span>].<span class="title function_">appendChild</span>(a)</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        &#125;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"></span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="keyword">function</span> <span class="title function_">c</span>(<span class="params"></span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            <span class="keyword">return</span> <span class="string">&quot;rgb(&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span>.<span class="title function_">random</span>()) + <span class="string">&quot;,&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span>.<span class="title function_">random</span>()) + <span class="string">&quot;,&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span></span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                .<span class="title function_">random</span>()) + <span class="string">&quot;)&quot;</span></span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        &#125;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        <span class="keyword">var</span> s = [];</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">        e.<span class="property">requestAnimationFrame</span> = e.<span class="property">requestAnimationFrame</span> || e.<span class="property">webkitRequestAnimationFrame</span> || e</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            .<span class="property">mozRequestAnimationFrame</span> || e.<span class="property">oRequestAnimationFrame</span> || e.<span class="property">msRequestAnimationFrame</span> || <span class="keyword">function</span> (<span class="params">e</span>) &#123;</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="built_in">setTimeout</span>(e, <span class="number">1e3</span> / <span class="number">60</span>)</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            &#125;, <span class="title function_">i</span>(</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">                <span class="string">&quot;.heart&#123;width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);&#125;.heart:after,.heart:before&#123;content: &#x27;&#x27;;width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;&#125;.heart:after&#123;top: -5px;&#125;.heart:before&#123;left: -5px;&#125;&quot;</span></span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">            ), <span class="title function_">n</span>(), <span class="title function_">r</span>()</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">    &#125;(<span class="variable language_">window</span>, <span class="variable language_">document</span>);</span></span></span></span></span></span><br><span class="line"><span class="language-javascript"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars">&lt;/script＞</span></span></span></span></span></span><br></pre></td></tr></table></figure><blockquote><p>里面的评论系统自行配置</p></blockquote><h2 id="评论的修改折叠栏的效果"><a href="#评论的修改折叠栏的效果" class="headerlink" title="评论的修改折叠栏的效果"></a>评论的修改折叠栏的效果</h2><p><code>SZ・Ninty</code>帮我提供了直接引入首页底部的效果，因为我引入的是 waline 评论系统感觉引入以后有点大 emmm<br>上面自定义内容中的评论系统就是直接引入的，如果喜欢可以用这个<br>下面是我心心念念的折叠栏效果（用<code>.toggle-comments</code> 类定义了一个按钮样式，<code>#comment-section</code> 定义了评论区域的样式，将其初始状态设置为 <code>display: none;</code> 以隐藏评论内容。）</p><figure class="highlight html"><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></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">style</span>&gt;</span><span class="language-css"></span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.toggle-comments</span> &#123;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">color</span>: <span class="number">#24292e</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">padding</span>: <span class="number">10px</span> <span class="number">20px</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">border</span>: none;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">border-radius</span>: <span class="number">4px</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">cursor</span>: pointer;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">  <span class="selector-id">#comment-section</span> &#123;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">display</span>: none;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">margin-top</span>: <span class="number">10px</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css"></span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">&quot;comments&quot;</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">&quot;toggle-comments&quot;</span> <span class="attr">onclick</span>=<span class="string">&quot;toggleComments()&quot;</span>&gt;</span>显示评论<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">&quot;comment-section&quot;</span>&gt;</span></span><br><span class="line">    <span class="comment">&lt;!--评论模块还有下面的 script 也是--&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">center</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;comments&quot;</span> <span class="attr">id</span>=<span class="string">&quot;waline&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;/<span class="name">center</span>&gt;</span></span><br><span class="line">        &lt;script＞</span><br><span class="line">            Waline.init(&#123;</span><br><span class="line">                el: &#x27;#waline&#x27;,</span><br><span class="line">                serverURL: &#x27;&#x27;,</span><br><span class="line">                search: false,</span><br><span class="line">                meta: [&quot;nick&quot;, &quot;mail&quot;, &quot;link&quot;],</span><br><span class="line">                requiredMeta: [&quot;nick&quot;, &quot;mail&quot;],</span><br><span class="line">                locale:&#123;</span><br><span class="line">                    placeholder: &#x27;&#x27;</span><br><span class="line">                &#125;,</span><br><span class="line">                emoji: []</span><br><span class="line">            &#125;);</span><br><span class="line">        &lt;/script＞ --&gt;</span><br><span class="line">  <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">&lt;script＞</span><br><span class="line">  function toggleComments() &#123;</span><br><span class="line">    var commentSection = document.getElementById(&quot;comment-section&quot;);</span><br><span class="line">    var toggleButton = document.querySelector(&quot;.toggle-comments&quot;);</span><br><span class="line">    </span><br><span class="line">    if (commentSection.style.display === &quot;none&quot;) &#123;</span><br><span class="line">      commentSection.style.display = &quot;block&quot;;</span><br><span class="line">      toggleButton.innerHTML = &quot;隐藏评论&quot;;</span><br><span class="line">    &#125; else &#123;</span><br><span class="line">      commentSection.style.display = &quot;none&quot;;</span><br><span class="line">      toggleButton.innerHTML = &quot;显示评论&quot;;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&lt;/script＞</span><br></pre></td></tr></table></figure><p>折叠栏的这个评论你还需要添加 css 如下：</p><p>这个是评论按钮透明效果</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">.toggle-comments</span> &#123;</span><br><span class="line">       <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.5</span>) <span class="meta">!important</span>;</span><br><span class="line">   &#125;</span><br></pre></td></tr></table></figure><p>还需要添加以下两个 css</p><figure class="highlight html"><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">&lt;!-- 评论折叠居中 css --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">style</span>&gt;</span><span class="language-css"></span></span><br><span class="line"><span class="language-css">  <span class="selector-class">.toggle-comments</span> &#123;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">color</span>: <span class="number">#24292e</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">padding</span>: <span class="number">10px</span> <span class="number">20px</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">border</span>: none;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">border-radius</span>: <span class="number">4px</span>;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">cursor</span>: pointer;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">display</span>: block;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">margin</span>: <span class="number">0</span> auto;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css"></span></span><br><span class="line"><span class="language-css">  <span class="selector-id">#comment-section</span> &#123;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">display</span>: none;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">margin-top</span>: <span class="number">10px</span>;</span></span><br><span class="line"><span class="language-css">  &#125;</span></span><br><span class="line"><span class="language-css"></span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!-- 评论按钮线条消失术 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">style</span>&gt;</span><span class="language-css"></span></span><br><span class="line"><span class="language-css">   <span class="selector-tag">button</span><span class="selector-pseudo">:focus</span> &#123;</span></span><br><span class="line"><span class="language-css">    <span class="attribute">outline</span>: none <span class="meta">!important</span>;</span></span><br><span class="line"><span class="language-css">&#125;</span></span><br><span class="line"><span class="language-css"></span><span class="tag">&lt;/<span class="name">style</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="搜索栏美化代码"><a href="#搜索栏美化代码" class="headerlink" title="搜索栏美化代码"></a>搜索栏美化代码</h2><h3 id="带毛玻璃效果"><a href="#带毛玻璃效果" class="headerlink" title="带毛玻璃效果"></a>带毛玻璃效果</h3><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><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">&lt;style&gt;</span><br><span class="line"><span class="comment">/*白天模式 搜索主体 + 毛玻璃*/</span></span><br><span class="line"><span class="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-PJLV-iiBaxsN-css</span>&#123;</span><br><span class="line">   <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>)<span class="meta">!important</span>;</span><br><span class="line">   <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>)<span class="meta">!important</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="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-kvTTWD-hYRNAb-variant-filled</span>&#123;</span><br><span class="line">   <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>)<span class="meta">!important</span>;</span><br><span class="line">   <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>)<span class="meta">!important</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="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-PJLV-ikEIIxw-css</span>&#123;</span><br><span class="line">   <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>)<span class="meta">!important</span>;</span><br><span class="line">   <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>)<span class="meta">!important</span>;</span><br><span class="line">   <span class="attribute">padding</span>: <span class="built_in">var</span>(--hope-space-<span class="number">1</span>)<span class="meta">!important</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="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-PJLV-iiBaxsN-css</span>&#123;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">10%</span>)<span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>)<span class="meta">!important</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="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-kvTTWD-hYRNAb-variant-filled</span>&#123;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">10%</span>)<span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>)<span class="meta">!important</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="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-PJLV-ikEIIxw-css</span>&#123;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">10%</span>)<span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">backdrop-filter</span>: <span class="built_in">blur</span>(<span class="number">10px</span>)<span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">padding</span>: <span class="built_in">var</span>(--hope-space-<span class="number">1</span>)<span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line">&lt;/style&gt;</span><br></pre></td></tr></table></figure><h3 id="不带毛玻璃效果"><a href="#不带毛玻璃效果" class="headerlink" title="不带毛玻璃效果"></a>不带毛玻璃效果</h3><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><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></pre></td><td class="code"><pre><span class="line">&lt;style&gt;</span><br><span class="line"><span class="comment">/*白天模式 搜索主体*/</span></span><br><span class="line"><span class="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-PJLV-iiBaxsN-css</span>&#123;</span><br><span class="line">   <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>)<span class="meta">!important</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="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-kvTTWD-hYRNAb-variant-filled</span>&#123;</span><br><span class="line">   <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>)<span class="meta">!important</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="selector-class">.hope-ui-light</span> <span class="selector-class">.hope-c-PJLV-ikEIIxw-css</span>&#123;</span><br><span class="line">   <span class="attribute">background-color</span>: <span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>)<span class="meta">!important</span>;</span><br><span class="line">   <span class="attribute">padding</span>: <span class="built_in">var</span>(--hope-space-<span class="number">1</span>)<span class="meta">!important</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="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-PJLV-iiBaxsN-css</span>&#123;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">10%</span>)<span class="meta">!important</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="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-kvTTWD-hYRNAb-variant-filled</span>&#123;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">10%</span>)<span class="meta">!important</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="selector-class">.hope-ui-dark</span> <span class="selector-class">.hope-c-PJLV-ikEIIxw-css</span>&#123;</span><br><span class="line">    <span class="attribute">background-color</span>: <span class="built_in">rgb</span>(<span class="number">0</span> <span class="number">0</span> <span class="number">0</span> / <span class="number">10%</span>)<span class="meta">!important</span>;</span><br><span class="line">    <span class="attribute">padding</span>: <span class="built_in">var</span>(--hope-space-<span class="number">1</span>)<span class="meta">!important</span>;</span><br><span class="line">&#125;</span><br><span class="line">&lt;/style&gt;</span><br></pre></td></tr></table></figure><h2 id="网页点击鼠标特效（两个）"><a href="#网页点击鼠标特效（两个）" class="headerlink" title="网页点击鼠标特效（两个）"></a>网页点击鼠标特效（两个）</h2><h3 id="核心价值观关键字"><a href="#核心价值观关键字" class="headerlink" title="核心价值观关键字"></a>核心价值观关键字</h3><figure class="highlight html"><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></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!-- 网页鼠标点击特效 - 核心价值观关键字 --&gt;</span></span><br><span class="line">&lt;script＞</span><br><span class="line">    (function () &#123;</span><br><span class="line">        var a_idx = 0;</span><br><span class="line">        window.onclick = function (event) &#123;</span><br><span class="line">            var a = new Array(&quot;❤富强❤&quot;, &quot;❤民主❤&quot;, &quot;❤文明❤&quot;, &quot;❤和谐❤&quot;, &quot;❤自由❤&quot;, &quot;❤平等❤&quot;, &quot;❤公正❤&quot;, &quot;❤法治❤&quot;, &quot;❤爱国❤&quot;,</span><br><span class="line">                &quot;❤敬业❤&quot;, &quot;❤诚信❤&quot;, &quot;❤友善❤&quot;);</span><br><span class="line">            var heart = document.createElement(&quot;b&quot;); //创建 b 元素</span><br><span class="line">            heart.onselectstart = new Function(&#x27;event.returnValue=false&#x27;); //防止拖动</span><br><span class="line"></span><br><span class="line">            document.body.appendChild(heart).innerHTML = a[a_idx]; //将 b 元素添加到页面上</span><br><span class="line">            a_idx = (a_idx + 1) % a.length;</span><br><span class="line">            heart.style.cssText = &quot;position: fixed;left:-100%;&quot;; //给 p 元素设置样式</span><br><span class="line"></span><br><span class="line">            var f = 13, // 字体大小</span><br><span class="line">                x = event.clientX - f / 2 - 30, // 横坐标</span><br><span class="line">                y = event.clientY - f, // 纵坐标</span><br><span class="line">                c = randomColor(), // 随机颜色</span><br><span class="line">                a = 1, // 透明度</span><br><span class="line">                s = 0.8; // 放大缩小</span><br><span class="line"></span><br><span class="line">            var timer = setInterval(function () &#123; //添加定时器</span><br><span class="line">                if (a &lt;= 0) &#123;</span><br><span class="line">                    document.body.removeChild(heart);</span><br><span class="line">                    clearInterval(timer);</span><br><span class="line">                &#125; else &#123;</span><br><span class="line">                    heart.style.cssText = &quot;font-size:16px;cursor: default;position: fixed;color:&quot; +</span><br><span class="line">                        c + &quot;;left:&quot; + x + &quot;px;top:&quot; + y + &quot;px;opacity:&quot; + a + &quot;;transform:scale(&quot; +</span><br><span class="line">                        s + &quot;);&quot;;</span><br><span class="line"></span><br><span class="line">                    y--;</span><br><span class="line">                    a -= 0.016;</span><br><span class="line">                    s += 0.002;</span><br><span class="line">                &#125;</span><br><span class="line">            &#125;, 15)</span><br><span class="line">        &#125;</span><br><span class="line">        // 随机颜色</span><br><span class="line">        function randomColor() &#123;</span><br><span class="line">            return &quot;rgb(&quot; + (~~(Math.random() * 255)) + &quot;,&quot; + (~~(Math.random() * 255)) + &quot;,&quot; + (~~(Math</span><br><span class="line">                .random() * 255)) + &quot;)&quot;;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;());</span><br><span class="line">&lt;/script＞</span><br></pre></td></tr></table></figure><h3 id="冒爱心"><a href="#冒爱心" class="headerlink" title="冒爱心"></a>冒爱心</h3><figure class="highlight html"><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></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!-- 网页鼠标点击特效 - 爱心 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">type</span>=<span class="string">&quot;text/javascript&quot;</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">         ! <span class="keyword">function</span> (<span class="params">e, t, a</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">            <span class="keyword">function</span> <span class="title function_">r</span>(<span class="params"></span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                <span class="keyword">for</span> (<span class="keyword">var</span> e = <span class="number">0</span>; e &lt; s.<span class="property">length</span>; e++) s[e].<span class="property">alpha</span> &lt;= <span class="number">0</span> ? (t.<span class="property">body</span>.<span class="title function_">removeChild</span>(s[e].<span class="property">el</span>), s.<span class="title function_">splice</span>(e, <span class="number">1</span>)) : (s[</span></span><br><span class="line"><span class="language-javascript">                        e].<span class="property">y</span>--, s[e].<span class="property">scale</span> += <span class="number">.004</span>, s[e].<span class="property">alpha</span> -= <span class="number">.013</span>, s[e].<span class="property">el</span>.<span class="property">style</span>.<span class="property">cssText</span> = <span class="string">&quot;left:&quot;</span> + s[e].<span class="property">x</span> +</span></span><br><span class="line"><span class="language-javascript">                    <span class="string">&quot;px;top:&quot;</span> + s[e].<span class="property">y</span> + <span class="string">&quot;px;opacity:&quot;</span> + s[e].<span class="property">alpha</span> + <span class="string">&quot;;transform:scale(&quot;</span> + s[e].<span class="property">scale</span> + <span class="string">&quot;,&quot;</span> + s[e]</span></span><br><span class="line"><span class="language-javascript">                    .<span class="property">scale</span> + <span class="string">&quot;) rotate(45deg);background:&quot;</span> + s[e].<span class="property">color</span> + <span class="string">&quot;;z-index:99999&quot;</span>);</span></span><br><span class="line"><span class="language-javascript">                <span class="title function_">requestAnimationFrame</span>(r)</span></span><br><span class="line"><span class="language-javascript">            &#125;</span></span><br><span class="line"><span class="language-javascript">            <span class="keyword">function</span> <span class="title function_">n</span>(<span class="params"></span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                <span class="keyword">var</span> t = <span class="string">&quot;function&quot;</span> == <span class="keyword">typeof</span> e.<span class="property">onclick</span> &amp;&amp; e.<span class="property">onclick</span>;</span></span><br><span class="line"><span class="language-javascript">                e.<span class="property">onclick</span> = <span class="keyword">function</span> (<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                    t &amp;&amp; <span class="title function_">t</span>(), <span class="title function_">o</span>(e)</span></span><br><span class="line"><span class="language-javascript">                &#125;</span></span><br><span class="line"><span class="language-javascript">            &#125;</span></span><br><span class="line"><span class="language-javascript"> </span></span><br><span class="line"><span class="language-javascript">            <span class="keyword">function</span> <span class="title function_">o</span>(<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                <span class="keyword">var</span> a = t.<span class="title function_">createElement</span>(<span class="string">&quot;div&quot;</span>);</span></span><br><span class="line"><span class="language-javascript">                a.<span class="property">className</span> = <span class="string">&quot;heart&quot;</span>, s.<span class="title function_">push</span>(&#123;</span></span><br><span class="line"><span class="language-javascript">                    <span class="attr">el</span>: a,</span></span><br><span class="line"><span class="language-javascript">                    <span class="attr">x</span>: e.<span class="property">clientX</span> - <span class="number">5</span>,</span></span><br><span class="line"><span class="language-javascript">                    <span class="attr">y</span>: e.<span class="property">clientY</span> - <span class="number">5</span>,</span></span><br><span class="line"><span class="language-javascript">                    <span class="attr">scale</span>: <span class="number">1</span>,</span></span><br><span class="line"><span class="language-javascript">                    <span class="attr">alpha</span>: <span class="number">1</span>,</span></span><br><span class="line"><span class="language-javascript">                    <span class="attr">color</span>: <span class="title function_">c</span>()</span></span><br><span class="line"><span class="language-javascript">                &#125;), t.<span class="property">body</span>.<span class="title function_">appendChild</span>(a)</span></span><br><span class="line"><span class="language-javascript">            &#125;</span></span><br><span class="line"><span class="language-javascript"> </span></span><br><span class="line"><span class="language-javascript">            <span class="keyword">function</span> <span class="title function_">i</span>(<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                <span class="keyword">var</span> a = t.<span class="title function_">createElement</span>(<span class="string">&quot;style&quot;</span>);</span></span><br><span class="line"><span class="language-javascript">                a.<span class="property">type</span> = <span class="string">&quot;text/css&quot;</span>;</span></span><br><span class="line"><span class="language-javascript">                <span class="keyword">try</span> &#123;</span></span><br><span class="line"><span class="language-javascript">                    a.<span class="title function_">appendChild</span>(t.<span class="title function_">createTextNode</span>(e))</span></span><br><span class="line"><span class="language-javascript">                &#125; <span class="keyword">catch</span> (t) &#123;</span></span><br><span class="line"><span class="language-javascript">                    a.<span class="property">styleSheet</span>.<span class="property">cssText</span> = e</span></span><br><span class="line"><span class="language-javascript">                &#125;</span></span><br><span class="line"><span class="language-javascript">                t.<span class="title function_">getElementsByTagName</span>(<span class="string">&quot;head&quot;</span>)[<span class="number">0</span>].<span class="title function_">appendChild</span>(a)</span></span><br><span class="line"><span class="language-javascript">            &#125;</span></span><br><span class="line"><span class="language-javascript"> </span></span><br><span class="line"><span class="language-javascript">            <span class="keyword">function</span> <span class="title function_">c</span>(<span class="params"></span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                <span class="keyword">return</span> <span class="string">&quot;rgb(&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span>.<span class="title function_">random</span>()) + <span class="string">&quot;,&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span>.<span class="title function_">random</span>()) + <span class="string">&quot;,&quot;</span> + ~~(<span class="number">255</span> * <span class="title class_">Math</span></span></span><br><span class="line"><span class="language-javascript">                    .<span class="title function_">random</span>()) + <span class="string">&quot;)&quot;</span></span></span><br><span class="line"><span class="language-javascript">            &#125;</span></span><br><span class="line"><span class="language-javascript">            <span class="keyword">var</span> s = [];</span></span><br><span class="line"><span class="language-javascript">            e.<span class="property">requestAnimationFrame</span> = e.<span class="property">requestAnimationFrame</span> || e.<span class="property">webkitRequestAnimationFrame</span> || e</span></span><br><span class="line"><span class="language-javascript">                .<span class="property">mozRequestAnimationFrame</span> || e.<span class="property">oRequestAnimationFrame</span> || e.<span class="property">msRequestAnimationFrame</span> || <span class="keyword">function</span> (<span class="params">e</span>) &#123;</span></span><br><span class="line"><span class="language-javascript">                    <span class="built_in">setTimeout</span>(e, <span class="number">1e3</span> / <span class="number">60</span>)</span></span><br><span class="line"><span class="language-javascript">                &#125;, <span class="title function_">i</span>(</span></span><br><span class="line"><span class="language-javascript">                    <span class="string">&quot;.heart&#123;width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);&#125;.heart:after,.heart:before&#123;content: &#x27;&#x27;;width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;&#125;.heart:after&#123;top: -5px;&#125;.heart:before&#123;left: -5px;&#125;&quot;</span></span></span><br><span class="line"><span class="language-javascript">                ), <span class="title function_">n</span>(), <span class="title function_">r</span>()</span></span><br><span class="line"><span class="language-javascript">        &#125;(<span class="variable language_">window</span>, <span class="variable language_">document</span>);</span></span><br><span class="line"><span class="language-javascript">    </span></span><br><span class="line"><span class="language-javascript">&lt;/script＞</span></span><br></pre></td></tr></table></figure><h2 id="樱花效果"><a href="#樱花效果" class="headerlink" title="樱花效果"></a>樱花效果</h2><p>添加在自定义内容中</p><figure class="highlight html"><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">&lt;!-- PC 端下樱花效果 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery.pjax/2.0.1/jquery.pjax.min.js&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/nprogress/0.2.0/nprogress.min.js&quot;</span>&gt;</span><span class="language-handlebars"><span class="language-xml">&lt;/script＞</span></span></span></span></span><br><span class="line"><span class="language-xml"><span class="language-handlebars"><span class="language-xml"><span class="language-handlebars"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://cdn.qqsuu.cn/api/js/hua.js&quot;</span>&gt;</span>&lt;/script＞</span></span></span></span></span><br></pre></td></tr></table></figure><hr><p>美化方案参考：<a href="https://www.yuque.com/anwenya/alist/phht17">Alist V3 从入门到跑路</a></p>]]>
    </content>
    <id>https://blog.anxw.cn/posts/5.html</id>
    <link href="https://blog.anxw.cn/posts/5.html"/>
    <published>2023-08-14T12:52:05.000Z</published>
    <summary>自定义字体、毛玻璃背景、鼠标特效、看板娘、评论集成，代码开箱即用，让 AList 界面更清爽好看。</summary>
    <title>Alist美化教程</title>
    <updated>2025-05-06T02:58:26.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="Butterfly" scheme="https://blog.anxw.cn/categories/Butterfly/"/>
    <category term="Butterfly" scheme="https://blog.anxw.cn/tags/Butterfly/"/>
    <content>
      <![CDATA[<h2 id="后端部署概览"><a href="#后端部署概览" class="headerlink" title="后端部署概览"></a>后端部署概览</h2><p>后端部署目前提供 GitHub、Server、Docker 三种方式，数据库可以选择 LeanCloud、MySQL、SQLite、MongoDB。</p><blockquote><p>自 5.x 版本以后，LeanCloud 不再作为默认存储，改为更简单易用的 SQLite 作为默认。(这里数据库不建议用 SQLite)</p></blockquote><table><thead><tr><th></th><th>LeanCloud 存储</th><th>MySQL 存储</th><th>SQLite 存储</th><th>MongoDB 存储</th></tr></thead><tbody><tr><td>GitHub 部署</td><td>github+leancloud</td><td>github+mysql</td><td>github+sqlite(默认选项)</td><td>github+mongodb</td></tr><tr><td>Server 部署</td><td>server+leancloud</td><td>server+mysql</td><td>server+sqlite</td><td>server+mongodb</td></tr><tr><td>Docker 部署</td><td>docker+leancloud</td><td>docker+mysql</td><td>docker+sqlite</td><td>docker+mongodb</td></tr></tbody></table><hr><h2 id="部署方法：GitHub-Vercel-MongoDB"><a href="#部署方法：GitHub-Vercel-MongoDB" class="headerlink" title="部署方法：GitHub + Vercel + MongoDB"></a>部署方法：GitHub + Vercel + MongoDB</h2><h3 id="Fork-项目仓库"><a href="#Fork-项目仓库" class="headerlink" title="Fork 项目仓库"></a>Fork 项目仓库</h3><p>Fork 友链朋友圈的项目仓库，地址：<a href="https://github.com/Rock-Candy-Tea/hexo-circle-of-friends">友链朋友圈项目仓库</a></p><blockquote><p>注意：如果前端部署采用 <a href="https://fcircle-doc.yyyzyyyz.cn/#/frontenddeploy">带管理面板的前端方案</a>，则 Fork 时不要修改仓库名称，否则会导致管理面板部分功能不可用。</p></blockquote><h3 id="编辑配置文件"><a href="#编辑配置文件" class="headerlink" title="编辑配置文件"></a>编辑配置文件</h3><p>编辑 <code>/hexo_circle_of_friends/fc_settings.yaml</code> 文件，需要修改的配置如下：</p><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">LINK:</span></span><br><span class="line">    <span class="bullet">-</span> &#123;<span class="attr">link:</span> <span class="string">&quot;https://www.yyyzyyyz.cn/link/&quot;</span>, <span class="attr">theme:</span> <span class="string">&quot;butterfly&quot;</span>&#125;  <span class="comment"># link改为你的友链页地址，theme选择你的博客主题</span></span><br></pre></td></tr></table></figure><h3 id="添加-GitHub-Secrets"><a href="#添加-GitHub-Secrets" class="headerlink" title="添加 GitHub Secrets"></a>添加 GitHub Secrets</h3><p>点击仓库的 Settings → Secrets → New repository secret</p><p>添加 2 个环境变量 Secret：</p><table><thead><tr><th>变量名</th><th>值说明</th></tr></thead><tbody><tr><td>MONGODB_URI</td><td>MongoDB 提供的数据库链接（以 mongodb+srv 开头或 mongodb 开头）</td></tr><tr><td>STORAGE_TYPE</td><td>存储方式，填写 mongodb</td></tr></tbody></table><p>配置完成后，应该如下图所示：</p><p><img src="https://anxy.qyliu.top/2023/2023-08-6/1.webp" alt="配置示例"></p><h3 id="开启-GitHub-Actions-权限"><a href="#开启-GitHub-Actions-权限" class="headerlink" title="开启 GitHub Actions 权限"></a>开启 GitHub Actions 权限</h3><p>点击仓库的 Settings → Actions → General → 勾选 Read and write permissions → Save</p><h3 id="部署到-Vercel"><a href="#部署到-Vercel" class="headerlink" title="部署到 Vercel"></a>部署到 Vercel</h3><ol><li>前往 <a href="https://vercel.com/">Vercel 官网</a>，直接用 GitHub 创建账号并用手机号绑定</li><li>点击 New Project 新建项目</li><li>找到 Import Git Repository，选择你刚刚 Fork 的仓库，点击 Import</li></ol><h3 id="添加-Vercel-环境变量"><a href="#添加-Vercel-环境变量" class="headerlink" title="添加 Vercel 环境变量"></a>添加 Vercel 环境变量</h3><p>添加以下环境变量：</p><table><thead><tr><th>变量名</th><th>说明</th></tr></thead><tbody><tr><td>GH_NAME</td><td>你的 GitHub 用户名</td></tr><tr><td>GH_EMAIL</td><td>你的 GitHub 邮箱</td></tr><tr><td>GH_TOKEN</td><td>GitHub Token，获取方法见 <a href="https://github.com/shangskr/memos-on-replit">这里的 README.md</a></td></tr><tr><td>MONGODB_URI</td><td>MongoDB 数据库链接</td></tr><tr><td>VERCEL_ACCESS_TOKEN</td><td>Vercel Token，获取方法见下方</td></tr></tbody></table><p>VERCEL_ACCESS_TOKEN 获取方法：</p><ol><li>点击 Vercel 页面右上角的 Settings → Tokens → Create</li><li>随便输入一个名称后，点击 CREATE TOKEN</li><li>复制生成的 token，添加到 Vercel 环境变量中即可</li></ol><p>添加完成后，应该如下图所示：</p><p><img src="https://anxy.qyliu.top/2023/2023-08-6/2.webp" alt="环境变量配置"></p><blockquote><p>重要提示：2022-8-27，*.vercel.app 在中国大陆遭遇污染导致无法访问，友链朋友圈的 Vercel 部署也会受到影响，可以通过解析到自定义域名来解决，或者切换部署方式。</p></blockquote><h3 id="配置友链列表（可选）"><a href="#配置友链列表（可选）" class="headerlink" title="配置友链列表（可选）"></a>配置友链列表（可选）</h3><p>回到 GitHub，打开刚才 Fork 的项目，编辑 <code>hexo_circle_of_friends/fc_settings.yaml</code>这里我们需要手动添加SETTINGS_FRIENDS_LINKS因为我们的hexo友链魔改过了所以不会自动爬取</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></pre></td><td class="code"><pre><span class="line"><span class="comment"># 配置项友链</span></span><br><span class="line"><span class="comment"># enable：# 是否启用配置项友链 true/false（针对还未适配主题或者有定制需求的用户）</span></span><br><span class="line"><span class="comment"># json_api：通过json格式配置友链，详见：https://fcircle-doc.yyyzyyyz.cn/#/developmentdoc?id=配置项json友链</span></span><br><span class="line"><span class="comment"># list字段填写格式：[&quot;name&quot;, &quot;link&quot;, &quot;avatar&quot;,&quot;suffix&quot;]，其中：</span></span><br><span class="line"><span class="comment">#       name：必填，友链的名字</span></span><br><span class="line"><span class="comment">#       link：必填，友链主页地址</span></span><br><span class="line"><span class="comment">#       avatar：必填，头像地址</span></span><br><span class="line"><span class="comment">#       suffix：选填，自定义订阅后缀，主要针对不规范的网站订阅后缀，见示例2</span></span><br><span class="line"><span class="attr">SETTINGS_FRIENDS_LINKS:</span> &#123;</span><br><span class="line">    <span class="attr">enable:</span> <span class="literal">true</span>,</span><br><span class="line">    <span class="attr">json_api:</span> <span class="string">&quot;&quot;</span>,</span><br><span class="line">    <span class="attr">list:</span> [</span><br><span class="line">        <span class="comment"># 示例1：</span></span><br><span class="line">        <span class="comment"># [&quot;贰猹の小窝&quot;, &quot;https://noionion.top/&quot;, &quot;https://pub-noionion.oss-cn-hangzhou.aliyuncs.com/head.jpg&quot;],</span></span><br><span class="line">        <span class="comment"># [&quot;Akilarの糖果屋&quot;, &quot;https://akilar.top/&quot;, &quot;https://akilar.top/images/headimage.png&quot;],</span></span><br><span class="line">        <span class="comment"># 示例2：使用suffix的配置如下</span></span><br><span class="line">        <span class="comment"># 程序目前自动获取 &quot;atom.xml&quot;, &quot;feed/atom&quot;, &quot;rss.xml&quot;, &quot;rss2.xml&quot;, &quot;feed&quot;, &quot;index.xml&quot; 这些后缀</span></span><br><span class="line">        <span class="comment"># 如果目标地址的后缀不在其中，就可以在这里添加</span></span><br><span class="line">        <span class="comment"># 比如 https://elizen.me/hello.xml ，填写：</span></span><br><span class="line">        <span class="comment"># [&quot;elizen&quot;, &quot;https://elizen.me/&quot;, &quot;https://akilar.top/images/headimage.png&quot;, &quot;hello.xml&quot;]</span></span><br><span class="line">        [<span class="string">&quot;九弦之屋&quot;</span>, <span class="string">&quot;https://blog.sinzmise.top/&quot;</span>, <span class="string">&quot;https://sinzmiseblog.netlify.app/img/avatar.png&quot;</span>],</span><br><span class="line">        [<span class="string">&quot;千寻&quot;</span>, <span class="string">&quot;https://blog.qianxun7747.eu.org/&quot;</span>, <span class="string">&quot;https://cdn.staticaly.com/gh/qianxun7747/picx-images-hosting@master/xxx/tx.63ep7yknivg0.jpg&quot;</span>],</span><br><span class="line">        [<span class="string">&quot;福福不服&quot;</span>, <span class="string">&quot;https://ffbf.top/&quot;</span>, <span class="string">&quot;https://ffbf.top/upload/logo3.jpeg&quot;</span>],</span><br><span class="line">        [<span class="string">&quot;轻笑Chuckle&quot;</span>, <span class="string">&quot;https://www.qcqx.cn/&quot;</span>, <span class="string">&quot;https://www.qcqx.cn/img/head.webp&quot;</span>]</span><br><span class="line">    ]</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># get links from gitee</span></span><br><span class="line"><span class="comment"># 从gitee issue中获取友链</span></span><br><span class="line"><span class="attr">GITEE_FRIENDS_LINKS:</span> &#123;</span><br><span class="line">    <span class="attr">enable:</span> <span class="literal">false</span>, <span class="comment"># true 开启gitee issue兼容</span></span><br><span class="line">    <span class="attr">type:</span> <span class="string">&quot;normal&quot;</span>,  <span class="comment"># volantis/stellar用户请在这里填写volantis</span></span><br><span class="line">    <span class="attr">owner:</span>  <span class="string">&quot;ccknbc&quot;</span>,  <span class="comment"># 填写你的gitee用户名</span></span><br><span class="line">    <span class="attr">repo:</span>  <span class="string">&quot;blogroll&quot;</span>,  <span class="comment"># 填写你的gitee仓库名</span></span><br><span class="line">    <span class="attr">state:</span>  <span class="string">&quot;open&quot;</span>,  <span class="comment"># 填写抓取的issue状态(open/closed)</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="启用-GitHub-Actions"><a href="#启用-GitHub-Actions" class="headerlink" title="启用 GitHub Actions"></a>启用 GitHub Actions</h3><ol><li>回到 GitHub，启用 Fork 后仓库的 GitHub Action：Actions → I understand my workflows, go ahead and enable them</li><li>点击 update-friends-posts 并启用 workflow</li><li>点击 Run workflow → Run workflow 进行第一次运行</li><li>等待运行完毕后，仓库应该会上传 data.db，并且 Vercel 也会同步更新</li></ol><hr><h2 id="前端部署概览"><a href="#前端部署概览" class="headerlink" title="前端部署概览"></a>前端部署概览</h2><p>前端采用 <a href="https://blog.anheyu.com/posts/3753.html">安知鱼方案</a></p><h3 id="安装插件"><a href="#安装插件" class="headerlink" title="安装插件"></a>安装插件</h3><p>在博客根目录 [Blogroot] 下打开终端，运行以下指令：（与旧版前端方案不兼容，如有安装旧版请先卸载,这里我只运行了第一个插件，请自行选择）</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">npm uninstall hexo-butterfly-fcircle --save</span><br><span class="line">npm uninstall hexo-filter-fcircle --save</span><br><span class="line">npm install hexo-filter-fcircle-anzhiyu --save</span><br></pre></td></tr></table></figure><h3 id="添加配置信息"><a href="#添加配置信息" class="headerlink" title="添加配置信息"></a>添加配置信息</h3><p>在站点配置文件 <code>_config.yml</code> 或者主题配置文件（如 <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><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></pre></td><td class="code"><pre><span class="line"><span class="comment"># fcircle</span></span><br><span class="line"><span class="comment"># see https://anheyu.com/posts/3753.html</span></span><br><span class="line"><span class="attr">fcircle:</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">apiurl:</span> <span class="string">https://friends.anxy.top/</span> <span class="comment">#api地址</span></span><br><span class="line">  <span class="attr">initnumber:</span> <span class="number">30</span> <span class="comment">#【可选】页面初始化展示文章数量</span></span><br><span class="line">  <span class="attr">stepnumber:</span> <span class="number">30</span> <span class="comment">#【可选】每次加载增加的篇数</span></span><br><span class="line">  <span class="attr">css:</span> <span class="string">https://npm.elemecdn.com/hexo-filter-fcircle-anzhiyu@1.1.2/assets/css/default.css</span> <span class="comment">#【可选】开发者接口，自定义css链接</span></span><br><span class="line">  <span class="attr">js:</span> <span class="string">https://npm.elemecdn.com/hexo-filter-fcircle-anzhiyu@1.1.2/assets/js/fcircle.js</span> <span class="comment">#【可选】开发者接口，自定义js链接</span></span><br><span class="line">  <span class="attr">fetchJs:</span> <span class="string">https://npm.elemecdn.com/hexo-filter-fcircle-anzhiyu@1.1.2/assets/js/fetch.js</span></span><br><span class="line">  <span class="attr">randomFriendsPostJS:</span> <span class="string">https://npm.elemecdn.com/hexo-filter-fcircle-anzhiyu@1.1.2/assets/js/random-friends-post.js</span></span><br><span class="line">  <span class="attr">topIcon:</span> <span class="string">fas</span> <span class="string">fa-arrow-right</span></span><br><span class="line">  <span class="attr">topLink:</span> <span class="string">/about/</span></span><br><span class="line">  <span class="attr">top_background:</span> <span class="string">https://hexo.anxy.top/img/guangyu.jpg</span></span><br><span class="line">  <span class="attr">path:</span> <span class="string">/fcircle</span> <span class="comment">#【可选】fcircle的路径名称。默认为 fcircle，生成的页面为 fcircle/index.html</span></span><br><span class="line">  <span class="attr">front_matter:</span> <span class="comment">#【可选】fcircle页面的 front_matter 配置</span></span><br><span class="line">    <span class="attr">title:</span> <span class="string">朋友圈</span></span><br><span class="line">    <span class="attr">comments:</span> <span class="literal">false</span></span><br><span class="line">    <span class="attr">aside:</span> <span class="literal">false</span></span><br><span class="line">    <span class="attr">top_img:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure><h3 id="插件参数释义"><a href="#插件参数释义" class="headerlink" title="插件参数释义"></a>插件参数释义</h3><table><thead><tr><th>参数</th><th>备选值&#x2F;类型</th><th>释义</th></tr></thead><tbody><tr><td>enable</td><td>true&#x2F;false</td><td>控制开关</td></tr><tr><td>apiurl</td><td>URL</td><td>api 链接，配置教程参看 <a href="https://fcircle-doc.js.cool/#/backenddeploy">后端部署文档</a></td></tr><tr><td>initnumber</td><td>number</td><td>页面展示文章数量，默认 20</td></tr><tr><td>stepnumber</td><td>number</td><td>每次加载增加的篇数，默认 10</td></tr><tr><td>error_img</td><td>URL</td><td>头像图片加载失败时的默认头像</td></tr><tr><td>css</td><td>URL</td><td>自定义 css 链接</td></tr><tr><td>js</td><td>URL</td><td>自定义 js 链接</td></tr><tr><td>fetchJs</td><td>URL</td><td>自定义 fetchJs 链接</td></tr><tr><td>randomFriendsPostJS</td><td>URL</td><td>自定义 randomFriendsPostJS 链接</td></tr><tr><td>path</td><td>string</td><td>fcircle 的路径名称，默认为 fcircle</td></tr><tr><td>topIcon</td><td>string</td><td>顶部按钮的图标类名</td></tr><tr><td>topLink</td><td>URL</td><td>顶部按钮点击跳转的链接（仅支持 pjax 跳转）</td></tr><tr><td>front_matter</td><td>object</td><td>fcircle 页面的 front_matter 配置</td></tr><tr><td>top_background</td><td>URL</td><td>页面顶部模块背景图</td></tr></tbody></table><h3 id="顶部图片样式修改"><a href="#顶部图片样式修改" class="headerlink" title="顶部图片样式修改"></a>顶部图片样式修改</h3><p>可以通过配置项 top_background 修改背景图。</p><h3 id="添加到导航菜单"><a href="#添加到导航菜单" class="headerlink" title="添加到导航菜单"></a>添加到导航菜单</h3><p>最后添加到主题文件的 <code>_config.yml</code> 中的 menu:</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="string">朋友圈:</span> <span class="string">/fcircle/</span> <span class="string">||</span> <span class="string">fas</span> <span class="string">fa-users</span></span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://blog.anxw.cn/posts/4.html</id>
    <link href="https://blog.anxw.cn/posts/4.html"/>
    <published>2023-08-06T02:58:26.000Z</published>
    <summary>自动聚合好友博客最新文章，后端 GitHub+Vercel+MongoDB，前端 Hexo 插件集成，配置简单，支持手动/自动同步。</summary>
    <title>为hexo加一个朋友圈</title>
    <updated>2023-08-06T02:58:26.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="教程" scheme="https://blog.anxw.cn/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="教程" scheme="https://blog.anxw.cn/tags/%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<p>首先准备一个域名，一个邮箱。</p><blockquote><p>Backblaze 的服务器在国外，所以打开会慢 emmmm，那么就科学上网（当然不科学上网也可以打开的，那你就看运气吧！）</p></blockquote><h2 id="前期准备"><a href="#前期准备" class="headerlink" title="前期准备"></a>前期准备</h2><ol><li>在 <a href="https://www.cloudflare.com/">Cloudflare</a> 注册并将你的域名加入。（如果不会的话可以看看我以前的文章有说明哦~）</li><li>在 <a href="https://www.backblaze.com/b2/cloud-storage.html">Backblaze</a> 注册一个账号，并新建一个 bucket，记得 <strong>Files in Bucket are:</strong> 这里选 public 就好，就是公开桶。（不然别人无法看到你的图片）</li></ol><blockquote><p><strong>避坑：</strong> Backblaze 都是公开的所以大部分不要填写自己的真实信息！！！其实也没什么。</p></blockquote><p><img src="https://anxy.qyliu.top/2023/2023-05-21/01.webp" alt="打开 Backblaze 开始配置"></p><h2 id="配置-Cloudflare-与-Backblaze"><a href="#配置-Cloudflare-与-Backblaze" class="headerlink" title="配置 Cloudflare 与 Backblaze"></a>配置 Cloudflare 与 Backblaze</h2><h3 id="获取友好链接"><a href="#获取友好链接" class="headerlink" title="获取友好链接"></a>获取友好链接</h3><p>这里我用 Cloudflare 演示，首先随便上传一个照片，<strong>注意要用到下图的这个友好链接</strong>的哦~</p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/02.webp" alt="友好链接位置"></p><h3 id="添加-DNS-记录"><a href="#添加-DNS-记录" class="headerlink" title="添加 DNS 记录"></a>添加 DNS 记录</h3><p>打开 Cloudflare 控制页面，找到 DNS 记录，设置如下图填写添加一个记录：</p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/04.webp" alt="DNS 记录设置"></p><p>这一步好了以后基本可以用了。</p><p>现在将 Backblaze 链接里面的域名：</p><ul><li><code>https://f004.backblazeb2.com/file/tuchuang123/B2%2BCF/03.webp</code></li></ul><p>改为：</p><ul><li><code>https://b2.anxy.top/file/tuchuang123/B2%2BCF/03.webp</code></li></ul><p>（这样，就可以通过 Cloudflare 来访问了）</p><blockquote><p><strong>注意：</strong> 图床链接最好用 Backblaze 提供的友好链接，然后需要手动换成自己设置的链接，这样就可以了。（如果还是用原来的，岂不是什么也没做）</p></blockquote><h3 id="利用-Cloudflare-缓存突破访问限制"><a href="#利用-Cloudflare-缓存突破访问限制" class="headerlink" title="利用 Cloudflare 缓存突破访问限制"></a>利用 Cloudflare 缓存突破访问限制</h3><p>这样基本完成，但是 Backblaze 每天有一定的访问次数限制，这样的话我们利用 Cloudflare 的超强缓存就可以做到无限回流了（无限白嫖哦~亲测有效）。</p><p>打开 Cloudflare 缓存时间设置。这里可以在 Cloudflare 设置也可以在 Backblaze 设置，当然我都设置了的：</p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/05.webp" alt="缓存设置"></p><p>接下来在 Cloudflare 设置一个转换规则（因为图床的链接还是不够简化，用这个转换规则就可以使它更简洁了呢），如图：</p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/06.webp" alt="转换规则 1"></p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/07.webp" alt="转换规则 2"></p><p>转换规则表达式：concat(“&#x2F;file&#x2F;tuchuang123”,http.request.uri.path)</p><blockquote><p>这里的 <code>/file/</code> 后面改成你自己的桶名</p></blockquote><p>这样子原链接：</p><ul><li><code>https://f004.backblazeb2.com/file/tuchuang123/B2%2BCF/03.webp</code></li></ul><p>就可以通过：</p><ul><li><code>https://b2.anxy.top/B2%2BCF/03.webp</code></li></ul><p>来访问了。</p><h3 id="在-Backblaze-中设置缓存周期"><a href="#在-Backblaze-中设置缓存周期" class="headerlink" title="在 Backblaze 中设置缓存周期"></a>在 Backblaze 中设置缓存周期</h3><p><img src="https://anxy.qyliu.top/2023/2023-05-21/08.webp" alt="缓存周期设置 1"></p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/09.webp" alt="缓存周期设置 2"></p><h2 id="配置上传工具"><a href="#配置上传工具" class="headerlink" title="配置上传工具"></a>配置上传工具</h2><p>用网页上传也不是个办法啊，那么就用这个：</p><h3 id="创建-App-Key"><a href="#创建-App-Key" class="headerlink" title="创建 App Key"></a>创建 App Key</h3><p>点击 <strong>App keys</strong>，添加一个新的 key，bucket 就选你刚创建的那个，记录下你的密钥，之后要在 ShareX 中用！！！</p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/03.webp" alt="App Key 设置"></p><h3 id="配置-ShareX"><a href="#配置-ShareX" class="headerlink" title="配置 ShareX"></a>配置 ShareX</h3><p>大概就这样了，配置 ShareX，配置好就好了：</p><p><img src="https://anxy.qyliu.top/2023/2023-05-21/10.webp" alt="ShareX 配置"></p><h3 id="扩展工具"><a href="#扩展工具" class="headerlink" title="扩展工具"></a>扩展工具</h3><p>（来自 <a href="https://blog.csdn.net/weixin_43511521/article/details/128438259">CSDN</a>）</p><p>假如你是用的 Typecho，还可以使用上传插件实现自动上传，无需登录 Backblaze：</p><ul><li><strong>Typecho - B2File 插件地址：</strong> <a href="https://github.com/qq80284445/Typecho-B2File">https://github.com/qq80284445/Typecho-B2File</a></li></ul><blockquote><p><strong>另：</strong> Backblaze 支持 S3，所以你用 PicGo 等软件上传的话，只需要添加个 S3 插件就可以了。</p></blockquote>]]>
    </content>
    <id>https://blog.anxw.cn/posts/3.html</id>
    <link href="https://blog.anxw.cn/posts/3.html"/>
    <published>2023-05-21T13:23:01.000Z</published>
    <summary>Backblaze 存储 + Cloudflare 加速 + 自定义域名，搭建免费不限流量图床，支持 ShareX / PicGo 一键上传。</summary>
    <title>用backblaze+cloudflare搭建免费图床</title>
    <updated>2023-05-21T13:23:01.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="教程" scheme="https://blog.anxw.cn/categories/%E6%95%99%E7%A8%8B/"/>
    <category term="教程" scheme="https://blog.anxw.cn/tags/%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="RDPWrap-是什么"><a href="#RDPWrap-是什么" class="headerlink" title="RDPWrap 是什么"></a>RDPWrap 是什么</h2><p>GitHub 上面介绍很详细，地址：</p><ul><li><strong>(1)</strong> <a href="https://github.com/loyejaotdiqr47123/rdpwrap">https://github.com/loyejaotdiqr47123/rdpwrap</a> （长期更新）”rdpwrap.exe”的版本更高。</li><li><strong>(2)</strong> <a href="https://github.com/stascorp/rdpwrap">https://github.com/stascorp/rdpwrap</a> (未知更新)”rdpwrap.exe”的版本较低</li></ul><h2 id="所有使用的工具下载地址"><a href="#所有使用的工具下载地址" class="headerlink" title="所有使用的工具下载地址"></a>所有使用的工具下载地址</h2><ul><li><strong>工具包下载</strong>：<a href="https://yuwushang.lanzouf.com/b041nfpqf">https://yuwushang.lanzouf.com/b041nfpqf</a></li><li><strong>密码</strong>：<code>1234</code>（请自行选择版本，提倡使用最高版本）</li></ul><blockquote><p><strong>注：</strong> 如果打不开，请把链接中的 <code>lanzouf</code> 中的 <code>f</code> 更改为 <code>x</code> 或者 <code>i</code> 等等就可以打开了</p></blockquote><h2 id="安装-RDPWrap-v1-6-2"><a href="#安装-RDPWrap-v1-6-2" class="headerlink" title="安装 RDPWrap-v1.6.2"></a>安装 RDPWrap-v1.6.2</h2><p>解压安装包后以<strong>管理员身份</strong>运行 <code>install.bat</code>（用来安装配置）</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/1.webp" alt="安装步骤1"></p><p>启动以后等待出来红色方框里面的内容按任意键退出</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/2.webp" alt="安装步骤2"></p><p>启动 <code>RDPConf.exe</code>（此文件用来检测上一步是否安装成功）</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/3.webp" alt="启动检测"></p><p>打开以后方框内的红色文字一致就说明安装完成（下面勾选的要和图片一致）</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/4.webp" alt="检测成功"></p><p>当微软更新补丁以后，都需要检测一下是否破解有效。如果解锁无效，需要以管理员身份运行下图的 update 程序，然后再检测是否有效</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/5.webp" alt="更新程序"></p><p>下图的 <code>uninstall</code> 命令是用来解除 Windows 多开功能，恢复原始状态（需要以管理员身份运行）</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/6.webp" alt="卸载程序"></p><p>当满足下图方框内的文字时就说明破解成功了，就可以多开 Windows 连接了</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/4.webp" alt="破解成功"></p><h2 id="启动-RDPConf-exe-后可能会遇到-“not-supported”"><a href="#启动-RDPConf-exe-后可能会遇到-“not-supported”" class="headerlink" title="启动 RDPConf.exe 后可能会遇到 “not supported”"></a>启动 RDPConf.exe 后可能会遇到 “not supported”</h2><p>这是配置的问题，需要解决。</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/6.1.webp" alt="not supported 错误"></p><p>运行安装 <code>install.bat</code> 会在 <code>C:\Program Files\RDP Wrapper</code> 下面生成 2 个文件：<code>rdpwrap.dll</code>，<code>rdpwrap.ini</code>（配置文件）</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/7.webp" alt="生成的文件"></p><p><code>10.0.17763.1</code> 是系统版本，是需要编写成系统匹配的版本时，这个配置文件才会加载系统 <code>termsrv.dll</code></p><h3 id="查看系统版本号"><a href="#查看系统版本号" class="headerlink" title="查看系统版本号"></a>查看系统版本号</h3><p><code>Windows+R</code> 输入 <code>winver</code>，如果系统版本在配置文件中没有就需要手动编写或直接在 GitHub 上复制其他人的系统配置文件</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/8.webp" alt="查看版本"></p><h3 id="rdpwrap-ini-配置文件写入生成"><a href="#rdpwrap-ini-配置文件写入生成" class="headerlink" title="rdpwrap.ini 配置文件写入生成"></a>rdpwrap.ini 配置文件写入生成</h3><h4 id="手动配置"><a href="#手动配置" class="headerlink" title="手动配置"></a>手动配置</h4><p>在 GitHub issues 上面查找到与自己系统匹配的版本，复制配置文件脚本到自己的 <code>rdpwrap.ini</code> 文件中</p><p>地址：<a href="https://github.com/stascorp/rdpwrap/issues">https://github.com/stascorp/rdpwrap/issues</a></p><p>找到支持的就可以</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/9.webp" alt="GitHub Issues"></p><blockquote><p><strong>注意：</strong> <code>rdpwrap.ini</code> 配置文件修改后需要重新启动服务才能生效</p><ul><li>停止服务：<code>net stop termservice</code></li><li>启动服务：<code>net start termservice</code></li></ul></blockquote><p><code>Windows+R</code> 输入 <code>cmd</code>，打开以后重新启动服务：如图</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/10.webp" alt="重启服务"></p><p>然后 “not supported” 的问题就解决了</p><h4 id="使用-rdpwup-自动生成"><a href="#使用-rdpwup-自动生成" class="headerlink" title="使用 rdpwup 自动生成"></a>使用 rdpwup 自动生成</h4><p>启动 <code>rdpwup.exe</code>，等待工具自动扫描，然后点击 <code>update</code>，会自动在 <code>C:\Program Files\RDP Wrapper\rdpwrap.ini</code> 文件中自动生成配置信息</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/11.webp" alt="rdpwup 工具"></p><p>自动生成配置信息</p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/12.webp" alt="自动生成配置"></p><p>重启服务，启动 <code>RDPConf.exe</code></p><p><img src="https://anxy.qyliu.top/2023/2023-01-07/13.webp" alt="重启后检测"></p><hr><p>以上两种方法用来解决 “not supported”</p><p>当运行 <code>RDPConf.exe</code> 看到的是 <strong>“fully supported”</strong>，就破解成功了。可以实现多用户登入一台电脑。</p><blockquote><p><strong>提示：</strong> 多用户登入一台电脑，如果需要限制硬盘（文件）的使用权限请另外对用户进行设置！</p></blockquote>]]>
    </content>
    <id>https://blog.anxw.cn/posts/2.html</id>
    <link href="https://blog.anxw.cn/posts/2.html"/>
    <published>2023-01-07T04:58:39.000Z</published>
    <summary>解锁 Windows 远程桌面多用户同时登录，家庭版/专业版都能用。含安装步骤、配置检测，以及 &quot;not supported&quot; 报错的两种修复方法。</summary>
    <title>RDPWrap破解Windows多用户远程桌面</title>
    <updated>2023-01-07T04:58:39.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>安小歪</name>
    </author>
    <category term="其它" scheme="https://blog.anxw.cn/categories/%E5%85%B6%E5%AE%83/"/>
    <category term="其它" scheme="https://blog.anxw.cn/tags/%E5%85%B6%E5%AE%83/"/>
    <content>
      <![CDATA[<p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues">GitHub</a>.</p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</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;My New Post&quot;</span></span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</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><p>More info: <a href="https://hexo.io/docs/server.html">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</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 generate</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</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 deploy</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>]]>
    </content>
    <id>https://blog.anxw.cn/posts/1.html</id>
    <link href="https://blog.anxw.cn/posts/1.html"/>
    <published>2022-11-28T05:47:59.000Z</published>
    <summary>Hexo 博客四条命令上手：新建文章、启动预览、生成静态、一键部署，附官方文档链接。</summary>
    <title>Hello World</title>
    <updated>2022-11-28T05:47:59.000Z</updated>
  </entry>
</feed>
