<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hugo on 孤筝の温暖小家</title><link>https://www.guzhengsvt.cn/zh-tw/tags/hugo/</link><description>Recent content from 孤筝の温暖小家</description><generator>Hugo</generator><language>zh-tw</language><managingEditor>lvbowen040427@163.com (孤筝)</managingEditor><webMaster>lvbowen040427@163.com (孤筝)</webMaster><copyright>本部落格所有文章除特別聲明外，均採用 BY-NC-SA 授權協議。轉載請註明出處！</copyright><lastBuildDate>Sat, 19 Apr 2025 16:56:24 +0800</lastBuildDate><atom:link href="https://www.guzhengsvt.cn/zh-tw/tags/hugo/index.xml" rel="self" type="application/rss+xml"/><item><title>Typecho評論匯入Waline</title><link>https://www.guzhengsvt.cn/zh-tw/post/othernotes/typecho%E8%AF%84%E8%AE%BA%E5%AF%BC%E5%85%A5waline/</link><pubDate>Sat, 19 Apr 2025 16:56:24 +0800</pubDate><author>lvbowen040427@163.com (孤筝)</author><guid>https://www.guzhengsvt.cn/zh-tw/post/othernotes/typecho%E8%AF%84%E8%AE%BA%E5%AF%BC%E5%85%A5waline/</guid><description>
<![CDATA[<h1>Typecho評論匯入Waline</h1><p>作者：孤筝（lvbowen040427@163.com）</p>
        
          <p>前兩天把部落格文章從 Typecho 遷移到 Hugo，光是設定 Front Matter 參數和重新配置圖片連結就費了很大功夫。<br>
一個部落格的價值，首先是文章，緊接著就是評論。評論證明部落格在網際網路和真實世界產生的影響，承載了人與人之間的交互關係。私心一點地說，五湖四海的評論是重要的回憶，是構成「我」的一部分。<br>
所以，將原站評論 copy 到新站的對應文章下是很有必要的。</p>
<h2 id="配置-waline">
<a class="header-anchor" href="#%e9%85%8d%e7%bd%ae-waline"></a>
配置 Waline
</h2><p>相比於 Wordpress、Typecho 等動態部落格，靜態部落格只能外掛評論系統，選擇眾多，各有優劣。在參考了<a href="https://cloud.tencent.com/developer/article/2196035">這篇文章</a>和查閱各個評論系統官網後，我最終選擇<a href="https://waline.js.org">Waline</a>。<br>
Waline 的<a href="https://waline.js.org/guide/get-started/">中文文檔</a>內容翔實，設置<a href="https://leancloud.app">LeanCloud</a>數據庫和<a href="https://vercel.com/">Vercel</a> 服務端後即可進入評論管理後台 <code>https://&lt;你的服務端域名&gt;/ui/</code> 。首次註冊成為管理員，在這裡可以管理評論和用戶。</p>
<h2 id="導出-typecho-評論">
<a class="header-anchor" href="#%e5%b0%8e%e5%87%ba-typecho-%e8%a9%95%e8%ab%96"></a>
導出 Typecho 評論
</h2><p>Typecho 太老了，用戶少，不如 Hexo、Wordpress 等社區活躍，網際網路上資料也很少。<br>
筆者僅找到大佬<a href="https://imnerd.org">怡紅院落</a>寫的一個 Typecho 導出評論到 Valine 的插件 <a href="https://github.com/lizheming/typecho-export-valine">Export2Valine</a>（也是 Waline 文檔中的）。<br>
但上次更新是三年前，經測試已經失效，僅能導入第一條評論。查看導出的 jsonl 文件，顯然評論數據都已經完全導出。</p>
<p>先將該插件安裝到 Typecho （注意更改插件文件夾名稱為 &ldquo;Export2Valine&rdquo; ！）。</p>
<p>參考<a href="https://www.imwxz.com/posts/74f52ab0.html">這一篇</a> Typecho 遷移到 Hexo 的文章，該插件年久失修，需要作一些更改。<br>
找到插件文件夾下的 <code>Action.php</code> ，第 42 行開始改成如下代碼（追蹤父評論）：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nv">$arr</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;objectId&#34;</span> <span class="o">=&gt;</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;coid&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;QQAvatar&#34;</span> <span class="o">=&gt;</span> <span class="s2">&#34;&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;comment&#34;</span> <span class="o">=&gt;</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;text&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;insertedAt&#34;</span> <span class="o">=&gt;</span> <span class="k">array</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;__type&#34;</span> <span class="o">=&gt;</span> <span class="s2">&#34;Date&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;iso&#34;</span> <span class="o">=&gt;</span> <span class="nv">$time</span>
</span></span><span class="line"><span class="cl">  <span class="p">),</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;createdAt&#34;</span> <span class="o">=&gt;</span> <span class="nv">$time</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;updatedAt&#34;</span> <span class="o">=&gt;</span> <span class="nv">$time</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;ip&#34;</span> <span class="o">=&gt;</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;ip&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;link&#34;</span> <span class="o">=&gt;</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;url&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;mail&#34;</span> <span class="o">=&gt;</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;mail&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;nick&#34;</span> <span class="o">=&gt;</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;author&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;ua&#34;</span> <span class="o">=&gt;</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;agent&#34;</span><span class="p">],</span>
</span></span><span class="line"><span class="cl">  <span class="s2">&#34;url&#34;</span> <span class="o">=&gt;</span> <span class="s2">&#34;/</span><span class="si">{</span><span class="nv">$slug</span><span class="si">}</span><span class="s2">.html&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">if</span><span class="p">(</span><span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;parent&#34;</span><span class="p">])</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nv">$arr</span><span class="p">[</span><span class="s2">&#34;pid&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;parent&#34;</span><span class="p">];</span>
</span></span><span class="line"><span class="cl">  <span class="nv">$arr</span><span class="p">[</span><span class="s2">&#34;rid&#34;</span><span class="p">]</span> <span class="o">=</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">getRootId</span><span class="p">(</span><span class="nv">$comment</span><span class="p">[</span><span class="s2">&#34;coid&#34;</span><span class="p">]);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>其他部分不用修改。<br>
接著在 Typecho 後台-控制台-評論導出，打開下載的 jsonl 文件，刪除開頭的 <code>#filetype:JSON-streaming {&quot;type&quot;:&quot;Class&quot;,&quot;class&quot;:&quot;Comment&quot;}\n\n</code> 。<br>
保存後關閉文件，將文件拓展名改為 <code>.json</code> 。</p>
<h2 id="修正-json-格式">
<a class="header-anchor" href="#%e4%bf%ae%e6%ad%a3-json-%e6%a0%bc%e5%bc%8f"></a>
修正 json 格式
</h2><p>導出文件 <code>jsonl</code> 內中文都用轉義，只有一行，看起來一團亂麻。<br>
為轉化成便於閱讀、編輯與導入的 <code>json</code> 格式，我們先利用編輯器的<strong>查找與替換</strong>功能，將 <code>}\n{</code> 替換為</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="err">},</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span></code></pre></div><p>Xcode 的替換，換行符可以點擊左側小放大鏡標選擇插入。</p>
<p>此時每行一個評論對象。</p>
<p>同樣，將各個評論對象內的字段結構分開，將 <code>&quot;,&quot;</code> 替換為</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="s2">&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s2">    &#34;</span>
</span></span></code></pre></div><p>此時，我們可以看出每個評論對象內包含多個數據，形似</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span><span class="nt">&#34;objectId&#34;</span><span class="p">:</span><span class="s2">&#34;3&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;QQAvatar&#34;</span><span class="p">:</span><span class="s2">&#34;&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;comment&#34;</span><span class="p">:</span><span class="s2">&#34;\u6d4b\u8bd5\u4e00\u4e0b&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;insertedAt&#34;</span><span class="p">:{</span><span class="nt">&#34;__type&#34;</span><span class="p">:</span><span class="s2">&#34;Date&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;iso&#34;</span><span class="p">:</span><span class="s2">&#34;2023-06-27T09:37:07.000Z&#34;</span><span class="p">},</span><span class="nt">&#34;createdAt&#34;</span><span class="p">:</span><span class="s2">&#34;2023-06-27T09:37:07.000Z&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;updatedAt&#34;</span><span class="p">:</span><span class="s2">&#34;2023-06-27T09:37:07.000Z&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;ip&#34;</span><span class="p">:</span><span class="s2">&#34;223.104.150.16&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;link&#34;</span><span class="p">:</span><span class="err">**</span><span class="kc">null</span><span class="err">**</span><span class="p">,</span><span class="nt">&#34;mail&#34;</span><span class="p">:</span><span class="s2">&#34;2868301418@qq.com&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;nick&#34;</span><span class="p">:</span><span class="s2">&#34;2868301418&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;ua&#34;</span><span class="p">:</span><span class="s2">&#34;Mozilla\/5.0 (Linux; Android 13; V2171A Build\/TP1A.220624.014; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/109.0.5414.86 MQQBrowser\/6.2 TBS\/046605 Mobile Safari\/537.36 V1_AND_SQ_8.9.63_4190_HDBM_T QQ\/8.9.63.11380 NetType\/4G WebP\/0.3.0 Ap&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;url&#34;</span><span class="p">:</span><span class="s2">&#34;\/\u4ea4\u53cb\u6807\u51c6-\u548c\u5e73\u5171\u5904\u4e94\u9879\u539f\u5219.html&#34;</span><span class="p">}</span><span class="err">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="p">{</span><span class="nt">&#34;objectId&#34;</span><span class="p">:</span><span class="s2">&#34;4&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;QQAvatar&#34;</span><span class="p">:</span><span class="s2">&#34;&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;comment&#34;</span><span class="p">:</span><span class="s2">&#34;\u600e\u4e48ip\u4e0d\u5bf9&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;insertedAt&#34;</span><span class="p">:{</span><span class="nt">&#34;__type&#34;</span><span class="p">:</span><span class="s2">&#34;Date&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;iso&#34;</span><span class="p">:</span><span class="s2">&#34;2023-06-27T09:38:15.000Z&#34;</span><span class="p">},</span><span class="nt">&#34;createdAt&#34;</span><span class="p">:</span><span class="s2">&#34;2023-06-27T09:38:15.000Z&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;updatedAt&#34;</span><span class="p">:</span><span class="s2">&#34;2023-06-27T09:38:15.000Z&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;ip&#34;</span><span class="p">:</span><span class="s2">&#34;223.104.150.16&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;link&#34;</span><span class="p">:</span><span class="err">**</span><span class="kc">null</span><span class="err">**</span><span class="p">,</span><span class="nt">&#34;mail&#34;</span><span class="p">:</span><span class="s2">&#34;2868301418@qq.com&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;nick&#34;</span><span class="p">:</span><span class="s2">&#34;2868301418&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;ua&#34;</span><span class="p">:</span><span class="s2">&#34;Mozilla\/5.0 (Linux; Android 13; V2171A Build\/TP1A.220624.014; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/109.0.5414.86 MQQBrowser\/6.2 TBS\/046605 Mobile Safari\/537.36 V1_AND_SQ_8.9.63_4190_HDBM_T QQ\/8.9.63.11380 NetType\/4G WebP\/0.3.0 Ap&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;url&#34;</span><span class="p">:</span><span class="s2">&#34;\/\u4ea4\u53cb\u6807\u51c6-\u548c\u5e73\u5171\u5904\u4e94\u9879\u539f\u5219.html&#34;</span><span class="p">}</span><span class="err">,</span>
</span></span></code></pre></div><h3 id="公共字段說明">
<a class="header-anchor" href="#%e5%85%ac%e5%85%b1%e5%ad%97%e6%ae%b5%e8%aa%aa%e6%98%8e"></a>
公共字段說明
</h3><ol>
<li><strong>objectId</strong>: 評論的唯一標識符（如 &ldquo;4&rdquo; 和 &ldquo;5&rdquo;）</li>
<li><strong>QQAvatar</strong>: QQ頭像鏈接（當前為空字符串）</li>
<li><strong>comment</strong>: 評論內容（包含 Unicode 轉義字符，如 <code>\u600e\u4e48</code> 表示&quot;怎麼&quot;）</li>
<li><strong>insertedAt/createdAt/updatedAt</strong>: 時間戳（ISO 8601 格式）</li>
<li><strong>ip</strong>: 評論者的 IP 地址</li>
<li><strong>link</strong>: 評論者提供的鏈接（可能為 null）</li>
<li><strong>mail</strong>: 評論者的郵箱地址</li>
<li><strong>nick</strong>: 評論者暱稱</li>
<li><strong>ua</strong>: 用戶代理（顯示瀏覽器/設備信息）</li>
<li><strong>url</strong>: 被評論的頁面路徑</li>
</ol>
<h3 id="特殊字段">
<a class="header-anchor" href="#%e7%89%b9%e6%ae%8a%e5%ad%97%e6%ae%b5"></a>
特殊字段
</h3><ol start="11">
<li><strong>pid</strong>: 父評論 ID</li>
<li><strong>rid</strong>: 根評論 ID</li>
</ol>
<p>如果 <code>&quot;link&quot;</code> 值為 <code>null</code> ，則 <code>&quot;link&quot;</code> 與 <code>&quot;mail&quot;</code> 間沒有換行。json 對換行不敏感，所以可以不管。<br>
此時在文件首尾用 <code>[ ]</code> 將內容包裹起來，保存文件。</p>
<h2 id="修改評論屬性">
<a class="header-anchor" href="#%e4%bf%ae%e6%94%b9%e8%a9%95%e8%ab%96%e5%b1%ac%e6%80%a7"></a>
修改評論屬性
</h2><p>此時可以直接導入 LeanCloud 了，但尚有內容可以修改。</p>
<p><code>Export2Valine</code> 將評論關聯文章的 url 設置為 <code>\/slug</code> ，比如 <code>&quot;url&quot;: &quot;\/Summary-of-the-First-Semester-of-Junior-Year.html&quot;</code> ，其中 <code>\/</code> 是轉義 <code>/</code> 。</p>
<p>想要把評論與新部落格的文章聯繫起來，需要手動修改 url 為新部落格的文章鏈接。</p>
<p>以筆者該部落格為例，Hugo 生成的網站根目錄下有 <code>zh-cn,zh-tw,en,ja</code> 四個文件夾（開啟了多語言），中文站的文章在 <code>/zh-cn/post/文章分類/</code> 下。<br>
筆者在本地部落格源文件就將文章按分類放入不同文件夾，比如 <code>/content/post/Thoughts/最近寫的詩.md</code> 生成網頁相對地址為 <code>zh-cn/post/thoughts/最近寫的詩</code> 。</p>
<p>如果你的新部落格文章在根目錄且名稱未更改，那自然不用修改 url。<br>
若都在 <code>/post/</code> 下，可以使用查找與替換將</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="s2">&#34;url&#34;</span><span class="err">:&#34;\/</span>
</span></span></code></pre></div><p>替換為</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="s2">&#34;url&#34;</span><span class="err">:&#34;\/post\/</span>
</span></span></code></pre></div><p>筆者是暫時替換為</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="s2">&#34;url&#34;</span><span class="err">:&#34;\/zh-cn\/post\/</span>
</span></span></code></pre></div><p>同樣，友鏈、說說之類的獨立頁面評論也應修改為新部落格對應頁面相對地址。
比如友鏈頁面</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="s2">&#34;url&#34;</span><span class="err">:&#34;\/links.html</span>
</span></span></code></pre></div><p>替換為</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="s2">&#34;url&#34;</span><span class="err">:&#34;\/zh-cn\/friend\/</span>
</span></span></code></pre></div><p>將 post 和獨立頁面中可以大規模應用<em>查找替換</em>的 url 先替換，否則導入後難以大批量替換。</p>
<p>使用查找與替換時，盡量多包裹共同內容，找「最大公約數」，避免錯誤修改。<br>
<em><strong>注意轉義 <code>\/</code> !!!</strong></em></p>
<h2 id="導入-leancloud">
<a class="header-anchor" href="#%e5%b0%8e%e5%85%a5-leancloud"></a>
導入 LeanCloud
</h2><p>在 LeanCloud 控制台-數據存儲-導入導出，選擇修改好的 json 文件，<code>Class</code> 填寫 <code>Comment</code> ，導入。</p>
<p><em><strong>注意</strong></em>，如果你之前在部落格 Waline 發過測試評論，或曾嘗試過導入 <code>Comment</code>，Waline 會先創建 <code>Comment</code> <code>Class</code> ，再導入就無法成功導入數據（LeanCloud 會提示成功，但沒有新數據導入）。</p>
<p>只能先在控制台-結構化數據，選擇 <code>Comment</code> 並刪除該 <code>Class</code>，再次嘗試導入。LeanCloud 頁面可能不會及時刷新結果，<code>Ctrl+F5</code> 刷新緩存就有了。</p>
<p>導入成功後，再針對每個評論 url 進行單獨設置。<br>
比如筆者的 post 需要一個個歸類到 <code>&quot;url&quot;:&quot;\/zh-cn\/post\/文章分類\/</code> 下，此時善用 LeanCloud <strong>批量操作</strong>和<strong>按條件過濾</strong>功能。</p>
<h2 id="後記">
<a class="header-anchor" href="#%e5%be%8c%e8%a8%98"></a>
後記
</h2><p>評論的整理並沒有耽誤筆者太長時間，120 條評論大部分是筆者自己在說說頁面的自言自語，所以 url 可以批量修正。僅有的十幾條他人評論分佈在寥寥三五個文章中，通過 <code>post</code> 篩選修改起來很快。不知道是好事還是壞事呢（笑）</p>
<p>自言自語也好，他人的留言也好，每一條於筆者都有著非同尋常的意義，隔一段時間回看就會有新的感受。<br>
如最開始所言，這是筆者的成長軌跡，是筆者存活於世的證明，是「我」的一部分。</p>
<p>而你，我親愛的讀者，是你賦予我價值。</p>
<p>有空的話請多多評論吧～筆者真的會開心很久的說（如果評論善意的話）。</p>
        
        <hr><p>本文2025-04-19首發於<a href='https://www.guzhengsvt.cn/'>孤筝の温暖小家</a>，最後修改於2025-04-19</p><p>本部落格所有文章除特別聲明外，均採用 BY-NC-SA 授權協議。轉載請註明出處！</p>]]></description><category>OtherNotes</category></item><item><title>Hugo部落格常用資料</title><link>https://www.guzhengsvt.cn/zh-tw/post/othernotes/hugo%E5%8D%9A%E5%AE%A2%E5%B8%B8%E7%94%A8%E8%B5%84%E6%96%99/</link><pubDate>Tue, 15 Apr 2025 16:42:35 +0800</pubDate><author>lvbowen040427@163.com (孤筝)</author><guid>https://www.guzhengsvt.cn/zh-tw/post/othernotes/hugo%E5%8D%9A%E5%AE%A2%E5%B8%B8%E7%94%A8%E8%B5%84%E6%96%99/</guid><description>
<![CDATA[<h1>Hugo部落格常用資料</h1><p>作者：孤筝（lvbowen040427@163.com）</p>
        
          <h2 id="hugo-常用指令">
<a class="header-anchor" href="#hugo-%e5%b8%b8%e7%94%a8%e6%8c%87%e4%bb%a4"></a>
Hugo 常用指令
</h2><p>| 命令 | 作用 | 說明 |</p>
<p>|&mdash;&mdash;|&mdash;&mdash;|&mdash;&mdash;|
| <code>hugo version</code> | 查看版本 | 顯示當前 Hugo 安裝版本 |
| <code>hugo new site &lt;專案名&gt;</code> | 建立新站點 | 會生成 Hugo 的目錄結構 |
| <code>hugo new post/&lt;檔案名.md&gt;</code> | 建立新文章 | 會在 <code>content/post/</code> 下生成文章並附帶預設 Front Matter |
| <code>hugo server</code> | 啟動本地服務 | 啟動本地預覽，預設地址 <code>http://localhost:1313</code> |
| <code>hugo server -D</code> | 啟動並顯示草稿 | <code>-D</code> 參數顯示 <code>draft: true</code> 的文章 |
| <code>hugo</code> | 構建網站 | 將 Markdown 內容生成靜態檔案到 <code>public/</code> 目錄 |
| <code>hugo -D &lt;輸出目錄&gt;</code> | 構建包含草稿 | 用於發佈前的全站構建（含草稿） |
| <code>hugo --minify</code> | 壓縮構建檔案 | 構建時壓縮 HTML/CSS/JS，減小體積 |
| <code>hugo config</code> | 查看配置資訊 | 顯示當前站點的配置資訊 |
| <code>hugo list drafts</code> | 列出草稿 | 查看所有設定了 <code>draft: true</code> 的文章 |
| <code>hugo list future</code> | 列出未來發佈的文章 | <code>date</code> 設定在當前時間之後的文章 |
| <code>hugo list expired</code> | 列出過期文章 | <code>expiryDate</code> 已過期的文章 |
| <code>hugo --gc</code> | 垃圾回收 | 清理過時資源，如縮圖快取 |</p>
<h2 id="reimu-主題-icon_font">
<a class="header-anchor" href="#reimu-%e4%b8%bb%e9%a1%8c-icon_font"></a>
reimu 主題 icon_font
</h2><table>
  <thead>
      <tr>
          <th>圖標類名</th>
          <th>十六進制編號</th>
          <th>中文含義</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>.tag-wrap</code> / <code>.article-tag-list-link</code></td>
          <td><code>\e622</code></td>
          <td>標籤</td>
      </tr>
      <tr>
          <td><code>.category-wrap</code> / <code>.article-category-link</code></td>
          <td><code>\e604</code></td>
          <td>分類</td>
      </tr>
      <tr>
          <td><code>.article-date-link</code></td>
          <td><code>\e606</code></td>
          <td>日期</td>
      </tr>
      <tr>
          <td><code>.article-comment-link</code></td>
          <td><code>\e608</code></td>
          <td>評論</td>
      </tr>
      <tr>
          <td><code>.icon-copyright</code></td>
          <td><code>\e60a</code></td>
          <td>版權</td>
      </tr>
      <tr>
          <td><code>.icon-brush</code></td>
          <td><code>\e618</code></td>
          <td>畫筆 / 美化</td>
      </tr>
      <tr>
          <td><code>.icon-coffee</code></td>
          <td><code>\e607</code></td>
          <td>咖啡</td>
      </tr>
      <tr>
          <td><code>.icon-eye</code></td>
          <td><code>\e60f</code></td>
          <td>觀看 / 瀏覽</td>
      </tr>
      <tr>
          <td><code>.icon-user</code></td>
          <td><code>\e628</code></td>
          <td>使用者</td>
      </tr>
      <tr>
          <td><code>#main-nav-toggle</code></td>
          <td><code>\e62f</code></td>
          <td>導航選單切換</td>
      </tr>
      <tr>
          <td><code>#nav-rss-link</code></td>
          <td><code>\e61f</code></td>
          <td>RSS訂閱</td>
      </tr>
      <tr>
          <td><code>#nav-search-btn</code> / <code>.reimu-search-input-icon</code></td>
          <td><code>\e631</code></td>
          <td>搜尋按鈕</td>
      </tr>
      <tr>
          <td><code>#nav-sun-btn</code></td>
          <td><code>\e621</code></td>
          <td>太陽圖標（亮色主題）</td>
      </tr>
      <tr>
          <td><code>#nav-moon-btn</code></td>
          <td><code>\e617</code></td>
          <td>月亮圖標（暗色主題）</td>
      </tr>
      <tr>
          <td><code>#nav-circle-half-stroke-btn</code></td>
          <td><code>\e641</code></td>
          <td>半圓（主題切換）</td>
      </tr>
      <tr>
          <td><code>.icon-copy</code></td>
          <td><code>\e60c</code></td>
          <td>複製</td>
      </tr>
      <tr>
          <td><code>.icon-chevron-down</code></td>
          <td><code>\e609</code></td>
          <td>下箭頭</td>
      </tr>
      <tr>
          <td><code>.icon-check</code></td>
          <td><code>\e636</code></td>
          <td>勾 / 確認</td>
      </tr>
      <tr>
          <td><code>.icon-times</code></td>
          <td><code>\e637</code></td>
          <td>叉 / 關閉</td>
      </tr>
      <tr>
          <td><code>.icon-calendar</code></td>
          <td><code>\e605</code></td>
          <td>日曆</td>
      </tr>
      <tr>
          <td><code>.icon-pencil</code></td>
          <td><code>\e61b</code></td>
          <td>鉛筆 / 編輯</td>
      </tr>
      <tr>
          <td><code>.icon-clock</code></td>
          <td><code>\e613</code></td>
          <td>時鐘</td>
      </tr>
      <tr>
          <td><code>.post-sticky</code></td>
          <td><code>\e627</code></td>
          <td>置頂</td>
      </tr>
      <tr>
          <td><code>.reimu-popup .popup-btn-close</code></td>
          <td><code>\e626</code></td>
          <td>彈窗關閉</td>
      </tr>
      <tr>
          <td><code>.ais-pagination--item__previous</code></td>
          <td><code>\e601</code></td>
          <td>上一頁</td>
      </tr>
      <tr>
          <td><code>.ais-pagination--item__next</code></td>
          <td><code>\e630</code></td>
          <td>下一頁</td>
      </tr>
      <tr>
          <td><code>.icon-github</code></td>
          <td><code>\e619</code></td>
          <td>GitHub圖標</td>
      </tr>
      <tr>
          <td><code>.icon-google</code></td>
          <td><code>\e611</code></td>
          <td>Google圖標</td>
      </tr>
      <tr>
          <td><code>.icon-facebook</code></td>
          <td><code>\e60e</code></td>
          <td>Facebook圖標</td>
      </tr>
      <tr>
          <td><code>.icon-twitter</code></td>
          <td><code>\e62a</code></td>
          <td>Twitter圖標</td>
      </tr>
      <tr>
          <td><code>.icon-instagram</code></td>
          <td><code>\e615</code></td>
          <td>Instagram圖標</td>
      </tr>
      <tr>
          <td><code>.icon-linkedin</code></td>
          <td><code>\e614</code></td>
          <td>LinkedIn圖標</td>
      </tr>
      <tr>
          <td><code>.icon-pinterest</code></td>
          <td><code>\e61a</code></td>
          <td>Pinterest圖標</td>
      </tr>
      <tr>
          <td><code>.icon-youtube</code></td>
          <td><code>\e62d</code></td>
          <td>YouTube圖標</td>
      </tr>
      <tr>
          <td><code>.icon-vimeo</code></td>
          <td><code>\e629</code></td>
          <td>Vimeo圖標</td>
      </tr>
      <tr>
          <td><code>.icon-flickr</code></td>
          <td><code>\e612</code></td>
          <td>Flickr圖標</td>
      </tr>
      <tr>
          <td><code>.icon-dribbble</code></td>
          <td><code>\e610</code></td>
          <td>Dribbble圖標</td>
      </tr>
      <tr>
          <td><code>.icon-behance</code></td>
          <td><code>\e602</code></td>
          <td>Behance圖標</td>
      </tr>
      <tr>
          <td><code>.icon-bilibili</code></td>
          <td><code>\e603</code></td>
          <td>嗶哩嗶哩圖標</td>
      </tr>
      <tr>
          <td><code>.icon-weibo</code></td>
          <td><code>\e62c</code></td>
          <td>微博圖標</td>
      </tr>
      <tr>
          <td><code>.icon-zhihu</code></td>
          <td><code>\e62e</code></td>
          <td>知乎圖標</td>
      </tr>
      <tr>
          <td><code>.icon-reddit</code></td>
          <td><code>\e61c</code></td>
          <td>Reddit圖標</td>
      </tr>
      <tr>
          <td><code>.icon-tumblr</code></td>
          <td><code>\e625</code></td>
          <td>Tumblr圖標</td>
      </tr>
      <tr>
          <td><code>.icon-medium</code></td>
          <td><code>\e616</code></td>
          <td>Medium圖標</td>
      </tr>
      <tr>
          <td><code>.icon-deviantart</code></td>
          <td><code>\e60b</code></td>
          <td>DeviantArt圖標</td>
      </tr>
      <tr>
          <td><code>.icon-stackoverflow</code></td>
          <td><code>\e620</code></td>
          <td>StackOverflow圖標</td>
      </tr>
      <tr>
          <td><code>.icon-keybase</code></td>
          <td><code>\e61e</code></td>
          <td>Keybase圖標</td>
      </tr>
      <tr>
          <td><code>.icon-telegram</code></td>
          <td><code>\e623</code></td>
          <td>Telegram圖標</td>
      </tr>
      <tr>
          <td><code>.icon-discord</code></td>
          <td><code>\e60d</code></td>
          <td>Discord圖標</td>
      </tr>
      <tr>
          <td><code>.icon-steam</code></td>
          <td><code>\e624</code></td>
          <td>Steam圖標</td>
      </tr>
      <tr>
          <td><code>.icon-email</code></td>
          <td><code>\e63c</code></td>
          <td>郵件</td>
      </tr>
      <tr>
          <td><code>.sidebar-toc-btn</code></td>
          <td><code>\e633</code></td>
          <td>目錄按鈕</td>
      </tr>
      <tr>
          <td><code>.sidebar-common-btn</code></td>
          <td><code>\e632</code></td>
          <td>側邊通用按鈕</td>
      </tr>
      <tr>
          <td><code>.sidebar-top .arrow-up</code></td>
          <td><code>\e634</code></td>
          <td>向上箭頭</td>
      </tr>
      <tr>
          <td><code>.icon-link</code></td>
          <td><code>\e639</code></td>
          <td>連結</td>
      </tr>
      <tr>
          <td><code>.icon-globe</code></td>
          <td><code>\e638</code></td>
          <td>地球 / 多語言</td>
      </tr>
      <tr>
          <td><code>.icon-creative-commons</code></td>
          <td><code>\e63a</code></td>
          <td>創用CC授權</td>
      </tr>
      <tr>
          <td><code>.icon-taichi</code></td>
          <td><code>\e62b</code></td>
          <td>太極（暗黑模式）</td>
      </tr>
      <tr>
          <td><code>.icon-weixin</code></td>
          <td><code>\e640</code></td>
          <td>微信圖標</td>
      </tr>
      <tr>
          <td><code>.icon-qq</code></td>
          <td><code>\e63e</code></td>
          <td>QQ圖標</td>
      </tr>
      <tr>
          <td><code>.icon-image</code></td>
          <td><code>\e63f</code></td>
          <td>圖片圖標</td>
      </tr>
  </tbody>
</table>

        
        <hr><p>本文2025-04-15首發於<a href='https://www.guzhengsvt.cn/'>孤筝の温暖小家</a>，最後修改於2025-04-15</p><p>本部落格所有文章除特別聲明外，均採用 BY-NC-SA 授權協議。轉載請註明出處！</p>]]></description><category>OtherNotes</category></item></channel></rss>