<?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://blog.legenddog.uno/tags/hugo/</link><description>Recent content in Hugo on 一条狗的传说</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.legenddog.uno/tags/hugo/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugo｜从零开始Hugo建站 5</title><link>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-5/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-5/</guid><description>&lt;img src="https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-5/cover.jpg" alt="Featured image of post Hugo｜从零开始Hugo建站 5" /&gt;&lt;blockquote class="alert alert-note"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📝&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;写在前面&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;本篇是第五部分，主要学习如何创建第一篇博客文章，掌握 Markdown 基本语法，以及如何使用hugo主题中的特殊用例。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="第一节markdown基础语法"&gt;&lt;a href="#%e7%ac%ac%e4%b8%80%e8%8a%82markdown%e5%9f%ba%e7%a1%80%e8%af%ad%e6%b3%95" class="header-anchor"&gt;&lt;/a&gt;第一节：markdown基础语法&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://markdown.com.cn/basic-syntax/" target="_blank" rel="noopener"&#10; &gt;Markdown 基本语法 | Markdown 教程&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="第二节markdown进阶语法"&gt;&lt;a href="#%e7%ac%ac%e4%ba%8c%e8%8a%82markdown%e8%bf%9b%e9%98%b6%e8%af%ad%e6%b3%95" class="header-anchor"&gt;&lt;/a&gt;第二节：markdown进阶语法&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://liu-houliang.github.io/hugo-stack-starter/post/start-writing/" target="_blank" rel="noopener"&#10; &gt;开始写博客：Markdown 入门与多语言写作&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://demo.stack.cai.im/zh/p/markdown-%E8%AF%AD%E6%B3%95%E6%8C%87%E5%8D%97/" target="_blank" rel="noopener"&#10; &gt;Markdown 语法指南&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="第三节markdown-带提示的引用callout语法实现指南"&gt;&lt;a href="#%e7%ac%ac%e4%b8%89%e8%8a%82markdown-%e5%b8%a6%e6%8f%90%e7%a4%ba%e7%9a%84%e5%bc%95%e7%94%a8callout%e8%af%ad%e6%b3%95%e5%ae%9e%e7%8e%b0%e6%8c%87%e5%8d%97" class="header-anchor"&gt;&lt;/a&gt;第三节：Markdown 带提示的引用（Callout）语法实现指南&#10;&lt;/h2&gt;&lt;blockquote class="alert alert-tip"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;💡&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;提示&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;本文介绍 GitHub 风格 Callout（提示框）语法，以及 Hugo Stack 主题中的使用方法。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="1什么是-callout"&gt;&lt;a href="#1%e4%bb%80%e4%b9%88%e6%98%af-callout" class="header-anchor"&gt;&lt;/a&gt;1.什么是 Callout&#10;&lt;/h3&gt;&lt;p&gt;你看到的&amp;quot;带提示的引用&amp;quot;是通过 &lt;code&gt;&amp;gt; [!类型]&lt;/code&gt; 的 Callout（提示框）语法实现的。&lt;/p&gt;&#10;&lt;p&gt;这是 GitHub 风格的 Callout 语法，Hugo Stack 主题对它做了原生支持。写法是在普通引用块（&lt;code&gt;&amp;gt;&lt;/code&gt;）的第一行，紧跟一个方括号加感叹号加类型名的标记。&lt;/p&gt;&#10;&lt;h3 id="2基础语法"&gt;&lt;a href="#2%e5%9f%ba%e7%a1%80%e8%af%ad%e6%b3%95" class="header-anchor"&gt;&lt;/a&gt;2.基础语法&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!NOTE]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;突出显示用户在快速浏览时也应注意的信息。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!TIP]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;可选信息，帮助用户更顺利地完成任务。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!IMPORTANT]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;用户成功所必需的关键信息。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!WARNING]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;由于潜在风险而需要用户立即关注的关键内容。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!CAUTION]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;某个操作可能带来的负面后果。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3五种内置类型"&gt;&lt;a href="#3%e4%ba%94%e7%a7%8d%e5%86%85%e7%bd%ae%e7%b1%bb%e5%9e%8b" class="header-anchor"&gt;&lt;/a&gt;3.五种内置类型&#10;&lt;/h3&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;标记&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;显示效果&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;图标&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[!NOTE]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;备注&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;📝&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[!TIP]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;提示&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;💡&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[!IMPORTANT]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;重要&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;📌&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[!WARNING]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;警告&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;⚠️&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[!CAUTION]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;注意&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;🚨&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;标记本身不区分大小写（&lt;code&gt;[!note]&lt;/code&gt; 也可以），标题文字和图标、配色是由主题在渲染时自动套用的，不需要自己写。&lt;/p&gt;&#10;&lt;h3 id="4自定义标题"&gt;&lt;a href="#4%e8%87%aa%e5%ae%9a%e4%b9%89%e6%a0%87%e9%a2%98" class="header-anchor"&gt;&lt;/a&gt;4.自定义标题&#10;&lt;/h3&gt;&lt;p&gt;如果不想用默认标题，在方括号标记后面直接加空格再写标题文本即可，也就是页面上演示的最后一种用法：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!NOTE] 自定义标题&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;如果你想使用自定义标题，可以在方括号后面添加标题文本，如上所示。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5内容部分照常写-markdown"&gt;&lt;a href="#5%e5%86%85%e5%ae%b9%e9%83%a8%e5%88%86%e7%85%a7%e5%b8%b8%e5%86%99-markdown" class="header-anchor"&gt;&lt;/a&gt;5.内容部分照常写 Markdown&#10;&lt;/h3&gt;&lt;p&gt;Callout 正文里可以继续用普通 Markdown 语法——加粗、行内代码、链接、列表等都没问题，只需保证每行都以 &lt;code&gt;&amp;gt;&lt;/code&gt; 开头（或至少第一行带标记）。&lt;/p&gt;&#10;&lt;p&gt;例如：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;[!TIP] 小技巧&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;支持 **加粗**、`行内代码`、[链接](https://example.com) 等：&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;- 列表项一&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;&amp;gt; &lt;/span&gt;&lt;span class="ge"&gt;- 列表项二&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="6兼容性说明"&gt;&lt;a href="#6%e5%85%bc%e5%ae%b9%e6%80%a7%e8%af%b4%e6%98%8e" class="header-anchor"&gt;&lt;/a&gt;6.兼容性说明&#10;&lt;/h3&gt;&lt;p&gt;需要注意的是，这并非 Markdown 核心规范的一部分，而是各家平台的扩展语法：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;GitHub&lt;/strong&gt;：原生支持上面这套 &lt;code&gt;[!NOTE]&lt;/code&gt; 写法；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Hugo 的 Stack 主题&lt;/strong&gt;：兼容该语法；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;其他渲染器&lt;/strong&gt;：某些静态博客主题或编辑器里可能不识别，会退化成普通引用块显示。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="7效果预览"&gt;&lt;a href="#7%e6%95%88%e6%9e%9c%e9%a2%84%e8%a7%88" class="header-anchor"&gt;&lt;/a&gt;7.效果预览&#10;&lt;/h3&gt;&lt;blockquote class="alert alert-note"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📝&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;&lt;strong&gt;备注&lt;/strong&gt;&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;突出显示用户在快速浏览时也应注意的信息。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;blockquote class="alert alert-tip"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;💡&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;&lt;strong&gt;提示&lt;/strong&gt;&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;可选信息，帮助用户更顺利地完成任务。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;blockquote class="alert alert-important"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📌&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;&lt;strong&gt;重要&lt;/strong&gt;&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;用户成功所必需的关键信息。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;blockquote class="alert alert-warning"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;⚠️&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;&lt;strong&gt;警告&lt;/strong&gt;&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;由于潜在风险而需要用户立即关注的关键内容。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;blockquote class="alert alert-caution"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;🚨&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;&lt;strong&gt;注意&lt;/strong&gt;&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;某个操作可能带来的负面后果。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;</description></item><item><title>Hugo｜从零开始Hugo建站 4</title><link>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-4/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-4/</guid><description>&lt;img src="https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-4/cover.jpg" alt="Featured image of post Hugo｜从零开始Hugo建站 4" /&gt;&lt;blockquote class="alert alert-note"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📝&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;写在前面&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;本篇是第四部分，主要讲搭建hugo个人博客的评论区。&lt;/p&gt;&#10;&lt;p&gt;下一篇会讲如何创建第一篇博客文章，掌握 Markdown 基本语法，以及如何使用hugo主题中的特殊用例。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;Waline 是一款安全、简洁的评论系统，支持 Markdown，免费部署，无需用户注册即可评论。&lt;/p&gt;&#10;&lt;h2 id="第一步部署-waline-服务端"&gt;&lt;a href="#%e7%ac%ac%e4%b8%80%e6%ad%a5%e9%83%a8%e7%bd%b2-waline-%e6%9c%8d%e5%8a%a1%e7%ab%af" class="header-anchor"&gt;&lt;/a&gt;第一步：部署 Waline 服务端&#10;&lt;/h2&gt;&lt;p&gt;请参考 Waline 官方快速上手文档 完成服务端的部署：&lt;/p&gt;&#10;&lt;p&gt;👉 &lt;a class="link" href="https://waline.js.org/guide/get-started/" target="_blank" rel="noopener"&#10; &gt;https://waline.js.org/guide/get-started/&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Hugo｜从零开始Hugo建站 3</title><link>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-3/</link><pubDate>Tue, 02 Mar 2021 00:00:00 +0000</pubDate><guid>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-3/</guid><description>&lt;img src="https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-3/cover.jpg" alt="Featured image of post Hugo｜从零开始Hugo建站 3" /&gt;&lt;blockquote class="alert alert-note"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📝&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;写在前面&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;本篇是第三部分，主要讲 Hugo 的完整配置以及如何使用 GitHub Action 实现自动推送。&lt;/p&gt;&#10;&lt;p&gt;下一篇会讲如何搭建hugo个人博客的评论区&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="hugo-站点文件配置"&gt;&lt;a href="#hugo-%e7%ab%99%e7%82%b9%e6%96%87%e4%bb%b6%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;Hugo 站点文件配置&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://gohugo.io/getting-started/directory-structure/" target="_blank" rel="noopener"&#10; &gt;Hugo 站点文件夹内容&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="hugo-stack-主题配置"&gt;&lt;a href="#hugo-stack-%e4%b8%bb%e9%a2%98%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;Hugo Stack 主题配置&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://stack.cai.im/zh/guide/getting-started" target="_blank" rel="noopener"&#10; &gt;Hugo Stack 主题快速上手&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;我使用的主题是基于 Stack 改版的模板，由 &lt;a class="link" href="https://liu-houliang.github.io/hugo-stack-starter/" target="_blank" rel="noopener"&#10; &gt;liu-houliang/hugo-stack-starter&lt;/a&gt; 调整而来，文末会附上链接。&lt;/p&gt;&#10;&lt;h3 id="基础配置"&gt;&lt;a href="#%e5%9f%ba%e7%a1%80%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;基础配置&#10;&lt;/h3&gt;&lt;p&gt;所有配置文件位于 &lt;code&gt;config/_default/&lt;/code&gt; 目录下：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config/_default/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── config.toml # 站点标题、域名 ← 必须修改&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── languages.toml # 多语言设置&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── params.toml # 主题参数（评论、首页布局）&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── params.zh.toml # 中文专属参数（头像、副标题）← 建议修改&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── params.en.toml # 英文专属参数&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── menu.zh.toml # 中文导航菜单&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── menu.en.toml # 英文导航菜单&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="在-github-pages-上托管"&gt;&lt;a href="#%e5%9c%a8-github-pages-%e4%b8%8a%e6%89%98%e7%ae%a1" class="header-anchor"&gt;&lt;/a&gt;在 GitHub Pages 上托管&#10;&lt;/h2&gt;&lt;p&gt;将 Hugo 站点部署为 GitHub Pages 项目（或个人/组织站点），并通过 GitHub Actions 实现自动化构建与部署。&lt;/p&gt;&#10;&lt;p&gt;每次手动构建再推送很繁琐，可以利用 GitHub Actions 实现：推送代码 → 自动构建部署。&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://hugo.opendocs.io/hosting-and-deployment/hosting-on-github/" target="_blank" rel="noopener"&#10; &gt;Hugo 官方 GitHub Actions 模板&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;在 Hugo 项目根目录创建 &lt;code&gt;.github/workflows/hugo.yaml&lt;/code&gt;，使用官方推荐的 GitHub Pages Actions 方式，推送到 &lt;code&gt;main&lt;/code&gt; 分支即可自动构建并部署。以下是完整的配置流程和可直接使用的 workflow 文件。&lt;/p&gt;&#10;&lt;h3 id="一准备工作"&gt;&lt;a href="#%e4%b8%80%e5%87%86%e5%a4%87%e5%b7%a5%e4%bd%9c" class="header-anchor"&gt;&lt;/a&gt;一、准备工作&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;确保 Hugo 项目已推送到 GitHub 仓库&lt;/strong&gt;（注意：不要把 &lt;code&gt;public/&lt;/code&gt; 目录提交进仓库，Hugo 构建时会自动生成，建议在 &lt;code&gt;.gitignore&lt;/code&gt; 中添加 &lt;code&gt;public/&lt;/code&gt; 和 &lt;code&gt;resources/&lt;/code&gt;）。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;修改 &lt;code&gt;hugo.toml&lt;/code&gt; 中的 &lt;code&gt;baseURL&lt;/code&gt;&lt;/strong&gt;：&#10;&lt;ul&gt;&#10;&lt;li&gt;用户主页站点（仓库名为 &lt;code&gt;用户名.github.io&lt;/code&gt;）：&lt;code&gt;baseURL = &amp;quot;https://&amp;lt;用户名&amp;gt;.github.io/&amp;quot;&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;普通项目站点：&lt;code&gt;baseURL = &amp;quot;https://&amp;lt;用户名&amp;gt;.github.io/&amp;lt;仓库名&amp;gt;/&amp;quot;&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;如果主题以 Git Submodule 方式引入&lt;/strong&gt;，确认 Submodule 已正确提交（&lt;code&gt;git submodule add &amp;lt;主题地址&amp;gt; themes/&amp;lt;主题名&amp;gt;&lt;/code&gt;）。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="二创建-workflow-文件"&gt;&lt;a href="#%e4%ba%8c%e5%88%9b%e5%bb%ba-workflow-%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;二、创建 Workflow 文件&#10;&lt;/h3&gt;&lt;p&gt;在项目根目录创建 &lt;code&gt;.github/workflows/hugo.yaml&lt;/code&gt;，以下是 Hugo 官方文档提供的模板：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 用于构建和部署Hugo网站到GitHub Pages的示例工作流程&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;发布Hugo网站到Pages&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 在目标为默认分支的推送上运行&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;push&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;main&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 允许手动从Actions标签运行此工作流程&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;workflow_dispatch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 设置GITHUB_TOKEN的权限，以允许部署到GitHub Pages&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;permissions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;contents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;read&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;pages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;write&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id-token&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;write&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 仅允许一个并发部署，跳过在进行中的运行与最新排队的运行之间排队的运行。&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 但不取消进行中的运行，以确保这些生产部署能够完成。&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;concurrency&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;group&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;pages&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;cancel-in-progress&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 默认使用bash&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;shell&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;bash&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 构建作业&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;build&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;runs-on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ubuntu-latest&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;HUGO_VERSION&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0.120.2&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;安装Hugo CLI&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; &amp;amp;&amp;amp; sudo dpkg -i ${{ runner.temp }}/hugo.deb &lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;安装Dart Sass&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;sudo snap install dart-sass&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;检出&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/checkout@v4&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;with&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;submodules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;recursive&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;fetch-depth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;设置Pages&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pages&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/configure-pages@v3&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;安装Node.js依赖&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;[[ -f package-lock.json || -f npm-shrinkwrap.json ]] &amp;amp;&amp;amp; npm ci || true&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;使用Hugo构建&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;HUGO_ENVIRONMENT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;production&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;HUGO_ENV&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;production&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; hugo \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; --gc \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; --minify \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; --baseURL &amp;#34;${{ steps.pages.outputs.base_url }}/&amp;#34; &lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;上传构建产物&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/upload-pages-artifact@v2&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;with&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./public&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 部署作业&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;deploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;github-pages&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${{ steps.deployment.outputs.page_url }}&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;runs-on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ubuntu-latest&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;needs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;build&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;部署到GitHub Pages&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;deployment&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/deploy-pages@v2&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="几个关键点说明"&gt;&lt;a href="#%e5%87%a0%e4%b8%aa%e5%85%b3%e9%94%ae%e7%82%b9%e8%af%b4%e6%98%8e" class="header-anchor"&gt;&lt;/a&gt;几个关键点说明&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;submodules: recursive&lt;/code&gt; + &lt;code&gt;fetch-depth: 0&lt;/code&gt;：拉取主题子模块和完整 Git 历史（确保 &lt;code&gt;.GitInfo&lt;/code&gt;、&lt;code&gt;.Lastmod&lt;/code&gt; 正常工作）。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;HUGO_ENVIRONMENT: production&lt;/code&gt;：让主题的 GA 统计等生产环境配置生效。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;--baseURL &amp;quot;${{ steps.pages.outputs.base_url }}/&amp;quot;&lt;/code&gt;：自动获取 Pages 地址，无需手动写死 &lt;code&gt;baseURL&lt;/code&gt;。&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;HUGO_VERSION&lt;/code&gt;：建议改为本地 &lt;code&gt;hugo version&lt;/code&gt; 输出的版本号，避免本地与 CI 构建结果不一致。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="参考资料"&gt;&lt;a href="#%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99" class="header-anchor"&gt;&lt;/a&gt;参考资料&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://liu-houliang.github.io/hugo-stack-starter/" target="_blank" rel="noopener"&#10; &gt;liu-houliang 的 hugo-stack-starter在线预览 (Live Demo)&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Hugo｜从零开始Hugo建站 2</title><link>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-2/</link><pubDate>Mon, 01 Mar 2021 00:00:00 +0000</pubDate><guid>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-2/</guid><description>&lt;img src="https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-2/cover.jpg" alt="Featured image of post Hugo｜从零开始Hugo建站 2" /&gt;&lt;blockquote class="alert alert-note"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📝&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;写在前面&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;本篇是第二部分，主要讲如何用 Hugo ，从 0 到 1 完成一个静态博客：通过简单配置自定义博客界面，并把站点免费部署到 GitHub Pages。&lt;/p&gt;&#10;&lt;p&gt;下一篇会讲 Hugo 的完整配置以及如何使用 GitHub Action 实现自动推送。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="环境准备"&gt;&lt;a href="#%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87" class="header-anchor"&gt;&lt;/a&gt;环境准备&#10;&lt;/h2&gt;&lt;h3 id="安装-git"&gt;&lt;a href="#%e5%ae%89%e8%a3%85-git" class="header-anchor"&gt;&lt;/a&gt;安装 Git&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;前往 Git 官网下载安装：&lt;a class="link" href="https://git-scm.com/downloads" target="_blank" rel="noopener"&#10; &gt;git-scm.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;全部默认选项安装即可&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="安装-hugoextended-版本"&gt;&lt;a href="#%e5%ae%89%e8%a3%85-hugoextended-%e7%89%88%e6%9c%ac" class="header-anchor"&gt;&lt;/a&gt;安装 Hugo（Extended 版本）&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;前往 Hugo GitHub Releases 页面：&lt;a class="link" href="https://github.com/gohugoio/hugo/releases" target="_blank" rel="noopener"&#10; &gt;Hugo Releases&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;选择 &lt;strong&gt;extended&lt;/strong&gt; 版本（带 extended 字样），Stack 主题需要 extended 版本的 SCSS 编译支持&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;不管在哪种系统中安装 Hugo，最后都可以使用以下命令查看是否安装成功：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; hugo version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Hugo Static Site Generator v0.68.3-157669A0 linux/amd64 BuildDate: 2020-03-24T12:05:34Z&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;本文编写时使用的操作系统Ubuntu 版本为wsl版24.04，Hugo 版本为 v0.165.0，Stack 主题版本为 v4。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="创建-hugo-站点"&gt;&lt;a href="#%e5%88%9b%e5%bb%ba-hugo-%e7%ab%99%e7%82%b9" class="header-anchor"&gt;&lt;/a&gt;创建 Hugo 站点&#10;&lt;/h2&gt;&lt;h3 id="1-初始化项目"&gt;&lt;a href="#1-%e5%88%9d%e5%a7%8b%e5%8c%96%e9%a1%b9%e7%9b%ae" class="header-anchor"&gt;&lt;/a&gt;1. 初始化项目&#10;&lt;/h3&gt;&lt;p&gt;使用 Hugo 创建博客项目：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建新站点&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo new site myblog &lt;span class="c1"&gt;# 博客项目的名字为 myblog&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 进入站点目录&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; myblog&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;生成的目录结构：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;myblog/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── archetypes/ # 文章模板&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── assets/ # 静态资源（图片、CSS、JS）&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── content/ # 博客内容（文章）&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── data/ # 数据文件&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── i18n/ # 多语言&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── layouts/ # 布局模板&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── public/ # 构建输出（hugo 命令生成）&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── static/ # 静态文件（直接复制到 public）&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── themes/ # 主题&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── hugo.toml # 站点配置&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-安装主题"&gt;&lt;a href="#2-%e5%ae%89%e8%a3%85%e4%b8%bb%e9%a2%98" class="header-anchor"&gt;&lt;/a&gt;2. 安装主题&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; themes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone git@github.com:CaiJimmy/hugo-theme-stack.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;注意：hugo-theme-stack 对 Hugo 版本有要求，请确保版本兼容。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;安装完成后，主题目录结构如下：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;myblog/themes/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── hugo-theme-stack-4.0.x/ # 带版本号的文件夹&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-配置主题关键步骤"&gt;&lt;a href="#3-%e9%85%8d%e7%bd%ae%e4%b8%bb%e9%a2%98%e5%85%b3%e9%94%ae%e6%ad%a5%e9%aa%a4" class="header-anchor"&gt;&lt;/a&gt;3. 配置主题（关键步骤）&#10;&lt;/h3&gt;&lt;p&gt;⚠️ &lt;strong&gt;版本差异&lt;/strong&gt;：这一步最容易出错。新版 Stack（v4.x）和旧版（v3.x）的文件结构完全不同：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;对比项&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;旧版 Stack（v3.x）&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;新版 Stack（v4.x）&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;样例目录名&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;exampleSite/&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;demo/&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;配置文件&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;单个 &lt;code&gt;hugo.yaml&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多个 &lt;code&gt;.toml&lt;/code&gt; 文件在 &lt;code&gt;config/_default/&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;主题引用&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme: hugo-theme-stack&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;[[module.imports]]&lt;/code&gt;（Hugo Modules 方式）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h4 id="新版v4x操作步骤"&gt;&lt;a href="#%e6%96%b0%e7%89%88v4x%e6%93%8d%e4%bd%9c%e6%ad%a5%e9%aa%a4" class="header-anchor"&gt;&lt;/a&gt;新版（v4.x）操作步骤&#10;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Step 1：复制配置文件&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;将主题目录下的 &lt;code&gt;config/_default/&lt;/code&gt; 文件夹复制到博客根目录（myblog），其中包含 6 个配置文件：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;文件&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;作用&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;hugo.toml&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;基础配置（baseURL、title、分页、永久链接等）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;languages.toml&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;多语言配置&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;markup.toml&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Markdown 渲染配置（代码高亮、目录等）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;menu.toml&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;菜单配置（导航栏、社交链接）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;params.toml&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;主题参数（侧边栏、评论、widgets 等）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;related.toml&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;相关内容推荐配置&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;同时，将主题目录下的 &lt;code&gt;demo/&lt;/code&gt; 文件夹中的内容复制到博客根目录（myblog）。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Step 2：修改主题引用方式&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;打开 &lt;code&gt;config/_default/hugo.toml&lt;/code&gt;，找到以下内容：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;imports&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github.com/CaiJimmy/hugo-theme-stack/v3&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将其替换为传统引用方式（无需 Go 环境和 Hugo Modules，更简单）：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;theme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hugo-theme-stack-4.0.2&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改后，删除博客根目录下的原 &lt;code&gt;hugo.toml&lt;/code&gt; 文件（避免配置冲突）。&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;旧版（v3.x）操作步骤可参考文末的资料链接。本篇内容编写时参考了相关资料，由于本博客之前由 v3 版本搭建，此次改为 v4 也花费了不少功夫。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="4启动-hugo-博客服务"&gt;&lt;a href="#4%e5%90%af%e5%8a%a8-hugo-%e5%8d%9a%e5%ae%a2%e6%9c%8d%e5%8a%a1" class="header-anchor"&gt;&lt;/a&gt;4.启动 Hugo 博客服务&#10;&lt;/h3&gt;&lt;p&gt;使用以下命令启动本地服务：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; hugo server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; EN &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-------------------+-----&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Pages &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;29&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Paginator pages &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Non-page files &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Static files &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Processed images &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Aliases &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;12&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Sitemaps &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Cleaned &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Built in &lt;span class="m"&gt;60&lt;/span&gt; ms&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Watching &lt;span class="k"&gt;for&lt;/span&gt; changes in /home/wp/t/myblog/&lt;span class="o"&gt;{&lt;/span&gt;archetypes,content,data,layouts,static,themes&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Watching &lt;span class="k"&gt;for&lt;/span&gt; config changes in /home/wp/t/myblog/config.toml&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Environment: &lt;span class="s2"&gt;&amp;#34;development&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Serving pages from memory&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Web Server is available at http://localhost:1313/ &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;bind&lt;/span&gt; address 127.0.0.1&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Press Ctrl+C to stop&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;相关命令：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 本地预览（包含草稿文章）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo server -D&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 生成 public 目录（静态文件）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;服务默认占用 1313 端口，在浏览器中访问 &lt;code&gt;http://localhost:1313/&lt;/code&gt; 即可预览。&lt;/p&gt;&#10;&lt;h3 id="5-推送本地博客到远端github-pages"&gt;&lt;a href="#5-%e6%8e%a8%e9%80%81%e6%9c%ac%e5%9c%b0%e5%8d%9a%e5%ae%a2%e5%88%b0%e8%bf%9c%e7%ab%afgithub-pages" class="header-anchor"&gt;&lt;/a&gt;5. 推送本地博客到远端（GitHub Pages）&#10;&lt;/h3&gt;&lt;p&gt;将生成的 &lt;code&gt;public/&lt;/code&gt; 目录作为独立仓库推送到 GitHub：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; public&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git init&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add .&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;first commit&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git branch -M main&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git remote add origin https://github.com/你的用户名/你的仓库名.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push -u origin main&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;后续可通过 GitHub Action 实现推送博客源文件后自动构建并部署，将在下一篇中介绍。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="附常用-linux-命令"&gt;&lt;a href="#%e9%99%84%e5%b8%b8%e7%94%a8-linux-%e5%91%bd%e4%bb%a4" class="header-anchor"&gt;&lt;/a&gt;附：常用 Linux 命令&#10;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看 Hugo 安装路径&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;which hugo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看当前目录路径&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查看命令历史&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;history&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;p&gt;wsl GUI GNOME&lt;/p&gt;&#10;&lt;h2 id="资料参考"&gt;&lt;a href="#%e8%b5%84%e6%96%99%e5%8f%82%e8%80%83" class="header-anchor"&gt;&lt;/a&gt;资料参考&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://akuamt.github.io/p/hugo--stack--github-pages-%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/" target="_blank" rel="noopener"&#10; &gt;Hugo + Stack + GitHub Pages 博客搭建指南&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;</description></item><item><title>Hugo｜从零开始Hugo建站 1</title><link>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-1/</link><pubDate>Sun, 28 Feb 2021 00:00:00 +0000</pubDate><guid>https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-1/</guid><description>&lt;img src="https://blog.legenddog.uno/post/hugo-%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Bhugo%E5%BB%BA%E7%AB%99-1/cover.jpg" alt="Featured image of post Hugo｜从零开始Hugo建站 1" /&gt;&lt;blockquote class="alert alert-note"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📝&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;写在前面&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;从一开始看到各路技术大牛的个人博客，开始萌发起了建站的想法。我不擅长写技术性博客文章（&lt;del&gt;本文怕不是我第一篇也是最后一篇技术博客&lt;/del&gt;），只是粗略记录一下我建站的过程。如果你在对hugo博客建立的任何地方有问题，希望这篇可以帮助到你👌。&lt;/p&gt;&#10;&lt;p&gt;这个系列记录我从零搭建 Hugo 静态博客的过程。本篇是第一部分，主要讲建站前的准备工作：Git 的安装、本地基本操作、本地与远程仓库的连接，以及一些进阶技巧。如果你已经熟悉 Git，可以直接跳到下一篇。&lt;/p&gt;&#10;&lt;p&gt;下一篇会讲如何用 Hugo ，从 0 到 1 完成一个静态博客：通过简单配置自定义博客界面，并把站点免费部署到 GitHub Pages。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="一git-入门本地环境配置"&gt;&lt;a href="#%e4%b8%80git-%e5%85%a5%e9%97%a8%e6%9c%ac%e5%9c%b0%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;一、Git 入门：本地环境配置&#10;&lt;/h2&gt;&lt;p&gt;镜像加速（推荐，最省事）​&#10;如果你git下载慢，不想折腾代理，直接在原地址前加一个代理前缀即可&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global url.&lt;span class="s2"&gt;&amp;#34;https://gh-proxy.com/https://github.com/&amp;#34;&lt;/span&gt;.insteadOf &lt;span class="s2"&gt;&amp;#34;https://github.com/&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="1-安装与检查"&gt;&lt;a href="#1-%e5%ae%89%e8%a3%85%e4%b8%8e%e6%a3%80%e6%9f%a5" class="header-anchor"&gt;&lt;/a&gt;1. 安装与检查&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git --version &lt;span class="c1"&gt;# 查看版本号&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git --help &lt;span class="c1"&gt;# 查看帮助文档&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-配置用户信息"&gt;&lt;a href="#2-%e9%85%8d%e7%bd%ae%e7%94%a8%e6%88%b7%e4%bf%a1%e6%81%af" class="header-anchor"&gt;&lt;/a&gt;2. 配置用户信息&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --list &lt;span class="c1"&gt;# 查看所有配置&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --list --show-origin &lt;span class="c1"&gt;# 查看所有配置及其所在文件&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着配置用户名和邮箱：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.name &lt;span class="s2"&gt;&amp;#34;yourname&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 全局配置用户名&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.email &lt;span class="s2"&gt;&amp;#34;youremail@example.com&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 全局配置邮箱&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;也可以单独查看用户配置：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config user.name &lt;span class="c1"&gt;# 查看用户名&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config user.email &lt;span class="c1"&gt;# 查看邮箱&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-常用基础命令"&gt;&lt;a href="#3-%e5%b8%b8%e7%94%a8%e5%9f%ba%e7%a1%80%e5%91%bd%e4%bb%a4" class="header-anchor"&gt;&lt;/a&gt;3. 常用基础命令&#10;&lt;/h3&gt;&lt;p&gt;以下是最基本的 Git 操作，全部在本地完成，不涉及远程仓库：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;命令&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;作用&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;查看仓库状态&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;创建空仓库或重新初始化已有仓库&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git add&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;把文件添加到暂存区&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git commit&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;提交改动到仓库&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;打印提交日志&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;查看、添加、删除分支&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git checkout&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;切换分支、标签&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git merge&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;合并分支&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;git tag&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;新建、查看标签&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="二连接本地与远程仓库"&gt;&lt;a href="#%e4%ba%8c%e8%bf%9e%e6%8e%a5%e6%9c%ac%e5%9c%b0%e4%b8%8e%e8%bf%9c%e7%a8%8b%e4%bb%93%e5%ba%93" class="header-anchor"&gt;&lt;/a&gt;二、连接本地与远程仓库&#10;&lt;/h2&gt;&lt;h3 id="1-配置-ssh-密钥"&gt;&lt;a href="#1-%e9%85%8d%e7%bd%ae-ssh-%e5%af%86%e9%92%a5" class="header-anchor"&gt;&lt;/a&gt;1. 配置 SSH 密钥&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir .ssh &lt;span class="c1"&gt;# 创建 .ssh 目录（如已存在可跳过）&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh-keygen -t rsa -C &lt;span class="s2"&gt;&amp;#34;youremail@example.com&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 生成 SSH 密钥&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;生成后，把公钥添加到 GitHub 的 Settings 中。&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;strong&gt;常见报错：&lt;a class="link" href="https://blog.csdn.net/weixin_40922744/article/details/107576748" target="_blank" rel="noopener"&#10; &gt;fatal: Could not read from remote repository.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;details&gt;&#13;&#10;&lt;summary&gt;解决步骤&lt;/summary&gt;&#13;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;一般是 SSH 配置有问题，可按以下步骤排查：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;重新生成密钥：&lt;code&gt;ssh-keygen -t rsa -C &amp;quot;youremail@example.com&amp;quot;&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;将密钥添加到 ssh-agent：&lt;code&gt;ssh-add ~/.ssh/id_rsa&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;将公钥添加到你的 GitHub 账户&lt;/li&gt;&#10;&lt;li&gt;用 &lt;code&gt;ssh -T git@github.com&lt;/code&gt; 验证是否成功&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;/details&gt;&#13;&#10;&lt;h3 id="2-克隆远程仓库"&gt;&lt;a href="#2-%e5%85%8b%e9%9a%86%e8%bf%9c%e7%a8%8b%e4%bb%93%e5%ba%93" class="header-anchor"&gt;&lt;/a&gt;2. 克隆远程仓库&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/project/repo.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-推送与拉取"&gt;&lt;a href="#3-%e6%8e%a8%e9%80%81%e4%b8%8e%e6%8b%89%e5%8f%96" class="header-anchor"&gt;&lt;/a&gt;3. 推送与拉取&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;git push&lt;/strong&gt;：把本地代码推送到远程仓库&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;git pull&lt;/strong&gt;：把远程仓库的最新代码拉到本地合并&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push origin main &lt;span class="c1"&gt;# 把本地代码推送到远程 main 分支&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git pull origin main &lt;span class="c1"&gt;# 把远程最新代码更新到本地&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#这一变化始于2020年10月，GitHub为了推动更具包容性的术语，将新仓库的默认分支名称从传统的 master 更改为 main‌&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;details&gt;&#13;&#10;&lt;summary&gt;本地推送远程库&lt;/summary&gt;&#13;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; public&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git init &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add .&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;first commit&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git branch -M main&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git remote add origin https://github.com/你的名字/你的仓库名.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push -u origin main&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/details&gt;&#13;&#10;&lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/qq_34769162/article/details/116379638" target="_blank" rel="noopener"&#10; &gt;fatal:remote origin already exiests.&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;处理方法：&lt;code&gt;git remote rm origin&lt;/code&gt;&lt;/p&gt;&#10;&lt;h2 id="三git-进阶技巧"&gt;&lt;a href="#%e4%b8%89git-%e8%bf%9b%e9%98%b6%e6%8a%80%e5%b7%a7" class="header-anchor"&gt;&lt;/a&gt;三、Git 进阶技巧&#10;&lt;/h2&gt;&lt;h3 id="1-设置别名"&gt;&lt;a href="#1-%e8%ae%be%e7%bd%ae%e5%88%ab%e5%90%8d" class="header-anchor"&gt;&lt;/a&gt;1. 设置别名&#10;&lt;/h3&gt;&lt;p&gt;用 &lt;code&gt;alias&lt;/code&gt; 给常用命令起别名，可以简化输入。基本语法：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global alias.别名 git命令&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;例如给 commit 和 status 起别名：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global alias.ci commit &lt;span class="c1"&gt;# 用 ci 代替 commit&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global alias.st status &lt;span class="c1"&gt;# 用 st 代替 status&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;别名可以根据个人习惯自由设定。设置后，可以在 &lt;code&gt;.gitconfig&lt;/code&gt; 文件里看到对应的 &lt;code&gt;alias&lt;/code&gt; 配置；不需要时删掉即可。&lt;/p&gt;&#10;&lt;h3 id="2-查看改动"&gt;&lt;a href="#2-%e6%9f%a5%e7%9c%8b%e6%94%b9%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;2. 查看改动&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git diff&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-版本回滚"&gt;&lt;a href="#3-%e7%89%88%e6%9c%ac%e5%9b%9e%e6%bb%9a" class="header-anchor"&gt;&lt;/a&gt;3. 版本回滚&#10;&lt;/h3&gt;&lt;p&gt;先用 &lt;code&gt;git log&lt;/code&gt; 查看版本号（&lt;code&gt;commit&lt;/code&gt; 后面那一长串就是版本号）：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git reset --hard 版本号 &lt;span class="c1"&gt;# 回退并丢弃当前工作区的修改&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git reset --soft 版本号 &lt;span class="c1"&gt;# 回退但保留当前工作区的修改，可重新提交&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="四github-实用插件与工具"&gt;&lt;a href="#%e5%9b%9bgithub-%e5%ae%9e%e7%94%a8%e6%8f%92%e4%bb%b6%e4%b8%8e%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;四、GitHub 实用插件与工具&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Octotree&lt;/strong&gt;：目录树&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Sourcegraph&lt;/strong&gt;：在线代码查看器&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;GITzip&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;图床方案：使用 GitHub + PicGo 搭建图床。&lt;/p&gt;&#10;&lt;h2 id="参考资料"&gt;&lt;a href="#%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99" class="header-anchor"&gt;&lt;/a&gt;参考资料&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://github.com/CatOneTwo/GitHub-Tutorial" target="_blank" rel="noopener"&#10; &gt;GitHub-Tutorial（GitHub 小白入门）&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://blog.csdn.net/weixin_40922744/article/details/107576748" target="_blank" rel="noopener"&#10; &gt;fatal: Could not read from remote repository.&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://blog.csdn.net/qq_34769162/article/details/116379638" target="_blank" rel="noopener"&#10; &gt;fatal: remote origin already exists.&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;</description></item></channel></rss>