<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Blog on Mack Yan</title>
    <link>https://www.mackyan.com/tags/blog/</link>
    <description>feedId:177369521563972608+userId:164686159870940160 Recent content in Blog on Mack Yan</description>
    <generator>Hugo -- 0.168.0</generator>
    <language>zh</language>
    <copyright>2025 Mack Yan</copyright>
    <lastBuildDate>Mon, 11 Aug 2025 23:59:29 +0800</lastBuildDate>
    <atom:link href="https://www.mackyan.com/tags/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>基于Hugo和Github Action搭建blog</title>
      <link>https://www.mackyan.com/posts/2025-08-05_%E5%9F%BA%E4%BA%8Ehugo%E5%92%8Cgithub-action%E6%90%AD%E5%BB%BAblog/</link>
      <pubDate>Tue, 05 Aug 2025 23:13:18 +0800</pubDate>
      <guid>https://www.mackyan.com/posts/2025-08-05_%E5%9F%BA%E4%BA%8Ehugo%E5%92%8Cgithub-action%E6%90%AD%E5%BB%BAblog/</guid>
      <description>&lt;h3 id=&#34;基于hugo的blog搭建&#34;&gt;基于Hugo的blog搭建&lt;/h3&gt;
&lt;h4 id=&#34;1-macos安装hugo&#34;&gt;1. macOS安装Hugo&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install hugo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;验证安装&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;实际安装版本：hugo v0.148.2&lt;/p&gt;
&lt;h4 id=&#34;2-创建hugo博客项目&#34;&gt;2. 创建Hugo博客项目&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo new site mackyan --format yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; mackyan
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;3-添加主题&#34;&gt;3. 添加主题&lt;/h4&gt;
&lt;p&gt;选择主题：以PaperMod为例&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="基于hugo的blog搭建">基于Hugo的blog搭建</h3>
<h4 id="1-macos安装hugo">1. macOS安装Hugo</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">brew install hugo
</span></span></code></pre></div><p>验证安装</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo version
</span></span></code></pre></div><p>实际安装版本：hugo v0.148.2</p>
<h4 id="2-创建hugo博客项目">2. 创建Hugo博客项目</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo new site mackyan --format yaml
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> mackyan
</span></span></code></pre></div><h4 id="3-添加主题">3. 添加主题</h4>
<p>选择主题：以PaperMod为例</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git init
</span></span><span class="line"><span class="cl">git submodule add --depth<span class="o">=</span><span class="m">1</span> https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
</span></span></code></pre></div><p>如果是 clone 了其他人的博客项目进行修改，则需要用以下命令进行初始化：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git submodule update --init --recursive
</span></span></code></pre></div><p>如果需要同步主题仓库的最新修改，需要运行以下命令：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git submodule update --remote
</span></span></code></pre></div><h4 id="4-设置主题">4. 设置主题</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">vim hugo.yaml
</span></span></code></pre></div><p>添加内容</p>
<pre tabindex="0"><code>theme: PaperMod
</code></pre><h4 id="5-写第一篇文章">5. 写第一篇文章</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo new posts/first.md
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">vim content/posts/first.md
</span></span></code></pre></div><p>新建的文章位于content/posts目录下，编辑内容如下：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;First Blog Post&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2025-08-03</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">draft</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">欢迎来到我的 Hugo 博客！
</span></span></code></pre></div><h4 id="6-本地预览博客">6. 本地预览博客</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo server -D
</span></span></code></pre></div><p>打开浏览器访问：http://localhost:1313</p>
<h4 id="7-配置博客信息可选">7. 配置博客信息（可选）</h4>
<p>修改hugo.yaml中加入更多信息：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">baseURL: <span class="s2">&#34;https://mackyan.github.io/&#34;</span>
</span></span><span class="line"><span class="cl">languageCode: zh-cn
</span></span><span class="line"><span class="cl">title: Mack Yan
</span></span><span class="line"><span class="cl">theme: PaperMod
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">enableEmoji: <span class="nb">true</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">pagination:
</span></span><span class="line"><span class="cl">  disableAliases: <span class="nb">false</span>
</span></span><span class="line"><span class="cl">  pagerSize: <span class="m">10</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">params:
</span></span><span class="line"><span class="cl">  author: Mack
</span></span><span class="line"><span class="cl">  ShowToc: <span class="nb">true</span>
</span></span><span class="line"><span class="cl">  ShowReadingTime: <span class="nb">true</span>
</span></span><span class="line"><span class="cl">  ShowPostNavLinks: <span class="nb">true</span>
</span></span></code></pre></div><h3 id="使用github-actions自动部署">使用Github Actions自动部署</h3>
<p>详细配置步骤参考资料2和资料4。</p>
<!-- ![alt text](/images/成长曲线.jpg) -->
<!-- <img src="/static/成长曲线.jpg" alt="Image Alt Text" style="width: 100%; height: auto;"> -->
<p>目前有两个仓库：</p>
<ul>
<li>mackyan（private）：hugo博客的根目录</li>
<li>mackyan.github.io（public）：存放hugo生成的静态文件，即mackyan/public目录</li>
</ul>
<p>在mackyan根目录下建立.github/workflows/hugo.yml文件，配置如下内容：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">deploy</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">on</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">push</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">workflow_dispatch</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">schedule</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="c"># Runs everyday at 8:00 AM</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span>- <span class="nt">cron</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;0 0 * * *&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">jobs</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">build</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">runs-on</span><span class="p">:</span><span class="w"> </span><span class="l">ubuntu-latest</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">steps</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Checkout</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">uses</span><span class="p">:</span><span class="w"> </span><span class="l">actions/checkout@v2</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">with</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">submodules</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">fetch-depth</span><span class="p">:</span><span class="w"> </span><span class="m">0</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Setup Hugo</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">uses</span><span class="p">:</span><span class="w"> </span><span class="l">peaceiris/actions-hugo@v2</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">with</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">hugo-version</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;latest&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Build Web</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">run</span><span class="p">:</span><span class="w"> </span><span class="l">hugo</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Deploy Web</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">uses</span><span class="p">:</span><span class="w"> </span><span class="l">peaceiris/actions-gh-pages@v3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">              </span><span class="nt">with</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">PERSONAL_TOKEN</span><span class="p">:</span><span class="w"> </span><span class="l">${{ secrets.GH_PAGE_ACTION_TOKEN }}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">EXTERNAL_REPOSITORY</span><span class="p">:</span><span class="w"> </span><span class="l">mackyan/mackyan.github.io</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">PUBLISH_BRANCH</span><span class="p">:</span><span class="w"> </span><span class="l">main</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">PUBLISH_DIR</span><span class="p">:</span><span class="w"> </span><span class="l">./public</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">                  </span><span class="nt">commit_message</span><span class="p">:</span><span class="w"> </span><span class="l">${{ github.event.head_commit.message }}</span><span class="w">
</span></span></span></code></pre></div><p>其中PERSONAL_TOKEN根据下图创建和使用:
<img alt="action_token" loading="lazy" src="/posts/2025-08-05_%E5%9F%BA%E4%BA%8Ehugo%E5%92%8Cgithub-action%E6%90%AD%E5%BB%BAblog/action_token.png"></p>
<h3 id="总结">总结</h3>
<p>当完成以上环境的部署之后，接下来的常见操作就是：</p>
<ol>
<li>
<p>hugo new posts/xxx.md新建文章（或者 hugo new posts/xxx/index.md）</p>
</li>
<li>
<p>添加或修改文章内容</p>
</li>
<li>
<p>上传push更新修改到GitHub</p>
</li>
<li>
<p>自动执行github actions，生成静态文件，部署到xxx.github.io的github pages</p>
</li>
<li>
<p>个人网站查看网页文章是否生效</p>
</li>
</ol>
<h3 id="参考资料">参考资料</h3>
<blockquote>
<ol>
<li><a href="https://github.com/adityatelange/hugo-PaperMod/wiki/Installation">Hugo-PaperMod installation wiki</a></li>
<li><a href="https://www.pseudoyu.com/zh/2022/05/29/deploy_your_blog_using_hugo_and_github_action">Hugo + GitHub Action，搭建你的博客自动发布系统</a></li>
<li><a href="https://eddy.lu/posts/hugo/">搭建 Hugo 个人网站｜PaperMod 主题</a></li>
<li><a href="https://blog.csdn.net/m0_55019159/article/details/139481456">使用github actions自动部署hugo博客（隐藏网站根目录）</a></li>
<li><a href="https://tunan.org/posts/add-comment-system-to-hugopapermo/">给Hugo PaperMod增加giscus评论系统</a></li>
<li><a href="https://lifeislife.cn/posts/papermod%E6%B7%BB%E5%8A%A0follow-rss%E8%AE%A4%E8%AF%81/">PaperMod添加Follow RSS订阅认证</a></li>
</ol>
</blockquote>
]]></content:encoded>
    </item>
  </channel>
</rss>
