<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GitHub Pages | Townsend 学术主页</title><link>https://townsend1.site/tags/github-pages/</link><atom:link href="https://townsend1.site/tags/github-pages/index.xml" rel="self" type="application/rss+xml"/><description>GitHub Pages</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>zh-CN</language><lastBuildDate>Wed, 08 Apr 2026 16:32:00 +0800</lastBuildDate><image><url>https://townsend1.site/media/icon_hu_da05098ef60dc2e7.png</url><title>GitHub Pages</title><link>https://townsend1.site/tags/github-pages/</link></image><item><title>如何用 Hugo 搭建自己的学术博客（完整实战）</title><link>https://townsend1.site/blog/how-to-build-my-blog/</link><pubDate>Wed, 08 Apr 2026 16:32:00 +0800</pubDate><guid>https://townsend1.site/blog/how-to-build-my-blog/</guid><description>&lt;p&gt;这篇文章记录了我搭建个人学术博客的完整过程。目标很明确：做一个可长期维护、能服务博士阶段研究工作的知识库网站。&lt;/p&gt;
&lt;p&gt;我最终采用了 &lt;strong&gt;Hugo + HugoBlox Academic CV + GitHub Pages&lt;/strong&gt; 的组合。下面是可复用的全过程。&lt;/p&gt;
&lt;h2 id="一为什么选-hugo"&gt;一、为什么选 Hugo&lt;/h2&gt;
&lt;p&gt;我最初尝试过 Astro，也成功部署了，但后续更需要“学术主页 + 博客 + 简历/经历”这一类结构，所以切换到 HugoBlox Academic CV。&lt;/p&gt;
&lt;p&gt;这套方案的优势：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;静态站点，部署稳定，成本低。&lt;/li&gt;
&lt;li&gt;学术主页结构成熟，适合博士生。&lt;/li&gt;
&lt;li&gt;内容用 Markdown/YAML 管理，长期维护成本低。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="二环境准备windows--powershell"&gt;二、环境准备（Windows / PowerShell）&lt;/h2&gt;
&lt;h3 id="1-安装-hugo-extended"&gt;1. 安装 Hugo Extended&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;winget&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-id&lt;/span&gt; &lt;span class="n"&gt;Hugo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Hugo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Extended&lt;/span&gt; &lt;span class="n"&gt;-e&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-source&lt;/span&gt; &lt;span class="n"&gt;winget&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-accept-package-agreements&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-accept-source-agreements&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;验证：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;hugo&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-安装-gohugo-modules-需要"&gt;2. 安装 Go（Hugo Modules 需要）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;winget&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-id&lt;/span&gt; &lt;span class="n"&gt;GoLang&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Go&lt;/span&gt; &lt;span class="n"&gt;-e&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-source&lt;/span&gt; &lt;span class="n"&gt;winget&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-accept-package-agreements&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-accept-source-agreements&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-安装-node-依赖主题构建需要"&gt;3. 安装 Node 依赖（主题构建需要）&lt;/h3&gt;
&lt;p&gt;在项目目录执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;npm&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="三创建并初始化站点"&gt;三、创建并初始化站点&lt;/h2&gt;
&lt;p&gt;我使用了 HugoBlox 官方 Academic CV 模板，直接克隆最省事：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;&lt;span class="n"&gt;D:&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="n"&gt;8_blox&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;clone&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="p"&gt;//&lt;/span&gt;&lt;span class="n"&gt;github&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;HugoBlox&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nb"&gt;theme-academic&lt;/span&gt;&lt;span class="n"&gt;-cv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;git&lt;/span&gt; &lt;span class="nb"&gt;my-blog&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd my-blog&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="四配置成自己的学术主页"&gt;四、配置成自己的学术主页&lt;/h2&gt;
&lt;p&gt;关键文件如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;config/_default/hugo.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config/_default/menus.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/authors/me.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;content/_index.md&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="必改项"&gt;必改项&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;baseURL&lt;/code&gt;：改为你的 Pages 地址（例如 &lt;code&gt;https://用户名.github.io/仓库名/&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;个人信息：姓名、学校、课题组、研究方向、邮箱。&lt;/li&gt;
&lt;li&gt;首页区块：按自己的研究内容调整。&lt;/li&gt;
&lt;li&gt;导航菜单：保留你真的会用到的栏目。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="五本地预览与构建"&gt;五、本地预览与构建&lt;/h2&gt;
&lt;p&gt;本地开发：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;hugo&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="n"&gt;-D&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;生产构建：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;hugo&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-gc&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-minify&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-baseURL&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://用户名.github.io/仓库名/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="六推送-github-并启用自动部署"&gt;六、推送 GitHub 并启用自动部署&lt;/h2&gt;
&lt;h3 id="1-初始化并推送仓库"&gt;1. 初始化并推送仓库&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;init&lt;/span&gt; &lt;span class="n"&gt;-b&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;commit&lt;/span&gt; &lt;span class="n"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;init blog&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;remote&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="n"&gt;origin&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="p"&gt;//&lt;/span&gt;&lt;span class="n"&gt;github&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;用户名&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;仓库名&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;git&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;push&lt;/span&gt; &lt;span class="n"&gt;-u&lt;/span&gt; &lt;span class="n"&gt;origin&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-github-pages-设置"&gt;2. GitHub Pages 设置&lt;/h3&gt;
&lt;p&gt;仓库中打开：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Settings -&amp;gt; Pages -&amp;gt; Source = GitHub Actions&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后每次 &lt;code&gt;git push&lt;/code&gt; 都会自动部署。&lt;/p&gt;
&lt;h2 id="七我遇到的典型问题与解决方法"&gt;七、我遇到的典型问题与解决方法&lt;/h2&gt;
&lt;h3 id="1-author-identity-unknown"&gt;1. &lt;code&gt;Author identity unknown&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;原因：Git 用户名/邮箱未配置。&lt;br&gt;
解决：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-global&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;你的用户名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-global&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;email&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;你的邮箱&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-src-refspec-main-does-not-match-any"&gt;2. &lt;code&gt;src refspec main does not match any&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;原因：还没有成功 commit。&lt;br&gt;
解决：先 &lt;code&gt;git add&lt;/code&gt; + &lt;code&gt;git commit&lt;/code&gt;，再 &lt;code&gt;git push -u origin main&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id="3-pages-第一次部署报-not-found"&gt;3. Pages 第一次部署报 Not Found&lt;/h3&gt;
&lt;p&gt;原因：刚切换到 GitHub Actions，Pages 站点状态还没同步。&lt;br&gt;
解决：重跑一次 workflow 即可。&lt;/p&gt;
&lt;h3 id="4-头像不显示"&gt;4. 头像不显示&lt;/h3&gt;
&lt;p&gt;这是我这次踩过的坑：&lt;br&gt;
本地有头像，但文件没提交到 GitHub，线上构建拿不到资源。&lt;/p&gt;
&lt;p&gt;正确做法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;头像放在 &lt;code&gt;assets/media/authors/me.jpg&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;确认已 &lt;code&gt;git add&lt;/code&gt; 并推送。&lt;/li&gt;
&lt;li&gt;等 Actions 绿灯后强刷页面。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="八我当前的网站结构"&gt;八、我当前的网站结构&lt;/h2&gt;
&lt;p&gt;为了先保证质量，我目前只保留：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;简介&lt;/li&gt;
&lt;li&gt;博客&lt;/li&gt;
&lt;li&gt;经历&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;“论文”和“项目”先隐藏，等内容积累后再开放。&lt;/p&gt;
&lt;h2 id="九可复用更新流程"&gt;九、可复用更新流程&lt;/h2&gt;
&lt;p&gt;以后每次更新都可以按这个流程：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;commit&lt;/span&gt; &lt;span class="n"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;update content&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;push&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;等待 GitHub Actions 成功后，网站自动更新。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;对我来说，博客不是一次性作品，而是博士阶段的长期基础设施。&lt;br&gt;
它的核心价值不是“页面好看”，而是把论文阅读、实验复盘和写作经验，沉淀成可复用的研究资产。&lt;/p&gt;</description></item></channel></rss>