<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>FluxionWatt Blog</title>
        <link>https://www.fluxionwatt.com/en/blog/</link>
        <description>FluxionWatt Blog</description>
        <lastBuildDate>Thu, 23 Oct 2025 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[为什么储能行业充放电倍率都是 0.5C]]></title>
            <link>https://www.fluxionwatt.com/en/blog/why-charge-discharge-storage-50c/</link>
            <guid>https://www.fluxionwatt.com/en/blog/why-charge-discharge-storage-50c/</guid>
            <pubDate>Thu, 23 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[本文对储能充放电倍率做一个说明。]]></description>
            <content:encoded><![CDATA[<p>很多电化学储能项目（尤其是电网侧、工商业侧的大型电池储能系统 BESS）在参数表上都会出现一个熟悉的数字：<strong>0.5C 充放电倍率</strong>。看起来好像整个行业都默认了 0.5C，这背后其实是 <strong>电芯特性、寿命成本、安全和电网应用场景多方面权衡的结果</strong>。</p>
<blockquote>
<p>先简单回顾：<br>
<strong>0.5C 的含义</strong>：</p>
<ul>
<li class="">对于容量为 <em>100Ah</em> 的电池，0.5C 放电电流就是 <em>50A</em>；</li>
<li class="">理论上 2 小时充满或放空，所以 0.5C 往往对应“2 小时制”储能系统。</li>
</ul>
</blockquote>
<p>下面从几个维度拆开讲。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="一电芯物理特性05c-是寿命安全与效率的甜点位">一、电芯物理特性：0.5C 是寿命、安全与效率的“甜点位”<a href="https://www.fluxionwatt.com/en/blog/why-charge-discharge-storage-50c/#%E4%B8%80%E7%94%B5%E8%8A%AF%E7%89%A9%E7%90%86%E7%89%B9%E6%80%A705c-%E6%98%AF%E5%AF%BF%E5%91%BD%E5%AE%89%E5%85%A8%E4%B8%8E%E6%95%88%E7%8E%87%E7%9A%84%E7%94%9C%E7%82%B9%E4%BD%8D" class="hash-link" aria-label="Direct link to 一、电芯物理特性：0.5C 是寿命、安全与效率的“甜点位”" title="Direct link to 一、电芯物理特性：0.5C 是寿命、安全与效率的“甜点位”" translate="no">​</a></h2>
<p>大型储能现在主流用的是 <strong>磷酸铁锂（LFP）能量型电芯</strong>，不是动力电池那种高 C 倍率“暴力玩家”。对这类能量型电芯来说：</p>
<ol>
<li class="">
<p><strong>寿命在 0.5C 附近最划算</strong></p>
<ul>
<li class="">0.25C～0.5C：循环寿命可以轻松做到 6000–10000 次甚至更多；</li>
<li class="">拉到 1C：同样的电芯体系下，容量衰减明显加快，寿命可能直接打个 7 折甚至更低。<br>
<!-- -->对于要求 10 年、15 年的电站来说，<strong>寿命一旦缩短就是实打实的度电成本上升</strong>，所以大家自然会往 0.5C 附近靠。</li>
</ul>
</li>
<li class="">
<p><strong>发热少，热管理简单、安全边际大</strong></p>
<ul>
<li class="">大电流意味着 <strong>I²R 损耗急剧放大</strong>，发热上去，就要：<!-- -->
<ul>
<li class="">更复杂、更贵的冷却系统；</li>
<li class="">更苛刻的安全设计（热失控防护、绝缘距、电气间隙等）。</li>
</ul>
</li>
<li class="">0.5C 下发热可控，<strong>空调 / 液冷系统压力小很多</strong>，安全冗余更宽松，整个系统 CAPEX 也更友好。</li>
</ul>
</li>
<li class="">
<p><strong>效率更高</strong></p>
<ul>
<li class="">低 C 倍率下，内阻损耗小一大截，系统往返效率更高。</li>
<li class="">对于以“搬运能量”为主的储能（削峰填谷、调峰），<strong>效率比瞬时大功率更重要</strong>——多赚一点度电收益，远比瞬时多一点峰值功率划算。</li>
</ul>
</li>
</ol>
<p>综合下来：<br>
<strong>0.5C 是“物理上电芯比较舒服”的点</strong>，再高就开始明显吃寿命和安全冗余了。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="二电网应用场景2-小时--4-小时制天然推导出-05c">二、电网应用场景：2 小时 / 4 小时制天然推导出 0.5C<a href="https://www.fluxionwatt.com/en/blog/why-charge-discharge-storage-50c/#%E4%BA%8C%E7%94%B5%E7%BD%91%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF2-%E5%B0%8F%E6%97%B6--4-%E5%B0%8F%E6%97%B6%E5%88%B6%E5%A4%A9%E7%84%B6%E6%8E%A8%E5%AF%BC%E5%87%BA-05c" class="hash-link" aria-label="Direct link to 二、电网应用场景：2 小时 / 4 小时制天然推导出 0.5C" title="Direct link to 二、电网应用场景：2 小时 / 4 小时制天然推导出 0.5C" translate="no">​</a></h2>
<p>再看应用侧。</p>
<p>电网侧和工商业侧的大部分储能项目，其商业模式/技术要求往往是：</p>
<ul>
<li class=""><strong>2 小时、4 小时、甚至更长时长的能量型储能</strong>，而不是类似电动车那种几分钟内能量爆发完的“动力型”场景。</li>
<li class="">常见场景：<!-- -->
<ul>
<li class="">削峰填谷：白天充、晚上放，或者反过来；</li>
<li class="">调峰调频：既参与调频，又承担一定峰谷价差套利；</li>
<li class="">配合光伏、风电做平滑、跟踪计划曲线等。</li>
</ul>
</li>
</ul>
<p>在这种场景下，很自然就出现：</p>
<ul>
<li class=""><strong>2 小时制（0.5C）</strong>：<!-- -->
<ul>
<li class="">到底层就是“我有 1MWh 的电，需要以 0.5MW 的功率连放 2 小时”；</li>
<li class="">0.5C 就是一个“既能参与快速调度，又不会太激进”的折中。</li>
</ul>
</li>
<li class=""><strong>4 小时制（0.25C）</strong> 也很常见：<!-- -->
<ul>
<li class="">尤其在以储能替代传统调峰机组的场景；</li>
<li class="">但 0.25C 会拉低短时功率密度，在某些调频场景就略吃亏。</li>
</ul>
</li>
</ul>
<p>所以行业里你经常会看到：<strong>0.25C（4h）、0.5C（2h）、1C（1h）三种主流时长</strong>，而其中 0.5C 用得最多，因为它是“能量型”和“功率型”之间的中庸选择。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="三系统成本视角电池和-pcs-之间的平衡点">三、系统成本视角：电池和 PCS 之间的平衡点<a href="https://www.fluxionwatt.com/en/blog/why-charge-discharge-storage-50c/#%E4%B8%89%E7%B3%BB%E7%BB%9F%E6%88%90%E6%9C%AC%E8%A7%86%E8%A7%92%E7%94%B5%E6%B1%A0%E5%92%8C-pcs-%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B9%B3%E8%A1%A1%E7%82%B9" class="hash-link" aria-label="Direct link to 三、系统成本视角：电池和 PCS 之间的平衡点" title="Direct link to 三、系统成本视角：电池和 PCS 之间的平衡点" translate="no">​</a></h2>
<p>再往系统层做一层算账，就更清晰了。</p>
<p>假设我们要做一个 <strong>1MWh 的储能系统</strong>，目标是能做日常削峰，也能适当参与调频：</p>
<ul>
<li class="">选 <strong>0.5C</strong>：<!-- -->
<ul>
<li class="">电池侧：1MWh 用能量型电芯，单 kWh 价格较低，寿命更长；</li>
<li class="">PCS：按 0.5MW 配置，功率器件、电缆、开关设备等成本适中；</li>
<li class="">日常功率上也基本够用。</li>
</ul>
</li>
<li class="">选 <strong>1C</strong>：<!-- -->
<ul>
<li class="">电池侧：能短时间喷 1MW，电芯要用更“凶”的配方或更高额定倍率，单 kWh 成本更高；</li>
<li class="">PCS：要到 1MW，变流器、电气设备成本上升明显；</li>
<li class="">寿命/发热压力更大，后续维护成本攀升。</li>
</ul>
</li>
<li class="">选 <strong>0.25C</strong>：<!-- -->
<ul>
<li class="">电池容量翻倍才能达到同样功率要求（比如你还是要求 0.5MW 输出，那系统就要 2MWh），</li>
<li class="">虽然电芯本身更轻松，但初始 CAPEX 可能撑不住。</li>
</ul>
</li>
</ul>
<p>现实工程里，大家算来算去：<br>
<strong>在“成本 / 寿命 / 功率需求”三者之间，0.5C 最像一个全局最优点</strong>，因此逐渐在行业中“固化”为默认值。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="四也不是全部都是-05c而是主流标准化在-05c">四、也不是“全部都是 0.5C”，而是主流标准化在 0.5C<a href="https://www.fluxionwatt.com/en/blog/why-charge-discharge-storage-50c/#%E5%9B%9B%E4%B9%9F%E4%B8%8D%E6%98%AF%E5%85%A8%E9%83%A8%E9%83%BD%E6%98%AF-05c%E8%80%8C%E6%98%AF%E4%B8%BB%E6%B5%81%E6%A0%87%E5%87%86%E5%8C%96%E5%9C%A8-05c" class="hash-link" aria-label="Direct link to 四、也不是“全部都是 0.5C”，而是主流标准化在 0.5C" title="Direct link to 四、也不是“全部都是 0.5C”，而是主流标准化在 0.5C" translate="no">​</a></h2>
<p>严格说，<strong>“储能行业充放电倍率都是 0.5C”这句话并不完全准确</strong>：</p>
<ul>
<li class="">电网快速调频、一次调频等场景中，1C 甚至 2C 的系统也存在；</li>
<li class="">户用/小型工商业储能，很多是 <strong>0.5C–1C</strong> 可选；</li>
<li class="">有的厂家会标注：<!-- -->
<ul>
<li class="">额定功率：0.5C</li>
<li class="">最大短时功率：1C（比如 10 秒、30 秒）</li>
</ul>
</li>
</ul>
<p>只不过，在 <strong>大规模电站 / 工商业标准化产品</strong> 里，为了简化选型、降本、统一设计，<strong>0.5C 被作为“缺省配置”锁死在方案里</strong>，看起来就像“全行业都是 0.5C”。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="五小结">五、小结<a href="https://www.fluxionwatt.com/en/blog/why-charge-discharge-storage-50c/#%E4%BA%94%E5%B0%8F%E7%BB%93" class="hash-link" aria-label="Direct link to 五、小结" title="Direct link to 五、小结" translate="no">​</a></h2>
<p>用一句工程师视角的话总结：</p>
<blockquote>
<p><strong>0.5C 不是天生的标准，而是电芯、寿命、安全、电网业务和成本综合博弈之后，工程实践自然收敛出来的“行业习惯值”。</strong></p>
</blockquote>
<ul>
<li class="">对电芯：0.5C 是能量型 LFP 舒服、安全、效率高的工作点；</li>
<li class="">对系统：刚好对应 2 小时制储能，能满足大多数电网和工商业场景；</li>
<li class="">对成本：电池 CAPEX、PCS CAPEX 和寿命折损综合下来，总体 TCO 最优附近。</li>
</ul>
<p>所以你在标书、选型手册、项目方案里看到满眼的 <strong>“0.5C”</strong>，本质上是在看整个行业在大量项目迭代之后形成的一种现实妥协和平衡。</p>]]></content:encoded>
            <category>hugo</category>
            <category>optimization</category>
            <category>performance</category>
            <category>seo</category>
        </item>
        <item>
            <title><![CDATA[Content Management in Hugo: Best Practices]]></title>
            <link>https://www.fluxionwatt.com/en/blog/content-management-hugo/</link>
            <guid>https://www.fluxionwatt.com/en/blog/content-management-hugo/</guid>
            <pubDate>Mon, 24 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn effective strategies for managing content in Hugo, from organizing your content structure to implementing taxonomies and creating dynamic content relationships.]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>Effective content management is crucial for maintaining a scalable Hugo site. This guide covers best practices for organizing and managing your content.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="content-organization">Content Organization<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#content-organization" class="hash-link" aria-label="Direct link to Content Organization" title="Direct link to Content Organization" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="directory-structure">Directory Structure<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#directory-structure" class="hash-link" aria-label="Direct link to Directory Structure" title="Direct link to Directory Structure" translate="no">​</a></h3>
<p>Create a logical content hierarchy:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">Content Structure</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">content/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">├── blog/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│   ├── tech/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│   ├── tutorials/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│   └── news/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">├── products/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">├── about/</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">└── docs/</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="front-matter-templates">Front Matter Templates<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#front-matter-templates" class="hash-link" aria-label="Direct link to Front Matter Templates" title="Direct link to Front Matter Templates" translate="no">​</a></h3>
<p>Use archetypes to standardize content:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">archetypes/blog.md</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">---</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">title</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> "</span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> replace .Name "</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">" " " </span><span class="token punctuation" style="color:#393A34">|</span><span class="token plain"> title </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">date</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> .Date </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">draft</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">categories</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">tags</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">featured_image</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">description</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">author</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">""</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">---</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">## Introduction</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">Your introduction here</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">## Main Content</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">Your content here</span><span class="token punctuation" style="color:#393A34">]</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="content-types">Content Types<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#content-types" class="hash-link" aria-label="Direct link to Content Types" title="Direct link to Content Types" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="page-bundles">Page Bundles<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#page-bundles" class="hash-link" aria-label="Direct link to Page Bundles" title="Direct link to Page Bundles" translate="no">​</a></h3>
<p>Organize related content together:</p>
<ul>
<li class="">Group images with content</li>
<li class="">Manage page resources</li>
<li class="">Maintain content hierarchy</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="taxonomies">Taxonomies<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#taxonomies" class="hash-link" aria-label="Direct link to Taxonomies" title="Direct link to Taxonomies" translate="no">​</a></h3>
<p>Create meaningful content relationships:</p>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">config.toml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">[taxonomies]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  category = "categories"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  tag = "tags"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  series = "series"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  author = "authors"</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="content-workflow">Content Workflow<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#content-workflow" class="hash-link" aria-label="Direct link to Content Workflow" title="Direct link to Content Workflow" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="draft-management">Draft Management<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#draft-management" class="hash-link" aria-label="Direct link to Draft Management" title="Direct link to Draft Management" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Creating Drafts</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">hugo new blog/my-draft-post.md</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Preview Drafts</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">hugo server -D</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Publishing Content</strong></p>
<ul>
<li class="">Update front matter</li>
<li class="">Review content</li>
<li class="">Deploy changes</li>
</ul>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="content-updates">Content Updates<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#content-updates" class="hash-link" aria-label="Direct link to Content Updates" title="Direct link to Content Updates" translate="no">​</a></h3>
<p>Maintain content freshness:</p>
<ol>
<li class="">
<p><strong>Regular Reviews</strong></p>
<ul>
<li class="">Check for outdated information</li>
<li class="">Update screenshots</li>
<li class="">Verify external links</li>
</ul>
</li>
<li class="">
<p><strong>Version Control</strong></p>
<ul>
<li class="">Track content changes</li>
<li class="">Collaborate with team</li>
<li class="">Maintain history</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-content">Dynamic Content<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#dynamic-content" class="hash-link" aria-label="Direct link to Dynamic Content" title="Direct link to Dynamic Content" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="related-content">Related Content<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#related-content" class="hash-link" aria-label="Direct link to Related Content" title="Direct link to Related Content" translate="no">​</a></h3>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/partials/related.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{{ $related := .Site.RegularPages.Related . | first 3 }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">{{ with $related }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">h3</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Related Posts</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">h3</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">ul</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    {{ range . }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">li</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">a</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">href</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">{{ .RelPermalink }}</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">{{ .Title }}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">a</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">li</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    {{ end }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">ul</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">{{ end }}</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="content-reuse">Content Reuse<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#content-reuse" class="hash-link" aria-label="Direct link to Content Reuse" title="Direct link to Content Reuse" translate="no">​</a></h3>
<p>Create reusable content snippets:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/shortcodes/notice.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">notice notice-{{ .Get 0 }}</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  {{ .Inner | markdownify }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="seo-and-metadata">SEO and Metadata<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#seo-and-metadata" class="hash-link" aria-label="Direct link to SEO and Metadata" title="Direct link to SEO and Metadata" translate="no">​</a></h2>
<ol>
<li class=""><strong>Title Optimization</strong></li>
<li class=""><strong>Meta Descriptions</strong></li>
<li class=""><strong>URL Structure</strong></li>
<li class=""><strong>Image Alt Text</strong></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="content-backup">Content Backup<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#content-backup" class="hash-link" aria-label="Direct link to Content Backup" title="Direct link to Content Backup" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="backup-strategies">Backup Strategies<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#backup-strategies" class="hash-link" aria-label="Direct link to Backup Strategies" title="Direct link to Backup Strategies" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Version Control</strong></p>
<ul>
<li class="">Git repository</li>
<li class="">Regular commits</li>
<li class="">Remote backups</li>
</ul>
</li>
<li class="">
<p><strong>External Storage</strong></p>
<ul>
<li class="">Cloud storage</li>
<li class="">Local backups</li>
<li class="">Asset management</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Good content management practices are essential for maintaining a successful Hugo site. By following these guidelines, you can create an efficient and scalable content workflow.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resources">Resources<a href="https://www.fluxionwatt.com/en/blog/content-management-hugo/#resources" class="hash-link" aria-label="Direct link to Resources" title="Direct link to Resources" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://gohugo.io/content-management/" target="_blank" rel="noopener noreferrer" class="">Hugo Content Management Documentation</a></li>
<li class=""><a href="https://gohugo.io/content-management/archetypes/" target="_blank" rel="noopener noreferrer" class="">Hugo Archetypes Guide</a></li>
<li class=""><a href="https://gohugo.io/content-management/taxonomies/" target="_blank" rel="noopener noreferrer" class="">Hugo Taxonomies Documentation</a></li>
</ul>]]></content:encoded>
            <category>hugo</category>
            <category>content-management</category>
            <category>organization</category>
            <category>workflow</category>
        </item>
        <item>
            <title><![CDATA[Modbus协议介绍]]></title>
            <link>https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/</link>
            <guid>https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/</guid>
            <pubDate>Mon, 24 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Modbus协议由Modicon公司于1979年开发，最初用于其可编程逻辑控制器（PLC）的通讯。随着时间推移，它因免费开放和易于实现而成为工业标准。]]></description>
            <content:encoded><![CDATA[<p>在工业自动化领域，Modbus绝对是个绕不开的名字。作为一个从上世纪70年代末就诞生的通信协议，历久弥坚，默默支撑着无数工厂和设备的互联互通。今天咱们就来聊聊Modbus这个工业通信的元老级协议。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus的历史发展">Modbus的历史发展<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus%E7%9A%84%E5%8E%86%E5%8F%B2%E5%8F%91%E5%B1%95" class="hash-link" aria-label="Direct link to Modbus的历史发展" title="Direct link to Modbus的历史发展" translate="no">​</a></h2>
<p>1979年，Modicon公司（也就是现在的施耐德电气前身）推出了一款专为可编程逻辑控制器（<a href="https://zhida.zhihu.com/search?content_id=259799099&amp;content_type=Article&amp;match_order=1&amp;q=PLC&amp;zhida_source=entity" target="_blank" rel="noopener noreferrer" class="">PLC</a>）设计的通信协议，这就是Modbus。当时的工业现场，设备之间的通信还停留在电压或电流信号的原始阶段，比如用高低电平表示开关状态，或者用0-10V、4-20mA来传递模拟量数据。Modbus的出现，就像给这些设备装上了翻译器，让PLC和现场设备能更高效地对话。</p>
<p><img decoding="async" loading="lazy" src="https://pica.zhimg.com/v2-409dd9793660c250081028fed8ab50a8_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus协议发展时间线</p>
<p>Modbus是<a href="https://zhida.zhihu.com/search?content_id=259799099&amp;content_type=Article&amp;match_order=1&amp;q=%E7%8E%B0%E5%9C%BA%E6%80%BB%E7%BA%BF&amp;zhida_source=entity" target="_blank" rel="noopener noreferrer" class="">现场总线</a>（Fieldbus）协议的鼻祖。现场总线是什么？简单来说，它就是工业网络的通信方式，能让多个设备通过一对线缆连接到控制器，省去了点对点接线的麻烦。过去每加一个传感器就得拉一根线，布线成本和复杂度跟蜘蛛网似的，而现场总线就有点像WiFi，把设备们都连到一个网络里，省时省力。</p>
<p>除了Modbus，工业领域还有<a href="https://zhida.zhihu.com/search?content_id=259799099&amp;content_type=Article&amp;match_order=1&amp;q=Profibus&amp;zhida_source=entity" target="_blank" rel="noopener noreferrer" class="">Profibus</a>、<a href="https://zhida.zhihu.com/search?content_id=259799099&amp;content_type=Article&amp;match_order=1&amp;q=DeviceNet&amp;zhida_source=entity" target="_blank" rel="noopener noreferrer" class="">DeviceNet</a>、ControlNet等一堆现场总线协议，但Modbus凭着简单易用、开源免费的特点，成了最普及的工业协议之一，至今在全球工厂里依然随处可见。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus设计">Modbus设计<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus%E8%AE%BE%E8%AE%A1" class="hash-link" aria-label="Direct link to Modbus设计" title="Direct link to Modbus设计" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://pic4.zhimg.com/v2-db3a72072776678ac0de161b684af611_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus主从通信模型</p>
<p>Modbus的设计初衷是让PLC和现场设备顺畅交流。最初它跑在串口通信上，比如RS-232或RS-485，速度慢但够稳定。后来随着网络技术发展，Modbus也升级成了支持TCP/IP和以太网的Modbus TCP，适应了现代工业网络的需求。</p>
<p>Modbus 的核心是个 <strong>主从通信模型</strong>：一个主设备（Master）发号施令，多个从设备（Slave）老老实实响应。主设备可以是 PLC、SCADA 系统或者一台工控机，从设备可能是传感器、变频器或者其他智能仪表。主设备主动发起请求，比如读取数据或发送控制命令，从设备根据请求返回数据或执行操作，整个过程清晰明了。</p>
<p><img decoding="async" loading="lazy" src="https://pic2.zhimg.com/v2-40212528bd7f3bac19ecee187fb0da29_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus数据类型</p>
<p>数据方面，Modbus 支持两种基本格式：</p>
<ul>
<li class=""><strong>离散量</strong>：也就是单个 bit，表示开关状态，比如 0/1、真/假。</li>
<li class=""><strong>寄存器</strong>：16 位字，通常存数值，比如温度、压力，或者其他需要表达的复杂数据。</li>
</ul>
<p>这种简单的数据组织方式，让 Modbus 既能应对简单的开关控制，也能处理复杂的数值传输，适应性极强。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus数据传输">Modbus数据传输<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93" class="hash-link" aria-label="Direct link to Modbus数据传输" title="Direct link to Modbus数据传输" translate="no">​</a></h2>
<p>Modbus 的数据传输有自己的套路，了解这些细节对调试和排错至关重要。拿最基础的位传输来说，Modbus 按 <strong>先低位后高位</strong> 的顺序发送比特（LSB to MSB）。比如有个字节是 11010010，实际传输时会拆成单个比特，按 0、1、0、0、1、0、1、1 的顺序依次发送。</p>
<p><img decoding="async" loading="lazy" src="https://pic1.zhimg.com/v2-eb522fa7214fff037912cca1f0d484f8_1440w.jpg" alt="" class="img_ev3q"></p>
<p>位传输顺序 (LSB to MSB)</p>
<p>为什么要这么讲究？因为接收端得按同样的规则解码，才能确保数据不乱套。这就像调试串口时得先确认波特率、奇偶校验和停止位一样，Modbus 的位序就是类似的基础约定。</p>
<p>至于字节传输，Modbus 根据具体实现方式（RTU、ASCII 或 TCP）会有不同处理，待会我们会细聊。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="地址和功能码">地址和功能码<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#%E5%9C%B0%E5%9D%80%E5%92%8C%E5%8A%9F%E8%83%BD%E7%A0%81" class="hash-link" aria-label="Direct link to 地址和功能码" title="Direct link to 地址和功能码" translate="no">​</a></h2>
<p>Modbus 的通信离不开 <code>地址</code> 和 <code>功能码</code>，这两者就像指挥系统的大脑和指令集。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="设备地址">设备地址<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#%E8%AE%BE%E5%A4%87%E5%9C%B0%E5%9D%80" class="hash-link" aria-label="Direct link to 设备地址" title="Direct link to 设备地址" translate="no">​</a></h3>
<p>每个从设备都有一个独一无二的地址，通常从 1 到 247。主设备发送请求时，会在消息中带上目标从设备的地址，确保命令发到正确的设备。这就像你用快递寄包裹，得写清楚收件人地址，不然包裹可就送错地方了。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="寄存器地址">寄存器地址<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#%E5%AF%84%E5%AD%98%E5%99%A8%E5%9C%B0%E5%9D%80" class="hash-link" aria-label="Direct link to 寄存器地址" title="Direct link to 寄存器地址" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" src="https://pic3.zhimg.com/v2-37111d9496be96f409e2322e300796b2_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus寄存器地址映射</p>
<p>Modbus 里的数据按类型存放在不同寄存器里，常见的有：</p>
<ul>
<li class=""><strong>线圈（Coils）</strong>：从 00001 开始，存开关量，读写都行。</li>
<li class=""><strong>离散输入（Discrete Inputs）</strong>：从 10001 开始，存只读的开关量。</li>
<li class=""><strong>输入寄存器（Input Registers）</strong>：从 30001 开始，存只读的数值。</li>
<li class=""><strong>保持寄存器（Holding Registers）</strong>：从 40001 开始，存可读写的数值。</li>
</ul>
<p>通过指定寄存器地址，主设备就能精准地读写目标数据。比如，想读取某个温度传感器的值，可能就要访问 30001 号输入寄存器。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="功能码">功能码<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#%E5%8A%9F%E8%83%BD%E7%A0%81" class="hash-link" aria-label="Direct link to 功能码" title="Direct link to 功能码" translate="no">​</a></h3>
<p>功能码告诉从设备该做什么。</p>
<p><img decoding="async" loading="lazy" src="https://pica.zhimg.com/v2-b9c07f1160719caf91a6312b92d6b6ce_1440w.jpg" alt="" class="img_ev3q"></p>
<p>常用功能码</p>
<p>主设备发送的消息帧里会包含设备地址、功能码和寄存器地址，从设备收到后根据功能码执行相应操作。这就像嵌入式开发中，单片机收到上位机的指令后，解析命令字然后执行对应动作。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus-的三种实现">Modbus 的三种实现<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus-%E7%9A%84%E4%B8%89%E7%A7%8D%E5%AE%9E%E7%8E%B0" class="hash-link" aria-label="Direct link to Modbus 的三种实现" title="Direct link to Modbus 的三种实现" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://pica.zhimg.com/v2-44d380afd406a70225bab7b9270c644e_1440w.jpg" alt="" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" src="https://pic4.zhimg.com/v2-ba5f795ceab70e24ff615c16c14590a3_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus三种实现方式对比</p>
<p>Modbus 有三种主要实现方式：RTU、ASCII 和 TCP，每种都有自己的特点和适用场景。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus-rtu">Modbus RTU<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus-rtu" class="hash-link" aria-label="Direct link to Modbus RTU" title="Direct link to Modbus RTU" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" src="https://pic4.zhimg.com/v2-abec9e82213d7e00edbd7e62406483b7_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus RTU 消息帧结构</p>
<p>RTU（Remote Terminal Unit）是 Modbus 的经典实现，特别适合串口通信，比如 RS-232 或 RS-485。RS-485 尤其常见，因为它支持长距离传输（上千米）和多点通信，抗干扰能力也强，非常适合工厂里设备分散的场景。</p>
<p>RTU 用二进制编码，消息帧紧凑，包含设备地址、功能码、数据和 CRC 校验。效率高、速度快，但对时序要求严格，调试时得格外注意波特率和帧间间隔。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus-ascii">Modbus ASCII<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus-ascii" class="hash-link" aria-label="Direct link to Modbus ASCII" title="Direct link to Modbus ASCII" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" src="https://pic2.zhimg.com/v2-3fa7a693c0f184c9fbeac9e0275dbbd7_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus ASCII 消息帧结构</p>
<p>ASCII 模式用可读的 ASCII 字符（0-9、A-F）表示数据，每个字节拆成两个字符发送。比如二进制数据 0xAB 会变成 ASCII 的 41 42。消息帧以冒号（:）开头，回车换行结尾，适合需要人眼调试的场景。</p>
<p>但 ASCII 模式消息长、传输慢，效率远不如 RTU，实际工业现场用得少，多见于一些老旧设备或者教学场景。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus-tcp拥抱以太网">Modbus TCP：拥抱以太网<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus-tcp%E6%8B%A5%E6%8A%B1%E4%BB%A5%E5%A4%AA%E7%BD%91" class="hash-link" aria-label="Direct link to Modbus TCP：拥抱以太网" title="Direct link to Modbus TCP：拥抱以太网" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" src="https://pic1.zhimg.com/v2-2d660bf6dfe374082e5e6f1e6ade2b00_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus TCP 协议栈</p>
<p>TCP 模式是 Modbus 的以太网版本，基于 TCP/IP 协议，跑在标准以太网 infrastructure 上。相比串口，TCP 速度快、距离远，还能轻松接入企业网络，特别适合现代化的 SCADA 系统或远程监控。</p>
<p><img decoding="async" loading="lazy" src="https://pic4.zhimg.com/v2-f4837016f8087aa5b00547c37db1a54d_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus TCP MBAP头部结构</p>
<p>TCP 消息帧去掉了 CRC 校验（因为 TCP 协议自带可靠性保证），增加了 MBAP 头（Modbus Application Protocol Header），包含事务标识、协议标识等字段。很多新能源项目，比如光伏电站的逆变器监控，就喜欢用 Modbus TCP，方便和云端系统对接。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="modbus为什么能成功">Modbus为什么能成功<a href="https://www.fluxionwatt.com/en/blog/introduction-to-modbus-protocol/#modbus%E4%B8%BA%E4%BB%80%E4%B9%88%E8%83%BD%E6%88%90%E5%8A%9F" class="hash-link" aria-label="Direct link to Modbus为什么能成功" title="Direct link to Modbus为什么能成功" translate="no">​</a></h2>
<p>Modbus的成功离不开它的简单和开放。协议设计直白，学习曲线低，工程师随便翻翻文档就能上手实现。它的开源免费属性也让厂商无需支付授权费，降低了成本。很多中小型工厂，设备老旧，预算有限，但是借助Modbus，串口转TCP的网关一接，老设备也能接入现代网络。</p>
<p><img decoding="async" loading="lazy" src="https://pic2.zhimg.com/v2-7297c4d5d20b4615c8726bfe4b5d53af_1440w.jpg" alt="" class="img_ev3q"></p>
<p>RS-485 总线拓扑</p>
<p><img decoding="async" loading="lazy" src="https://pic2.zhimg.com/v2-8a590dfff65282996d66491abdc04b49_1440w.jpg" alt="" class="img_ev3q"></p>
<p>Modbus TCP 网络拓扑</p>
<p>当然，Modbus也有短板，比如数据吞吐量低，实时性不如一些现代协议（比如EtherCAT）。但在很多场景下，比如环境监控、简单设备控制，它的稳定性和易用性完全够用。</p>
<p>在工业通信的江湖里，Modbus或许不是最快的，也不是最先进的，但它绝对是最实用、最可靠的老朋友。</p>]]></content:encoded>
            <category>modbus</category>
            <category>content-management</category>
            <category>organization</category>
            <category>workflow</category>
        </item>
        <item>
            <title><![CDATA[Optimizing Hugo Performance: Speed Up Your Site]]></title>
            <link>https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/</link>
            <guid>https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/</guid>
            <pubDate>Sun, 23 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn advanced techniques to optimize your Hugo site for better performance, faster load times, and improved user experience.]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>Performance is crucial for user experience and SEO. In this guide, we'll explore various techniques to optimize your Hugo site for maximum performance.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="asset-optimization">Asset Optimization<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#asset-optimization" class="hash-link" aria-label="Direct link to Asset Optimization" title="Direct link to Asset Optimization" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="image-optimization">Image Optimization<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#image-optimization" class="hash-link" aria-label="Direct link to Image Optimization" title="Direct link to Image Optimization" translate="no">​</a></h3>
<p>Images often contribute the most to page weight. Here's how to optimize them:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/shortcodes/optimized-image.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{{ $image := .Page.Resources.GetMatch (printf "%s" (.Get "src")) }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">{{ $options := dict "targetWidth" 800 "quality" 85 }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">{{ $processed := $image.Process "resize 800x webp q85" }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">img</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">src</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">{{ $processed.RelPermalink }}</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><br></div><div class="token-line" style="color:#393A34"><span class="token tag" style="color:#00009f">     </span><span class="token tag attr-name" style="color:#00a4db">alt</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">{{ .Get </span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-name" style="color:#00a4db">alt"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">}}"</span><span class="token tag" style="color:#00009f"></span><br></div><div class="token-line" style="color:#393A34"><span class="token tag" style="color:#00009f">     </span><span class="token tag attr-name" style="color:#00a4db">loading</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">lazy</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"></span><br></div><div class="token-line" style="color:#393A34"><span class="token tag" style="color:#00009f">     </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">rounded-lg shadow-lg</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="css-and-javascript">CSS and JavaScript<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#css-and-javascript" class="hash-link" aria-label="Direct link to CSS and JavaScript" title="Direct link to CSS and JavaScript" translate="no">​</a></h3>
<p>Minimize your asset footprint:</p>
<ul>
<li class="">Minify CSS and JavaScript</li>
<li class="">Bundle assets appropriately</li>
<li class="">Remove unused code</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="caching-strategies">Caching Strategies<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#caching-strategies" class="hash-link" aria-label="Direct link to Caching Strategies" title="Direct link to Caching Strategies" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong>Browser Caching</strong></p>
<ul>
<li class="">Set appropriate cache headers</li>
<li class="">Use versioned assets</li>
<li class="">Implement service workers</li>
</ul>
</li>
<li class="">
<p><strong>Hugo Caching</strong></p>
<ul>
<li class="">Use <code>.Scratch</code> for expensive operations</li>
<li class="">Cache partial results</li>
<li class="">Implement memoization</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="content-delivery">Content Delivery<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#content-delivery" class="hash-link" aria-label="Direct link to Content Delivery" title="Direct link to Content Delivery" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cdn-setup">CDN Setup<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#cdn-setup" class="hash-link" aria-label="Direct link to CDN Setup" title="Direct link to CDN Setup" translate="no">​</a></h3>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">config.toml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">[params.cdn]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  enable = true</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  provider = "cloudfront"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  domain = "cdn.example.com"</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="edge-computing">Edge Computing<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#edge-computing" class="hash-link" aria-label="Direct link to Edge Computing" title="Direct link to Edge Computing" translate="no">​</a></h3>
<p>Leverage edge computing for faster content delivery:</p>
<ul>
<li class="">Deploy to multiple regions</li>
<li class="">Use edge functions when needed</li>
<li class="">Implement geo-routing</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="performance-monitoring">Performance Monitoring<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#performance-monitoring" class="hash-link" aria-label="Direct link to Performance Monitoring" title="Direct link to Performance Monitoring" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-metrics">Key Metrics<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#key-metrics" class="hash-link" aria-label="Direct link to Key Metrics" title="Direct link to Key Metrics" translate="no">​</a></h3>
<ol>
<li class="">
<p><strong>Core Web Vitals</strong></p>
<ul>
<li class="">Largest Contentful Paint (LCP)</li>
<li class="">First Input Delay (FID)</li>
<li class="">Cumulative Layout Shift (CLS)</li>
</ul>
</li>
<li class="">
<p><strong>Additional Metrics</strong></p>
<ul>
<li class="">Time to First Byte (TTFB)</li>
<li class="">First Contentful Paint (FCP)</li>
<li class="">Total Blocking Time (TBT)</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="advanced-optimization-techniques">Advanced Optimization Techniques<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#advanced-optimization-techniques" class="hash-link" aria-label="Direct link to Advanced Optimization Techniques" title="Direct link to Advanced Optimization Techniques" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="resource-hints">Resource Hints<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#resource-hints" class="hash-link" aria-label="Direct link to Resource Hints" title="Direct link to Resource Hints" translate="no">​</a></h3>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/partials/head.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">link</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">rel</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">preconnect</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">href</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">https://fonts.googleapis.com</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">link</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">rel</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">preload</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">href</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">/fonts/main.woff2</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">as</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">font</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">type</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">font/woff2</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">crossorigin</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="critical-css">Critical CSS<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#critical-css" class="hash-link" aria-label="Direct link to Critical CSS" title="Direct link to Critical CSS" translate="no">​</a></h3>
<p>Inline critical styles for faster rendering:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/partials/critical-css.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">style</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token style language-css"></span><br></div><div class="token-line" style="color:#393A34"><span class="token style language-css">  </span><span class="token style language-css comment" style="color:#999988;font-style:italic">/* Critical CSS here */</span><span class="token style language-css"></span><br></div><div class="token-line" style="color:#393A34"><span class="token style language-css">  </span><span class="token style language-css selector class" style="color:#00009f">.hero</span><span class="token style language-css"> </span><span class="token style language-css punctuation" style="color:#393A34">{</span><span class="token style language-css"> </span><span class="token style language-css comment" style="color:#999988;font-style:italic">/* ... */</span><span class="token style language-css"> </span><span class="token style language-css punctuation" style="color:#393A34">}</span><span class="token style language-css"></span><br></div><div class="token-line" style="color:#393A34"><span class="token style language-css">  </span><span class="token style language-css selector class" style="color:#00009f">.nav</span><span class="token style language-css"> </span><span class="token style language-css punctuation" style="color:#393A34">{</span><span class="token style language-css"> </span><span class="token style language-css comment" style="color:#999988;font-style:italic">/* ... */</span><span class="token style language-css"> </span><span class="token style language-css punctuation" style="color:#393A34">}</span><span class="token style language-css"></span><br></div><div class="token-line" style="color:#393A34"><span class="token style language-css"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">style</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="seo-optimization">SEO Optimization<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#seo-optimization" class="hash-link" aria-label="Direct link to SEO Optimization" title="Direct link to SEO Optimization" translate="no">​</a></h2>
<ol>
<li class=""><strong>Structured Data</strong></li>
<li class=""><strong>XML Sitemaps</strong></li>
<li class=""><strong>Meta Tags</strong></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Optimizing your Hugo site is an ongoing process. Regular monitoring and adjustments ensure your site maintains peak performance.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resources">Resources<a href="https://www.fluxionwatt.com/en/blog/optimizing-hugo-performance/#resources" class="hash-link" aria-label="Direct link to Resources" title="Direct link to Resources" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://gohugo.io/documentation/" target="_blank" rel="noopener noreferrer" class="">Hugo Performance Documentation</a></li>
<li class=""><a href="https://web.dev/performance/" target="_blank" rel="noopener noreferrer" class="">Web.dev Performance Guide</a></li>
<li class=""><a href="https://pagespeed.web.dev/" target="_blank" rel="noopener noreferrer" class="">PageSpeed Insights</a></li>
</ul>]]></content:encoded>
            <category>hugo</category>
            <category>optimization</category>
            <category>performance</category>
            <category>seo</category>
        </item>
        <item>
            <title><![CDATA[Deploying Hugo Sites: A Complete Guide]]></title>
            <link>https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/</link>
            <guid>https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/</guid>
            <pubDate>Sat, 22 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to deploy your Hugo site to various platforms including Netlify, Vercel, and GitHub Pages.]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>Once you've built your Hugo site, the next step is deploying it to make it accessible to the world. This guide covers various deployment options and best practices.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="popular-deployment-platforms">Popular Deployment Platforms<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#popular-deployment-platforms" class="hash-link" aria-label="Direct link to Popular Deployment Platforms" title="Direct link to Popular Deployment Platforms" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-netlify">1. Netlify<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#1-netlify" class="hash-link" aria-label="Direct link to 1. Netlify" title="Direct link to 1. Netlify" translate="no">​</a></h3>
<p>Netlify offers a seamless deployment experience:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># Create netlify.toml</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">[build]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  publish = "public"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  command = "hugo --gc --minify"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">[build.environment]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  HUGO_VERSION = "0.95.0"</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-vercel">2. Vercel<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#2-vercel" class="hash-link" aria-label="Direct link to 2. Vercel" title="Direct link to 2. Vercel" translate="no">​</a></h3>
<p>Vercel provides excellent performance and analytics.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-github-pages">3. GitHub Pages<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#3-github-pages" class="hash-link" aria-label="Direct link to 3. GitHub Pages" title="Direct link to 3. GitHub Pages" translate="no">​</a></h3>
<p>Perfect for project sites and personal blogs:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">github-workflow.yml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> GitHub Pages</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">on</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">push</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">branches</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> main</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">jobs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">deploy</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">runs-on</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> ubuntu</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">latest</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">steps</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> actions/checkout@v2</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">name</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> Setup Hugo</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> peaceiris/actions</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">hugo@v2</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deployment-best-practices">Deployment Best Practices<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#deployment-best-practices" class="hash-link" aria-label="Direct link to Deployment Best Practices" title="Direct link to Deployment Best Practices" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong>Use Version Control</strong></p>
<ul>
<li class="">Track your changes</li>
<li class="">Collaborate effectively</li>
<li class="">Enable automated deployments</li>
</ul>
</li>
<li class="">
<p><strong>Optimize Assets</strong></p>
<ul>
<li class="">Compress images</li>
<li class="">Minify CSS/JS</li>
<li class="">Enable caching</li>
</ul>
</li>
<li class="">
<p><strong>Configure CI/CD</strong></p>
<ul>
<li class="">Automate builds</li>
<li class="">Run tests</li>
<li class="">Deploy automatically</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="performance-considerations">Performance Considerations<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#performance-considerations" class="hash-link" aria-label="Direct link to Performance Considerations" title="Direct link to Performance Considerations" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong>Page Load Speed</strong></p>
<ul>
<li class="">Optimize images</li>
<li class="">Minimize HTTP requests</li>
<li class="">Use CDN</li>
</ul>
</li>
<li class="">
<p><strong>SEO</strong></p>
<ul>
<li class="">Configure meta tags</li>
<li class="">Create sitemap</li>
<li class="">Enable robots.txt</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-measures">Security Measures<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#security-measures" class="hash-link" aria-label="Direct link to Security Measures" title="Direct link to Security Measures" translate="no">​</a></h2>
<ol>
<li class=""><strong>Enable HTTPS</strong></li>
<li class=""><strong>Configure Headers</strong></li>
<li class=""><strong>Implement CSP</strong></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Choosing the right deployment platform and following best practices ensures your Hugo site is fast, secure, and reliable.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resources">Resources<a href="https://www.fluxionwatt.com/en/blog/deploying-hugo-sites/#resources" class="hash-link" aria-label="Direct link to Resources" title="Direct link to Resources" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://gohugo.io/hosting-and-deployment/" target="_blank" rel="noopener noreferrer" class="">Hugo Deployment Documentation</a></li>
<li class=""><a href="https://docs.netlify.com/" target="_blank" rel="noopener noreferrer" class="">Netlify Documentation</a></li>
<li class=""><a href="https://vercel.com/docs" target="_blank" rel="noopener noreferrer" class="">Vercel Documentation</a></li>
</ul>]]></content:encoded>
            <category>hugo</category>
            <category>deployment</category>
            <category>netlify</category>
            <category>vercel</category>
            <category>github-pages</category>
        </item>
        <item>
            <title><![CDATA[Customizing Your Hugo Theme: A Deep Dive]]></title>
            <link>https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/</link>
            <guid>https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/</guid>
            <pubDate>Fri, 21 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to customize your Hugo theme to create a unique website that matches your brand and requirements.]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>While Hugo comes with many beautiful themes, you'll often want to customize them to match your specific needs. This guide will walk you through the process of customizing your Hugo theme effectively.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="understanding-hugos-theme-structure">Understanding Hugo's Theme Structure<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#understanding-hugos-theme-structure" class="hash-link" aria-label="Direct link to Understanding Hugo's Theme Structure" title="Direct link to Understanding Hugo's Theme Structure" translate="no">​</a></h2>
<p>Before diving into customization, it's important to understand how Hugo themes are structured.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="basic-theme-customization">Basic Theme Customization<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#basic-theme-customization" class="hash-link" aria-label="Direct link to Basic Theme Customization" title="Direct link to Basic Theme Customization" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-colors-and-typography">1. Colors and Typography<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#1-colors-and-typography" class="hash-link" aria-label="Direct link to 1. Colors and Typography" title="Direct link to 1. Colors and Typography" translate="no">​</a></h3>
<p>The easiest way to start customizing your theme is by modifying the CSS:</p>
<div class="language-css codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">assets/css/main.css</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-css codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token selector pseudo-class" style="color:#00009f">:root</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token variable" style="color:#36acaa">--primary-color</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#007bff</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token variable" style="color:#36acaa">--secondary-color</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#6c757d</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token variable" style="color:#36acaa">--font-family</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Inter'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> sans-serif</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token selector" style="color:#00009f">body</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">font-family</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">var</span><span class="token punctuation" style="color:#393A34">(</span><span class="token variable" style="color:#36acaa">--font-family</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token property" style="color:#36acaa">color</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token hexcode color">#333</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-layout-modifications">2. Layout Modifications<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#2-layout-modifications" class="hash-link" aria-label="Direct link to 2. Layout Modifications" title="Direct link to 2. Layout Modifications" translate="no">​</a></h3>
<p>You can override any layout file from the theme by creating a matching file in your site's layouts directory.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="advanced-customization-techniques">Advanced Customization Techniques<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#advanced-customization-techniques" class="hash-link" aria-label="Direct link to Advanced Customization Techniques" title="Direct link to Advanced Customization Techniques" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="creating-custom-shortcodes">Creating Custom Shortcodes<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#creating-custom-shortcodes" class="hash-link" aria-label="Direct link to Creating Custom Shortcodes" title="Direct link to Creating Custom Shortcodes" translate="no">​</a></h3>
<p>Shortcodes are a powerful way to add custom functionality:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/shortcodes/custom-alert.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">alert alert-{{ .Get 0 }}</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    {{ .Inner | markdownify }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="working-with-partials">Working with Partials<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#working-with-partials" class="hash-link" aria-label="Direct link to Working with Partials" title="Direct link to Working with Partials" translate="no">​</a></h3>
<p>Partials help keep your code DRY and maintainable:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/partials/custom-header.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">header</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">site-header</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">nav</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        {{ range .Site.Menus.main }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">a</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">href</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">{{ .URL }}</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">{{ .Name }}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">a</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        {{ end }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">nav</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">header</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="best-practices">Best Practices<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#best-practices" class="hash-link" aria-label="Direct link to Best Practices" title="Direct link to Best Practices" translate="no">​</a></h2>
<ol>
<li class="">
<p><strong>Don't Edit Theme Files Directly</strong></p>
<ul>
<li class="">Create overrides in your site directory</li>
<li class="">Use Hugo's lookup order to your advantage</li>
</ul>
</li>
<li class="">
<p><strong>Maintain Compatibility</strong></p>
<ul>
<li class="">Test your customizations across different devices</li>
<li class="">Keep accessibility in mind</li>
</ul>
</li>
<li class="">
<p><strong>Performance Considerations</strong></p>
<ul>
<li class="">Optimize images and assets</li>
<li class="">Minimize CSS and JavaScript</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="common-customization-examples">Common Customization Examples<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#common-customization-examples" class="hash-link" aria-label="Direct link to Common Customization Examples" title="Direct link to Common Customization Examples" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="custom-homepage-layout">Custom Homepage Layout<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#custom-homepage-layout" class="hash-link" aria-label="Direct link to Custom Homepage Layout" title="Direct link to Custom Homepage Layout" translate="no">​</a></h3>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/index.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{{ define "main" }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">homepage</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    {{ partial "hero.html" . }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    {{ partial "featured-posts.html" . }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    {{ partial "newsletter.html" . }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">{{ end }}</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="custom-taxonomy-pages">Custom Taxonomy Pages<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#custom-taxonomy-pages" class="hash-link" aria-label="Direct link to Custom Taxonomy Pages" title="Direct link to Custom Taxonomy Pages" translate="no">​</a></h3>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/taxonomy/category.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{{ define "main" }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">category-page</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">h1</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">{{ .Title }}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">h1</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">posts-grid</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        {{ range .Pages }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">            {{ partial "post-card.html" . }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        {{ end }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">{{ end }}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Customizing your Hugo theme allows you to create a unique website that stands out. By understanding Hugo's structure and following best practices, you can make modifications that are both effective and maintainable.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="further-resources">Further Resources<a href="https://www.fluxionwatt.com/en/blog/customizing-your-hugo-theme/#further-resources" class="hash-link" aria-label="Direct link to Further Resources" title="Direct link to Further Resources" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://gohugo.io/documentation/" target="_blank" rel="noopener noreferrer" class="">Hugo Documentation</a></li>
<li class=""><a href="https://discourse.gohugo.io/" target="_blank" rel="noopener noreferrer" class="">Hugo Forums</a></li>
<li class=""><a href="https://themes.gohugo.io/tags/components/" target="_blank" rel="noopener noreferrer" class="">Hugo Theme Components</a></li>
</ul>]]></content:encoded>
            <category>hugo</category>
            <category>themes</category>
            <category>customization</category>
            <category>web-design</category>
        </item>
        <item>
            <title><![CDATA[Getting Started with Hugo: A Beginner's Guide]]></title>
            <link>https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/</link>
            <guid>https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/</guid>
            <pubDate>Thu, 20 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to build your first website with Hugo, the world's fastest framework for building websites.]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-choose-hugo">Why Choose Hugo?<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#why-choose-hugo" class="hash-link" aria-label="Direct link to Why Choose Hugo?" title="Direct link to Why Choose Hugo?" translate="no">​</a></h2>
<p>Here are some compelling reasons to choose Hugo for your next project:</p>
<ol>
<li class="">Lightning Fast</li>
<li class="">Easy to Learn</li>
<li class="">Highly Flexible</li>
<li class="">Great Community</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="setting-up-your-first-hugo-site">Setting Up Your First Hugo Site<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#setting-up-your-first-hugo-site" class="hash-link" aria-label="Direct link to Setting Up Your First Hugo Site" title="Direct link to Setting Up Your First Hugo Site" translate="no">​</a></h2>
<p>Let's walk through creating your first Hugo site:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">terminal</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># Create a new Hugo site</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">hugo new site my-awesome-site</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">cd my-awesome-site</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Initialize git and add a theme</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">git init</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Add the theme to your configuration</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">echo "theme = 'ananke'" &gt;&gt; config.toml</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Create your first post</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">hugo new posts/my-first-post.md</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="working-with-content">Working with Content<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#working-with-content" class="hash-link" aria-label="Direct link to Working with Content" title="Direct link to Working with Content" translate="no">​</a></h2>
<p>Hugo makes content creation straightforward. Here's how to organize your content effectively.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="advanced-features">Advanced Features<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#advanced-features" class="hash-link" aria-label="Direct link to Advanced Features" title="Direct link to Advanced Features" translate="no">​</a></h2>
<p>Hugo comes with many advanced features out of the box:</p>
<ol>
<li class=""><strong>Taxonomies</strong>: Categories and tags</li>
<li class=""><strong>Shortcodes</strong>: Easy way to add complex content</li>
<li class=""><strong>Custom Outputs</strong>: JSON, AMP, etc.</li>
<li class=""><strong>Asset Processing</strong>: SASS/SCSS, PostCSS</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="code-examples">Code Examples<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#code-examples" class="hash-link" aria-label="Direct link to Code Examples" title="Direct link to Code Examples" translate="no">​</a></h2>
<p>Here's an example of a simple Hugo template:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">layouts/_default/single.html</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{{ define "main" }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">article</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">h1</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">{{ .Title }}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">h1</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">time</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">{{ .Date.Format "2006-01-02" }}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">time</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    {{ .Content }}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">article</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">{{ end }}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Hugo provides an excellent foundation for building modern websites. Its combination of speed, flexibility, and ease of use makes it a great choice for projects of any size.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="next-steps">Next Steps<a href="https://www.fluxionwatt.com/en/blog/getting-started-with-hugo/#next-steps" class="hash-link" aria-label="Direct link to Next Steps" title="Direct link to Next Steps" translate="no">​</a></h2>
<ul>
<li class="">Explore Hugo's <a href="https://gohugo.io/documentation/" target="_blank" rel="noopener noreferrer" class="">official documentation</a></li>
<li class="">Join the <a href="https://discourse.gohugo.io/" target="_blank" rel="noopener noreferrer" class="">Hugo community</a></li>
<li class="">Check out some <a href="https://themes.gohugo.io/" target="_blank" rel="noopener noreferrer" class="">Hugo themes</a></li>
</ul>]]></content:encoded>
            <category>hugo</category>
            <category>static-site</category>
            <category>web-development</category>
            <category>beginners</category>
        </item>
        <item>
            <title><![CDATA[GridBeat 1.0.0 新版发布]]></title>
            <link>https://www.fluxionwatt.com/en/blog/gridbeat-ann-1.0.0/</link>
            <guid>https://www.fluxionwatt.com/en/blog/gridbeat-ann-1.0.0/</guid>
            <pubDate>Thu, 20 Jul 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn how to build your first website with Hugo, the world's fastest framework for building websites.]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="发布">发布<a href="https://www.fluxionwatt.com/en/blog/gridbeat-ann-1.0.0/#%E5%8F%91%E5%B8%83" class="hash-link" aria-label="Direct link to 发布" title="Direct link to 发布" translate="no">​</a></h2>
<p>基于正式发布。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="致谢">致谢<a href="https://www.fluxionwatt.com/en/blog/gridbeat-ann-1.0.0/#%E8%87%B4%E8%B0%A2" class="hash-link" aria-label="Direct link to 致谢" title="Direct link to 致谢" translate="no">​</a></h2>
<p>向我们所有开发人员，赞助者和贡献者表示特别的感谢！</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="完整-changelog">完整 Changelog<a href="https://www.fluxionwatt.com/en/blog/gridbeat-ann-1.0.0/#%E5%AE%8C%E6%95%B4-changelog" class="hash-link" aria-label="Direct link to 完整 Changelog" title="Direct link to 完整 Changelog" translate="no">​</a></h2>
<p>自最新发布以来所有的变更历史，都可以浏览这个页面 。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="反馈">反馈<a href="https://www.fluxionwatt.com/en/blog/gridbeat-ann-1.0.0/#%E5%8F%8D%E9%A6%88" class="hash-link" aria-label="Direct link to 反馈" title="Direct link to 反馈" translate="no">​</a></h2>
<p>欢迎给本版本提供反馈。欢迎到 GitHub issues 创建新 issue 或者给我们的邮件列表之一发送邮件， 或者到我们新建立的 bbs 讨论。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="下一个版本">下一个版本<a href="https://www.fluxionwatt.com/en/blog/gridbeat-ann-1.0.0/#%E4%B8%8B%E4%B8%80%E4%B8%AA%E7%89%88%E6%9C%AC" class="hash-link" aria-label="Direct link to 下一个版本" title="Direct link to 下一个版本" translate="no">​</a></h2>
<p>下一个版本的 计划在十月初发布。向所有的支持者、贡献者和用户表示感谢！</p>]]></content:encoded>
            <category>hugo</category>
            <category>static-site</category>
            <category>web-development</category>
            <category>beginners</category>
        </item>
    </channel>
</rss>