<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/chaos-theme/feed.xsl"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn"><script xmlns="http://www.w3.org/1999/xhtml" src="/chaos-theme/_3p/polyxslt/1.1.0/xslt-polyfill.min.js"/><title>混沌札记</title><subtitle>一个 *Chaos* 主题的示例站点</subtitle><id>https://delphij.github.io/chaos-theme/</id><author><name>混沌札记</name><uri>https://delphij.github.io/chaos-theme/</uri></author><generator>Hugo gohugo.io</generator><updated>2026-11-09T08:11:50Z</updated><link rel="self" type="application/atom+xml" href="https://delphij.github.io/chaos-theme/atom.xml" hreflang="zh-cn"/><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/" hreflang="zh-cn"/><link rel="alternate" type="application/rss+xml" href="https://delphij.github.io/chaos-theme/index.xml" hreflang="zh-cn"/><entry><title>全文检索与阅读交互</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/search-and-reading-experience/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/search-and-reading-experience/"/><updated>2026-09-18T00:00:00Z</updated><published>2026-09-18T00:00:00Z</published><summary type="html">&lt;p&gt;静态博客以文字阅读为主，但随文章积累，离线全文检索、纸质打印排版以及页面平滑导航等辅助支持亦不可或缺。Chaos在不引入额外前端框架的前提下，提供了若干实用的交互功能。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>静态博客以文字阅读为主，但随文章积累，离线全文检索、纸质打印排版以及页面平滑导航等辅助支持亦不可或缺。Chaos在不引入额外前端框架的前提下，提供了若干实用的交互功能。</p>
<h2 id="站内全文检索">站内全文检索</h2>
<p>Chaos内置了轻量级的客户端离线全文检索，无需依赖任何第三方外部搜索服务。</p>
<h3 id="快捷键">快捷键</h3>
<ul>
<li><code>/</code>：开启搜索界面并聚焦输入框。</li>
<li><code>↑</code> / <code>↓</code>：在检索结果之间切换选中项。</li>
<li><code>Enter</code>：打开当前选中的文章。</li>
<li><code>Esc</code>：关闭搜索界面。</li>
</ul>
<h3 id="两层索引设计">两层索引设计</h3>
<p>为兼顾搜索界面的即时响应与深层正文检索能力，索引采用两层分立设计：</p>
<ol>
<li><strong>第一层（<code>search-index.json</code>）</strong>：仅包含标题、分类、标签与链接等核心元数据，体积精简，开启搜索界面时即时就绪。</li>
<li><strong>第二层（<code>search-index-body.json</code>）</strong>：包含正文与代码片段的倒排索引，由前端在后台空闲时异步加载，用于支持深层全文检索。</li>
</ol>
<h3 id="索引生成与配置">索引生成与配置</h3>
<p>在部署站点前，运行主题内置的Python脚本生成索引文件：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">python3 themes/chaos/tools/build_search_index.py <span class="se">\
</span></span></span><span class="line"><span class="cl">  --content content <span class="se">\
</span></span></span><span class="line"><span class="cl">  --output assets/search-index.json</span></span></code></pre></div><p>执行时，脚本默认会同时生成核心索引（<code>assets/search-index.json</code>）并自动推导生成正文索引（<code>assets/search-index-body.json</code>）。将索引输出至 <code>assets/</code> 便于Hugo在构建时为其计算指纹（Fingerprint）。上述参数亦为该脚本的默认值。</p>
<h4 id="单文件索引选项--single-file">单文件索引选项（<code>--single-file</code>）</h4>
<p>若不希望拆分为两份文件，可在生成时附加 <code>--single-file</code> 参数：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">python3 themes/chaos/tools/build_search_index.py --single-file</span></span></code></pre></div><p>此时脚本会将标题、标签、分类以及正文与代码的全部倒排词条合并打包进单个 <code>assets/search-index.json</code> 中，且不生成 <code>-body.json</code> 文件。页面的 <code>search.js</code> 脚本完全向下兼容此模式：当检测到不存在第二层索引时，会自动跳过异步请求，直接基于单文件执行全量检索。</p>
<p><strong>两种模式的工程权衡</strong>：</p>
<ul>
<li><strong>两层索引（默认推荐）</strong>：
<ul>
<li><strong>优势</strong>：初始加载极快。开启搜索弹窗时仅需下载核心元数据（通常仅占总索引体积的10%～15%），即可立即响应键入；正文索引在后台空闲时静默合并，避免长文较多的站点初次开启时产生网络等待。</li>
<li><strong>代价</strong>：需发起两次独立的静态资源请求，构建过程需同时管理两份索引文件。</li>
</ul>
</li>
<li><strong>单文件索引（<code>--single-file</code>）</strong>：
<ul>
<li><strong>优势</strong>：部署结构简单清晰，单次HTTP请求即可获取完整索引，便于静态文件归档或在限制并发请求数的环境下分发。</li>
<li><strong>代价</strong>：随文章数量增加，单次请求的JSON体积相对较大，网络较慢或初次开启搜索时可能产生短暂停顿。</li>
</ul>
</li>
</ul>
<p>在 <code>hugo.toml</code> 中开启搜索支持与快捷键监听：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">.</span><span class="nx">search</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">enable</span> <span class="p">=</span> <span class="kc">true</span></span></span></code></pre></div><blockquote class="alert alert-note"><p class="alert-heading">📓 注意</p><p>主题核心脚本经压缩后仅约2 KB。启用搜索后，会额外引入约2 KB的<code>search.js</code>（未压缩约6 KB），并在开启搜索界面时按需载入索引数据。</p></blockquote><h2 id="打印与导出pdf">打印与导出PDF</h2>
<p>纸质打印或导出PDF时，原本的超链接在纸质媒介上无法交互。Chaos在打印时把正文外部链接与Markdown脚注按出现顺序合编为同一组「注释」，于正文之后、标签之前列出：脚注列出原文，链接列出网址。屏幕上的显示不受影响。打印时还会隐藏导航栏与侧边栏等交互控件。</p>
<p>可在本页直接按下 <code>Cmd + P</code>（或 <code>Ctrl + P</code>）在浏览器打印预览中查验效果。例如正文中的这些链接：</p>
<ul>
<li>查阅 <a href="https://gohugo.io/">Hugo官方网站</a>。</li>
<li>查阅 <a href="https://developer.mozilla.org/">MDN Web文档</a>。</li>
<li>查看 <a href="https://wicg.github.io/nav-speculation/speculation-rules.html">W3C Speculation Rules规范</a>。</li>
</ul>
<h2 id="页面跳转与预渲染">页面跳转与预渲染</h2>
<p>主题利用现代浏览器原生的 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API">Speculation Rules API</a>，在指针悬停或轻触站内链接时预渲染目标页面，配合 <a href="https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API">CSS View Transitions</a> 实现平滑过渡，无需引入外部路由框架。</p>
<h2 id="无障碍辅助">无障碍辅助</h2>
<ul>
<li><strong>跳过导航</strong>：支持键盘焦点首项直达正文内容（<a href="https://www.w3.org/WAI/WCAG21/Techniques/general/G1">Skip to content</a>）。</li>
<li><strong>状态播报</strong>：切换外观模式时利用 <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions"><code>aria-live</code></a> 区域向辅助设备提供动态状态反馈。</li>
<li><strong>色彩对比</strong>：前景色与背景色严格遵循 <a href="https://www.w3.org/TR/WCAG21/">WCAG 2.1 AA</a> 可访问性标准。</li>
</ul>]]></content></entry><entry><title>文章元数据与内容控制</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/front-matter-and-metadata/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/front-matter-and-metadata/"/><updated>2026-09-15T00:00:00Z</updated><published>2026-09-15T00:00:00Z</published><summary type="html">&lt;p&gt;在日常博客维护中，常会遇到早期技术文章失效、部分个人随笔不宜纳入站内检索、或长篇内容需分篇连载等实际需求。Chaos在&lt;a href="https://gohugo.io/content-management/front-matter/"&gt;Front Matter&lt;/a&gt;
中提供了若干字段以调控页面的呈现与索引行为。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>在日常博客维护中，常会遇到早期技术文章失效、部分个人随笔不宜纳入站内检索、或长篇内容需分篇连载等实际需求。Chaos在<a href="https://gohugo.io/content-management/front-matter/">Front Matter</a>
中提供了若干字段以调控页面的呈现与索引行为。</p>
<h2 id="推荐的-front-matter-结构">推荐的Front Matter结构</h2>
<p>Chaos推荐使用<a href="https://toml.io/">TOML</a>或<a href="https://yaml.org/">YAML</a>
格式组织文章元数据。以下为兼顾搜索引擎检索与内容分类的典型配置：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;文章标题&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">date</span><span class="p">:</span><span class="w"> </span><span class="ld">2026-09-15T10:00:00</span><span class="m">+08</span><span class="p">:</span><span class="m">00</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;简明扼要的摘要，会作为页面的meta description输出，便于搜索引擎收录呈现。&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">categories</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;指南&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">tags</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;系统设计&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;Web&#34;</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">series</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Chaos主题指南&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c"># 内容控制开关（可选）：</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">deprecated</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">searchHidden</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">noindex</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c"># 可交互代码参数（可选）：</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">code_vars</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">host</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">default</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;router.example.net&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">desc</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;网关主机名&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nn">---</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="内容控制开关">内容控制开关</h2>
<h3 id="1-标记过时内容deprecated">1. 标记过时内容（<code>deprecated</code>）</h3>
<p>对于成文较早、技术方案已废弃或配置已失效的文章，可显式声明：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">deprecated</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="c"># 或outdated: true</span></span></span></code></pre></div><h4 id="实际效果">实际效果</h4>
<ul>
<li><strong>降低检索排序</strong>：站内全文搜索算法会自动降低该文章的相关性得分（降权75%），避免早期方案影响对有效解答的检索。</li>
<li><strong>状态视觉标识</strong>：在站内搜索结果列表中，该文章标题后会附加 <code>[已过时]</code> 标签。</li>
</ul>
<h3 id="2-排除站内检索searchhidden">2. 排除站内检索（<code>searchHidden</code>）</h3>
<p>如果希望内容不参与站内技术检索。声明：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">searchHidden</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="c"># 或search: false</span></span></span></code></pre></div><h4 id="实际效果-1">实际效果</h4>
<ul>
<li>该文章<strong>不编入站内离线搜索索引</strong>。</li>
<li>文章仍正常发布，展示于首页与分类列表，并保留在 <a href="https://www.sitemaps.org/"><code>sitemap.xml</code></a> 中，外部搜索引擎仍可正常收录。</li>
</ul>
<h3 id="3-避免搜索引擎索引noindex">3. 避免搜索引擎索引（<code>noindex</code>）</h3>
<p>若内容虽然仍然可以公开，但希望不被搜索引擎收录，则可声明：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">noindex</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span></span></span></code></pre></div><h4 id="实际效果-2">实际效果</h4>
<ul>
<li>排除在站内搜索索引之外。</li>
<li>自动从 <code>sitemap.xml</code> 站点地图中移除。</li>
<li>页面 <code>&lt;head&gt;</code> 区域注入 <a href="https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag"><code>&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;</code></a>，指示搜索引擎不要索引该页面，亦不跟踪页面中的超链接。</li>
</ul>
<h2 id="系列文章series">系列文章（<code>series</code>）</h2>
<p>为长篇连载指定统一的 <code>series</code> 名称：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">series</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;Chaos主题指南&#34;</span></span></span></code></pre></div><p>Chaos会自动关联同系列文章，并在<a href="https://ogp.me/">Open Graph</a>元数据中注入系列信息。配合站点的taxonomy配置，读者可通过<code>/series/chaos-主题指南/</code>查阅完整篇目列表。</p>
<h2 id="可交互代码参数code_vars">可交互代码参数（<code>code_vars</code>）</h2>
<p>对于包含具体网络配置、系统管理命令或安装部署脚本的文章，可在Front Matter中通过 <code>code_vars</code> 声明允许读者动态调整的参数：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">code_vars</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">host</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">default</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;router.example.net&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">desc</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;网关主机名&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">ip</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">default</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;192.0.2.1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">desc</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;网关管理IP&#34;</span></span></span></code></pre></td></tr></table>
</div>
</div><h3 id="实际效果-3">实际效果</h3>
<ul>
<li><strong>参数联动面板</strong>：主题自动在首个匹配代码块上方挂载可折叠的参数面板，并将代码块内对应的默认值标记为可交互的 <code>&lt;var class=&quot;code-var&quot;&gt;</code>。</li>
<li><strong>全局同步与复制</strong>：读者在面板或代码块中修改参数后，全文代码块即时同步，右上角复制按钮自动复制替换后的真实内容。</li>
<li><strong>URL参数共享</strong>：非默认修改自动同步至URL查询字符串（如 <code>?host=node1.example.org</code>），便于分享与预设填入。</li>
<li><strong>局部代码块免替换</strong>：通过 <code>```text {code_vars=&quot;false&quot;}</code> 可保留固定的输出或真实日志。</li>
</ul>
<p>详细交互机制与配置规范参见<a href="https://delphij.github.io/chaos-theme/posts/front-matter-and-metadata/../code-and-diagrams/#code-vars">代码语法高亮、交互参数与Mermaid图表</a>。</p>
<h2 id="扩展markdown语法">扩展Markdown语法</h2>
<h3 id="自定义标题锚点id">自定义标题锚点ID</h3>
<p>默认情况下，Hugo会根据标题文本自动生成锚点ID。若标题包含特殊字符或需要稳定、简短的引用路径，可在标题后显式指定：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl">### 核心架构与设计哲学 {<span class="ni">#architecture</span>}</span></span></code></pre></div><p>渲染后对应的HTML元素将直接附带 <code>id=&quot;architecture&quot;</code> 属性，便于在正文中通过 <code>[跳转至架构](#architecture)</code> 精确链接。</p>
<h3 id="列表页摘要截断--more--">列表页摘要截断（<code>&lt;!--more--&gt;</code>）</h3>
<p>在Markdown中单独放置一行 <code>&lt;!--more--&gt;</code>：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl">这是文章的导言部分，会完整显示在首页和列表页的摘要中。
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">&lt;!--more--&gt;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">这是正文的后续展开部分，进入文章详情页后方可阅读。</span></span></code></pre></td></tr></table>
</div>
</div><p>藉此可自主控制摘要的截断位置，避免整篇长文在列表页完整展开，以维持版面整洁。</p>]]></content></entry><entry><title>你好，Chaos</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/hello-chaos/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/hello-chaos/"/><updated>2026-09-12T00:00:00Z</updated><published>2026-09-12T00:00:00Z</published><summary type="html">&lt;p&gt;Chaos是一个专为个人博客设计的极简&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;主题：不依赖前端脚本框架，核心基础脚本经压缩后仅约2 KB（未压缩约6 KB），提供外观模式切换、自动目录、代码复制、即时页面导航以及针对中文排版的细致处理。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>Chaos是一个专为个人博客设计的极简<a href="https://gohugo.io/">Hugo</a>主题：不依赖前端脚本框架，核心基础脚本经压缩后仅约2 KB（未压缩约6 KB），提供外观模式切换、自动目录、代码复制、即时页面导航以及针对中文排版的细致处理。</p>
<h2 id="设计理念">设计理念</h2>
<p>主题配色源自<a href="https://zh.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E4%BC%A0%E7%BB%9F%E8%89%B2%E7%B3%BB">日本传统色</a>
<ruby>和色<rp>（</rp><rt>wairo</rt><rp>）</rp></ruby>）：以<ruby><strong>白練</strong><rp>（</rp><rt>shiro-neri</rt><rp>）</rp></ruby>为底，以<ruby><strong>墨</strong><rp>（</rp><rt>sumi</rt><rp>）</rp></ruby>为字，辅以<ruby><strong>红緋</strong><rp>（</rp><rt>hi-iro</rt><rp>）</rp></ruby>与<ruby><strong>瑠璃色</strong><rp>（</rp><rt>ruri-iro</rt><rp>）</rp></ruby>作为强调与链接色。兼顾素雅纸张质感与<a href="https://www.w3.org/WAI/standards-guidelines/wcag/">WCAG</a>规定的色彩对比度要求。</p>
<blockquote class="alert alert-tip"><p class="alert-heading">💡 友情提示</p><p>点击右上角的🌓按钮，可以在「跟随系统/浅色/深色」三种模式之间切换。</p></blockquote><h2 id="基础配置">基础配置</h2>
<p>在站点的 <code>hugo.toml</code> 中，建议配置以下基础字段：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">theme</span> <span class="p">=</span> <span class="s1">&#39;chaos&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nx">baseURL</span> <span class="p">=</span> <span class="s1">&#39;https://example.org/&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nx">locale</span> <span class="p">=</span> <span class="s1">&#39;zh-cn&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nx">defaultContentLanguage</span> <span class="p">=</span> <span class="s1">&#39;zh-cn&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nx">title</span> <span class="p">=</span> <span class="s1">&#39;混沌札记&#39;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c"># 必须启用：让Hugo按字符统计中文字数并正常截断摘要</span>
</span></span><span class="line"><span class="cl"><span class="nx">hasCJKLanguage</span> <span class="p">=</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">[</span><span class="nx">outputs</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">home</span> <span class="p">=</span> <span class="p">[</span><span class="s1">&#39;HTML&#39;</span><span class="p">,</span> <span class="s1">&#39;ATOM&#39;</span><span class="p">,</span> <span class="s1">&#39;sitemapxsl&#39;</span><span class="p">,</span> <span class="s1">&#39;RSS&#39;</span><span class="p">,</span> <span class="s1">&#39;feedxsl&#39;</span><span class="p">,</span> <span class="s1">&#39;REDIR&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">section</span> <span class="p">=</span> <span class="p">[</span><span class="s1">&#39;HTML&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">taxonomy</span> <span class="p">=</span> <span class="p">[</span><span class="s1">&#39;HTML&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">term</span> <span class="p">=</span> <span class="p">[</span><span class="s1">&#39;HTML&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">subtitle</span> <span class="p">=</span> <span class="s1">&#39;一个 *Chaos* 主题的示例站点&#39;</span>
</span></span><span class="line"><span class="cl">  <span class="nx">mainSections</span> <span class="p">=</span> <span class="p">[</span><span class="s1">&#39;posts&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">excludedTypes</span> <span class="p">=</span> <span class="p">[</span><span class="s1">&#39;page&#39;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="p">[</span><span class="nx">params</span><span class="p">.</span><span class="nx">search</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">    <span class="nx">enable</span> <span class="p">=</span> <span class="kc">true</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="主题特性指南">主题特性指南</h2>
<p>本系列文章分别介绍主题的各项功能与对应配置方法：</p>
<ol>
<li><strong><a href="https://delphij.github.io/chaos-theme/posts/hello-chaos/../chinese-typography/">中文排版：汉字、西文与标点的混排处理</a></strong>：中西文间距、标点悬挂、振假名与拼音注音、源码断行空格净化。</li>
<li><strong><a href="https://delphij.github.io/chaos-theme/posts/hello-chaos/../alerts-and-callouts/">提示框的语义类型与语法</a></strong>：NOTE、TIP、IMPORTANT、WARNING、CAUTION、HISTORICAL与DISCLAIMER，以及自定义标题支持。</li>
<li><strong><a href="https://delphij.github.io/chaos-theme/posts/hello-chaos/../code-and-diagrams/">代码语法高亮、交互参数与Mermaid图表</a></strong>：静态语法高亮、可交互代码参数（<code>code_vars</code>）、代码一键复制与Mermaid图表。</li>
<li><strong><a href="https://delphij.github.io/chaos-theme/posts/hello-chaos/../math-with-katex/">用KaTeX书写数学公式</a></strong>：行内与块级公式、Goldmark passthrough配置与洛伦兹方程组。</li>
<li><strong><a href="https://delphij.github.io/chaos-theme/posts/hello-chaos/../front-matter-and-metadata/">文章元数据与内容控制</a></strong>：<code>deprecated</code>（过时降权）、<code>searchHidden</code>（隐藏检索）、<code>noindex</code>（避免收录）、<code>series</code>（系列）与标题锚点ID。</li>
<li><strong><a href="https://delphij.github.io/chaos-theme/posts/hello-chaos/../search-and-reading-experience/">全文检索与阅读交互</a></strong>：两层离线全文检索、快捷键、打印时外链自动转尾注与页面预渲染。</li>
<li><strong><a href="https://delphij.github.io/chaos-theme/posts/hello-chaos/../on-minimalism/">少即是多：静态博客的依赖取舍</a></strong>：尽量不引入冗余外界依赖的工程取舍，以及各项特性在Gzip与Brotli下的真实尺寸对比。</li>
</ol>]]></content></entry><entry><title>中文排版：汉字、西文与标点的混排处理</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/chinese-typography/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/chinese-typography/"/><updated>2026-08-30T00:00:00Z</updated><published>2026-08-30T00:00:00Z</published><summary type="html">&lt;p&gt;排版的目的在于呈现文本本身。中西文混排时的微小间距、行末标点悬挂与注音标注，若处置得宜，阅读时便不致产生视觉阻滞。Chaos尽量依托现代CSS规范与构建期处理，在页面生成与渲染时自动协调这些细节。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>排版的目的在于呈现文本本身。中西文混排时的微小间距、行末标点悬挂与注音标注，若处置得宜，阅读时便不致产生视觉阻滞。Chaos尽量依托现代CSS规范与构建期处理，在页面生成与渲染时自动协调这些细节。</p>
<h2 id="中西文混排与标点悬挂">中西文混排与标点悬挂</h2>
<p>在支持<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/text-autospace"><code>text-autospace</code></a>
的现代浏览器中，即便原文直接书写为「使用Hugo构建的blog」，汉字与西文或数字之间亦会自动留出适度的空隙；在尚不支持该属性的环境中，页面依然保持常规渲染。配合<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/hanging-punctuation"><code>hanging-punctuation</code></a>，行首与行末的标点可微调悬挂于版心边缘，使段落边界更为平整。</p>
<h3 id="站点必须的配置">站点必须的配置</h3>
<p>使用中文写作时，必须在站点的<code>hugo.toml</code>中配置：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">hasCJKLanguage</span> <span class="p">=</span> <span class="kc">true</span></span></span></code></pre></div><blockquote class="alert alert-important"><p class="alert-heading">❗ 重要</p><p>若未启用此项，Hugo的分词引擎会将连续的中文字句视作单个单词，导致字数统计与预计阅读时间严重失真，亦会影响列表页正文摘要的准确截断。</p></blockquote><h2 id="注音语法ruby-annotations">注音语法（Ruby Annotations）</h2>
<p>主题支持标准的注音标记语法。在Markdown中书写时，在 <code>[文字]</code> 之后附带 <code>{注音}</code> 或 <code>^(注音)</code>，构建时将转换为HTML标准的<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby"><code>&lt;ruby&gt;</code></a>与<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rt"><code>&lt;rt&gt;</code></a>标签，并附带<code>&lt;rp&gt;</code>括号，以便在不支持注音的阅读环境中平稳退化为常规括号注记：</p>
<ul>
<li><ruby>漢字<rp>（</rp><rt>かんじ</rt><rp>）</rp></ruby>：日文<a href="https://zh.wikipedia.org/wiki/%E6%8C%AF%E5%81%87%E5%90%8D">振假名</a>（Furigana，使用 <code>{...}</code>）</li>
<li><ruby>汉字<rp>（</rp><rt>hàn zì</rt><rp>）</rp></ruby>：<a href="https://zh.wikipedia.org/wiki/%E6%B1%89%E8%AF%AD%E6%8B%BC%E9%9F%B3">汉语拼音</a>（使用 <code>^(...)</code>）</li>
<li><ruby>漢<rp>（</rp><rt>ㄏㄢˋ</rt><rp>）</rp></ruby><ruby>字<rp>（</rp><rt>ㄗˋ</rt><rp>）</rp></ruby>：<a href="https://zh.wikipedia.org/wiki/%E6%B3%A8%E9%9F%B3%E7%AC%A6%E8%99%9F">注音符号</a></li>
<li><ruby>临时方案<rp>（</rp><rt>永久保留</rt><rp>）</rp></ruby>：借用注音语法标注言外之意的中文「义训」用法</li>
</ul>
<h2 id="源码换行与空白处理">源码换行与空白处理</h2>
<p>撰写Markdown文本时，作者常习惯依句子结构或按行宽手动折行。根据<a href="https://commonmark.org/">CommonMark</a>规范，段落内的单个换行符在转换为HTML时通常会被视为空白字符，进而在相连的两个中文字符之间渲染出多余的ASCII空格。</p>
<p>Chaos在模板中配置了正则处理规则，在生成HTML时，自动剔除CJK字符与标点之间的源码单行换行与空格，同时保留真实的段落分块（<code>&lt;/p&gt;&lt;p&gt;</code>）。如此，无论编辑源码时如何断行，最终呈现的文本均平顺连贯。</p>
<h2 id="引文">引文</h2>
<blockquote><p>南海之帝为儵，北海之帝为忽，中央之帝为浑沌。儵与忽时相与遇于浑沌之地，浑沌待之甚善。儵与忽谋报浑沌之德，曰：「人皆有七窍以视听食息，此独无有，尝试凿之。」日凿一窍，七日而浑沌死。</p>
<p>——<a href="https://zh.wikisource.org/wiki/%E8%8E%8A%E5%AD%90/%E6%87%89%E5%B8%9D%E7%8E%8B">《庄子·应帝王》</a>（参见维基百科<a href="https://zh.wikipedia.org/wiki/%E6%B5%91%E6%B2%8C">浑沌</a>传说）</p>
</blockquote><h2 id="表格排版">表格排版</h2>
<p>针对较宽的表格，样式会自动允许在移动设备或窄屏视口下水平滑动浏览，避免破坏整篇版面：</p>
<table>
<thead>
<tr>
<th style="text-align: left">特性</th>
<th style="text-align: left">实现层</th>
<th style="text-align: left">作用与表现</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"><strong>中西文间距</strong></td>
<td style="text-align: left">CSS (<code>text-autospace</code>)</td>
<td style="text-align: left">汉字与西文、数字之间自动呈现微间距</td>
</tr>
<tr>
<td style="text-align: left"><strong>标点悬挂</strong></td>
<td style="text-align: left">CSS (<code>hanging-punctuation</code>)</td>
<td style="text-align: left">标点略微悬挂于版心边缘，使文本边沿平直</td>
</tr>
<tr>
<td style="text-align: left"><strong>注音标注</strong></td>
<td style="text-align: left">模板Render Hook</td>
<td style="text-align: left">输出标准HTML<code>&lt;ruby&gt;</code>（支持假名、拼音与注音符号）</td>
</tr>
<tr>
<td style="text-align: left"><strong>空白净化</strong></td>
<td style="text-align: left">Hugo构建期正则</td>
<td style="text-align: left">消除Markdown源码中文折行产生的多余空格</td>
</tr>
</tbody>
</table>]]></content></entry><entry><title>用 KaTeX 书写数学公式</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/math-with-katex/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/math-with-katex/"/><updated>2026-07-18T00:00:00Z</updated><published>2026-07-18T00:00:00Z</published><summary type="html">&lt;p&gt;Chaos集成了&lt;a href="https://katex.org/"&gt;KaTeX&lt;/a&gt;数学排版引擎，数学公式直接在站点构建期渲染为静态HTML与MathML，读者端无需执行额外脚本。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>Chaos集成了<a href="https://katex.org/">KaTeX</a>数学排版引擎，数学公式直接在站点构建期渲染为静态HTML与MathML，读者端无需执行额外脚本。</p>
<h2 id="站点配置">站点配置</h2>
<p>若需在Markdown正文中直接书写LaTeX公式，需在站点的 <code>hugo.toml</code> 中启用<a href="https://github.com/yuin/goldmark">Goldmark</a>的passthrough扩展：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">markup</span><span class="p">.</span><span class="nx">goldmark</span><span class="p">.</span><span class="nx">extensions</span><span class="p">.</span><span class="nx">passthrough</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">enable</span> <span class="p">=</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl">  <span class="p">[</span><span class="nx">markup</span><span class="p">.</span><span class="nx">goldmark</span><span class="p">.</span><span class="nx">extensions</span><span class="p">.</span><span class="nx">passthrough</span><span class="p">.</span><span class="nx">delimiters</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">    <span class="nx">block</span> <span class="p">=</span> <span class="p">[[</span><span class="s1">&#39;$$&#39;</span><span class="p">,</span> <span class="s1">&#39;$$&#39;</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl">    <span class="nx">inline</span> <span class="p">=</span> <span class="p">[[</span><span class="s1">&#39;\(&#39;</span><span class="p">,</span> <span class="s1">&#39;\)&#39;</span><span class="p">]]</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="行内公式">行内公式</h2>
<p>在正文中使用 <code>\(</code> 和 <code>\)</code> 包裹<a href="https://zh.wikipedia.org/wiki/LaTeX">LaTeX</a>数学表达式。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl">[<span class="nt">质能方程</span>](<span class="na">https://zh.wikipedia.org/wiki/%E8%B4%A8%E8%83%BD%E7%AD%89%E4%BB%B7</span>) \(E = mc^2\) 是现代物理学的基石；而[<span class="nt">欧拉恒等式</span>](<span class="na">https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E6%81%92%E7%AD%89%E5%BC%8F</span>) \(e^{i\pi} + 1 = 0\) 则融合了五个最重要的数学常数。</span></span></code></pre></div><p>渲染效果：</p>
<p><a href="https://zh.wikipedia.org/wiki/%E8%B4%A8%E8%83%BD%E7%AD%89%E4%BB%B7">质能方程</a> <code class="language-tex">\(E = mc^2\)</code> 是现代物理学的基石；而<a href="https://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E6%81%92%E7%AD%89%E5%BC%8F">欧拉恒等式</a> <code class="language-tex">\(e^{i\pi} &#43; 1 = 0\)</code> 则融合了五个最重要的数学常数。</p>
<h2 id="块级公式">块级公式</h2>
<p>对于独立成段的复杂方程式，使用双美元符号 <code>$$</code> 包裹：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl">$$
</span></span><span class="line"><span class="cl">\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}
</span></span><span class="line"><span class="cl">$$</span></span></code></pre></div><p><a href="https://zh.wikipedia.org/wiki/%E9%AB%98%E6%96%AF%E7%A7%AF%E5%88%86">高斯积分</a>渲染效果：</p>
<pre><code class="language-tex">$$
\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}
$$</code></pre><h3 id="多行对齐公式">多行对齐公式</h3>
<p>支持使用 <code>aligned</code> 环境排版多行对齐的微分方程组（例如<a href="https://zh.wikipedia.org/wiki/%E6%B4%9B%E4%BC%A6%E8%8C%A8%E5%90%B8%E5%BC%95%E5%AD%90">洛伦兹吸引子</a>）：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl">$$
</span></span><span class="line"><span class="cl">\begin{aligned}
</span></span><span class="line"><span class="cl">\frac{dx}{dt} &amp;= \sigma (y - x) \\[6pt]
</span></span><span class="line"><span class="cl">\frac{dy}{dt} &amp;= x (\rho - z) - y \\[6pt]
</span></span><span class="line"><span class="cl">\frac{dz}{dt} &amp;= xy - \beta z
</span></span><span class="line"><span class="cl">\end{aligned}
</span></span><span class="line"><span class="cl">$$</span></span></code></pre></td></tr></table>
</div>
</div><p>渲染效果：</p>
<pre><code class="language-tex">$$
\begin{aligned}
\frac{dx}{dt} &amp;= \sigma (y - x) \\[6pt]
\frac{dy}{dt} &amp;= x (\rho - z) - y \\[6pt]
\frac{dz}{dt} &amp;= xy - \beta z
\end{aligned}
$$</code></pre><p>当 <code class="language-tex">\(\sigma = 10\)</code>、<code class="language-tex">\(\rho = 28\)</code>、<code class="language-tex">\(\beta = 8/3\)</code> 时，系统将在<a href="https://zh.wikipedia.org/wiki/%E7%9B%B8%E7%A9%BA%E9%97%B4">相空间</a>中形成经典的蝴蝶形混沌吸引子轨迹。</p>]]></content></entry><entry><title>提示框的语义类型与语法</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/alerts-and-callouts/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/alerts-and-callouts/"/><updated>2026-05-04T00:00:00Z</updated><published>2026-05-04T00:00:00Z</published><summary type="html">&lt;p&gt;Chaos支持 &lt;a href="https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts"&gt;GitHub风格的提示框语法&lt;/a&gt;，标题文字会随站点语言自动本地化，并配有对应的图标与边框色彩。除通用的五种类型外，主题还扩充了面向技术归档与免责声明的语义类型。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>Chaos支持 <a href="https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts">GitHub风格的提示框语法</a>，标题文字会随站点语言自动本地化，并配有对应的图标与边框色彩。除通用的五种类型外，主题还扩充了面向技术归档与免责声明的语义类型。</p>
<h2 id="渲染效果">渲染效果</h2>
<blockquote class="alert alert-note"><p class="alert-heading">📓 注意</p><p>供浏览时参考的背景信息与补充说明。</p></blockquote><blockquote class="alert alert-tip"><p class="alert-heading">💡 友情提示</p><p>有助于提高操作效率的使用技巧与建议。</p></blockquote><blockquote class="alert alert-important"><p class="alert-heading">❗ 重要</p><p>达成目标所必须了解的关键步骤或必要前提。</p></blockquote><blockquote class="alert alert-warning"><p class="alert-heading">🚨 警告</p><p>需特别注意、以免引发错误或阻塞进度的警示。</p></blockquote><blockquote class="alert alert-caution"><p class="alert-heading">⚠️ 小心</p><p>提醒某些破坏性操作可能带来的严重后果或数据丢失风险。</p></blockquote><blockquote class="alert alert-historical"><p class="alert-heading">📜 历史文件已不具备现实意义</p><p>提示该文属于年代久远、技术方案已废弃或仅作归档参考的历史记录。</p></blockquote><blockquote class="alert alert-disclaimer"><p class="alert-heading">⚠️ 免责声明</p><p>声明作者不对依据本文内容操作导致的风险或意外后果承担连带责任。</p></blockquote><blockquote class="alert alert-note"><p class="alert-heading">📓 自定义标题示例</p><p>提示框亦支持自定义标题：在标记之后紧跟自定义文字，即可覆盖默认的本地化标题。</p></blockquote><h2 id="markdown源码写法">Markdown源码写法</h2>
<p>只需在引用块（<code>&gt;</code>）的第一行声明类型关键词：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!NOTE]
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">供浏览时参考的背景信息与补充说明。
</span></span></span><span class="line"><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!TIP]
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">有助于提高操作效率的使用技巧与建议。
</span></span></span><span class="line"><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!IMPORTANT]
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">达成目标所必须了解的关键步骤或必要前提。
</span></span></span><span class="line"><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!WARNING]
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">需特别注意、以免引发错误或阻塞进度的警示。
</span></span></span><span class="line"><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!CAUTION]
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">提醒某些破坏性操作可能带来的严重后果或数据丢失风险。
</span></span></span><span class="line"><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!HISTORICAL]
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">提示该文属于年代久远、技术方案已废弃或仅作归档参考的历史记录。
</span></span></span><span class="line"><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!DISCLAIMER]
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">声明作者不对依据本文内容操作导致的风险或意外后果承担连带责任。
</span></span></span><span class="line"><span class="cl"><span class="k">
</span></span></span><span class="line"><span class="cl"><span class="k">&gt; </span><span class="ge">[!NOTE] 自定义标题示例
</span></span></span><span class="line"><span class="cl">&gt; 在标记之后紧随标题文本，即可自定义提示框的头部说明。</span></span></code></pre></td></tr></table>
</div>
</div><blockquote class="alert alert-tip"><p class="alert-heading">💡 友情提示</p><p><strong>多语言适配</strong>：不论在简体中文（zh-CN）、繁体中文（zh-TW）、英语（EN）、日语（JA）还是韩语（KO）页面下，默认标题均会自动渲染为对应的母语文字（如Note、注意、友情提示、歴史的ファイル 等），作者统一书写大写的英文关键词即可。</p></blockquote>]]></content></entry><entry><title>代码语法高亮、交互参数与 Mermaid 图表</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/code-and-diagrams/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/code-and-diagrams/"/><updated>2025-11-23T00:00:00Z</updated><published>2025-11-23T00:00:00Z</published><summary type="html">&lt;p&gt;代码块由Hugo内置的&lt;a href="https://github.com/alecthomas/chroma"&gt;Chroma&lt;/a&gt;引擎在构建时预先完成静态高亮渲染，并为浅色与深色模式分别提供适配的配色方案；需要参数微调的代码块支持声明交互变量联动；
&lt;a href="https://mermaid.js.org/"&gt;Mermaid&lt;/a&gt;图表则仅在包含图表定义的页面中按需加载。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>代码块由Hugo内置的<a href="https://github.com/alecthomas/chroma">Chroma</a>引擎在构建时预先完成静态高亮渲染，并为浅色与深色模式分别提供适配的配色方案；需要参数微调的代码块支持声明交互变量联动；
<a href="https://mermaid.js.org/">Mermaid</a>图表则仅在包含图表定义的页面中按需加载。</p>
<h2 id="代码语法高亮与剪贴板交互">代码语法高亮与剪贴板交互</h2>
<p>代码语法高亮直接在站点构建期由Chroma引擎预先生成静态HTML，客户端无需加载外部语法高亮脚本。代码块右上角提供复制按钮，通过原生<a href="https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API">Clipboard API</a>
实现文本复制。</p>
<p>以下为计算<a href="https://zh.wikipedia.org/wiki/%E9%80%BB%E8%BE%91%E6%96%AF%E8%B0%9B%E6%98%A0%E5%B0%84">逻辑斯谛映射</a>(Logistic map)的示例代码。当控制参数 <code class="language-tex">\(r = 3.9\)</code> 时，该非线性迭代系统将进入混沌区间：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="kn">package</span><span class="w"> </span><span class="nx">main</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="kn">import</span><span class="w"> </span><span class="s">&#34;fmt&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="c1">// logistic返回逻辑斯谛映射的下一个值。</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="kd">func</span><span class="w"> </span><span class="nf">logistic</span><span class="p">(</span><span class="nx">r</span><span class="p">,</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="kt">float64</span><span class="p">)</span><span class="w"> </span><span class="kt">float64</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="nx">r</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">x</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="kd">func</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">	</span><span class="nx">x</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mf">0.2</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">	</span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">		</span><span class="nx">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nf">logistic</span><span class="p">(</span><span class="mf">3.9</span><span class="p">,</span><span class="w"> </span><span class="nx">x</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">		</span><span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">&#34;%d: %.6f\n&#34;</span><span class="p">,</span><span class="w"> </span><span class="nx">i</span><span class="p">,</span><span class="w"> </span><span class="nx">x</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><p>以下为<a href="https://zh.wikipedia.org/wiki/%E6%B4%9B%E4%BC%A6%E8%8C%A8%E5%90%B8%E5%BC%95%E5%AD%90">洛伦兹系统</a>常微分方程组的导数计算函数：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">lorenz</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">sigma</span><span class="o">=</span><span class="mf">10.0</span><span class="p">,</span> <span class="n">rho</span><span class="o">=</span><span class="mf">28.0</span><span class="p">,</span> <span class="n">beta</span><span class="o">=</span><span class="mi">8</span> <span class="o">/</span> <span class="mi">3</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;&#34;&#34;洛伦兹系统的导数。&#34;&#34;&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">sigma</span> <span class="o">*</span> <span class="p">(</span><span class="n">y</span> <span class="o">-</span> <span class="n">x</span><span class="p">),</span> <span class="n">x</span> <span class="o">*</span> <span class="p">(</span><span class="n">rho</span> <span class="o">-</span> <span class="n">z</span><span class="p">)</span> <span class="o">-</span> <span class="n">y</span><span class="p">,</span> <span class="n">x</span> <span class="o">*</span> <span class="n">y</span> <span class="o">-</span> <span class="n">beta</span> <span class="o">*</span> <span class="n">z</span></span></span></code></pre></div><h2 id="code-vars">可交互代码参数（code_vars）</h2>
<p>在撰写系统配置、运维部署或网络管理文章时，代码与配置片段中常包含具体的主机名、IP地址、子网、密钥或目录路径。</p>
<p>传统写法通常有两种妥协：</p>
<ol>
<li><strong>写死具体环境的值</strong>：读者复制到自己终端或配置文件后，必须人工逐处查找替换。代码越长、出现的次数越多，越容易漏改或改错。</li>
<li><strong>使用模板占位符</strong>（例如<code>&lt;HOSTNAME&gt;</code>、<code>{{DOMAIN}}</code>或<code>$IP</code>）：这类写法不仅破坏了代码本身的语法合法性，导致语法高亮错乱、无法直接执行测试，在RSS/Atom提要或无JavaScript环境下阅读时更显得零碎残缺。</li>
</ol>
<p>Chaos采用了<strong>渐进增强（Progressive Enhancement）与零运行时污染</strong>的设计：</p>
<ul>
<li><strong>源码与RSS零污染</strong>：Markdown源码与代码块中直接书写<strong>真实、合法且可直接运行的默认值</strong>（如<code>router.example.net</code>或<code>192.0.2.1</code>）。在无JavaScript环境、命令行终端（如<code>w3m</code>/<code>curl</code>）或RSS阅读器中，读者看到的是毫无格式破损的标准示例代码。</li>
<li><strong>按需加载与自动装配</strong>：当且仅当文章Front Matter中声明了<code>code_vars</code>时，主题才会加载轻量交互脚本（约3 KB），自动在首个匹配代码块上方挂载可折叠的参数面板，并将代码块内对应的默认值升级为可联动的输入标记<code>&lt;var class=&quot;code-var&quot;&gt;</code>。</li>
</ul>
<h3 id="1-front-matter-配置写法">1. Front Matter配置写法</h3>
<p>在文章头部的Front Matter中通过<code>code_vars</code>声明参数列表：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="s">```yaml
</span></span></span><span class="line"><span class="cl"><span class="nt">code_vars</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">host</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">default</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;router.example.net&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">desc</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;网关主机名&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">ip</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">default</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;192.0.2.1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">desc</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;网关管理IP&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">vlan</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">default</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;guest iot tiot&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">desc</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;业务VLAN网段（空格分隔）&#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="s">```</span></span></span></code></pre></td></tr></table>
</div>
</div><p>各字段说明如下：</p>
<ul>
<li><code>name</code>：参数英文标识符。同时作为URL查询参数的键名（如<code>?host=gw.internal&amp;ip=10.0.0.1</code>）。</li>
<li><code>default</code>：代码块中实际书写的<strong>合法默认值字面量</strong>。注意必须与Markdown代码块中出现的字面量精确一致。</li>
<li><code>desc</code>：参数面板中向读者展示的友好说明标签。若省略则自动回退为<code>name</code>或默认值。</li>
</ul>
<blockquote class="alert alert-tip"><p class="alert-heading">💡 友情提示</p><p>代码块内部<strong>直接书写默认值本身</strong>即可，不要添加任何额外的模板标签或宏定义。例如在配置文件或Shell脚本中直接写<code>router.example.net</code>和<code>192.0.2.1</code>。</p></blockquote><h3 id="2-交互体验与多端协同">2. 交互体验与多端协同</h3>
<p>页面就绪后，读者可以获得以下交互能力：</p>
<ol>
<li><strong>参数面板集中调节</strong>：点击代码块上方的「可填写参数」展开面板，修改任意字段，全文所有代码块中对应的参数值将实时联动更新。</li>
<li><strong>代码块行内原地修改（桌面端）</strong>：在桌面端浏览器中，鼠标点击代码块内的高亮参数即可直接光标定位编辑，输入即时同步回面板及其他代码块。</li>
<li><strong>真实生效的剪贴板复制</strong>：点击代码块右上角的「复制」按钮时，复制出的内容会自动应用读者当前修改后的最新参数，无需手动二次修改。</li>
<li><strong>URL状态持久化与分享</strong>：一旦参数被修改，其非默认值会自动同步至浏览器地址栏（如<code>?host=node1.example.org</code>）。把该URL分享给同事时，对方打开页面即直接加载填好的配置，并附带参数来源提示。</li>
<li><strong>一键恢复默认</strong>：修改参数后，面板右下角会显示「重置」按钮，随时可一键撤销全部修改并恢复初始默认值。</li>
</ol>
<h3 id="3-智能匹配与边界判定机制">3. 智能匹配与边界判定机制</h3>
<p>为了避免暴力字符串查找替换引发的「误伤」，前端替换引擎内置了针对工程代码的边界与语境处理：</p>
<ul>
<li><strong>词法边界保护（Token Boundary）</strong>：精确判定词法边界。例如默认值<code>192.0.2.1</code>不会误匹配<code>192.0.2.10</code>；<code>host</code>不会误伤<code>hostname</code>或<code>ghost</code>。</li>
<li><strong>正则转义点支持（Escaped Dots）</strong>：当默认值包含点号（如<code>router.example.net</code>）时，引擎会自动派生出转义点版本（<code>router\.example\.net</code>），在<code>sed</code>、<code>awk</code>、<code>grep</code>或过滤规则中均能准确识别与联动。</li>
<li><strong>空格分隔转管道（Pipe Alternation）</strong>：若默认值是由空格分隔的多个名称（如<code>guest iot tiot</code>），引擎会自动支持正则表达式或模式匹配中的管道形式（<code>guest|iot|tiot</code>）。</li>
</ul>
<h3 id="4-排除特定代码块code_varsfalse">4. 排除特定代码块（<code>code_vars=&quot;false&quot;</code>）</h3>
<p>在记录终端真实执行结果、错误日志或固定版本号等代码块时，往往不希望内容随参数面板而变动。此时可通过Chroma代码块属性添加<code>{code_vars=&quot;false&quot;}</code>显式禁用替换：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl">``<span class="sb">`text {code_vars=&#34;false&#34;}
</span></span></span><span class="line"><span class="cl"><span class="sb"># 终端执行日志：添加了code_vars=&#34;false&#34;，保持真实记录不变
</span></span></span><span class="line"><span class="cl"><span class="sb">$ ping -c 1 router.example.net
</span></span></span><span class="line"><span class="cl"><span class="sb">PING router.example.net (192.0.2.1): 56 data bytes
</span></span></span><span class="line"><span class="cl"><span class="sb">64 bytes from 192.0.2.1: icmp_seq=0 ttl=64 time=0.285 ms
</span></span></span><span class="line"><span class="cl"><span class="sb">`</span>``</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="5-现场互动演示">5. 现场互动演示</h3>
<p>本页面已在Front Matter中声明了上述<code>code_vars</code>参数。请尝试在上方参数面板中将网关主机名改为你自己的域名，或者直接在下方代码块中点击编辑，观察双向同步与复制效果：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl"><span class="c1"># 1. 登录网关并配置管理接口</span>
</span></span><span class="line"><span class="cl">ssh admin@router.example.net
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 2. 绑定管理IP与测试路由连通性</span>
</span></span><span class="line"><span class="cl">ifconfig em0 inet 192.0.2.1/24 up
</span></span><span class="line"><span class="cl">route add default 192.0.2.254
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 3. 遍历隔离网段</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> net in guest iot tiot<span class="p">;</span> <span class="k">do</span>
</span></span><span class="line"><span class="cl">    <span class="nb">echo</span> <span class="s2">&#34;Configuring VLAN network: </span><span class="si">${</span><span class="nv">net</span><span class="si">}</span><span class="s2">...&#34;</span>
</span></span><span class="line"><span class="cl"><span class="k">done</span></span></span></code></pre></td></tr></table>
</div>
</div><p>以下为包含正则转义点的<code>sed</code>过滤脚本以及管道表达式：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl"><span class="c1"># 匹配转义点router\.example\.net以及管道guest|iot|tiot</span>
</span></span><span class="line"><span class="cl">sed -i <span class="s1">&#39;&#39;</span> <span class="s1">&#39;s/server=router\.example\.net/done/&#39;</span> /etc/dnsmasq.conf
</span></span><span class="line"><span class="cl">egrep <span class="s2">&#34;(guest|iot|tiot)&#34;</span> /var/log/dhcpd.log</span></span></code></pre></div><p>而下方代码块因标记了<code>{code_vars=&quot;false&quot;}</code>，无论上方如何修改，其中的值始终保持固定：</p>
<div class="highlight" code_vars="false"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"># 命令执行输出样例（保留真实日志，禁止动态替换）
</span></span><span class="line"><span class="cl">[debug] connected to router.example.net (192.0.2.1) successfully.</span></span></code></pre></div><h2 id="mermaid图表">Mermaid图表</h2>
<p>在Markdown中使用 <code>```mermaid</code> 代码块即可直接声明图表：</p>
<blockquote class="alert alert-note"><p class="alert-heading">📓 注意</p><p>代码语法高亮在构建阶段完成，无客户端运行时开销；而Mermaid则需浏览器在前端动态解析并计算图形布局。虽然该脚本仅在包含图表的页面按需加载，但仍需传输约750 KB（Brotli压缩，解压后约3570 KB）。若对单页体积有严格要求，可以考虑在构建前通过命令行工具将图表预渲染为静态SVG图片后再行引入。</p></blockquote><h3 id="示例1构建流程图">示例1：构建流程图</h3>
<figure><pre><code class="language-mermaid">flowchart LR
  A[Markdown] --&gt; B[Hugo]
  B --&gt; C{Hugo Pipes}
  C --&gt; D[CSS &#43; SRI]
  C --&gt; E[JS &#43; SRI]
  B --&gt; F[HTML]</code></pre><figcaption>图表源码（Mermaid）。请到原文查看渲染后的图形。</figcaption></figure><h3 id="示例2时序图洛伦兹的咖啡时间">示例2：时序图（洛伦兹的咖啡时间）</h3>
<p>1961年气象模拟中那次著名的「舍入误差」：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="s">```mermaid
</span></span></span><span class="line"><span class="cl">sequenceDiagram
</span></span><span class="line"><span class="cl">  autonumber
</span></span><span class="line"><span class="cl">  actor Lorenz as &#34;洛伦兹&#34;;
</span></span><span class="line"><span class="cl">  participant McBee as &#34;Royal McBee计算机&#34;;
</span></span><span class="line"><span class="cl">  participant Weather as &#34;模拟气象&#34;;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  Lorenz-&gt;&gt;McBee: 重新输入初值0.506（省略了末位127）;
</span></span><span class="line"><span class="cl">  Lorenz-&gt;&gt;Lorenz: 离开办公室喝了杯咖啡 ☕;
</span></span><span class="line"><span class="cl">  loop数月时间尺度演化;
</span></span><span class="line"><span class="cl">    McBee-&gt;&gt;Weather: 持续迭代非线性方程组;
</span></span><span class="line"><span class="cl">  end;
</span></span><span class="line"><span class="cl">  Lorenz-&gt;&gt;Weather: 回来检查打印纸;
</span></span><span class="line"><span class="cl">  Note over Lorenz,Weather: 演化轨迹与原预测结果截然不同;
</span></span><span class="line"><span class="cl"><span class="s">```</span></span></span></code></pre></td></tr></table>
</div>
</div><p>渲染效果如下：</p>
<figure><pre><code class="language-mermaid">sequenceDiagram
  autonumber
  actor Lorenz as &#34;洛伦兹&#34;;
  participant McBee as &#34;Royal McBee计算机&#34;;
  participant Weather as &#34;模拟气象&#34;;

  Lorenz-&gt;&gt;McBee: 重新输入初值0.506（省略了末位127）;
  Lorenz-&gt;&gt;Lorenz: 离开办公室喝了杯咖啡 ☕;
  loop数月时间尺度演化;
    McBee-&gt;&gt;Weather: 持续迭代非线性方程组;
  end;
  Lorenz-&gt;&gt;Weather: 回来检查打印纸;
  Note over Lorenz,Weather: 演化轨迹与原预测结果截然不同;</code></pre><figcaption>图表源码（Mermaid）。请到原文查看渲染后的图形。</figcaption></figure>]]></content></entry><entry><title>蝴蝶效应札记</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/butterfly-effect/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/butterfly-effect/"/><updated>2025-03-09T00:00:00Z</updated><published>2025-03-09T00:00:00Z</published><summary type="html">&lt;p&gt;1961年冬，气象学家&lt;a href="https://zh.wikipedia.org/wiki/%E6%84%9B%E5%BE%B7%E8%8F%AF%C2%B7%E8%AB%BE%E9%A0%93%C2%B7%E5%8B%9E%E4%BE%96%E6%AC%A1"&gt;爱德华·洛伦兹&lt;/a&gt;为了节省时间，将一组中间运算结果舍入至小数点后三位后重新键入计算机。待他喝完咖啡回到办公室时，却发现模拟出的天气演化序列已与原先截然不同。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>1961年冬，气象学家<a href="https://zh.wikipedia.org/wiki/%E6%84%9B%E5%BE%B7%E8%8F%AF%C2%B7%E8%AB%BE%E9%A0%93%C2%B7%E5%8B%9E%E4%BE%96%E6%AC%A1">爱德华·洛伦兹</a>为了节省时间，将一组中间运算结果舍入至小数点后三位后重新键入计算机。待他喝完咖啡回到办公室时，却发现模拟出的天气演化序列已与原先截然不同。</p>
<p>那台<a href="https://en.wikipedia.org/wiki/Royal_McBee">Royal McBee</a> <a href="https://en.wikipedia.org/wiki/LGP-30">LGP-30</a>计算机内部保留六位小数，打印纸上呈现的却只有三位： <code class="language-tex">\(0.506127\)</code> 变成了 <code class="language-tex">\(0.506\)</code> 。千分之一以下的微小差异，在经历数月尺度的数值演化后，被非线性机制放大成了完全不同的气象图景。</p>
<p>洛伦兹后来把这一发现概括为那个著名的问题：</p>
<blockquote><p>一只蝴蝶在巴西扇动翅膀，会在得克萨斯引起一场龙卷风吗？</p>
</blockquote><p>这并非指蝴蝶直接「导致」了<a href="https://zh.wikipedia.org/wiki/%E8%9D%B4%E8%9D%B6%E6%95%88%E5%BA%94">蝴蝶效应</a>中的风暴，而是表明：对于此类非线性动力系统，初始条件中任何无法测量的微小差异，都足以在演化中令长期预测失去意义。确定性并不等同于可预测性——这或许是<a href="https://zh.wikipedia.org/wiki/%E6%B7%B7%E6%B2%8C%E7%90%86%E8%AE%BA">混沌理论</a>留给科学界最深刻的洞见之一。</p>]]></content></entry><entry><title>少即是多：静态博客的依赖取舍</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/on-minimalism/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/on-minimalism/"/><updated>2024-10-15T00:00:00Z</updated><published>2024-10-15T00:00:00Z</published><summary type="html">&lt;p&gt;以文字内容为主的博客，真正依赖客户端脚本的交互并不繁复：外观模式切换、移动端导航折叠、代码复制以及目录的滚动定位。其余呈现与版面布局，现代HTML与CSS标准已完全足以胜任。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>以文字内容为主的博客，真正依赖客户端脚本的交互并不繁复：外观模式切换、移动端导航折叠、代码复制以及目录的滚动定位。其余呈现与版面布局，现代HTML与CSS标准已完全足以胜任。</p>
<h2 id="避免引入冗余依赖">避免引入冗余依赖</h2>
<p>主题的设计原则是<strong>避免引入不必要的外部依赖</strong>。凡可通过标准HTML与CSS实现的功能（如深浅外观、响应式版面排版），均不引入额外的运行时脚本。</p>
<p>数学公式在站点构建时直接编译为HTML与<a href="https://developer.mozilla.org/en-US/docs/Web/MathML">MathML</a>，图片交由Hugo处理生成<a href="https://zh.wikipedia.org/wiki/WebP">WebP</a>，页面跳转过渡则依托浏览器原生的<a href="https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API">Speculation Rules</a>
与<a href="https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API">View Transitions</a>规范。</p>
<h2 id="资源尺寸对照">资源尺寸对照</h2>
<p>现代Web服务器与浏览器通常支持压缩效率更高的<a href="https://zh.wikipedia.org/wiki/Brotli">Brotli</a>，同时向下兼容历史更久的<a href="https://zh.wikipedia.org/wiki/Gzip">Gzip</a>。</p>
<p>以下数据测自主题 <code>v1.0.0</code>，供使用者参考；随版本演进，具体尺寸可能略有浮动：</p>
<table>
<thead>
<tr>
<th style="text-align: left">资源与特性</th>
<th style="text-align: left">加载形式</th>
<th style="text-align: left">原始尺寸</th>
<th style="text-align: left">Gzip压缩</th>
<th style="text-align: left">Brotli压缩</th>
<th style="text-align: left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">主题核心样式(CSS)</td>
<td style="text-align: left">基础资源</td>
<td style="text-align: left">约32 KB</td>
<td style="text-align: left">约8 KB</td>
<td style="text-align: left">约7 KB</td>
<td style="text-align: left">基础配色、排版、深浅色、响应式网格</td>
</tr>
<tr>
<td style="text-align: left">等宽字体子集(WOFF2)</td>
<td style="text-align: left">按需加载</td>
<td style="text-align: left">约16 KB</td>
<td style="text-align: left">-</td>
<td style="text-align: left">-</td>
<td style="text-align: left"><a href="https://fonts.google.com/noto/specimen/Noto&#43;Sans&#43;Mono">Noto Sans Mono</a> 拉丁子集，用于代码与数字（本身已压缩）</td>
</tr>
<tr>
<td style="text-align: left">核心脚本(main.js)</td>
<td style="text-align: left">基础资源</td>
<td style="text-align: left">约6 KB</td>
<td style="text-align: left">约2 KB</td>
<td style="text-align: left">约2 KB</td>
<td style="text-align: left">深浅色切换、移动端菜单、代码复制、目录高亮</td>
</tr>
<tr>
<td style="text-align: left">全文检索模块(search.js)</td>
<td style="text-align: left">可选加载</td>
<td style="text-align: left">约6 KB</td>
<td style="text-align: left">约3 KB</td>
<td style="text-align: left">约2 KB</td>
<td style="text-align: left">离线索引检索驱动，不含按需获取的索引数据文件</td>
</tr>
<tr>
<td style="text-align: left">KaTeX样式与字体</td>
<td style="text-align: left">按需加载</td>
<td style="text-align: left">样式约25 KB</td>
<td style="text-align: left">样式约4 KB</td>
<td style="text-align: left">样式约3 KB</td>
<td style="text-align: left">显示公式时还会下载所需的字体切片（每切片约3~27 KB）</td>
</tr>
<tr>
<td style="text-align: left">Mermaid运行时(JS)</td>
<td style="text-align: left">按需加载</td>
<td style="text-align: left">约3570 KB</td>
<td style="text-align: left">约980 KB</td>
<td style="text-align: left">约750 KB</td>
<td style="text-align: left">仅在正文包含Mermaid图表时单页按需载入</td>
</tr>
</tbody>
</table>
<blockquote class="alert alert-note"><p class="alert-heading">📓 注意</p><p>关于字体的说明：</p>
<ul>
<li><strong>正文与标题</strong>：优先使用用户操作系统的默认无衬线字体，不依赖外部网络字体。</li>
<li><strong>等宽字体</strong>：内置精简后的<a href="https://fonts.google.com/noto/specimen/Noto&#43;Sans&#43;Mono">Noto Sans Mono</a>拉丁字母与数字子集（约16 KB），确保代码与数字排版等宽，中文注释则回退至系统内置字体。<a href="https://en.wikipedia.org/wiki/Web_Open_Font_Format">WOFF2</a>格式内部已采用Brotli压缩，网络传输大小即为文件本身大小。</li>
<li><strong>数学公式</strong>：KaTeX样式表约25 KB；公式中的特殊符号（如积分号、希腊字母）由浏览器按需下载对应的WOFF2字体文件，单个切片约3 KB至27 KB不等，常规公式页面通常只需获取两至三个切片。</li>
</ul></blockquote>]]></content></entry><entry><title>样张：主题组件一览</title><author><name>Chaos</name><uri>https://delphij.github.io/chaos-theme/</uri></author><id>https://delphij.github.io/chaos-theme/posts/specimen/</id><link rel="alternate" type="text/html" href="https://delphij.github.io/chaos-theme/posts/specimen/"/><updated>2024-01-01T00:00:00Z</updated><published>2024-01-01T00:00:00Z</published><summary type="html">&lt;p&gt;这一页不讲道理，只排样：把主题能渲染的组件按固定顺序放在一起，调整配色或排版之后，在浅色与深色模式下各看一遍，就能发现哪里出了问题。&lt;/p&gt;</summary><content type="html" xml:base="https://delphij.github.io/chaos-theme/"><![CDATA[<p>这一页不讲道理，只排样：把主题能渲染的组件按固定顺序放在一起，调整配色或排版之后，在浅色与深色模式下各看一遍，就能发现哪里出了问题。</p>
<h2 id="inline">正文与行内元素</h2>
<p>正文段落使用<strong>粗体</strong>、<em>斜体</em>与<em><strong>粗斜体</strong></em>，也可以<del>删除</del>一段文字。行内代码如<code>errno</code>和<code>printf(&quot;%d\n&quot;, x)</code>使用等宽字体，链接分为<a href="https://delphij.github.io/chaos-theme/posts/specimen/../../archives/">站内链接</a>与<a href="https://gohugo.io/" title="Hugo官方网站">站外链接</a>两种。中文与English、数字2026之间不手动加空格，由CSS自动留出间距。注音有<ruby>漢字<rp>（</rp><rt>かんじ</rt><rp>）</rp></ruby>、<ruby>汉字<rp>（</rp><rt>hàn zì</rt><rp>）</rp></ruby>与<ruby>临时方案<rp>（</rp><rt>永久保留</rt><rp>）</rp></ruby>三种用法。脚注标记出现在句末<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>，正文末尾会列出脚注内容；脚注里也可以有链接<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>。</p>
<p>A paragraph in English checks the Latin side of the type: quotation marks &ldquo;like these&rdquo;,
an em dash &mdash; like this &mdash; and an ellipsis&hellip; all pass through the typographer.</p>
<h3 id="三级标题">三级标题</h3>
<h4 id="四级标题">四级标题</h4>
<p>四级标题以下很少使用，这里只确认层级关系依然清楚。</p>
<h2 id="lists">列表</h2>
<ul>
<li>无序列表的第一项</li>
<li>第二项包含较长的文字，用来检查换行之后的悬挂缩进是否与首行文字对齐，而不是与项目符号对齐
<ul>
<li>嵌套的第二层
<ul>
<li>嵌套的第三层</li>
</ul>
</li>
</ul>
</li>
<li>第三项</li>
</ul>
<ol>
<li>有序列表</li>
<li>第二步
<ol>
<li>嵌套的有序列表</li>
<li>第二个子项</li>
</ol>
</li>
<li>第三步</li>
</ol>
<ul>
<li><input checked="" disabled="" type="checkbox"> 已完成的任务</li>
<li><input disabled="" type="checkbox"> 尚未完成的任务</li>
</ul>
<dl>
<dt>术语</dt>
<dd>定义列表的解释部分。</dd>
</dl>
<h2 id="quotes">引用</h2>
<blockquote><p>引用使用无边框的浅色底块，字号略小于正文，但颜色不变淡。</p>
<blockquote><p>嵌套的引用。</p>
</blockquote><p>引用里也可以有<code>行内代码</code>和<a href="https://commonmark.org/">链接</a>。</p>
</blockquote><h2 id="callouts">提示框</h2>
<blockquote class="alert alert-note"><p class="alert-heading">📓 注意</p><p>NOTE：背景信息与补充说明，含一个<a href="https://example.org/">链接</a>。</p></blockquote><blockquote class="alert alert-tip"><p class="alert-heading">💡 友情提示</p><p>TIP：使用技巧与建议。</p></blockquote><blockquote class="alert alert-important"><p class="alert-heading">❗ 重要</p><p>IMPORTANT：必须了解的关键前提。</p></blockquote><blockquote class="alert alert-warning"><p class="alert-heading">🚨 警告</p><p>WARNING：需要特别注意的警示。</p></blockquote><blockquote class="alert alert-caution"><p class="alert-heading">⚠️ 小心</p><p>CAUTION：可能造成严重后果的操作。</p></blockquote><blockquote class="alert alert-historical"><p class="alert-heading">📜 历史文件已不具备现实意义</p><p>HISTORICAL：内容已过时，仅作存档。</p></blockquote><blockquote class="alert alert-disclaimer"><p class="alert-heading">⚠️ 免责声明</p><p>DISCLAIMER：免责声明。</p></blockquote><blockquote class="alert alert-note"><p class="alert-heading">📓 带自定义标题和代码的提示框</p><p>提示框里的代码块：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sysctl kern.osreldate</span></span></code></pre></div></blockquote><h2 id="tables">表格</h2>
<table>
<thead>
<tr>
<th style="text-align: left">色名</th>
<th style="text-align: left">读音</th>
<th style="text-align: center">色值</th>
<th style="text-align: right">用途</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left">生成り色</td>
<td style="text-align: left">Kinari-iro</td>
<td style="text-align: center"><code>#FBFAF5</code></td>
<td style="text-align: right">页面底色</td>
</tr>
<tr>
<td style="text-align: left">練色</td>
<td style="text-align: left">Neri-iro</td>
<td style="text-align: center"><code>#EDE4CD</code></td>
<td style="text-align: right">悬停与选中</td>
</tr>
<tr>
<td style="text-align: left">蘇芳</td>
<td style="text-align: left">Suō</td>
<td style="text-align: center"><code>#9E3D3F</code></td>
<td style="text-align: right">主色</td>
</tr>
<tr>
<td style="text-align: left">藍色</td>
<td style="text-align: left">Ai-iro</td>
<td style="text-align: center"><code>#165E83</code></td>
<td style="text-align: right">链接</td>
</tr>
<tr>
<td style="text-align: left">墨</td>
<td style="text-align: left">Sumi</td>
<td style="text-align: center"><code>#595857</code></td>
<td style="text-align: right">次要文字</td>
</tr>
</tbody>
</table>
<p>较宽的表格应在窄屏上横向滚动，而不是撑破版面：</p>
<table>
<thead>
<tr>
<th style="text-align: left">参数</th>
<th style="text-align: right">默认值</th>
<th style="text-align: right">最小值</th>
<th style="text-align: right">最大值</th>
<th style="text-align: center">单位</th>
<th style="text-align: left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left"><code>vfs.zfs.arc_max</code></td>
<td style="text-align: right">0</td>
<td style="text-align: right">67108864</td>
<td style="text-align: right">物理内存</td>
<td style="text-align: center">字节</td>
<td style="text-align: left">ARC缓存的上限，0表示由系统自动决定</td>
</tr>
<tr>
<td style="text-align: left"><code>kern.maxfiles</code></td>
<td style="text-align: right">自动</td>
<td style="text-align: right">1024</td>
<td style="text-align: right">2147483647</td>
<td style="text-align: center">个</td>
<td style="text-align: left">系统范围内可同时打开的文件数</td>
</tr>
</tbody>
</table>
<h2 id="code">代码</h2>
<p>不足五行的代码块不显示行号：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">$ uname -r
</span></span><span class="line"><span class="cl">15.0-RELEASE</span></span></code></pre></div><p>五行以上的代码块显示行号，并高亮第8至9行。这段C代码同时用到关键字、预处理指令、字符串、数值、函数名与注释：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="hl"><span class="lnt"> 8
</span></span><span class="hl"><span class="lnt"> 9
</span></span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp">
</span></span></span><span class="line"><span class="cl"><span class="cp">#include</span> <span class="cpf">&lt;stdlib.h&gt;</span><span class="cp">
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cp">#define ITERATIONS 5
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">/* 逻辑斯谛映射：r在3.9附近进入混沌区间 */</span>
</span></span><span class="line"><span class="cl"><span class="k">static</span> <span class="kt">double</span>
</span></span><span class="line hl"><span class="cl"><span class="nf">logistic</span><span class="p">(</span><span class="kt">double</span> <span class="n">r</span><span class="p">,</span> <span class="kt">double</span> <span class="n">x</span><span class="p">)</span>
</span></span><span class="line hl"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">	<span class="k">return</span> <span class="p">(</span><span class="n">r</span> <span class="o">*</span> <span class="n">x</span> <span class="o">*</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">x</span><span class="p">));</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kt">int</span>
</span></span><span class="line"><span class="cl"><span class="nf">main</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">	<span class="kt">double</span> <span class="n">x</span> <span class="o">=</span> <span class="mf">0.2</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">	<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">ITERATIONS</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">		<span class="n">x</span> <span class="o">=</span> <span class="nf">logistic</span><span class="p">(</span><span class="mf">3.9</span><span class="p">,</span> <span class="n">x</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">		<span class="nf">printf</span><span class="p">(</span><span class="s">&#34;%d: %.6f</span><span class="se">\n</span><span class="s">&#34;</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">	<span class="p">}</span>
</span></span><span class="line"><span class="cl">	<span class="k">return</span> <span class="p">(</span><span class="n">EXIT_SUCCESS</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Python代码检查类名、装饰器与内置函数的配色：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">dataclasses</span> <span class="kn">import</span> <span class="n">dataclass</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nd">@dataclass</span>
</span></span><span class="line"><span class="cl"><span class="k">class</span> <span class="nc">Colour</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;&#34;&#34;一种传统色。&#34;&#34;&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="n">name</span><span class="p">:</span> <span class="nb">str</span>
</span></span><span class="line"><span class="cl">    <span class="nb">hex</span><span class="p">:</span> <span class="nb">str</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="k">def</span> <span class="nf">rgb</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">]:</span>
</span></span><span class="line"><span class="cl">        <span class="c1"># 去掉开头的「#」，每两位一组</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">hex</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span> <span class="o">+</span> <span class="mi">2</span><span class="p">],</span> <span class="mi">16</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">Colour</span><span class="p">(</span><span class="s2">&#34;蘇芳&#34;</span><span class="p">,</span> <span class="s2">&#34;#9E3D3F&#34;</span><span class="p">)</span><span class="o">.</span><span class="n">rgb</span><span class="p">())</span></span></span></code></pre></td></tr></table>
</div>
</div><p>HTML代码检查标签与属性的配色：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">figure</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;x-card&#34;</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;x-204125811366830080&#34;</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;</span><span class="nt">img</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;wairo.png&#34;</span> <span class="na">alt</span><span class="o">=</span><span class="s">&#34;和色色票&#34;</span> <span class="na">width</span><span class="o">=</span><span class="s">&#34;1600&#34;</span> <span class="na">height</span><span class="o">=</span><span class="s">&#34;640&#34;</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;</span><span class="nt">figcaption</span><span class="p">&gt;</span>色票<span class="p">&lt;/</span><span class="nt">figcaption</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">figure</span><span class="p">&gt;</span></span></span></code></pre></div><p>差异代码检查增删行的底色：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-diff" data-lang="diff"><span class="line"><span class="cl"><span class="gd">--- a/tokens.css
</span></span></span><span class="line"><span class="cl"><span class="gi">+++ b/tokens.css
</span></span></span><span class="line"><span class="cl"><span class="gu">@@ -193,3 +193,3 @@
</span></span></span><span class="line"><span class="cl"><span class="gd">-      --bg: #1F1E1D;
</span></span></span><span class="line"><span class="cl"><span class="gi">+      --bg: #151514;
</span></span></span><span class="line"><span class="cl">       --surface: #1B1B19;
</span></span></code></pre></td></tr></table>
</div>
</div><p>没有语言标记的预格式文本：</p>
<pre tabindex="0"><code>+--------+     +--------+
| client | --&gt; | server |
+--------+     +--------+</code></pre><h2 id="math">公式</h2>
<p>行内公式<code class="language-tex">\(e^{i\pi} &#43; 1 = 0\)</code>与正文同行排列，独立公式居中显示：</p>
<pre><code class="language-tex">$$
x_{n&#43;1} = r\,x_n\,(1 - x_n), \qquad r \in [0, 4]
$$</code></pre><h2 id="diagram">图表</h2>
<figure><pre><code class="language-mermaid">flowchart LR
    A[撰写Markdown] --&gt; B[Hugo构建]
    B --&gt; C{需要搜索?}
    C -- 是 --&gt; D[生成索引]
    C -- 否 --&gt; E[发布]
    D --&gt; E</code></pre><figcaption>图表源码（Mermaid）。请到原文查看渲染后的图形。</figcaption></figure><h2 id="image">图片</h2>
<p>页面包中的图片会生成多种尺寸与WebP版本：</p>
<p><a href="https://delphij.github.io/chaos-theme/posts/specimen/wairo_hu_452d5f094ee33a28.webp"><img src="https://delphij.github.io/chaos-theme/posts/specimen/wairo_hu_452d5f094ee33a28.webp" width="1232" height="493" alt="按主题用色排列的和色色票，从生成り色、練色到蘇芳、藍色、千歳緑、山吹色与墨"></a></p>
<h2 id="embed">嵌入卡片</h2>
<p>X（Twitter）的帖子从构建时缓存的数据渲染成静态卡片，不加载第三方脚本：</p>
<figure class="x-card" id="x-204125811366830080"><div class="x-card-header"><div class="x-card-source"><span class="x-logo" aria-hidden="true"></span><span class="x-card-label">来自X（Twitter）</span></div></div><div class="x-card-body"><blockquote class="twitter-tweet"><p lang="zh" dir="ltr">Quote：统计是让不同的专家能够从同样的数据中总结出截然相反结论的不二法门。</p>— 𝓧𝓲𝓷 𝓛𝓲 (<a href="https://x.com/delphij" target="_blank" rel="noopener noreferrer" class="x-profile-link">@delphij</a>) <a href="https://x.com/delphij/status/204125811366830080?ref_src=twsrc%5Etfw">May 20, 2012</a></blockquote>

</div></figure>
<h2 id="rule">分隔线</h2>
<p>分隔线上方的段落。</p>
<hr>
<p>分隔线下方的段落。</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>脚注的内容出现在文章末尾，带有返回正文的链接。&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>脚注语法见<a href="https://github.github.com/gfm/">CommonMark的扩展说明</a>。打印时，脚注与正文中的外部链接合编为同一组「注释」。&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>]]></content></entry></feed>