<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>e2147</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://i.101229.xyz/</id>
  <link href="https://i.101229.xyz/" rel="alternate"/>
  <link href="https://i.101229.xyz/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, e2147</rights>
  <title>E2147dev</title>
  <updated>2026-08-11T09:38:35.026Z</updated>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p><img src="/img/7.jpg"><br><img src="/img/8.jpg"></p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/11/2026-08-11-02/</id>
    <link href="https://i.101229.xyz/2026/08/11/2026-08-11-02/"/>
    <published>2026-08-11T01:09:37.000Z</published>
    <summary>
      <![CDATA[<p><img src="/img/7.jpg"><br><img src="/img/8.jpg"></p>]]>
    </summary>
    <title>分享图片</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>现在的话，也不知道该干什么，</p><p>有种失落，却不知道失落在哪的感觉，</p><p>就很烦，</p><p>不过我现在倒有一些想法，把领的免费域名尽量的给他清空或者少用，否则管理起来真的很头疼。时间和精力才是最大的成本</p><p>以及专心经营这个博客，分享分享日常。</p><p>如果以后没有时间，那我也会尽量做到一周或两周更新一次<br>虽然说都是水文章，但至少能坚持。</p><p>毕竟一件事是否存在意义是因人而异的</p><p>主要是没有什么新的想法，也不想再继续试错了，现在越来越忙</p><p>算了，不管了，只要能继续前进，就好</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/11/2026-08-11-01/</id>
    <link href="https://i.101229.xyz/2026/08/11/2026-08-11-01/"/>
    <published>2026-08-11T01:09:28.000Z</published>
    <summary>
      <![CDATA[<p>现在的话，也不知道该干什么，</p>
<p>有种失落，却不知道失落在哪的感觉，</p>
<p>就很烦，</p>
<p>不过我现在倒有一些想法，把领的免费域名尽量的给他清空或者少用，否则管理起来真的很头疼。时间和精力才是最大的成本</p>
<p>以及专心经营这个博客，分享分享]]>
    </summary>
    <title>迷途</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>昨天晚上我突发奇想<br>能不能首页根目录放HTML代码，然后再搞一个框架，指定它的URL为&#x2F;post？这样的话混合架构，没准自由度会更高一点</p><p>但是今天试了一下，一堆报错，算了吧</p><p>之后我再折腾一下all in boom</p><p>折腾的时候我用的是hugo，毕竟，它以构建速度快而闻名</p><p>虽然说之前的那个折腾失效了，但我还安装了这个工具，我就试试搞一个更为轻量的，构建更快的博客</p><p>我看到了amigo框架，长得很像朋友圈，简单修改一下，我就构建成功了</p><p>就是这个相对路径问题太恶心了。还有hugo生成文章的时候，还必须要把TRUE改成FALSE，否则会视为草稿根本加不进去，这一点也太坑了，不过其他都还好</p><p>现在搞了一个比较轻量的小博客，可以用来写一些简短的句子</p><p>当然，现在这个博客肯定不会放弃，因为简单易用</p><p>反正两个地方我都会更新</p><p>你可以在这里体验：<a href="https://1f.cc.cd/">https://1f.cc.cd/</a><br>同时已经开源，欢迎访问我的Github仓库</p><p>对了，为了这个功能，课程表已经迁移到 <a href="https://1f.cc.cd/class">https://1f.cc.cd/class</a></p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/09/2026-08-09-02/</id>
    <link href="https://i.101229.xyz/2026/08/09/2026-08-09-02/"/>
    <published>2026-08-09T08:40:29.000Z</published>
    <summary>
      <![CDATA[<p>昨天晚上我突发奇想<br>能不能首页根目录放HTML代码，然后再搞一个框架，指定它的URL为&#x2F;post？这样的话混合架构，没准自由度会更高一点</p>
<p>但是今天试了一下，一堆报错，算了吧</p>
<p>之后我再折腾一下all in boom</p>
<p>折]]>
    </summary>
    <title>折腾hugo博客框架</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>一连几天都在下雨</p><p>雨断断续续</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/09/2026-08-09-01/</id>
    <link href="https://i.101229.xyz/2026/08/09/2026-08-09-01/"/>
    <published>2026-08-09T08:40:19.000Z</published>
    <summary>
      <![CDATA[<p>一连几天都在下雨</p>
<p>雨断断续续</p>]]>
    </summary>
    <title>雨天</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>这个升学e网通，每天都要看好几节课</p><p>还不能摸鱼，不能挂机</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/08/2026-08-08-02/</id>
    <link href="https://i.101229.xyz/2026/08/08/2026-08-08-02/"/>
    <published>2026-08-08T08:25:44.000Z</published>
    <summary>
      <![CDATA[<p>这个升学e网通，每天都要看好几节课</p>
<p>还不能摸鱼，不能挂机</p>]]>
    </summary>
    <title>太可恶了</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>前情提要<br>我领了qd.je和l.cd这两个还算短的免费二级域名，</p><p>但是当我领完之后，我才发现原来暂时还不支持Cloudflare！</p><p>那我就在想，像我们这些没有源站的人，用不了Cloudflare pages，那这个域名简直一点用也没有。</p><p>我十分灰心丧气，那么，还要再等上几个月吗？</p><p>不不不，我开始想别的方法</p><p>我突然想到Github pages用的是Let’s Encrypt自动签发的证书，没准我在这些域名自带的DNS面板中能试一试</p><p>添加cname指向github.io，随便写一个小项目，开个公开仓库，打开pages，然后添加custom domain</p><p>刚开始我用qd.je试了试，证书签发失败了，只能用http，这我哪能忍？还是放弃了<br>再试几次，依旧还是那样，我只能把qd.je这个免费域名注销了。</p><p>但是在昨天我又领了个l.cd免费域名，没办法，真的好玩<br>可是他同样也不支持CloudFlare</p><p>突然，一个鬼点子冒出来，我能不能再这么试一次呢？</p><p>说干就干，还是同样的套路，<br>添加cname指向github.io，用之前的项目，打开pages，然后添加custom domain<br>几分钟之后DNS检查通过了，直接把证书签好了<br>居然可以用！！！<br>但我还是不放心，我感觉这只是运气好，决定再试一次，排除偶然因素</p><p>于是我把这个域名从Github pages删除，再来一遍</p><p>过了几分钟，虽然DNS检查通过了，但是证书始终没签下来<br>我有些着急了<br>算了算了，不管了，我把它晾在一边</p><p>又过了十几分钟，当我打开看的时候，证书签下来了！！！！！<br>成功了<br>哈哈，原来真的支持</p><p>所以说，还是要敢于尝试的<br>这是项目链接：<a href="https://ee.x2.l.cd/">https://ee.x2.l.cd/</a><br>Github链接：<a href="https://github.com/2025studentdev/color">https://github.com/2025studentdev/color</a><br>如果未来支持Cloudflare，那就更好了，那么现在就先用Github pages吧！</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/08/2026-08-08-01/</id>
    <link href="https://i.101229.xyz/2026/08/08/2026-08-08-01/"/>
    <published>2026-08-08T08:20:01.000Z</published>
    <summary>
      <![CDATA[<p>前情提要<br>我领了qd.je和l.cd这两个还算短的免费二级域名，</p>
<p>但是当我领完之后，我才发现原来暂时还不支持Cloudflare！</p>
<p>那我就在想，像我们这些没有源站的人，用不了Cloudflare pages，那这个域名简直一点用也没有。</]]>
    </summary>
    <title>l.cd不支持Cloudflare，但支持Github pages！！！！！！</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>刚刚正苦于不知道写什么的时候</p><p>原本比较亮的天突然变得灰暗</p><p>大概过了几分钟以后，渐渐刮起了大风，树随风飘动，窗帘飘飞，呼呼作响</p><p>又过了一会儿，雨渐渐变大了，原本柔和的雨滴，逐渐变多，猛烈的向地下砸去</p><p>我来到窗前，静静的坐着。</p><p>雨停了，</p><p>雨下了一次又一次，而我还在等待下一次</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/07/2026-08-07-04/</id>
    <link href="https://i.101229.xyz/2026/08/07/2026-08-07-04/"/>
    <published>2026-08-07T02:28:21.000Z</published>
    <summary>
      <![CDATA[<p>刚刚正苦于不知道写什么的时候</p>
<p>原本比较亮的天突然变得灰暗</p>
<p>大概过了几分钟以后，渐渐刮起了大风，树随风飘动，窗帘飘飞，呼呼作响</p>
<p>又过了一会儿，雨渐渐变大了，原本柔和的雨滴，逐渐变多，猛烈的向地下砸去</p>
<p>我来到窗前，静静的坐]]>
    </summary>
    <title>下大雨了</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>刚刚，我在用PCL启动器玩Minecraft的时候，</p><p>我看到彩蛋那一栏，想起来有个今日人品的功能，</p><p>于是我就想着给网站加一个，</p><p>当然，这个算法也做好了，总之，就是综合当天时间等一系列数据，生成一份当天独一无二的数字，怎么刷新都不会变。</p><p>可以试试看，现在就放在公告栏处</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/07/2026-08-07-03/</id>
    <link href="https://i.101229.xyz/2026/08/07/2026-08-07-03/"/>
    <published>2026-08-07T02:28:11.000Z</published>
    <summary>
      <![CDATA[<p>刚刚，我在用PCL启动器玩Minecraft的时候，</p>
<p>我看到彩蛋那一栏，想起来有个今日人品的功能，</p>
<p>于是我就想着给网站加一个，</p>
<p>当然，这个算法也做好了，总之，就是综合当天时间等一系列数据，生成一份当天独一无二的数字，怎么刷新都不会变]]>
    </summary>
    <title>新增今日人品功能</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>说实话，看别人的网站都有评论系统，在看我这个网站，什么都没有</p><p>我现在在考虑是否添加一个评论系统</p><p>但是我想了想，感觉还是算了</p><p>首先就是怕workers和数据库被刷爆，</p><p>其次，就是没有审核功能，有点不放心，</p><p>最后是我没能力折腾这件事，更没有维护</p><p>就这样吧，把目光转向别的功能</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/07/2026-08-07-02/</id>
    <link href="https://i.101229.xyz/2026/08/07/2026-08-07-02/"/>
    <published>2026-08-07T02:28:04.000Z</published>
    <summary>
      <![CDATA[<p>说实话，看别人的网站都有评论系统，在看我这个网站，什么都没有</p>
<p>我现在在考虑是否添加一个评论系统</p>
<p>但是我想了想，感觉还是算了</p>
<p>首先就是怕workers和数据库被刷爆，</p>
<p>其次，就是没有审核功能，有点不放心，</p>
<p>]]>
    </summary>
    <title>该不该添加评论系统？</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>前几天我又打听到eu.cc这个免费二级域名，</p><p>于是我满怀期待的注册了一个</p><p>注册还算简单，但是不仅要邮箱，还要绑定Authenticator这一类动态验证码，不过也还好</p><p>之后还是老一套，改ns，绑定cloudflare，新建pages项目，连接github仓库</p><p>访问的时候发现问题了，我用itdog测了一遍，大部分的访问被阻断了</p><p>后面查了一下信息，这类免费域名常常会被阻断，因为存在大量滥用问题</p><p>算了，只能放弃了，反正我都有.xyz了，知足了</p><p>毕竟免费域名，所有权不在我们手上</p><p>只能说，乐趣在于折腾</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/07/2026-08-07-01/</id>
    <link href="https://i.101229.xyz/2026/08/07/2026-08-07-01/"/>
    <published>2026-08-07T02:27:37.000Z</published>
    <summary>
      <![CDATA[<p>前几天我又打听到eu.cc这个免费二级域名，</p>
<p>于是我满怀期待的注册了一个</p>
<p>注册还算简单，但是不仅要邮箱，还要绑定Authenticator这一类动态验证码，不过也还好</p>
<p>之后还是老一套，改ns，绑定cloudflare，新建pages]]>
    </summary>
    <title>免费域名这么坑</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>分享图片<br><img src="/img/2.jpg"><br>Mygo!!!!!</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/06/2026-08-06-03/</id>
    <link href="https://i.101229.xyz/2026/08/06/2026-08-06-03/"/>
    <published>2026-08-06T02:09:13.000Z</published>
    <summary>
      <![CDATA[<p>分享图片<br><img src="/img/2.jpg"><br>Mygo!!!!!</p>]]>
    </summary>
    <title>分享图片</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>之前写了一个倒计时HTML，很简单，只有30行</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="meta">&lt;!DOCTYPE <span class="keyword">html</span>&gt;</span><span class="tag">&lt;<span class="name">html</span> <span class="attr">lang</span>=<span class="string">&quot;zh-CN&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">head</span>&gt;</span><span class="tag">&lt;<span class="name">meta</span> <span class="attr">charset</span>=<span class="string">&quot;UTF-8&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">meta</span> <span class="attr">name</span>=<span class="string">&quot;viewport&quot;</span> <span class="attr">content</span>=<span class="string">&quot;width=device-width,initial-scale=1.0&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">title</span>&gt;</span>高考倒计时<span class="tag">&lt;/<span class="name">title</span>&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">        *&#123;<span class="attribute">margin</span>:<span class="number">0</span>;<span class="attribute">padding</span>:<span class="number">0</span>;<span class="attribute">box-sizing</span>:border-box&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-tag">body</span>&#123;<span class="attribute">background</span>:<span class="number">#000</span>;<span class="attribute">color</span>:<span class="number">#fff</span>;<span class="attribute">font-family</span>:system-ui,sans-serif;<span class="attribute">height</span>:<span class="number">100vh</span>;<span class="attribute">display</span>:flex;<span class="attribute">flex-direction</span>:column;<span class="attribute">justify-content</span>:center;<span class="attribute">align-items</span>:center;<span class="attribute">overflow</span>:hidden&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-tag">body</span><span class="selector-pseudo">::before</span>&#123;<span class="attribute">content</span>:<span class="string">&quot;&quot;</span>;<span class="attribute">position</span>:absolute;<span class="attribute">inset</span>:<span class="number">0</span>;<span class="attribute">background-image</span>:<span class="built_in">linear-gradient</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">06</span>) <span class="number">1px</span>,transparent <span class="number">1px</span>),<span class="built_in">linear-gradient</span>(<span class="number">90deg</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">06</span>) <span class="number">1px</span>,transparent <span class="number">1px</span>);<span class="attribute">background-size</span>:<span class="number">40px</span> <span class="number">40px</span>;<span class="attribute">pointer-events</span>:none&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-tag">h1</span>&#123;<span class="attribute">font-size</span>:<span class="built_in">clamp</span>(<span class="number">1.2rem</span>,<span class="number">4vw</span>,<span class="number">2rem</span>);<span class="attribute">font-weight</span>:<span class="number">200</span>;<span class="attribute">letter-spacing</span>:.<span class="number">5em</span>;<span class="attribute">margin-bottom</span>:<span class="built_in">clamp</span>(<span class="number">30px</span>,<span class="number">8vh</span>,<span class="number">80px</span>);<span class="attribute">z-index</span>:<span class="number">1</span>;<span class="attribute">text-indent</span>:.<span class="number">5em</span>&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-class">.c</span>&#123;<span class="attribute">display</span>:flex;<span class="attribute">gap</span>:<span class="built_in">clamp</span>(<span class="number">8px</span>,<span class="number">2.5vw</span>,<span class="number">30px</span>);<span class="attribute">align-items</span>:center;<span class="attribute">z-index</span>:<span class="number">1</span>&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-class">.b</span>&#123;<span class="attribute">display</span>:flex;<span class="attribute">flex-direction</span>:column;<span class="attribute">align-items</span>:center&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-class">.b</span> <span class="selector-tag">span</span>&#123;<span class="attribute">font-family</span>:<span class="string">&#x27;Courier New&#x27;</span>,monospace;<span class="attribute">font-size</span>:<span class="built_in">clamp</span>(<span class="number">2.2rem</span>,<span class="number">11vw</span>,<span class="number">8rem</span>);<span class="attribute">font-weight</span>:<span class="number">700</span>;<span class="attribute">line-height</span>:<span class="number">1</span>;<span class="attribute">font-variant-numeric</span>:tabular-nums&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-class">.b</span> <span class="selector-tag">p</span>&#123;<span class="attribute">margin-top</span>:<span class="built_in">clamp</span>(<span class="number">6px</span>,<span class="number">1.5vh</span>,<span class="number">16px</span>);<span class="attribute">font-size</span>:<span class="built_in">clamp</span>(.<span class="number">5rem</span>,<span class="number">1.5vw</span>,.<span class="number">8rem</span>);<span class="attribute">letter-spacing</span>:.<span class="number">2em</span>;<span class="attribute">color</span>:<span class="number">#666</span>;<span class="attribute">text-transform</span>:uppercase&#125;</span></span><br><span class="line"><span class="language-css">        <span class="selector-tag">i</span>&#123;<span class="attribute">font-style</span>:normal;<span class="attribute">font-size</span>:<span class="built_in">clamp</span>(<span class="number">1.5rem</span>,<span class="number">7vw</span>,<span class="number">5rem</span>);<span class="attribute">font-weight</span>:<span class="number">100</span>;<span class="attribute">color</span>:<span class="number">#333</span>;<span class="attribute">line-height</span>:<span class="number">1</span>&#125;</span></span><br><span class="line"><span class="language-css">    </span><span class="tag">&lt;/<span class="name">style</span>&gt;</span><span class="tag">&lt;/<span class="name">head</span>&gt;</span><span class="tag">&lt;<span class="name">body</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">h1</span>&gt;</span>高考倒计时<span class="tag">&lt;/<span class="name">h1</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;c&quot;</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;b&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;d&quot;</span>&gt;</span>000<span class="tag">&lt;/<span class="name">span</span>&gt;</span><span class="tag">&lt;<span class="name">p</span>&gt;</span>Days<span class="tag">&lt;/<span class="name">p</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span><span class="tag">&lt;<span class="name">i</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">div</span> <span class="attr">class</span>=<span class="string">&quot;b&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;h&quot;</span>&gt;</span>00<span class="tag">&lt;/<span class="name">span</span>&gt;</span><span class="tag">&lt;<span class="name">p</span>&gt;</span>Hours<span class="tag">&lt;/<span class="name">p</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span><span class="tag">&lt;<span class="name">i</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">div</span> <span class="attr">class</span>=<span class="string">&quot;b&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;m&quot;</span>&gt;</span>00<span class="tag">&lt;/<span class="name">span</span>&gt;</span><span class="tag">&lt;<span class="name">p</span>&gt;</span>Minutes<span class="tag">&lt;/<span class="name">p</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span><span class="tag">&lt;<span class="name">i</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">div</span> <span class="attr">class</span>=<span class="string">&quot;b&quot;</span>&gt;</span><span class="tag">&lt;<span class="name">span</span> <span class="attr">id</span>=<span class="string">&quot;s&quot;</span>&gt;</span>00<span class="tag">&lt;/<span class="name">span</span>&gt;</span><span class="tag">&lt;<span class="name">p</span>&gt;</span>Seconds<span class="tag">&lt;/<span class="name">p</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">div</span>&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="keyword">const</span> T=<span class="keyword">new</span> <span class="title class_">Date</span>(<span class="string">&#x27;2029-06-07T09:00:00+08:00&#x27;</span>).<span class="title function_">getTime</span>(),d=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;d&#x27;</span>),h=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;h&#x27;</span>),m=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;m&#x27;</span>),s=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;s&#x27;</span>);</span></span><br><span class="line"><span class="language-javascript">    <span class="keyword">function</span> <span class="title function_">u</span>(<span class="params"></span>)&#123;<span class="keyword">let</span> n=<span class="title class_">Date</span>.<span class="title function_">now</span>(),x=T-n;<span class="keyword">if</span>(x&lt;=<span class="number">0</span>)&#123;d.<span class="property">textContent</span>=<span class="string">&#x27;000&#x27;</span>;h.<span class="property">textContent</span>=<span class="string">&#x27;00&#x27;</span>;m.<span class="property">textContent</span>=<span class="string">&#x27;00&#x27;</span>;s.<span class="property">textContent</span>=<span class="string">&#x27;00&#x27;</span>;<span class="keyword">return</span>&#125;d.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x/<span class="number">864e5</span>)).<span class="title function_">padStart</span>(<span class="number">3</span>,<span class="string">&#x27;0&#x27;</span>);h.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x%<span class="number">864e5</span>/<span class="number">36e5</span>)).<span class="title function_">padStart</span>(<span class="number">2</span>,<span class="string">&#x27;0&#x27;</span>);m.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x%<span class="number">36e5</span>/<span class="number">6e4</span>)).<span class="title function_">padStart</span>(<span class="number">2</span>,<span class="string">&#x27;0&#x27;</span>);s.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x%<span class="number">6e4</span>/<span class="number">1e3</span>)).<span class="title function_">padStart</span>(<span class="number">2</span>,<span class="string">&#x27;0&#x27;</span>)&#125;</span></span><br><span class="line"><span class="language-javascript">    <span class="built_in">setInterval</span>(u,<span class="number">1000</span>);<span class="title function_">u</span>();</span></span><br><span class="line"><span class="language-javascript"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span><span class="tag">&lt;/<span class="name">body</span>&gt;</span><span class="tag">&lt;/<span class="name">html</span>&gt;</span></span><br></pre></td></tr></table></figure><p>现在把html中间内联的JavaScript抽离出来</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></pre></td><td class="code"><pre><span class="line">&lt;script&gt;</span><br><span class="line">    <span class="keyword">const</span> T=<span class="keyword">new</span> <span class="title class_">Date</span>(<span class="string">&#x27;2029-06-07T09:00:00+08:00&#x27;</span>).<span class="title function_">getTime</span>(),d=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;d&#x27;</span>),h=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;h&#x27;</span>),m=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;m&#x27;</span>),s=<span class="variable language_">document</span>.<span class="title function_">getElementById</span>(<span class="string">&#x27;s&#x27;</span>);</span><br><span class="line">    <span class="keyword">function</span> <span class="title function_">u</span>(<span class="params"></span>)&#123;<span class="keyword">let</span> n=<span class="title class_">Date</span>.<span class="title function_">now</span>(),x=T-n;<span class="keyword">if</span>(x&lt;=<span class="number">0</span>)&#123;d.<span class="property">textContent</span>=<span class="string">&#x27;000&#x27;</span>;h.<span class="property">textContent</span>=<span class="string">&#x27;00&#x27;</span>;m.<span class="property">textContent</span>=<span class="string">&#x27;00&#x27;</span>;s.<span class="property">textContent</span>=<span class="string">&#x27;00&#x27;</span>;<span class="keyword">return</span>&#125;d.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x/<span class="number">864e5</span>)).<span class="title function_">padStart</span>(<span class="number">3</span>,<span class="string">&#x27;0&#x27;</span>);h.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x%<span class="number">864e5</span>/<span class="number">36e5</span>)).<span class="title function_">padStart</span>(<span class="number">2</span>,<span class="string">&#x27;0&#x27;</span>);m.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x%<span class="number">36e5</span>/<span class="number">6e4</span>)).<span class="title function_">padStart</span>(<span class="number">2</span>,<span class="string">&#x27;0&#x27;</span>);s.<span class="property">textContent</span>=<span class="title class_">String</span>(<span class="title class_">Math</span>.<span class="title function_">floor</span>(x%<span class="number">6e4</span>/<span class="number">1e3</span>)).<span class="title function_">padStart</span>(<span class="number">2</span>,<span class="string">&#x27;0&#x27;</span>)&#125;</span><br><span class="line">    <span class="built_in">setInterval</span>(u,<span class="number">1000</span>);<span class="title function_">u</span>();</span><br><span class="line">&lt;/script&gt;</span><br></pre></td></tr></table></figure><p>随便找一个JavaScript混淆工具<br>就得到了下面这一段</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> _0x2a56c6=_0x5888;(<span class="keyword">function</span>(<span class="params">_0x4c30d9,_0x1e8d78</span>)&#123;<span class="keyword">const</span> _0x3e728d=_0x5888,_0x2d0b75=<span class="title function_">_0x4c30d9</span>();<span class="keyword">while</span>(!![])&#123;<span class="keyword">try</span>&#123;<span class="keyword">const</span> _0x3498a8=-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x111</span>))/<span class="number">0x1</span>*(-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x102</span>))/<span class="number">0x2</span>)+-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x10b</span>))/<span class="number">0x3</span>*(-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x10a</span>))/<span class="number">0x4</span>)+<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x105</span>))/<span class="number">0x5</span>+-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x10d</span>))/<span class="number">0x6</span>*(<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x104</span>))/<span class="number">0x7</span>)+<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x109</span>))/<span class="number">0x8</span>*(-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x10c</span>))/<span class="number">0x9</span>)+-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x10f</span>))/<span class="number">0xa</span>+-<span class="built_in">parseInt</span>(<span class="title function_">_0x3e728d</span>(<span class="number">0x108</span>))/<span class="number">0xb</span>;<span class="keyword">if</span>(_0x3498a8===_0x1e8d78)<span class="keyword">break</span>;<span class="keyword">else</span> _0x2d0b75[<span class="string">&#x27;push&#x27;</span>](_0x2d0b75[<span class="string">&#x27;shift&#x27;</span>]());&#125;<span class="keyword">catch</span>(_0x1e4525)&#123;_0x2d0b75[<span class="string">&#x27;push&#x27;</span>](_0x2d0b75[<span class="string">&#x27;shift&#x27;</span>]());&#125;&#125;&#125;(_0x591e,<span class="number">0xaa8f0</span>));<span class="keyword">const</span> T=<span class="keyword">new</span> <span class="title class_">Date</span>(<span class="title function_">_0x2a56c6</span>(<span class="number">0x103</span>))[<span class="title function_">_0x2a56c6</span>(<span class="number">0x106</span>)](),d=<span class="variable language_">document</span>[<span class="title function_">_0x2a56c6</span>(<span class="number">0x110</span>)](<span class="string">&#x27;d&#x27;</span>),h=<span class="variable language_">document</span>[<span class="title function_">_0x2a56c6</span>(<span class="number">0x110</span>)](<span class="string">&#x27;h&#x27;</span>),m=<span class="variable language_">document</span>[<span class="title function_">_0x2a56c6</span>(<span class="number">0x110</span>)](<span class="string">&#x27;m&#x27;</span>),s=<span class="variable language_">document</span>[<span class="title function_">_0x2a56c6</span>(<span class="number">0x110</span>)](<span class="string">&#x27;s&#x27;</span>);<span class="keyword">function</span> <span class="title function_">_0x5888</span>(<span class="params">_0x47a547,_0x538b67</span>)&#123;<span class="keyword">const</span> _0x591e0e=<span class="title function_">_0x591e</span>();<span class="keyword">return</span> _0x5888=<span class="keyword">function</span>(<span class="params">_0x588844,_0x3b02de</span>)&#123;_0x588844=_0x588844-<span class="number">0x101</span>;<span class="keyword">let</span> _0x269a09=_0x591e0e[_0x588844];<span class="keyword">return</span> _0x269a09;&#125;,<span class="title function_">_0x5888</span>(_0x47a547,_0x538b67);&#125;<span class="keyword">function</span> <span class="title function_">_0x591e</span>(<span class="params"></span>)&#123;<span class="keyword">const</span> _0x54f174=[<span class="string">&#x27;000&#x27;</span>,<span class="string">&#x27;148siPsMJ&#x27;</span>,<span class="string">&#x27;2029-06-07T09:00:00+08:00&#x27;</span>,<span class="string">&#x27;273JEWkEv&#x27;</span>,<span class="string">&#x27;4548785uoONsM&#x27;</span>,<span class="string">&#x27;getTime&#x27;</span>,<span class="string">&#x27;textContent&#x27;</span>,<span class="string">&#x27;11117018Yiwmrn&#x27;</span>,<span class="string">&#x27;136UlZBcu&#x27;</span>,<span class="string">&#x27;143540sJdogC&#x27;</span>,<span class="string">&#x27;90nouaqW&#x27;</span>,<span class="string">&#x27;341307ECMzPL&#x27;</span>,<span class="string">&#x27;80604kcCLtk&#x27;</span>,<span class="string">&#x27;floor&#x27;</span>,<span class="string">&#x27;45100VIKZYM&#x27;</span>,<span class="string">&#x27;getElementById&#x27;</span>,<span class="string">&#x27;12109bvXMSM&#x27;</span>,<span class="string">&#x27;padStart&#x27;</span>];_0x591e=<span class="keyword">function</span>(<span class="params"></span>)&#123;<span class="keyword">return</span> _0x54f174;&#125;;<span class="keyword">return</span> <span class="title function_">_0x591e</span>();&#125;<span class="keyword">function</span> <span class="title function_">u</span>(<span class="params"></span>)&#123;<span class="keyword">const</span> _0x2642d1=_0x2a56c6;<span class="keyword">let</span> _0xb6362c=<span class="title class_">Date</span>[<span class="string">&#x27;now&#x27;</span>](),_0x28374a=T-_0xb6362c;<span class="keyword">if</span>(_0x28374a&lt;=<span class="number">0x0</span>)&#123;d[<span class="title function_">_0x2642d1</span>(<span class="number">0x107</span>)]=<span class="title function_">_0x2642d1</span>(<span class="number">0x101</span>),h[<span class="string">&#x27;textContent&#x27;</span>]=<span class="string">&#x27;00&#x27;</span>,m[<span class="title function_">_0x2642d1</span>(<span class="number">0x107</span>)]=<span class="string">&#x27;00&#x27;</span>,s[<span class="title function_">_0x2642d1</span>(<span class="number">0x107</span>)]=<span class="string">&#x27;00&#x27;</span>;<span class="keyword">return</span>;&#125;d[<span class="title function_">_0x2642d1</span>(<span class="number">0x107</span>)]=<span class="title class_">String</span>(<span class="title class_">Math</span>[<span class="title function_">_0x2642d1</span>(<span class="number">0x10e</span>)](_0x28374a/<span class="number">0x5265c00</span>))[<span class="string">&#x27;padStart&#x27;</span>](<span class="number">0x3</span>,<span class="string">&#x27;0&#x27;</span>),h[<span class="title function_">_0x2642d1</span>(<span class="number">0x107</span>)]=<span class="title class_">String</span>(<span class="title class_">Math</span>[<span class="title function_">_0x2642d1</span>(<span class="number">0x10e</span>)](_0x28374a%<span class="number">0x5265c00</span>/<span class="number">0x36ee80</span>))[<span class="title function_">_0x2642d1</span>(<span class="number">0x112</span>)](<span class="number">0x2</span>,<span class="string">&#x27;0&#x27;</span>),m[<span class="title function_">_0x2642d1</span>(<span class="number">0x107</span>)]=<span class="title class_">String</span>(<span class="title class_">Math</span>[<span class="title function_">_0x2642d1</span>(<span class="number">0x10e</span>)](_0x28374a%<span class="number">0x36ee80</span>/<span class="number">0xea60</span>))[<span class="string">&#x27;padStart&#x27;</span>](<span class="number">0x2</span>,<span class="string">&#x27;0&#x27;</span>),s[<span class="title function_">_0x2642d1</span>(<span class="number">0x107</span>)]=<span class="title class_">String</span>(<span class="title class_">Math</span>[<span class="string">&#x27;floor&#x27;</span>](_0x28374a%<span class="number">0xea60</span>/<span class="number">0x3e8</span>))[<span class="string">&#x27;padStart&#x27;</span>](<span class="number">0x2</span>,<span class="string">&#x27;0&#x27;</span>);&#125;<span class="built_in">setInterval</span>(u,<span class="number">0x3e8</span>),<span class="title function_">u</span>();</span><br></pre></td></tr></table></figure><p>看起来效果还不错</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/06/2026-08-06-02/</id>
    <link href="https://i.101229.xyz/2026/08/06/2026-08-06-02/"/>
    <published>2026-08-06T01:48:03.000Z</published>
    <summary>
      <![CDATA[<p>之前写了一个倒计时HTML，很简单，只有30行</p>
<figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class=]]>
    </summary>
    <title>javascript混淆</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt"     data-hbe-format="4"     data-wpm="密码错误，请再试一次"     data-whm="密码错误，请再试一次"     data-salt="4d623fed0bb253135971fc86c41be1fd6c20920245a3399f10aa329958872384"     data-nonce="79c1bee661c72fd14acaeef9"     data-kdf-iterations="250000"     data-auto-save="false">  <script id="hbeData" type="hbeData">    29a2fa2cfac4cee82e7855904e5c0f0b7289a4cd46d9afa71c09636e5e0eddb6caa2897bcd1b2b5a7de40694d3c287f45d6e9c5eb2f5999c50466dd9bdc1fc5e7646f391e3dac06b27fde760e01851b01fa09f3c967e1dfd221d6088e564330603ef4fafa6509d1f147de0d78e3460d337d0d97d130ad7f53a8635d10995a743be65946d1cd1272497b2fbc5bd4cd8cb91b18c9b991345ccb12ac5a602070eadfa4f4310d666212aed81f5c5cea6015a38fee87616f9ec9261e3e0e9dc865d7cc4aa3758e3c369eb2a4cd70590caed326144811d1cad243f9068eaa06224b3076054c0a1b7e35e9d596b725967c6125f2dac9fc05a89a474ae48146de13ab3d9936265bd78f7c6cb9b9408e045d6b2e3482801921f9aa680ae4c67db24d10887595238b866386ba14d61c12d2578fd7d264d6522bc621cdf712c8746e1e5e49bdab19882ab6bd529b22abc  </script>  <div class="hbe hbe-content">    <form id="hbeForm" class="hbe hbe-form" onsubmit="return false">      <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">这是一篇加密文章,请输入密码</span>      </label>    </div>      <button class="hbe hbe-button" type="submit">Decrypt</button>      <div class="hbe hbe-error" role="alert" aria-live="polite"></div>    </form>  </div></div><script data-pjax src="/lib/hbe.9e70f1e1d2.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]>
    </content>
    <id>https://i.101229.xyz/2026/08/06/2026-08-06-01/</id>
    <link href="https://i.101229.xyz/2026/08/06/2026-08-06-01/"/>
    <published>2026-08-06T01:30:16.000Z</published>
    <summary>Here's something encrypted, password is required to continue reading.</summary>
    <title>加密文章测试</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>之前我想给Hexo博客加一个构建时间功能</p><p>我让AI帮我写了一个<br>前情提要：<a href="https://i.101229.xyz/2026/08/05/2026-08-05-03/">https://i.101229.xyz/2026/08/05/2026-08-05-03/</a></p><p>可惜呀，可惜，我忘记了cloudflare的构建服务器用的是UTC时间，</p><p>我问了AI，他说是没有指定时区导致的，</p><p>于是我直接commit在文件最开头加上这句：<br>process.env.TZ &#x3D; ‘Asia&#x2F;Shanghai’;</p><p>我本以为这样事情就结束了<br>结果啊，结果构建时间直接就不动了<br>我开始反思</p><p>最后想起之前看过一篇文章，Cloudflare会强缓存JavaScript和CSS，不缓存HTML<br>这就说通了，</p><p>于是我再让它写了个版本，直接使用script的HTML注入，把构建时间信息塞到.other-footer，也就是网页底部</p><p>我现在把这篇文章再提交上去</p><p>要是这次修改再没用，那我也没招了</p><p>那就明天再修吧</p><p>后记</p><p>我把这篇文章喂给AI，我发现AI的思考过程中提到了浏览器缓存，<br>我在提交这篇文章之前，也就是发布这个版本之前，<br>特地把浏览器缓存清了一遍，<br>结果发现，居然运行了，<br>之前的代码能用，只不过我没有清缓存！！！</p><p>只不过我再想了一下<br>万一经常看我博客的人，不清浏览器缓存，实际上这个也不好，<br>释怀了</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/05/2026-08-05-07/</id>
    <link href="https://i.101229.xyz/2026/08/05/2026-08-05-07/"/>
    <published>2026-08-05T09:05:15.000Z</published>
    <summary>
      <![CDATA[<p>之前我想给Hexo博客加一个构建时间功能</p>
<p>我让AI帮我写了一个<br>前情提要：<a href="https://i.101229.xyz/2026/08/05/2026-08-05-03/">https://i.101229.xyz/2026/08/05/2]]>
    </summary>
    <title>智斗AI</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>之前我不是做了一个显示构建时间功能么？</p><p>现在是下午16点，可是它却显示是8点</p><p>我就想16-8，不是8么，</p><p>时差八小时，坏菜了，Cloudflare构建的服务器可能用的是UTC时间</p><p>导致显示的构建时间有问题</p><p>我灵机一动</p><p>在js前面加一个process.env.TZ &#x3D; ‘Asia&#x2F;Shanghai’;</p><p>指定使用标准的时间</p><p>这下就没问题了</p><p>就是耗费一次构建次数…</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/05/2026-08-05-06/</id>
    <link href="https://i.101229.xyz/2026/08/05/2026-08-05-06/"/>
    <published>2026-08-05T08:47:21.000Z</published>
    <summary>
      <![CDATA[<p>之前我不是做了一个显示构建时间功能么？</p>
<p>现在是下午16点，可是它却显示是8点</p>
<p>我就想16-8，不是8么，</p>
<p>时差八小时，坏菜了，Cloudflare构建的服务器可能用的是UTC时间</p>
<p>导致显示的构建时间有问题</p>
<p]]>
    </summary>
    <title>修bug</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>已经上高中了</p><p>现在学业只会越来越繁忙</p><p>也许以后更新会越来越慢</p><p>大概每周更新一次</p><p>不过放心，我会继续更新的</p><style>.e2147-badge {  display: inline-flex;  font-family: 'Courier New', Courier, monospace;  font-size: 14px;  font-weight: bold;  border-radius: 6px;  overflow: hidden;  border: 2px solid #000;  vertical-align: middle;  line-height: 1;  text-decoration: none;  box-shadow: 2px 2px 0px #000; /* 黑白硬阴影增加立体感 */}.e2147-badge .badge-left {  background-color: #000;  color: #fff;  padding: 6px 10px;}.e2147-badge .badge-right {  background-color: #fff;  color: #000;  padding: 6px 10px;}</style><!-- 使用方式：直接放在文字旁边 --><div class="e2147-badge">  <span class="badge-left">e2147</span>  <span class="badge-right">dev</span></div>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/05/2026-08-05-05/</id>
    <link href="https://i.101229.xyz/2026/08/05/2026-08-05-05/"/>
    <published>2026-08-05T08:06:42.000Z</published>
    <summary>
      <![CDATA[<p>已经上高中了</p>
<p>现在学业只会越来越繁忙</p>
<p>也许以后更新会越来越慢</p>
<p>大概每周更新一次</p>
<p>不过放心，我会继续更新的</p>
<style>
.e2147-badge {
  display: inline-flex;
  fon]]>
    </summary>
    <title>未来会怎么样？</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>讲真的，我刚开始做这个博客也就属于一种跟风的行为</p><p>因为我在网上看到许多优秀的个人站点，</p><p>我就秉持着这种别人行、我就行的态度，更偏向于是一种竞争，<br>我会专门去想缺少哪些主流的功能，审美这一块会不会落后了？用这个框架会不会性能很低？会不会打造出和别人千篇一律的站点？<br>感觉有些功利性，但又不会获得什么。</p><p>但当我真投入这一种创作中去，我的态度就改变了<br>也许我只是需要一片发表自己想法的空间，也许我只需要有一个坚持下去的理由</p><p>大概就是这样</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/05/2026-08-05-04/</id>
    <link href="https://i.101229.xyz/2026/08/05/2026-08-05-04/"/>
    <published>2026-08-05T08:06:19.000Z</published>
    <summary>
      <![CDATA[<p>讲真的，我刚开始做这个博客也就属于一种跟风的行为</p>
<p>因为我在网上看到许多优秀的个人站点，</p>
<p>我就秉持着这种别人行、我就行的态度，更偏向于是一种竞争，<br>我会专门去想缺少哪些主流的功能，审美这一块会不会落后了？用这个框架会不会性能很低？会不会打造出]]>
    </summary>
    <title>对博客这一种表达形式的思考</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>之前我在看二叉树树的网站的时候，看到了他网站底下有一个构建时间，<br>于是我就想着在我的这个博客里添加这个功能。<br>说实话，这玩意儿挺实用的，访客一眼就能看出站点最近有没有更新</p><p>然后我就开始折腾了。</p><p>一开始觉得很简单，不就是改改主题模板，插一行代码显示时间嘛。<br>我想要的是每次执行 hexo g 生成静态文件时固定下来的那一刻</p><p>于是我开始翻 Butterfly 主题的 footer.pug 模板，想直接在源文件里加逻辑。<br>结果第一次尝试就翻车了，因为 Pug 对缩进极其敏感，我随便改了几行，整个页脚直接报错渲染不出来。<br>还好我提前备份了原始文件，不然整个博客都得瘫痪。这次教训让我明白：能不动主题源文件，就尽量别动。</p><p>后来我换了个思路——利用 Butterfly 自带的 inject 注入功能，配合 Hexo 的 after_generate ，<br>在每次生成站点时自动创建一个 JS 文件，里面存着构建时间，再通过 inject 把这个 JS 塞到页面底部。全程不碰主题源码，升级主题也不受影响。</p><p>具体实现步骤<br>第一步：创建生成时间脚本<br>在 Hexo 根目录下的 scripts 文件夹（如果没有就手动创建）中新建一个文件，命名为 build-time.js，内容如下：</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></pre></td><td class="code"><pre><span class="line"><span class="comment">// scripts/build-time.js</span></span><br><span class="line">hexo.<span class="property">extend</span>.<span class="property">filter</span>.<span class="title function_">register</span>(<span class="string">&#x27;after_generate&#x27;</span>, <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line"><span class="keyword">const</span> fs = <span class="built_in">require</span>(<span class="string">&#x27;fs&#x27;</span>);</span><br><span class="line"><span class="keyword">const</span> path = <span class="built_in">require</span>(<span class="string">&#x27;path&#x27;</span>);</span><br><span class="line"><span class="keyword">const</span> now = <span class="keyword">new</span> <span class="title class_">Date</span>();</span><br><span class="line"><span class="comment">// 格式化为：2026年08月05日 13:21:40</span></span><br><span class="line"><span class="keyword">const</span> <span class="title function_">pad</span> = n =&gt; <span class="title class_">String</span>(n).<span class="title function_">padStart</span>(<span class="number">2</span>, <span class="string">&#x27;0&#x27;</span>);</span><br><span class="line"><span class="keyword">const</span> Y = now.<span class="title function_">getFullYear</span>();</span><br><span class="line"><span class="keyword">const</span> M = <span class="title function_">pad</span>(now.<span class="title function_">getMonth</span>() + <span class="number">1</span>);</span><br><span class="line"><span class="keyword">const</span> D = <span class="title function_">pad</span>(now.<span class="title function_">getDate</span>());</span><br><span class="line"><span class="keyword">const</span> h = <span class="title function_">pad</span>(now.<span class="title function_">getHours</span>());</span><br><span class="line"><span class="keyword">const</span> m = <span class="title function_">pad</span>(now.<span class="title function_">getMinutes</span>());</span><br><span class="line"><span class="keyword">const</span> s = <span class="title function_">pad</span>(now.<span class="title function_">getSeconds</span>());</span><br><span class="line"><span class="keyword">const</span> timeStr = <span class="string">`<span class="subst">$&#123;Y&#125;</span>年<span class="subst">$&#123;M&#125;</span>月<span class="subst">$&#123;D&#125;</span>日 <span class="subst">$&#123;h&#125;</span>:<span class="subst">$&#123;m&#125;</span>:<span class="subst">$&#123;s&#125;</span>`</span>;</span><br><span class="line"><span class="keyword">const</span> jsContent = <span class="string">`window.BUILD_TIME = &#x27;<span class="subst">$&#123;timeStr&#125;</span>&#x27;;`</span>;</span><br><span class="line"><span class="keyword">const</span> filePath = path.<span class="title function_">join</span>(hexo.<span class="property">public_dir</span>, <span class="string">&#x27;js&#x27;</span>, <span class="string">&#x27;build-time.js&#x27;</span>);</span><br><span class="line"><span class="comment">// 确保目录存在</span></span><br><span class="line"><span class="keyword">if</span> (!fs.<span class="title function_">existsSync</span>(path.<span class="title function_">dirname</span>(filePath))) &#123;</span><br><span class="line">fs.<span class="title function_">mkdirSync</span>(path.<span class="title function_">dirname</span>(filePath), &#123; <span class="attr">recursive</span>: <span class="literal">true</span> &#125;);</span><br><span class="line">&#125;</span><br><span class="line">fs.<span class="title function_">writeFileSync</span>(filePath, jsContent);</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><p>这个脚本会在每次 hexo g 完成后，在 public&#x2F;js&#x2F; 目录下生成一个 build-time.js 文件，里面定义了一个全局变量 window.BUILD_TIME，值就是当前的构建时间。</p><p>第二步：在主题配置中注入显示逻辑<br>打开你的 _config.butterfly.yml 配置文件，找到 inject 字段（如果没有就手动添加），在 bottom 列表中加入以下两项：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">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">src=&quot;/js/build-time.js&quot;&gt;&lt;/script&gt;</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">&lt;script&gt;</span></span><br><span class="line"><span class="string">document.addEventListener(&#x27;DOMContentLoaded&#x27;,</span> <span class="string">function()</span> &#123;</span><br><span class="line"><span class="string">var</span> <span class="string">el</span> <span class="string">=</span> <span class="string">document.createElement(&#x27;span&#x27;);</span></span><br><span class="line"><span class="string">el.textContent</span> <span class="string">=</span> <span class="string">&#x27;构建时间：&#x27;</span> <span class="string">+</span> <span class="string">window.BUILD_TIME;</span></span><br><span class="line"><span class="string">el.style.cssText</span> <span class="string">=</span> <span class="string">&#x27;font-size:0.85rem;opacity:0.7;display:block;text-align:center;margin-top:6px;&#x27;</span><span class="string">;</span></span><br><span class="line"><span class="string">var</span> <span class="string">footer</span> <span class="string">=</span> <span class="string">document.querySelector(&#x27;.footer-other&#x27;);</span></span><br><span class="line"><span class="string">if</span> <span class="string">(footer)</span> <span class="string">footer.appendChild(el);</span></span><br><span class="line">&#125;<span class="string">);</span></span><br><span class="line"><span class="string">&lt;/script&gt;</span></span><br></pre></td></tr></table></figure><p>第一行加载我们生成的 JS 文件，第二行则是在页面加载完成后，动态创建一个 <span> 元素，把构建时间显示在页脚的版权信息下方。</p><p>效果与注意事项<br>保存以上两个文件后，运行 hexo clean &amp;&amp; hexo g 重新生成站点（如果用 hexo s 预览，记得重启服务）。</p><p>页脚会出现类似“构建时间：2026年08月05日 13:21:40”的文字，这个时间固定为你最后一次执行 hexo g 的时刻，不会随浏览器刷新而改变。</p><p>因为用的是 inject 注入，没有修改任何主题源文件，所以以后升级 Butterfly 主题也不会丢失这个功能。</p><p>折腾完之后，看着页脚那行小字，虽然只是一个微不足道的细节，但心里莫名舒坦</p><p>有时候技术折腾就是这样，不是为了什么惊天动地的功能，就是图个乐子，图个“我做到了”的满足感。</p><p>搞定，收工。</p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/05/2026-08-05-03/</id>
    <link href="https://i.101229.xyz/2026/08/05/2026-08-05-03/"/>
    <published>2026-08-05T05:10:36.000Z</published>
    <summary>
      <![CDATA[<p>之前我在看二叉树树的网站的时候，看到了他网站底下有一个构建时间，<br>于是我就想着在我的这个博客里添加这个功能。<br>说实话，这玩意儿挺实用的，访客一眼就能看出站点最近有没有更新</p>
<p>然后我就开始折腾了。</p>
<p>一开始觉得很简单，不就是改改主题模板，插]]>
    </summary>
    <title>添加“上次构建时间”功能</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>分享图片<br><img src="/img/001.jpg"><br><img src="/img/002.jpg"><br><img src="/img/003.jpg"></p>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/05/2026-08-05-02/</id>
    <link href="https://i.101229.xyz/2026/08/05/2026-08-05-02/"/>
    <published>2026-08-05T05:10:29.000Z</published>
    <summary>
      <![CDATA[<p>分享图片<br><img src="/img/001.jpg"><br><img src="/img/002.jpg"><br><img src="/img/003.jpg"></p>]]>
    </summary>
    <title>分享图片</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>e2147</name>
    </author>
    <content>
      <![CDATA[<p>今天到我的高中去取录取通知书</p><p>就看到一位初中同学</p><p>我们现在分的是虚拟班级，之后还会再分班</p><p>发了一本作业，一个通知书，一份传单，一个布袋，还是挺好的</p><p>不对不对！我仔细看了一下这个作业，<br>这个升学e网通什么鬼？！不仅要看网课，还要交作业。。。</p><p>顿时感觉很无语</p><style>  .e2147-badge {    /* ===== 主题变量，方便换肤 ===== */    --badge-fg: #000;    --badge-bg: #fff;    --badge-radius: 6px;    --badge-shadow: 3px 3px 0px var(--badge-fg);    display: inline-flex;    font-family: 'Courier New', Courier, monospace;    font-size: 14px;    font-weight: bold;    border-radius: var(--badge-radius);    overflow: hidden;    border: 2px solid var(--badge-fg);    vertical-align: middle;    line-height: 1;    text-decoration: none;    box-shadow: var(--badge-shadow);    cursor: default;    user-select: none;    transition: transform 0.15s ease, box-shadow 0.15s ease;  }  /* ===== 悬浮微交互：轻微上浮 + 阴影加深 ===== */  .e2147-badge:hover {    transform: translate(-1px, -1px);    box-shadow: 4px 4px 0px var(--badge-fg);  }  .e2147-badge:active {    transform: translate(1px, 1px);    box-shadow: 1px 1px 0px var(--badge-fg);  }  /* ===== 左右分区 ===== */  .e2147-badge .badge-left {    background: var(--badge-fg);    color: var(--badge-bg);    padding: 6px 10px;  }  .e2147-badge .badge-right {    background: var(--badge-bg);    color: var(--badge-fg);    padding: 6px 10px;    display: inline-flex;    align-items: center;    gap: 2px;  }  /* ===== 闪烁光标（dev 氛围感） ===== */  .e2147-badge .badge-right::after {    content: '▌';    font-size: 12px;    animation: blink 1s step-end infinite;    opacity: 0.7;  }  @keyframes blink {    0%, 100% { opacity: 0.7; }    50%      { opacity: 0; }  }</style><div class="e2147-badge" role="img" aria-label="e2147 dev badge">  <span class="badge-left">e2147</span>  <span class="badge-right">dev</span></div>]]>
    </content>
    <id>https://i.101229.xyz/2026/08/05/2026-08-05-01/</id>
    <link href="https://i.101229.xyz/2026/08/05/2026-08-05-01/"/>
    <published>2026-08-05T05:10:20.000Z</published>
    <summary>
      <![CDATA[<p>今天到我的高中去取录取通知书</p>
<p>就看到一位初中同学</p>
<p>我们现在分的是虚拟班级，之后还会再分班</p>
<p>发了一本作业，一个通知书，一份传单，一个布袋，还是挺好的</p>
<p>不对不对！我仔细看了一下这个作业，<br>这个升学e网通什么鬼？！不仅]]>
    </summary>
    <title>今天</title>
    <updated>2026-08-11T09:38:35.026Z</updated>
  </entry>
</feed>
