<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>星语's Blog</title>
    <link>https://www.itxyu.cn/</link>
    <description>记录生活、分享技术与思考</description>
    <language>zh-CN</language>
    <copyright>All rights reserved 2026, 星语</copyright>
    <lastBuildDate>Mon, 26 Oct 2026 04:00:06 GMT</lastBuildDate>
    <generator>Hexo</generator>
    <image>
      <url>https://www.itxyu.cn/favicon.ico</url>
      <title>星语's Blog</title>
      <link>https://www.itxyu.cn/</link>
    </image>
    <atom:link href="https://www.itxyu.cn/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>SOLACE主题标签外挂参考手册</title>
      <link>https://www.itxyu.cn/article/1.html</link>
      <description>汇总 Solace 主题当前支持的文章标签外挂语法，并提供实时演示与对应 Markdown 代码。</description>
      <author>星语</author>
      <category domain="https://www.itxyu.cn/categories/%E4%B8%BB%E9%A2%98%E6%95%99%E7%A8%8B/">主题教程</category>
      <category domain="https://www.itxyu.cn/tags/Solace/">Solace</category>
      <category domain="https://www.itxyu.cn/tags/Hexo/">Hexo</category>
      <category domain="https://www.itxyu.cn/tags/%E6%A0%87%E7%AD%BE%E5%A4%96%E6%8C%82/">标签外挂</category>
      <pubDate>Tue, 22 Sep 2026 16:00:00 GMT</pubDate>
      <content:encoded>
        <![CDATA[<p>这篇文章整理本站 Solace 主题当前注册的文章标签外挂。每一节都先给出页面里的实际效果，再给出对应代码；以后写文章时可以直接按需复制。</p><aside class="note info flat" data-note-type="info" role="note">    <div class="note-heading">      <span class="note-icon" aria-hidden="true"><i class="fa-solid fa-circle-info"></i></span>      <span class="note-label">提示</span>    </div>    <div class="note-content"><p>本主题基于 Butterfly 进行二次开发，在保留部分原有标签外挂功能的基础上，对整体 UI 进行了重新设计与重构。文档中部分功能效果将以图片形式展示，仅供参考；实际使用时的动态交互与视觉体验将更加出色。</p></div>  </aside><h2 id="快速索引">快速索引</h2><table><thead><tr><th>标签</th><th>用途</th><th>是否闭合</th></tr></thead><tbody><tr><td><code>emoji</code></td><td>插入本地表情图</td><td>否</td></tr><tr><td><code>label</code></td><td>行内彩色标签</td><td>否</td></tr><tr><td><code>note</code> / <code>subnote</code></td><td>提示块、警告块</td><td>是</td></tr><tr><td><code>hideToggle</code></td><td>可折叠内容</td><td>是</td></tr><tr><td><code>tabs</code> / <code>subtabs</code> / <code>subsubtabs</code></td><td>选项卡内容</td><td>是</td></tr><tr><td><code>gallery</code></td><td>图片瀑布流相册</td><td>是</td></tr><tr><td><code>audioCard</code></td><td>音频播放卡片</td><td>否</td></tr><tr><td><code>chartjs</code></td><td>Chart.js 图表</td><td>是</td></tr></tbody></table><h2 id="emoji-表情">Emoji 表情</h2><p><code>emoji</code> 从 <code>/img/emoji/表情名.png</code> 读取图片。第二个参数是尺寸，纯数字会按 <code>px</code> 处理，也支持 <code>px</code>、<code>em</code>、<code>rem</code>、<code>%</code>、<code>vw</code>、<code>vh</code>。</p><p>演示：今天适合记录一点东西 <img class="emoji-img" src="/img/emoji/%E6%89%8B%E6%9C%BA%E7%9B%B8%E6%9C%BA.png" alt="手机相机" title="手机相机" loading="lazy" decoding="async" style="width:25px;height:auto">，写完再给自己一点肯定 <img class="emoji-img" src="/img/emoji/%E5%80%BC%E5%BE%97%E8%82%AF%E5%AE%9A.png" alt="值得肯定" title="值得肯定" loading="lazy" decoding="async" style="width:42px;height:auto">。</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">今天适合记录一点东西 &#123;% emoji 手机相机 25 %&#125;，写完再给自己一点肯定 &#123;% emoji 值得肯定 42 %&#125;。</span><br></pre></td></tr></table></figure><h2 id="label-行内标签">Label 行内标签</h2><p><code>label</code> 适合在一句话中标注关键词。颜色 class 支持 <code>default</code>、<code>blue</code>、<code>pink</code>、<code>red</code>、<code>orange</code>、<code>purple</code>、<code>green</code>。</p><p>演示：这是 <mark class="hl-label default">默认</mark>、<mark class="hl-label blue">信息</mark>、<mark class="hl-label green">成功</mark>、<mark class="hl-label orange">警告</mark>、<mark class="hl-label red">危险</mark>、<mark class="hl-label purple">紫色</mark> 标签。</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">这是 &#123;% label 默认 default %&#125;、&#123;% label 信息 blue %&#125;、&#123;% label 成功 green %&#125;、&#123;% label 警告 orange %&#125;、&#123;% label 危险 red %&#125;、&#123;% label 紫色 purple %&#125; 标签。</span><br></pre></td></tr></table></figure><h2 id="note-提示块">Note 提示块</h2><p><code>note</code> 和 <code>subnote</code> 都是提示块。常用类型有 <code>default</code>、<code>primary</code>、<code>info</code>、<code>success</code>、<code>warning</code>、<code>danger</code>；样式可选 <code>flat</code>、<code>modern</code>、<code>simple</code>、<code>disabled</code>。中间可以传 Font Awesome 图标类名。</p><aside class="note info flat" data-note-type="info" role="note">    <div class="note-heading">      <span class="note-icon" aria-hidden="true"><i class="fa-solid fa-lightbulb"></i></span>      <span class="note-label">提示</span>    </div>    <div class="note-content"><p>这是一个 <code>info</code> 提示块。里面可以写 <strong>Markdown</strong>，也可以放列表、链接、图片等常规内容。</p></div>  </aside><aside class="note success modern" data-note-type="success" role="note">    <div class="note-heading">      <span class="note-icon" aria-hidden="true"><i class="fa-solid fa-check"></i></span>      <span class="note-label">成功</span>    </div>    <div class="note-content"><p>这是一个 <code>success modern</code> 提示，适合展示配置完成、部署成功之类的信息。</p></div>  </aside><aside class="note warning simple" data-note-type="warning" role="note">    <div class="note-heading">      <span class="note-icon" aria-hidden="true"><i class="fa-solid fa-triangle-exclamation"></i></span>      <span class="note-label">注意</span>    </div>    <div class="note-content"><p>这是一个 <code>warning simple</code> 提示块，适合提醒读者留意依赖、路径或版本差异。</p></div>  </aside><figure class="highlight markdown"><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;% note info fa-solid fa-lightbulb %&#125;</span><br><span class="line">这是一个 <span class="code">`info`</span> 提示块。里面可以写 <span class="strong">**Markdown**</span>。</span><br><span class="line">&#123;% endnote %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% note success modern fa-solid fa-check %&#125;</span><br><span class="line">这是一个 <span class="code">`success modern`</span> 提示块。</span><br><span class="line">&#123;% endnote %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% note warning simple fa-solid fa-triangle-exclamation %&#125;</span><br><span class="line">这是一个 <span class="code">`warning simple`</span> 提示块。</span><br><span class="line">&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><h2 id="hidetoggle-折叠内容">HideToggle 折叠内容</h2><p><code>hideToggle</code> 用来收纳补充说明、长代码、剧透内容。末尾加 <code>open</code>、<code>true</code>、<code>展开</code> 或 <code>默认展开</code> 可以默认展开。</p><details class="hide-toggle"><summary><span class="hide-toggle-heading"><span class="hide-toggle-mark" aria-hidden="true"><i class="fas fa-note-sticky"></i></span><span class="hide-toggle-title">点击展开：这里放一段补充说明</span></span><i class="fas fa-chevron-right hide-toggle-icon" aria-hidden="true"></i></summary><div class="hide-toggle-content"><p>这里是折叠起来的内容。</p><ul><li>支持 Markdown 列表</li><li>支持 <code>行内代码</code></li><li>也支持图片、表格等常规内容</li></ul></div></details><details class="hide-toggle" open><summary><span class="hide-toggle-heading"><span class="hide-toggle-mark" aria-hidden="true"><i class="fas fa-note-sticky"></i></span><span class="hide-toggle-title">默认展开的折叠块</span></span><i class="fas fa-chevron-right hide-toggle-icon" aria-hidden="true"></i></summary><div class="hide-toggle-content"><p>这个折叠块加载时就是打开状态。</p></div></details><figure class="highlight markdown"><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">&#123;% hideToggle 点击展开：这里放一段补充说明 %&#125;</span><br><span class="line">这里是折叠起来的内容。</span><br><span class="line"></span><br><span class="line"><span class="bullet">-</span> 支持 Markdown 列表</span><br><span class="line"><span class="bullet">-</span> 支持 <span class="code">`行内代码`</span></span><br><span class="line">&#123;% endhideToggle %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% hideToggle 默认展开的折叠块 open %&#125;</span><br><span class="line">这个折叠块加载时就是打开状态。</span><br><span class="line">&#123;% endhideToggle %&#125;</span><br></pre></td></tr></table></figure><h2 id="tabs-选项卡">Tabs 选项卡</h2><p><code>tabs</code> 的参数格式是 <code>名称,默认激活项序号</code>。内容块用 HTML 注释分隔，标题后面可以用 <code>@图标类名</code> 添加图标。</p><div class="tabs"><div class="nav-tabs"><button type="button" class="tab"><i class="fa-solid fa-pen"></i>草稿</button><button type="button" class="tab active"><i class="fa-solid fa-wand-magic-sparkles"></i>修订</button><button type="button" class="tab"><i class="fa-solid fa-paper-plane"></i>发布</button></div><div class="tab-contents"><div class="tab-item-content"><p>先把想法写下来，不急着追求完整。这个阶段重点是让内容出现。</p></div><div class="tab-item-content active"><p>回头检查标题、段落顺序、例子和读者可能卡住的地方。</p></div><div class="tab-item-content"><p>补齐封面、标签、摘要，最后预览一遍页面效果。</p></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><figure class="highlight markdown"><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">&#123;% tabs 写作流程,2 %&#125;</span><br><span class="line">&lt;!-- tab 草稿@fa-solid fa-pen --&gt;</span><br><span class="line">先把想法写下来，不急着追求完整。</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line"></span><br><span class="line">&lt;!-- tab 修订@fa-solid fa-wand-magic-sparkles --&gt;</span><br><span class="line">回头检查标题、段落顺序、例子和读者可能卡住的地方。</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line"></span><br><span class="line">&lt;!-- tab 发布@fa-solid fa-paper-plane --&gt;</span><br><span class="line">补齐封面、标签、摘要，最后预览一遍页面效果。</span><br><span class="line">&lt;!-- endtab --&gt;</span><br><span class="line">&#123;% endtabs %&#125;</span><br></pre></td></tr></table></figure><h2 id="gallery-图片相册">Gallery 图片相册</h2><p><code>gallery</code> 可以从内部 Markdown 图片中读取，也可以使用 <code>url</code> 模式传入一个地址。内部图片模式参数是 <code>按钮,每次加载数量,首次加载数量</code>。</p><div class="gallery-container" data-type="data" data-button="" data-limit="10" data-first="10">    <div class="gallery-items">[{"url":"https://r2.itxyu.cn/uploads/20260921081747346.jpg","alt":"","title":""},{"url":"https://r2.itxyu.cn/uploads/20260921081745717.jpg","alt":"","title":""},{"url":"https://r2.itxyu.cn/uploads/20260921081749840.jpg","alt":"","title":""},{"url":"https://r2.itxyu.cn/uploads/20260921081743632.jpg","alt":"","title":""},{"url":"https://r2.itxyu.cn/uploads/20260921081739326.jpg","alt":"","title":""},{"url":"https://r2.itxyu.cn/uploads/20260921081707908.jpg","alt":"","title":""}]</div>  </div><figure class="highlight markdown"><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">&#123;% gallery %&#125;</span><br><span class="line">![](<span class="link">https://r2.itxyu.cn/uploads/20260921081747346.jpg</span>)</span><br><span class="line">![](<span class="link">https://r2.itxyu.cn/uploads/20260921081745717.jpg</span>)</span><br><span class="line">![](<span class="link">https://r2.itxyu.cn/uploads/20260921081749840.jpg</span>)</span><br><span class="line">![](<span class="link">https://r2.itxyu.cn/uploads/20260921081743632.jpg</span>)</span><br><span class="line">![](<span class="link">https://r2.itxyu.cn/uploads/20260921081739326.jpg</span>)</span><br><span class="line">![](<span class="link">https://r2.itxyu.cn/uploads/20260921081707908.jpg</span>)</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure><h2 id="audiocard-音频卡片">AudioCard 音频卡片</h2><p><code>audioCard</code> 支持位置参数或键值参数。常用键包括 <code>src</code>、<code>title</code>、<code>artist</code>、<code>cover</code>、<code>autoplay</code>、<code>loop</code>、<code>preload</code>、<code>type</code>。</p><div class="solace-audio-card" data-waveform="auto" style="--audio-card-cover: url('&#x2F;img&#x2F;icon.webp')">    <div class="solace-audio-card__cover" aria-hidden="true">      <img src="&#x2F;img&#x2F;icon.webp" alt="">    </div>    <div class="solace-audio-card__body">      <div class="solace-audio-card__topline">        <div class="solace-audio-card__meta">          <div class="solace-audio-card__title">示例音频卡片</div>          <div class="solace-audio-card__subtitle">            <span class="solace-audio-card__artist">Sunny</span>          </div>        </div>        <div class="solace-audio-card__decor-wave" aria-hidden="true">          <span style="--wave-height: 8px"></span><span style="--wave-height: 13px"></span><span style="--wave-height: 6px"></span><span style="--wave-height: 17px"></span><span style="--wave-height: 10px"></span><span style="--wave-height: 21px"></span><span style="--wave-height: 7px"></span><span style="--wave-height: 15px"></span><span style="--wave-height: 24px"></span><span style="--wave-height: 11px"></span><span style="--wave-height: 18px"></span><span style="--wave-height: 7px"></span><span style="--wave-height: 14px"></span><span style="--wave-height: 20px"></span><span style="--wave-height: 9px"></span><span style="--wave-height: 16px"></span><span style="--wave-height: 25px"></span><span style="--wave-height: 10px"></span><span style="--wave-height: 18px"></span><span style="--wave-height: 6px"></span><span style="--wave-height: 13px"></span><span style="--wave-height: 19px"></span><span style="--wave-height: 8px"></span><span style="--wave-height: 22px"></span><span style="--wave-height: 12px"></span><span style="--wave-height: 16px"></span><span style="--wave-height: 7px"></span><span style="--wave-height: 20px"></span><span style="--wave-height: 10px"></span><span style="--wave-height: 14px"></span><span style="--wave-height: 23px"></span><span style="--wave-height: 8px"></span>        </div>      </div>      <div class="solace-audio-card__control-row">        <button class="solace-audio-card__waveform" type="button" aria-label="调整音频进度" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">          <span class="solace-audio-card__progress-track" aria-hidden="true">            <span class="solace-audio-card__progress-fill"></span>            <span class="solace-audio-card__progress-thumb"></span>          </span>        </button>        <div class="solace-audio-card__timegroup" aria-label="音频时间">          <span class="solace-audio-card__time solace-audio-card__current">00:00</span>          <span class="solace-audio-card__divider" aria-hidden="true">/</span>          <span class="solace-audio-card__time solace-audio-card__duration">00:00</span>        </div>      </div>    </div>    <button class="solace-audio-card__play" type="button" aria-label="播放 示例音频卡片">      <i class="fa-solid fa-play"></i>    </button>    <audio class="solace-audio-card__audio" preload="metadata">      <source src="&#x2F;audio&#x2F;demo.mp3">    </audio>  </div><aside class="note warning flat" data-note-type="warning" role="note">    <div class="note-heading">      <span class="note-icon" aria-hidden="true"><i class="fa-solid fa-volume-high"></i></span>      <span class="note-label">注意</span>    </div>    <div class="note-content"><p>当前仓库没有实际音频文件，所以这张卡片主要演示 UI。把 <code>src</code> 改成真实的 <code>/audio/demo.mp3</code> 或外链音频后即可播放。</p></div>  </aside><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% audioCard src=&quot;/audio/demo.mp3&quot; title=&quot;示例音频卡片&quot; artist=&quot;Sunny&quot; cover=&quot;/img/icon.webp&quot; autoplay=false loop=false %&#125;</span><br></pre></td></tr></table></figure><h2 id="chart-js-图表">Chart.js 图表</h2><p><code>chartjs</code> 的参数格式是 <code>宽度百分比,是否并排,图表ID</code>。内容中必须包含 <code>&lt;!-- chart --&gt;</code> 与 <code>&lt;!-- endchart --&gt;</code>，说明文字可放在 <code>&lt;!-- desc --&gt;</code> 与 <code>&lt;!-- enddesc --&gt;</code> 中。</p><p><img src="https://r2.itxyu.cn/uploads/20260923155620321.webp" alt="image-20260923155620164"></p><figure class="highlight markdown"><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;% chartjs 88,false,solace-tag-plugin-chart %&#125;</span><br><span class="line">&lt;!-- chart --&gt;</span><br><span class="line">&#123;</span><br><span class="line">  &quot;type&quot;: &quot;bar&quot;,</span><br><span class="line">  &quot;data&quot;: &#123;</span><br><span class="line"><span class="code">    &quot;labels&quot;: [&quot;emoji&quot;, &quot;note&quot;, &quot;tabs&quot;],</span></span><br><span class="line"><span class="code">    &quot;datasets&quot;: [&#123;</span></span><br><span class="line"><span class="code">      &quot;label&quot;: &quot;示例使用热度&quot;,</span></span><br><span class="line"><span class="code">      &quot;data&quot;: [25, 18, 13],</span></span><br><span class="line"><span class="code">      &quot;backgroundColor&quot;: [&quot;#5b8def&quot;, &quot;#7bd389&quot;, &quot;#f6bd60&quot;]</span></span><br><span class="line"><span class="code">    &#125;]</span></span><br><span class="line"><span class="code">  &#125;,</span></span><br><span class="line"><span class="code">  &quot;options&quot;: &#123;</span></span><br><span class="line"><span class="code">    &quot;responsive&quot;: true,</span></span><br><span class="line"><span class="code">    &quot;plugins&quot;: &#123; &quot;legend&quot;: &#123; &quot;display&quot;: false &#125; &#125;,</span></span><br><span class="line"><span class="code">    &quot;scales&quot;: &#123; &quot;y&quot;: &#123; &quot;beginAtZero&quot;: true &#125; &#125;</span></span><br><span class="line"><span class="code">  &#125;</span></span><br><span class="line"><span class="code">&#125;</span></span><br><span class="line"><span class="code">&lt;!-- endchart --&gt;</span></span><br><span class="line"><span class="code">&lt;!-- desc --&gt;</span></span><br><span class="line"><span class="code">这里写图表说明，支持 Markdown。</span></span><br><span class="line"><span class="code">&lt;!-- enddesc --&gt;</span></span><br><span class="line"><span class="code">&#123;% endchartjs %&#125;</span></span><br></pre></td></tr></table></figure><h2 id="常规-markdown-与-hexo-内置标签">常规 Markdown 与 Hexo 内置标签</h2><p>除了 Solace 自己的标签外挂，文章页仍然支持 Markdown 常规语法：标题、段落、引用、列表、表格、链接、图片、代码块等。主题还保留了 Hexo 内置标签的样式，例如视频容器和左右浮动引用。</p><aside class="note primary flat" data-note-type="primary" role="note">    <div class="note-heading">      <span class="note-icon" aria-hidden="true"><i class="fa-solid fa-book-open"></i></span>      <span class="note-label">重点</span>    </div>    <div class="note-content"><p>推荐把“真实演示”和“代码示例”分开写。真实演示直接使用标签外挂；代码示例用 <code>和</code> 包起来，避免 Hexo 在构建时把示例代码也执行掉。</p></div>  </aside><figure class="highlight markdown"><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;% raw %&#125;</span><br><span class="line"><span class="code">```markdown</span></span><br><span class="line"><span class="code">&#123;% emoji 开心 48 %&#125;</span></span><br></pre></td></tr></table></figure><pre><code>&#123;% endraw %&#125;## 写作备忘- 表情文件名必须和 `/img/emoji/` 下的图片文件名一致，例如 `手机相机.png` 对应 `&#123;% emoji 手机相机 25% %&#125;`。- `tabs`、`chartjs` 都依赖 HTML 注释分隔内容，注释名称写错时通常不会报错，只是内容不显示。- `audioCard` 需要真实音频地址才能播放；没有音频文件时只会显示卡片 UI。- `chartjs` 标签可以生成 DOM，但主题配置关闭时不会加载对应前端库。</code></pre>]]>
      </content:encoded>
    </item>
  </channel>
</rss>
