<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Author</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>http://example.com/</id>
  <link href="http://example.com/" rel="alternate"/>
  <link href="http://example.com/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Author</rights>
  <subtitle>A Simple Hexo Theme</subtitle>
  <title>Hexo</title>
  <updated>2026-05-15T21:15:16.739Z</updated>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="写作示例" scheme="http://example.com/categories/%E5%86%99%E4%BD%9C%E7%A4%BA%E4%BE%8B/"/>
    <category term="Markdown" scheme="http://example.com/tags/Markdown/"/>
    <category term="排版" scheme="http://example.com/tags/%E6%8E%92%E7%89%88/"/>
    <category term="标题" scheme="http://example.com/tags/%E6%A0%87%E9%A2%98/"/>
    <category term="目录" scheme="http://example.com/tags/%E7%9B%AE%E5%BD%95/"/>
    <content>
      <![CDATA[<p>这篇文章用于测试 Markdown 多级标题在主题中的显示效果，包括标题字号、间距、锚点、目录生成和标题之间的层级关系。</p><p>FlatPaper 的正文标题样式是刻意收敛的：主题只为正文中的 h2、h3、h4 提供专门视觉层级；h1 保留给文章主标题语义，正文里的 h5、h6 则按更轻量的默认层级呈现，避免长文结构过度复杂。</p><span id="more"></span><h1 id="一级标题：文章内部的大章节"><a href="#一级标题：文章内部的大章节" class="headerlink" title="一级标题：文章内部的大章节"></a>一级标题：文章内部的大章节</h1><p>虽然文章页通常已经有一个页面标题，但正文里仍然可能出现一级标题。主题需要确保它不会和文章主标题混淆。</p><blockquote><p>FlatPaper 主题中的 TOC 不会显示一级标题</p></blockquote><h2 id="二级标题：主要内容分区"><a href="#二级标题：主要内容分区" class="headerlink" title="二级标题：主要内容分区"></a>二级标题：主要内容分区</h2><p>二级标题通常是正文中最常见的结构层级。它适合用来划分文章的主要部分，也经常出现在文章目录中。</p><h3 id="三级标题：分区下的小节"><a href="#三级标题：分区下的小节" class="headerlink" title="三级标题：分区下的小节"></a>三级标题：分区下的小节</h3><p>三级标题用来继续拆分内容。它的视觉层级应该明显低于二级标题，但仍然比普通段落更容易被扫描到。</p><h4 id="四级标题：细节说明"><a href="#四级标题：细节说明" class="headerlink" title="四级标题：细节说明"></a>四级标题：细节说明</h4><p>四级标题适合放在技术文章或教程中，用来解释某个步骤的细节。</p><h5 id="五级标题：补充层级"><a href="#五级标题：补充层级" class="headerlink" title="五级标题：补充层级"></a>五级标题：补充层级</h5><p>五级标题不常用，但主题仍然应该给它一个稳定样式，避免它看起来像普通加粗文本。</p><h6 id="六级标题：最小标题层级"><a href="#六级标题：最小标题层级" class="headerlink" title="六级标题：最小标题层级"></a>六级标题：最小标题层级</h6><p>六级标题是 Markdown 标题层级的最后一级。它适合测试字号、字重和段落间距的下限。</p><h2 id="连续标题测试"><a href="#连续标题测试" class="headerlink" title="连续标题测试"></a>连续标题测试</h2><p>下面故意放置一组连续标题，用来观察标题之间没有正文时的垂直间距。</p><h3 id="连续三级标题"><a href="#连续三级标题" class="headerlink" title="连续三级标题"></a>连续三级标题</h3><h4 id="连续四级标题"><a href="#连续四级标题" class="headerlink" title="连续四级标题"></a>连续四级标题</h4><h5 id="连续五级标题"><a href="#连续五级标题" class="headerlink" title="连续五级标题"></a>连续五级标题</h5><h6 id="连续六级标题"><a href="#连续六级标题" class="headerlink" title="连续六级标题"></a>连续六级标题</h6><p>连续标题不应该挤在一起，也不应该产生过大的空白。</p><h2 id="标题后接列表"><a href="#标题后接列表" class="headerlink" title="标题后接列表"></a>标题后接列表</h2><h3 id="检查项"><a href="#检查项" class="headerlink" title="检查项"></a>检查项</h3><ul><li>标题左侧装饰是否和文本对齐。</li><li>标题换行后是否仍然保持自然行高。</li><li>目录锚点是否能正确跳转。</li><li>移动端标题是否会溢出容器。</li></ul><h2 id="长标题测试：这是一个故意写得很长的二级标题，用来观察标题在文章正文中换行后的行高、间距和装饰元素位置是否仍然合理"><a href="#长标题测试：这是一个故意写得很长的二级标题，用来观察标题在文章正文中换行后的行高、间距和装饰元素位置是否仍然合理" class="headerlink" title="长标题测试：这是一个故意写得很长的二级标题，用来观察标题在文章正文中换行后的行高、间距和装饰元素位置是否仍然合理"></a>长标题测试：这是一个故意写得很长的二级标题，用来观察标题在文章正文中换行后的行高、间距和装饰元素位置是否仍然合理</h2><p>长标题经常出现在教程、复盘和问题记录中。如果标题换行后行距过紧，阅读会变得很累；如果装饰元素位置固定得不合理，也会显得突兀。</p><h3 id="长三级标题测试：当标题继续变长时，主题需要保证内容不会覆盖正文、目录或侧边栏区域"><a href="#长三级标题测试：当标题继续变长时，主题需要保证内容不会覆盖正文、目录或侧边栏区域" class="headerlink" title="长三级标题测试：当标题继续变长时，主题需要保证内容不会覆盖正文、目录或侧边栏区域"></a>长三级标题测试：当标题继续变长时，主题需要保证内容不会覆盖正文、目录或侧边栏区域</h3><p>这段正文用来观察长标题之后的段落起始位置。标题和正文之间应该有清晰但不过度的距离。</p><h2 id="标题后接代码块"><a href="#标题后接代码块" class="headerlink" title="标题后接代码块"></a>标题后接代码块</h2><h3 id="示例代码"><a href="#示例代码" class="headerlink" title="示例代码"></a>示例代码</h3><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">headingLevel</span>(<span class="params">markdownLine</span>) &#123;</span><br><span class="line">  <span class="keyword">const</span> match = markdownLine.<span class="title function_">match</span>(<span class="regexp">/^(#&#123;1,6&#125;)\s+/</span>);</span><br><span class="line">  <span class="keyword">return</span> match ? match[<span class="number">1</span>].<span class="property">length</span> : <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="标题后接引用"><a href="#标题后接引用" class="headerlink" title="标题后接引用"></a>标题后接引用</h2><h3 id="引用示例"><a href="#引用示例" class="headerlink" title="引用示例"></a>引用示例</h3><blockquote><p>标题负责组织结构，段落负责承载内容。好的主题应该让这两者各自清楚。</p></blockquote><h2 id="结尾"><a href="#结尾" class="headerlink" title="结尾"></a>结尾</h2><p>这篇文章适合用来检查文章页目录、标题锚点、正文层级和移动端换行。如果这些层级都清晰，长文阅读体验会更可靠。</p>]]>
    </content>
    <id>http://example.com/2026/05/16/multi-level-headings-showcase/</id>
    <link href="http://example.com/2026/05/16/multi-level-headings-showcase/"/>
    <published>2026-05-16T03:40:00.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章用于测试 Markdown 多级标题在主题中的显示效果，包括标题字号、间距、锚点、目录生成和标题之间的层级关系。</p>
<p>FlatPaper 的正文标题样式是刻意收敛的：主题只为正文中的 h2、h3、h4 提供专门视觉层级；h1 保留给文章主标题语义，正文里的 h5、h6 则按更轻量的默认层级呈现，避免长文结构过度复杂。</p>]]>
    </summary>
    <title>多级标题测试：从一级标题到六级标题</title>
    <updated>2026-05-15T21:15:16.739Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="写作示例" scheme="http://example.com/categories/%E5%86%99%E4%BD%9C%E7%A4%BA%E4%BE%8B/"/>
    <category term="外链" scheme="http://example.com/tags/%E5%A4%96%E9%93%BE/"/>
    <category term="脚注" scheme="http://example.com/tags/%E8%84%9A%E6%B3%A8/"/>
    <category term="Markdown" scheme="http://example.com/tags/Markdown/"/>
    <category term="引用" scheme="http://example.com/tags/%E5%BC%95%E7%94%A8/"/>
    <content>
      <![CDATA[<p>这篇文章用于测试外部链接、长链接换行、脚注、引用来源和链接密集段落的排版效果。真实博客里经常会引用文档、工具、文章和规范，主题需要让这些链接清晰可见，但不能打断阅读节奏。</p><span id="more"></span><h2 id="普通外链"><a href="#普通外链" class="headerlink" title="普通外链"></a>普通外链</h2><p>Hexo 的官方文档可以从 <a href="https://hexo.io/docs/">Hexo Documentation</a> 开始阅读。Markdown 基础语法可以参考 <a href="https://spec.commonmark.org/">CommonMark Spec</a>，前端兼容性问题常常会查阅 <a href="https://developer.mozilla.org/">MDN Web Docs</a>。</p><p>这些链接都在正文段落内，适合观察链接颜色、下划线、悬停状态和外链打开行为。</p><h2 id="长-URL-换行"><a href="#长-URL-换行" class="headerlink" title="长 URL 换行"></a>长 URL 换行</h2><p>下面是一条故意保留完整显示的长链接，用于检查正文容器是否会被撑破：</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_text/Wrapping_breaking_text#breaking_long_words">https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_text/Wrapping_breaking_text#breaking_long_words</a></p><p>还有一条更接近真实搜索和追踪参数的链接：</p><p><a href="https://example.com/articles/theme-preview-checklist?utm_source=demo-blog&utm_medium=markdown&utm_campaign=external-link-test&section=long-url-wrapping-behavior">https://example.com/articles/theme-preview-checklist?utm_source=demo-blog&amp;utm_medium=markdown&amp;utm_campaign=external-link-test&amp;section=long-url-wrapping-behavior</a></p><p>如果主题设置了合适的 <code>overflow-wrap</code> 或 <code>word-break</code>，这些 URL 应该能在窄屏中自然换行。</p><h2 id="链接密集段落"><a href="#链接密集段落" class="headerlink" title="链接密集段落"></a>链接密集段落</h2><p>构建一个 Hexo 主题时，可能会同时参考 <a href="https://hexo.io/docs/variables">Hexo 变量</a>、<a href="https://hexo.io/docs/helpers">辅助函数</a>、<a href="https://hexo.io/docs/themes">主题文档</a> 和 <a href="https://hexo.io/docs/front-matter">Front Matter</a>。链接密集段落适合测试文字颜色是否过重，以及多个链接相邻时是否容易识别。</p><h2 id="脚注"><a href="#脚注" class="headerlink" title="脚注"></a>脚注</h2><p>脚注适合放补充说明，而不是打断正文的解释。比如，文章摘要通常由 <code>excerpt</code> 或 <code>&lt;!-- more --&gt;</code> 控制<sup id="fnref-excerpt"><a href="#fn-excerpt">1</a></sup>；代码高亮则取决于站点配置和渲染器支持<sup id="fnref-highlight"><a href="#fn-highlight">2</a></sup>。</p><p>在中文文章中，脚注标记应该不会让行高变得突兀<sup id="fnref-line-height"><a href="#fn-line-height">3</a></sup>。如果脚注列表出现在文章底部，它需要和正文、上一篇下一篇导航保持清晰间距。</p><h2 id="引用来源"><a href="#引用来源" class="headerlink" title="引用来源"></a>引用来源</h2><blockquote><p>链接本身也是内容的一部分。它提供上下文、来源和继续阅读的路径。</p></blockquote><p>这段引用后面接一个来源链接：<a href="https://developer.mozilla.org/en-US/docs/Learn/Accessibility">阅读更多关于网页可访问性的内容</a>。</p><h2 id="混合列表"><a href="#混合列表" class="headerlink" title="混合列表"></a>混合列表</h2><ul><li>官方文档：<a href="https://hexo.io/docs/">Hexo</a></li><li>Markdown 规范：<a href="https://spec.commonmark.org/">CommonMark</a></li><li>CSS 换行参考：<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_text/Wrapping_breaking_text">Wrapping and breaking text</a></li><li>示例长域名：<a href="https://very-long-subdomain-name.example.com/path/to/a/very/deep/article/with/many/segments">https://very-long-subdomain-name.example.com/path/to/a/very/deep/article/with/many/segments</a></li></ul><h2 id="结尾"><a href="#结尾" class="headerlink" title="结尾"></a>结尾</h2><p>如果这篇文章在桌面端和移动端都没有横向滚动，并且脚注区域清晰可读，说明主题对外部引用型文章的支持已经比较稳定。</p><section class="footnotes" aria-label="脚注">  <ol>    <li id="fn-excerpt">Hexo 可以通过文章摘要控制首页卡片显示内容，常见做法是在正文中插入 <code>&lt;!-- more --&gt;</code>。<a class="footnote-backref" href="#fnref-excerpt" aria-label="返回正文">↩</a></li>    <li id="fn-highlight">当前站点配置使用 <code>highlight.js</code>。不同渲染器会生成不同的代码块 HTML 结构。<a class="footnote-backref" href="#fnref-highlight" aria-label="返回正文">↩</a></li>    <li id="fn-line-height">脚注标记通常会使用上标样式，行高过紧时容易影响正文阅读。<a class="footnote-backref" href="#fnref-line-height" aria-label="返回正文">↩</a></li>  </ol></section>]]>
    </content>
    <id>http://example.com/2026/05/16/external-links-and-footnotes/</id>
    <link href="http://example.com/2026/05/16/external-links-and-footnotes/"/>
    <published>2026-05-16T03:05:00.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章用于测试外部链接、长链接换行、脚注、引用来源和链接密集段落的排版效果。真实博客里经常会引用文档、工具、文章和规范，主题需要让这些链接清晰可见，但不能打断阅读节奏。</p>]]>
    </summary>
    <title>外链与脚注测试：链接样式、长 URL 与引用来源</title>
    <updated>2026-05-15T18:05:46.726Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="Note" scheme="http://example.com/categories/Note/"/>
    <category term="Hexo" scheme="http://example.com/tags/Hexo/"/>
    <category term="写作技巧" scheme="http://example.com/tags/%E5%86%99%E4%BD%9C%E6%8A%80%E5%B7%A7/"/>
    <content>
      <![CDATA[<p>如果你写过 VitePress 或者 Docusaurus，应该对 <code>::: warning</code> 这种容器语法很熟。FlatPaper 主题现在同时支持这种写法 —— 你不再需要 <code>note</code> 标签和对应的 <code>endnote</code> 两端围起来，直接用 <code>:::</code> 开合即可。两种语法可以在同一篇文章里混用，老文章不受影响。</p><span id="more"></span><h2 id="1-基本写法"><a href="#1-基本写法" class="headerlink" title="1. 基本写法"></a>1. 基本写法</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">::: success</span><br><span class="line">一个 Success 提示</span><br><span class="line">:::</span><br></pre></td></tr></table></figure><p>效果：</p><div class="flatpaper-note flatpaper-note--success"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Success 提示</p></div></div><p>可以理解为 <code>:::</code> 是 <code>note</code> 标签的语法糖，两者<strong>完全等价</strong> —— 渲染出来的 DOM、折叠行为、样式都一模一样，只是更轻、更接近通用 markdown 习惯。</p><h2 id="2-折叠提示"><a href="#2-折叠提示" class="headerlink" title="2. 折叠提示"></a>2. 折叠提示</h2><p>只要在类型后跟标题，就会自动渲染为可折叠的 <code>&lt;details&gt;</code>：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">::: warning 点我展开</span><br><span class="line">这里是被折叠的内容。</span><br><span class="line">:::</span><br></pre></td></tr></table></figure><details class="flatpaper-note flatpaper-note--warning is-collapsible"><summary class="flatpaper-note__title"><span class="flatpaper-note__icon" aria-hidden="true"></span><span class="flatpaper-note__label">点我展开</span><span class="flatpaper-note__chevron" aria-hidden="true"></span></summary><div class="flatpaper-note__body"><p>这里是被折叠的内容。</p></div></details><h2 id="3-支持的全部类型"><a href="#3-支持的全部类型" class="headerlink" title="3. 支持的全部类型"></a>3. 支持的全部类型</h2><p>和 <code>note</code> 标签共用同一套类型常量，一共 6 种：</p><div class="flatpaper-note flatpaper-note--default"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Default 提示</p></div></div><div class="flatpaper-note flatpaper-note--primary"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Primary 提示</p></div></div><div class="flatpaper-note flatpaper-note--success"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Success 提示</p></div></div><div class="flatpaper-note flatpaper-note--info"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Info 提示</p></div></div><div class="flatpaper-note flatpaper-note--warning"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Warning 提示</p></div></div><div class="flatpaper-note flatpaper-note--danger"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Danger 提示</p></div></div><p>对应代码：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">::: default</span><br><span class="line">一个 Default 提示</span><br><span class="line">:::</span><br><span class="line"></span><br><span class="line">::: primary</span><br><span class="line">一个 Primary 提示</span><br><span class="line">:::</span><br><span class="line"></span><br><span class="line">::: success</span><br><span class="line">一个 Success 提示</span><br><span class="line">:::</span><br><span class="line"></span><br><span class="line">::: info</span><br><span class="line">一个 Info 提示</span><br><span class="line">:::</span><br><span class="line"></span><br><span class="line">::: warning</span><br><span class="line">一个 Warning 提示</span><br><span class="line">:::</span><br><span class="line"></span><br><span class="line">::: danger</span><br><span class="line">一个 Danger 提示</span><br><span class="line">:::</span><br></pre></td></tr></table></figure><h2 id="4-与-note-标签的关系"><a href="#4-与-note-标签的关系" class="headerlink" title="4. 与 note 标签的关系"></a>4. 与 <code>note</code> 标签的关系</h2><table><thead><tr><th>维度</th><th><code>note</code> 标签</th><th><code>:::</code></th></tr></thead><tbody><tr><td>语法风格</td><td>Hexo &#x2F; Nunjucks 标签</td><td>通用 markdown 容器扩展（VitePress 派）</td></tr><tr><td>类型集合</td><td><code>default / primary / success / info / warning / danger</code></td><td>同左</td></tr><tr><td>折叠语义</td><td>跟在类型后写标题即折叠</td><td>同左</td></tr><tr><td>嵌套</td><td>不支持</td><td>不支持</td></tr><tr><td>代码块中出现</td><td>会被当成普通文本</td><td>同左（fenced &#x2F; indented 代码内安全）</td></tr><tr><td>编辑器预览</td><td>Typora 等看到的是裸 Nunjucks</td><td>标准 markdown 容器，预览更友好</td></tr></tbody></table><p>主题在 <code>before_post_render</code> 阶段把 <code>:::</code> 改写成等价的 <code>note</code> 标签，再交给 Hexo 后续流程处理。所以<strong>所有现有的 <code>note</code> 标签文章不需要改动，新写的可以选用更轻的 <code>:::</code></strong>。</p><h2 id="5-边界注意"><a href="#5-边界注意" class="headerlink" title="5. 边界注意"></a>5. 边界注意</h2><ul><li><code>:::</code> 开合两行必须各自独占一行，前后建议留空行（和 VitePress 行为一致）</li><li>类型名错拼（如 <code>::: succes</code>）不会被识别，会原样输出 <code>:::</code></li><li>不支持嵌套 —— 如果需要在 note 里再放 note，请直接用一层</li><li>代码块内的 <code>:::</code>（不管是 &#96;&#96;&#96; 还是 ~~~ 还是 4 空格缩进）都会被完整保留，不会误触发改写</li></ul>]]>
    </content>
    <id>http://example.com/2026/05/16/note-container-syntax/</id>
    <link href="http://example.com/2026/05/16/note-container-syntax/"/>
    <published>2026-05-16T03:00:00.000Z</published>
    <summary>
      <![CDATA[<p>如果你写过 VitePress 或者 Docusaurus，应该对 <code>::: warning</code> 这种容器语法很熟。FlatPaper 主题现在同时支持这种写法 —— 你不再需要 <code>note</code> 标签和对应的 <code>endnote</code> 两端围起来，直接用 <code>:::</code> 开合即可。两种语法可以在同一篇文章里混用，老文章不受影响。</p>]]>
    </summary>
    <title>用 VitePress 风格的 note 容器语法</title>
    <updated>2026-05-16T04:10:09.563Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="写作示例" scheme="http://example.com/categories/%E5%86%99%E4%BD%9C%E7%A4%BA%E4%BE%8B/"/>
    <category term="图片" scheme="http://example.com/tags/%E5%9B%BE%E7%89%87/"/>
    <category term="图文排版" scheme="http://example.com/tags/%E5%9B%BE%E6%96%87%E6%8E%92%E7%89%88/"/>
    <category term="预览" scheme="http://example.com/tags/%E9%A2%84%E8%A7%88/"/>
    <content>
      <![CDATA[<p>这篇文章用于测试主题在多张图片场景下的展示效果，包括单图、连续图片、图注、横向排布和图片之间的段落间距。</p><span id="more"></span><h2 id="单张大图"><a href="#单张大图" class="headerlink" title="单张大图"></a>单张大图</h2><p><img src="/images/preview-gallery/morning-desk.svg" alt="晨间书桌"></p><p><em>图 1：用于观察正文区域中的单张大图宽度、圆角、边距和上下留白。</em></p><h2 id="连续图片"><a href="#连续图片" class="headerlink" title="连续图片"></a>连续图片</h2><p>下面两张图片连续出现，适合检查图片之间的垂直间距是否过密，或者是否和普通段落之间产生不自然的断层。</p><p><img src="/images/preview-gallery/city-window.svg" alt="城市窗景"></p><p><img src="/images/preview-gallery/paper-notes.svg" alt="纸张笔记"></p><p>连续图片在移动端尤其容易暴露问题：如果图片宽度、容器边距和正文行宽不一致，页面会显得很松散。</p><h2 id="图文混排"><a href="#图文混排" class="headerlink" title="图文混排"></a>图文混排</h2><figure>  <img src="/images/preview-gallery/reading-corner.svg" alt="阅读角落">  <figcaption>图 2：HTML figure 写法，用于测试主题是否给 figcaption 留出合适的文字样式。</figcaption></figure><p>图片之后的正文应该自然回到文章节奏中。图注颜色可以更轻，但不能低到难以阅读。</p><h2 id="双图预览"><a href="#双图预览" class="headerlink" title="双图预览"></a>双图预览</h2><div class="gallery-preview-row">  <figure>    <img src="/images/preview-gallery/river-walk.svg" alt="河岸散步">    <figcaption>河岸散步</figcaption>  </figure>  <figure>    <img src="/images/preview-gallery/morning-desk.svg" alt="晨间书桌">    <figcaption>晨间书桌</figcaption>  </figure></div><p>如果主题没有专门处理 <code>.gallery-preview-row</code>，这段 HTML 仍然可以作为普通块级内容显示；后续也可以给它添加响应式双列样式。</p><h2 id="长段落后的图片"><a href="#长段落后的图片" class="headerlink" title="长段落后的图片"></a>长段落后的图片</h2><p>为了模拟真实写作，这里放一段较长的文字。很多文章不会只连续放图，而是在说明、观察和图片之间来回切换。主题需要保证图片不会抢占全部视觉重心，也不能被正文压得像附件。图片是内容的一部分，它和文字应该保持同一套排版秩序。</p><p><img src="/images/preview-gallery/river-walk.svg" alt="河岸散步"></p><p>这张图放在长段落之后，用于检查段落结束到图片开始之间的距离是否自然。</p>]]>
    </content>
    <id>http://example.com/2026/05/16/image-gallery-preview/</id>
    <link href="http://example.com/2026/05/16/image-gallery-preview/"/>
    <published>2026-05-16T02:10:00.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章用于测试主题在多张图片场景下的展示效果，包括单图、连续图片、图注、横向排布和图片之间的段落间距。</p>]]>
    </summary>
    <title>图片排版预览：多图、图注与长图测试</title>
    <updated>2026-05-15T18:05:36.221Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="写作示例" scheme="http://example.com/categories/%E5%86%99%E4%BD%9C%E7%A4%BA%E4%BE%8B/"/>
    <category term="代码块" scheme="http://example.com/tags/%E4%BB%A3%E7%A0%81%E5%9D%97/"/>
    <category term="高亮" scheme="http://example.com/tags/%E9%AB%98%E4%BA%AE/"/>
    <category term="JavaScript" scheme="http://example.com/tags/JavaScript/"/>
    <category term="Python" scheme="http://example.com/tags/Python/"/>
    <category term="CSS" scheme="http://example.com/tags/CSS/"/>
    <content>
      <![CDATA[<p>这篇文章用于测试主题在不同代码语言下的高亮、行距、横向滚动和暗色背景表现。它包含前端、后端、配置文件、命令行和数据库查询等常见代码块。</p><span id="more"></span><h2 id="JavaScript"><a href="#JavaScript" class="headerlink" title="JavaScript"></a>JavaScript</h2><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> posts = [</span><br><span class="line">  &#123; <span class="attr">title</span>: <span class="string">&#x27;主题开发记录&#x27;</span>, <span class="attr">category</span>: <span class="string">&#x27;开发日志&#x27;</span> &#125;,</span><br><span class="line">  &#123; <span class="attr">title</span>: <span class="string">&#x27;Markdown 元素展示&#x27;</span>, <span class="attr">category</span>: <span class="string">&#x27;写作示例&#x27;</span> &#125;,</span><br><span class="line">  &#123; <span class="attr">title</span>: <span class="string">&#x27;周末散步记录&#x27;</span>, <span class="attr">category</span>: <span class="string">&#x27;生活&#x27;</span> &#125;</span><br><span class="line">];</span><br><span class="line"></span><br><span class="line"><span class="keyword">const</span> grouped = posts.<span class="title function_">reduce</span>(<span class="function">(<span class="params">result, post</span>) =&gt;</span> &#123;</span><br><span class="line">  result[post.<span class="property">category</span>] ||= [];</span><br><span class="line">  result[post.<span class="property">category</span>].<span class="title function_">push</span>(post);</span><br><span class="line">  <span class="keyword">return</span> result;</span><br><span class="line">&#125;, &#123;&#125;);</span><br><span class="line"></span><br><span class="line"><span class="variable language_">console</span>.<span class="title function_">log</span>(grouped);</span><br></pre></td></tr></table></figure><h2 id="TypeScript"><a href="#TypeScript" class="headerlink" title="TypeScript"></a>TypeScript</h2><figure class="highlight ts"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">type</span> <span class="title class_">PostMeta</span> = &#123;</span><br><span class="line">  <span class="attr">title</span>: <span class="built_in">string</span>;</span><br><span class="line">  <span class="attr">date</span>: <span class="built_in">string</span>;</span><br><span class="line">  <span class="attr">tags</span>: <span class="built_in">string</span>[];</span><br><span class="line">  <span class="attr">draft</span>?: <span class="built_in">boolean</span>;</span><br><span class="line">&#125;;</span><br><span class="line"></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">isPublished</span>(<span class="params"><span class="attr">post</span>: <span class="title class_">PostMeta</span></span>): <span class="built_in">boolean</span> &#123;</span><br><span class="line">  <span class="keyword">return</span> post.<span class="property">draft</span> !== <span class="literal">true</span> &amp;&amp; <span class="title class_">Boolean</span>(post.<span class="property">title</span>.<span class="title function_">trim</span>());</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="Python"><a href="#Python" class="headerlink" title="Python"></a>Python</h2><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> pathlib <span class="keyword">import</span> Path</span><br><span class="line"></span><br><span class="line">posts_dir = Path(<span class="string">&quot;source/_posts&quot;</span>)</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span> path <span class="keyword">in</span> posts_dir.glob(<span class="string">&quot;*.md&quot;</span>):</span><br><span class="line">    title = path.stem.replace(<span class="string">&quot;-&quot;</span>, <span class="string">&quot; &quot;</span>).title()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">f&quot;<span class="subst">&#123;title&#125;</span>: <span class="subst">&#123;path.stat().st_size&#125;</span> bytes&quot;</span>)</span><br></pre></td></tr></table></figure><h2 id="HTML"><a href="#HTML" class="headerlink" title="HTML"></a>HTML</h2><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">article</span> <span class="attr">class</span>=<span class="string">&quot;post-card&quot;</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">h2</span>&gt;</span><span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&quot;/posts/theme-layout-checklist/&quot;</span>&gt;</span>FlatPaper 主题页面检查清单<span class="tag">&lt;/<span class="name">a</span>&gt;</span><span class="tag">&lt;/<span class="name">h2</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">p</span>&gt;</span>用于检查首页卡片、文章详情、归档、分类和标签页的基础展示效果。<span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">article</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="CSS"><a href="#CSS" class="headerlink" title="CSS"></a>CSS</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.post-card</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: grid;</span><br><span class="line">  <span class="attribute">grid-template-columns</span>: <span class="built_in">minmax</span>(<span class="number">120px</span>, <span class="number">180px</span>) <span class="number">1</span>fr;</span><br><span class="line">  <span class="attribute">gap</span>: <span class="number">24px</span>;</span><br><span class="line">  <span class="attribute">padding</span>: <span class="number">24px</span>;</span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">background</span>: <span class="number">#fffdf7</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.post-card</span> <span class="selector-tag">h2</span> &#123;</span><br><span class="line">  <span class="attribute">margin</span>: <span class="number">0</span> <span class="number">0</span> <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">font-size</span>: <span class="number">1.25rem</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="Shell"><a href="#Shell" class="headerlink" title="Shell"></a>Shell</h2><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/sh</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> -eu</span><br><span class="line"></span><br><span class="line">POST_DIR=<span class="string">&quot;source/_posts&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span> file <span class="keyword">in</span> <span class="string">&quot;<span class="variable">$POST_DIR</span>&quot;</span>/*.md; <span class="keyword">do</span></span><br><span class="line">  <span class="built_in">printf</span> <span class="string">&#x27;Checking %s\n&#x27;</span> <span class="string">&quot;<span class="variable">$file</span>&quot;</span></span><br><span class="line"><span class="keyword">done</span></span><br></pre></td></tr></table></figure><h2 id="Bash"><a href="#Bash" class="headerlink" title="Bash"></a>Bash</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/usr/bin/env bash</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> -euo pipefail</span><br><span class="line"></span><br><span class="line">posts_dir=<span class="string">&quot;source/_posts&quot;</span></span><br><span class="line">latest_post=<span class="string">&quot;<span class="subst">$(find <span class="string">&quot;<span class="variable">$posts_dir</span>&quot;</span> -name &#x27;*.md&#x27; -print | sort | tail -n 1)</span>&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Latest post file: <span class="variable">$&#123;latest_post&#125;</span>&quot;</span></span><br><span class="line">pnpm build</span><br></pre></td></tr></table></figure><h2 id="C"><a href="#C" class="headerlink" title="C"></a>C</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;string.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">(<span class="type">void</span>)</span> &#123;</span><br><span class="line">    <span class="type">const</span> <span class="type">char</span> *title = <span class="string">&quot;FlatPaper theme test&quot;</span>;</span><br><span class="line">    <span class="type">size_t</span> length = <span class="built_in">strlen</span>(title);</span><br><span class="line"></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Post title: %s\n&quot;</span>, title);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Title length: %zu\n&quot;</span>, length);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="PowerShell"><a href="#PowerShell" class="headerlink" title="PowerShell"></a>PowerShell</h2><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-ChildItem</span> source\_posts <span class="literal">-Filter</span> *.md |</span><br><span class="line">  <span class="built_in">Sort-Object</span> LastWriteTime <span class="literal">-Descending</span> |</span><br><span class="line">  <span class="built_in">Select-Object</span> Name, Length, LastWriteTime</span><br></pre></td></tr></table></figure><h2 id="JSON"><a href="#JSON" class="headerlink" title="JSON"></a>JSON</h2><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;flatpaper&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;version&quot;</span><span class="punctuation">:</span> <span class="string">&quot;1.0.0&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;features&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="string">&quot;archives&quot;</span><span class="punctuation">,</span> <span class="string">&quot;categories&quot;</span><span class="punctuation">,</span> <span class="string">&quot;tags&quot;</span><span class="punctuation">,</span> <span class="string">&quot;code-highlight&quot;</span><span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;theme&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;excerpt_length&quot;</span><span class="punctuation">:</span> <span class="number">96</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;recent_posts&quot;</span><span class="punctuation">:</span> <span class="number">3</span></span><br><span class="line">  <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><h2 id="YAML"><a href="#YAML" class="headerlink" title="YAML"></a>YAML</h2><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">title:</span> <span class="string">多语言代码示例</span></span><br><span class="line"><span class="attr">date:</span> <span class="number">2026-05-16 10:20:00</span></span><br><span class="line"><span class="attr">categories:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">写作示例</span></span><br><span class="line"><span class="attr">tags:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">代码块</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">高亮</span></span><br></pre></td></tr></table></figure><h2 id="SQL"><a href="#SQL" class="headerlink" title="SQL"></a>SQL</h2><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">select</span></span><br><span class="line">  category,</span><br><span class="line">  <span class="built_in">count</span>(<span class="operator">*</span>) <span class="keyword">as</span> post_count,</span><br><span class="line">  <span class="built_in">max</span>(published_at) <span class="keyword">as</span> latest_post</span><br><span class="line"><span class="keyword">from</span> posts</span><br><span class="line"><span class="keyword">where</span> draft <span class="operator">=</span> <span class="literal">false</span></span><br><span class="line"><span class="keyword">group</span> <span class="keyword">by</span> category</span><br><span class="line"><span class="keyword">order</span> <span class="keyword">by</span> latest_post <span class="keyword">desc</span>;</span><br></pre></td></tr></table></figure><h2 id="EJS"><a href="#EJS" class="headerlink" title="EJS"></a>EJS</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">&lt;% posts.forEach(function(post) &#123; %&gt;</span><br><span class="line">  &lt;article class=&quot;archive-item&quot;&gt;</span><br><span class="line">    &lt;time&gt;&lt;%= date(post.date, &#x27;YYYY-MM-DD&#x27;) %&gt;&lt;/time&gt;</span><br><span class="line">    &lt;a href=&quot;&lt;%- url_for(post.path) %&gt;&quot;&gt;&lt;%= post.title %&gt;&lt;/a&gt;</span><br><span class="line">  &lt;/article&gt;</span><br><span class="line">&lt;% &#125;) %&gt;</span><br></pre></td></tr></table></figure><h2 id="长行测试"><a href="#长行测试" class="headerlink" title="长行测试"></a>长行测试</h2><figure class="highlight txt"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">这是一行很长的文本，用来检查代码块在窄屏下是否会正确横向滚动，而不是撑破文章容器或者覆盖侧边栏内容。</span><br></pre></td></tr></table></figure><p>如果这些代码块在文章详情页里都能保持可读，说明主题的代码高亮基础样式已经比较稳定。</p>]]>
    </content>
    <id>http://example.com/2026/05/16/multi-language-code-samples/</id>
    <link href="http://example.com/2026/05/16/multi-language-code-samples/"/>
    <published>2026-05-16T01:20:00.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章用于测试主题在不同代码语言下的高亮、行距、横向滚动和暗色背景表现。它包含前端、后端、配置文件、命令行和数据库查询等常见代码块。</p>]]>
    </summary>
    <title>多语言代码示例：用于测试代码高亮</title>
    <updated>2026-05-16T03:53:55.047Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="Note" scheme="http://example.com/categories/Note/"/>
    <category term="Hexo" scheme="http://example.com/tags/Hexo/"/>
    <content>
      <![CDATA[<p>在 Hexo 中可以插入一些很酷的提示块，效果如下：</p><h2 id="1-基本语法"><a href="#1-基本语法" class="headerlink" title="1. 基本语法"></a>1. 基本语法</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note success %&#125;</span><br><span class="line">一个 Success 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><div class="flatpaper-note flatpaper-note--success"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Success 提示</p></div></div><span id="more"></span><p>提示块可以实现折叠   </p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note success 一个折叠的提示 %&#125;</span><br><span class="line">一个折叠的 Success 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><details class="flatpaper-note flatpaper-note--success is-collapsible"><summary class="flatpaper-note__title"><span class="flatpaper-note__icon" aria-hidden="true"></span><span class="flatpaper-note__label">一个折叠的提示</span><span class="flatpaper-note__chevron" aria-hidden="true"></span></summary><div class="flatpaper-note__body"><p>一个折叠的 Success 提示</p></div></details><h2 id="2-更多风格"><a href="#2-更多风格" class="headerlink" title="2. 更多风格"></a>2. 更多风格</h2><p>下面是全部支持的样式</p><div class="flatpaper-note flatpaper-note--default"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Default 提示</p></div></div><div class="flatpaper-note flatpaper-note--primary"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Primary 提示</p></div></div><div class="flatpaper-note flatpaper-note--success"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Success 提示</p></div></div><div class="flatpaper-note flatpaper-note--info"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Info 提示</p></div></div><div class="flatpaper-note flatpaper-note--warning"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Warning 提示</p></div></div><div class="flatpaper-note flatpaper-note--danger"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Danger 提示</p></div></div><p>对应的代码</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note default %&#125;</span><br><span class="line">一个 default 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% note primary %&#125;</span><br><span class="line">一个 primary 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% note success %&#125;</span><br><span class="line">一个 success 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% note info %&#125;</span><br><span class="line">一个 info 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% note warning %&#125;</span><br><span class="line">一个 warning 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% note danger %&#125;</span><br><span class="line">一个 danger 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><h2 id="3-Hexo-NEXT-中设置样式"><a href="#3-Hexo-NEXT-中设置样式" class="headerlink" title="3. Hexo NEXT 中设置样式"></a>3. Hexo NEXT 中设置样式</h2><p>当前使用的 <code>flat</code> 的风格 </p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Note tag (bootstrap callout)</span></span><br><span class="line"><span class="attr">note:</span></span><br><span class="line">  <span class="comment"># Note tag style values:</span></span><br><span class="line">  <span class="comment">#  - simple    bootstrap callout old alert style. Default.</span></span><br><span class="line">  <span class="comment">#  - modern    bootstrap callout new (v2-v3) alert style.</span></span><br><span class="line">  <span class="comment">#  - flat      flat callout style with background, like on Mozilla or StackOverflow.</span></span><br><span class="line">  <span class="comment">#  - disabled  disable all CSS styles import of note tag.</span></span><br><span class="line">  <span class="attr">style:</span> <span class="string">flat</span></span><br><span class="line">  <span class="attr">icons:</span> <span class="literal">false</span></span><br><span class="line">  <span class="comment"># Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).</span></span><br><span class="line">  <span class="comment"># Offset also applied to label tag variables. This option can work with disabled note tag.</span></span><br><span class="line">  <span class="attr">light_bg_offset:</span> <span class="number">0</span></span><br></pre></td></tr></table></figure><h2 id="4-使用-Tabs-标签"><a href="#4-使用-Tabs-标签" class="headerlink" title="4. 使用 Tabs 标签"></a>4. 使用 Tabs 标签</h2><p>还可以在文章内设置选项卡</p><p>每个子标签显示为 <code>标签 + 数字序号</code> ，默认展开第 1 个选项卡，如果是 -1 则只显示标签，不显示内容，点击可以显示内容</p><div class="flatpaper-tabs" data-default="1"><div class="flatpaper-tabs__nav" role="tablist"><button type="button" role="tab" id="tabs-1-tab-0" aria-controls="tabs-1-panel-0" aria-selected="true" class="flatpaper-tabs__nav-item is-active" data-index="0">标签 1</button><button type="button" role="tab" id="tabs-1-tab-1" aria-controls="tabs-1-panel-1" aria-selected="false" class="flatpaper-tabs__nav-item" data-index="1">标签 2</button><button type="button" role="tab" id="tabs-1-tab-2" aria-controls="tabs-1-panel-2" aria-selected="false" class="flatpaper-tabs__nav-item" data-index="2">TAB 三</button></div><div class="flatpaper-tabs__panels"><section role="tabpanel" id="tabs-1-panel-0" aria-labelledby="tabs-1-tab-0" class="flatpaper-tabs__panel is-active" data-index="0"><p><strong>选项卡 1</strong></p></section><section role="tabpanel" id="tabs-1-panel-1" aria-labelledby="tabs-1-tab-1" class="flatpaper-tabs__panel" data-index="1" hidden><p><strong>选项卡 2</strong></p></section><section role="tabpanel" id="tabs-1-panel-2" aria-labelledby="tabs-1-tab-2" class="flatpaper-tabs__panel" data-index="2" hidden><p><strong>选项卡 3</strong> 名字为 <code>TAB 三</code></p></section></div></div><p>下面是上面标签的代码</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">&#123;% tabs 标签, 1 %&#125; </span><br><span class="line">&lt;!-- tab --&gt;</span><br><span class="line">**选项卡 1** </span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line">&lt;!-- tab --&gt;</span><br><span class="line">**选项卡 2**</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line">&lt;!-- tab 标签三 --&gt;</span><br><span class="line">**选项卡 3** , 名字为 `TAB三`</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line">&#123;% endtabs %&#125;</span><br></pre></td></tr></table></figure><p>第一行 <code>&#123;% tabs 标签, 1 %&#125;</code> 设置每个子标签在不指定标题时显示为 <code>标签 + 数字序号</code><br><code>1</code> 表示默认展开第 1 个选项卡，如果是 <code>-1</code> 则只显示标签标题，隐藏内容，点击可以显示内容</p><p>\ Awesome! &#x2F;</p><p><strong>Ref:</strong> <a href="https://jinnsjj.github.io/uncategorized/hexo-next-note/">在hexo-NexT中插入note提示块</a></p>]]>
    </content>
    <id>http://example.com/2026/05/16/hexo-use-note-and-tabs-block/</id>
    <link href="http://example.com/2026/05/16/hexo-use-note-and-tabs-block/"/>
    <published>2026-05-15T17:17:28.000Z</published>
    <summary>
      <![CDATA[<p>在 Hexo 中可以插入一些很酷的提示块，效果如下：</p>
<h2 id="1-基本语法"><a href="#1-基本语法" class="headerlink" title="1. 基本语法"></a>1. 基本语法</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note success %&#125;</span><br><span class="line">一个 Success 提示</span><br><span class="line">&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure>

<div class="flatpaper-note flatpaper-note--success"><span class="flatpaper-note__icon" aria-hidden="true"></span><div class="flatpaper-note__body"><p>一个 Success 提示</p></div></div>]]>
    </summary>
    <title>在 Hexo 中使用 NOTE 提示块</title>
    <updated>2026-05-15T17:26:55.811Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <content>
      <![CDATA[<p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues">GitHub</a>.</p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">&quot;My New Post&quot;</span></span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>]]>
    </content>
    <id>http://example.com/2026/05/15/hello-world/</id>
    <link href="http://example.com/2026/05/15/hello-world/"/>
    <published>2026-05-15T11:23:56.804Z</published>
    <summary>
      <![CDATA[<p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for]]>
    </summary>
    <title>Hello World</title>
    <updated>2026-05-15T11:23:56.804Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="主题开发" scheme="http://example.com/categories/%E4%B8%BB%E9%A2%98%E5%BC%80%E5%8F%91/"/>
    <category term="Hexo" scheme="http://example.com/tags/Hexo/"/>
    <category term="主题" scheme="http://example.com/tags/%E4%B8%BB%E9%A2%98/"/>
    <category term="测试" scheme="http://example.com/tags/%E6%B5%8B%E8%AF%95/"/>
    <content>
      <![CDATA[<p>这篇文章用于快速检查首页卡片、文章详情、归档、分类和标签页的基础展示效果。它刻意包含较短段落、清单和多个二级标题，方便观察排版节奏。</p><span id="more"></span><h2 id="首页卡片"><a href="#首页卡片" class="headerlink" title="首页卡片"></a>首页卡片</h2><p>首页最容易暴露间距问题。卡片标题需要在一行、两行和三行之间保持稳定，摘要截断后也不应该挤压元信息区域。</p><p>测试重点：</p><ul><li>标题字号是否清晰。</li><li>摘要是否在不同长度下自然截断。</li><li>日期、分类和评论数字是否对齐。</li><li>缩略图与正文区域是否有稳定比例。</li></ul><h2 id="文章详情"><a href="#文章详情" class="headerlink" title="文章详情"></a>文章详情</h2><p>详情页需要关注正文可读性。行高、段落间距、标题层级和代码块宽度会直接影响阅读体验。</p><blockquote><p>一个主题的精致感，通常来自大量不显眼的小距离。</p></blockquote><h2 id="分类与标签"><a href="#分类与标签" class="headerlink" title="分类与标签"></a>分类与标签</h2><p>这篇文章归入“主题开发”，并带有多个标签。它适合用来检查分类页、标签页、归档页之间的跳转是否正确。</p><h2 id="结论"><a href="#结论" class="headerlink" title="结论"></a>结论</h2><p>如果这篇文章在首页、文章页和归档页都表现稳定，主题的主要内容流已经具备基本可用性。</p>]]>
    </content>
    <id>http://example.com/2026/05/10/theme-layout-checklist/</id>
    <link href="http://example.com/2026/05/10/theme-layout-checklist/"/>
    <published>2026-05-10T00:30:00.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章用于快速检查首页卡片、文章详情、归档、分类和标签页的基础展示效果。它刻意包含较短段落、清单和多个二级标题，方便观察排版节奏。</p>]]>
    </summary>
    <title>FlatPaper 主题页面检查清单</title>
    <updated>2026-05-15T18:05:25.314Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="写作示例" scheme="http://example.com/categories/%E5%86%99%E4%BD%9C%E7%A4%BA%E4%BE%8B/"/>
    <category term="Markdown" scheme="http://example.com/tags/Markdown/"/>
    <category term="排版" scheme="http://example.com/tags/%E6%8E%92%E7%89%88/"/>
    <category term="代码块" scheme="http://example.com/tags/%E4%BB%A3%E7%A0%81%E5%9D%97/"/>
    <content>
      <![CDATA[<p>这篇文章集中展示 Markdown 常用元素，适合检查主题对正文内容的默认样式支持。</p><span id="more"></span><h2 id="文本样式"><a href="#文本样式" class="headerlink" title="文本样式"></a>文本样式</h2><p>普通段落应该保持轻松的阅读节奏。这里包含 <strong>加粗文字</strong>、<em>强调文字</em>、<code>行内代码</code> 和一个普通链接：<a href="https://hexo.io/">Hexo 官网</a>。</p><h2 id="表格"><a href="#表格" class="headerlink" title="表格"></a>表格</h2><table><thead><tr><th>模块</th><th>检查内容</th><th>期望效果</th></tr></thead><tbody><tr><td>文章标题</td><td>字号、行高、换行</td><td>清晰且不拥挤</td></tr><tr><td>元信息</td><td>日期、分类、标签</td><td>层级低于标题</td></tr><tr><td>正文段落</td><td>行宽、行高、颜色</td><td>长时间阅读不疲劳</td></tr><tr><td>代码块</td><td>横向滚动、背景色</td><td>不破坏页面宽度</td></tr></tbody></table><h2 id="代码块"><a href="#代码块" class="headerlink" title="代码块"></a>代码块</h2><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">createExcerpt</span>(<span class="params">content, limit = <span class="number">96</span></span>) &#123;</span><br><span class="line">  <span class="keyword">const</span> plainText = content.<span class="title function_">replace</span>(<span class="regexp">/&lt;[^&gt;]+&gt;/g</span>, <span class="string">&#x27;&#x27;</span>).<span class="title function_">trim</span>();</span><br><span class="line">  <span class="keyword">return</span> plainText.<span class="property">length</span> &gt; limit</span><br><span class="line">    ? <span class="string">`<span class="subst">$&#123;plainText.slice(<span class="number">0</span>, limit)&#125;</span>...`</span></span><br><span class="line">    : plainText;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.article-content</span> &#123;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">1.82</span>;</span><br><span class="line">  <span class="attribute">word-break</span>: break-word;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="引用"><a href="#引用" class="headerlink" title="引用"></a>引用</h2><blockquote><p>好的内容样式不需要抢走注意力。它只需要让作者的表达更容易被读完。</p></blockquote><h2 id="有序步骤"><a href="#有序步骤" class="headerlink" title="有序步骤"></a>有序步骤</h2><ol><li>准备几篇不同长度的文章。</li><li>运行 Hexo 本地服务。</li><li>在桌面和移动宽度下检查列表与详情页。</li><li>根据真实内容调整间距，而不是只看空白模板。</li></ol>]]>
    </content>
    <id>http://example.com/2026/05/09/markdown-elements-showcase/</id>
    <link href="http://example.com/2026/05/09/markdown-elements-showcase/"/>
    <published>2026-05-09T05:15:00.000Z</published>
    <summary>
      <![CDATA[<p>这篇文章集中展示 Markdown 常用元素，适合检查主题对正文内容的默认样式支持。</p>]]>
    </summary>
    <title>Markdown 元素展示：表格、代码与引用</title>
    <updated>2026-05-15T18:05:32.634Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="设计" scheme="http://example.com/categories/%E8%AE%BE%E8%AE%A1/"/>
    <category term="FlatPaper" scheme="http://example.com/tags/FlatPaper/"/>
    <category term="视觉设计" scheme="http://example.com/tags/%E8%A7%86%E8%A7%89%E8%AE%BE%E8%AE%A1/"/>
    <category term="阅读体验" scheme="http://example.com/tags/%E9%98%85%E8%AF%BB%E4%BD%93%E9%AA%8C/"/>
    <content>
      <![CDATA[<p>FlatPaper 的视觉方向适合内容型博客：它不依赖复杂装饰，而是通过纸张、标签、阴影和简化插画营造温和的阅读氛围。</p><span id="more"></span><h2 id="纸感不是拟物"><a href="#纸感不是拟物" class="headerlink" title="纸感不是拟物"></a>纸感不是拟物</h2><p>纸感并不意味着把页面做得像真实纸张。更有效的做法是保留轻微的层次、明确的边界和足够的呼吸空间。</p><p>可观察的细节包括：</p><ul><li>卡片阴影是否足够克制。</li><li>背景色与内容纸面的对比是否柔和。</li><li>边框和胶带元素是否服务于层级，而不是成为噪音。</li></ul><h2 id="留白的作用"><a href="#留白的作用" class="headerlink" title="留白的作用"></a>留白的作用</h2><p>留白不是空出来的地方，而是内容之间的秩序。列表页需要紧凑，文章页需要舒展，侧边栏则需要让信息可以被快速扫读。</p><h2 id="字体层级"><a href="#字体层级" class="headerlink" title="字体层级"></a>字体层级</h2><p>主题测试时可以重点观察三种文字：</p><ul><li>标题：承担识别和导航。</li><li>摘要：帮助判断是否继续阅读。</li><li>元信息：提供辅助信息，不能比正文更抢眼。</li></ul><h2 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</h2><p>当页面里同时有短标题、长标题、长摘要、代码块和表格时，主题的真实质量会比静态预览图更容易暴露出来。</p>]]>
    </content>
    <id>http://example.com/2026/05/07/flatpaper-design-notes/</id>
    <link href="http://example.com/2026/05/07/flatpaper-design-notes/"/>
    <published>2026-05-07T11:40:00.000Z</published>
    <summary>
      <![CDATA[<p>FlatPaper 的视觉方向适合内容型博客：它不依赖复杂装饰，而是通过纸张、标签、阴影和简化插画营造温和的阅读氛围。</p>]]>
    </summary>
    <title>FlatPaper 设计札记：纸感、留白与轻量界面</title>
    <updated>2026-05-15T15:01:27.748Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="生活" scheme="http://example.com/categories/%E7%94%9F%E6%B4%BB/"/>
    <category term="日记" scheme="http://example.com/tags/%E6%97%A5%E8%AE%B0/"/>
    <category term="摄影" scheme="http://example.com/tags/%E6%91%84%E5%BD%B1/"/>
    <category term="城市观察" scheme="http://example.com/tags/%E5%9F%8E%E5%B8%82%E8%A7%82%E5%AF%9F/"/>
    <content>
      <![CDATA[<p>周末下午没有安排具体计划，只是沿着熟悉的街区慢慢走。天气很轻，云层把阳光过滤得刚好，路边的玻璃窗反射出一点淡金色。</p><span id="more"></span><h2 id="街角"><a href="#街角" class="headerlink" title="街角"></a>街角</h2><p>咖啡店门口摆着两把折叠椅，旁边的小黑板写着今日甜点。有人在窗边看书，也有人只是把杯子握在手里发呆。</p><p>这类生活文章适合测试主题对轻量内容的呈现：正文不长，标题偏生活化，段落也更松散。</p><h2 id="河岸"><a href="#河岸" class="headerlink" title="河岸"></a>河岸</h2><p>傍晚走到河边时，风从桥下穿过来。慢跑的人、推婴儿车的人和停下来拍照的人都在同一条路上，只是节奏不同。</p><blockquote><p>有些日子并不需要被总结，只需要被记下来。</p></blockquote><h2 id="回程"><a href="#回程" class="headerlink" title="回程"></a>回程</h2><p>回家路上顺手买了一束小花。它不是什么重要事件，但放在桌上之后，房间确实变得明亮了一点。</p>]]>
    </content>
    <id>http://example.com/2026/05/04/weekend-photowalk-notes/</id>
    <link href="http://example.com/2026/05/04/weekend-photowalk-notes/"/>
    <published>2026-05-04T08:20:00.000Z</published>
    <summary>
      <![CDATA[<p>周末下午没有安排具体计划，只是沿着熟悉的街区慢慢走。天气很轻，云层把阳光过滤得刚好，路边的玻璃窗反射出一点淡金色。</p>]]>
    </summary>
    <title>周末散步记录：从街角咖啡店到河岸</title>
    <updated>2026-05-15T15:01:21.084Z</updated>
  </entry>
  <entry>
    <author>
      <name>Author</name>
    </author>
    <category term="开发日志" scheme="http://example.com/categories/%E5%BC%80%E5%8F%91%E6%97%A5%E5%BF%97/"/>
    <category term="Hexo" scheme="http://example.com/tags/Hexo/"/>
    <category term="EJS" scheme="http://example.com/tags/EJS/"/>
    <category term="归档" scheme="http://example.com/tags/%E5%BD%92%E6%A1%A3/"/>
    <category term="导航" scheme="http://example.com/tags/%E5%AF%BC%E8%88%AA/"/>
    <content>
      <![CDATA[<p>这篇开发日志用于测试内容较长时的阅读体验，也记录一个 Hexo 主题从基础结构到页面完善的常见过程。</p><span id="more"></span><h2 id="导航入口"><a href="#导航入口" class="headerlink" title="导航入口"></a>导航入口</h2><p>主题的导航通常包括首页、归档、分类、标签和关于页。它们看起来只是几个链接，但实际会影响站点的主要信息架构。</p><p>在实现时需要确认：</p><ul><li>当前页面是否有明确的可识别状态。</li><li>移动端导航是否容易点击。</li><li>链接路径是否经过 <code>url_for</code> 处理。</li><li>主题配置缺省时是否仍能正常渲染。</li></ul><h2 id="归档页"><a href="#归档页" class="headerlink" title="归档页"></a>归档页</h2><p>归档页通常按时间聚合文章。它需要支持文章较少和文章较多两种状态。</p><p>当文章数量较少时，页面不能显得破碎；当文章数量较多时，年份、日期和标题之间要有清晰的扫描路径。</p><h2 id="空状态"><a href="#空状态" class="headerlink" title="空状态"></a>空状态</h2><p>空状态经常被忽略，但它会出现在新站点、测试站点和刚切换主题的时候。合理的空状态应该说明当前没有内容，并给用户一个明确的下一步。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">&lt;% if (site.posts.length) &#123; %&gt;</span><br><span class="line">  &lt;%- partial(&#x27;_partial/archive-list&#x27;) %&gt;</span><br><span class="line">&lt;% &#125; else &#123; %&gt;</span><br><span class="line">  &lt;p class=&quot;empty-state&quot;&gt;暂时还没有文章。&lt;/p&gt;</span><br><span class="line">&lt;% &#125; %&gt;</span><br></pre></td></tr></table></figure><h2 id="元数据"><a href="#元数据" class="headerlink" title="元数据"></a>元数据</h2><p>文章卡片上的评论数、阅读量和阅读时间都属于辅助信息。它们能增加真实感，但不应该成为阅读路径的中心。</p><h2 id="复盘"><a href="#复盘" class="headerlink" title="复盘"></a>复盘</h2><p>这篇文章包含较多小节和一个模板代码块，适合检查详情页在滚动过程中是否保持稳定，以及底部上一篇、下一篇链接是否正常显示。</p>]]>
    </content>
    <id>http://example.com/2026/05/02/build-log-navigation-and-archives/</id>
    <link href="http://example.com/2026/05/02/build-log-navigation-and-archives/"/>
    <published>2026-05-02T02:00:00.000Z</published>
    <summary>
      <![CDATA[<p>这篇开发日志用于测试内容较长时的阅读体验，也记录一个 Hexo 主题从基础结构到页面完善的常见过程。</p>]]>
    </summary>
    <title>开发日志：导航、归档与空状态</title>
    <updated>2026-05-15T15:01:24.476Z</updated>
  </entry>
</feed>
