1、事件数据结构


_data/event.yml 中,我们使用 数组写法定义所有事件。每条事件包含以下字段:

- name: 河南村镇银行
  slug: henan-village-bank
  url: https://www.google.com/search?q=河南村镇银行

字段说明:

  • name:事件中文名称,用于页面展示
  • slug:事件唯一标识,用于锚点和文章引用
  • url:外部搜索链接,用于点击跳转到 Google/Bing/维基等

设计理念:slug 是事件的永久身份,确保文章链接和归档页锚点不会因为事件排序改变而失效。


2. 归档页布局


_pages/archive.md 中,我们使用以下结构生成创作背景一览及事件列表:

## 创作背景一览

{% assign all_events = site.data.event %} <!-- 将 _data/event.yml 中的事件数组赋值给 all_events -->

<div style="display: flex; flex-wrap: wrap; gap: 8px; align-items: center; line-height: 1.5;">
  {% for event in all_events %} <!-- 循环遍历所有事件 -->
  <div id="{{ event.slug }}" style="display: inline-block;"> <!-- 每个事件独立 div,id 用 slug 生成锚点 -->
    <a href="{{ event.url }}" target="_blank" style="font-weight: bold; text-decoration: none;">
      {{ event.name }} <!-- 显示事件名称,点击跳转到外部链接 -->
    </a>
    {% unless forloop.last %} <!-- 如果不是最后一个事件 -->
    <span style="margin: 0 4px; ">·</span> <!-- 用 · 分隔事件 -->
    {% endunless %}
  </div>
  {% endfor %}
</div>

3. 文章中引用事件


在文章 front-matter 或正文中,使用如下 Markdown 语法:

说明:

  • #河南村镇银行 是显示文字。
  • /archive/#henan-village-bank 跳转到归档页对应事件锚点。

4. 事件管理规范


新增事件

  • _data/event.yml 添加新的数组元素,确保 slug 唯一。
  • 示例:
- name: 新事件名称
  slug: new-event-slug
  url: https://www.google.com/search?q=新事件

页面顺序可随意调整,slug 保持不变即可保证文章引用稳定。


5. 总结


  • _data/event.yml → 数据定义,name 显示、slug 绑定文章锚点、url 跳外部搜索。
  • archive.md → 页面渲染,使用 for 循环生成事件列表、锚点、外链图标。
  • 文章引用 → 使用 [显示文字](/archive/#slug),确保稳定性。
  • 结构清晰、顺序可随意调整、后续可扩展。

这样,你就形成了一套可扩展、稳定、易维护的事件背景索引体系。