You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Liquid过滤器按水平线分割Markdown/HTML内容(Jekyll)

按水平线分割Markdown/HTML内容的最优方案

一、处理解析后的HTML内容(针对content变量)

直接按<hr>分割失败,大概率是因为解析后的<hr>标签带有额外属性(如类名)或格式差异。可以先统一标准化分隔符,再分割:

{% assign normalized_content = content | replace: '<hr', '---SPLIT---' | replace: '/>', '' | replace: '>', '' %}
{% assign content_split = normalized_content | split: '---SPLIT---' %}

逻辑说明:先将所有<hr开头的标签片段替换为固定分隔符,再清理残留的标签收尾内容,确保所有水平线对应的HTML标签都被转换成统一的分割标识,最终通过split得到各段落数组。

二、处理原始Markdown内容(针对page.content变量)

针对原始Markdown,用正则匹配标准水平线规则(单独一行的3个及以上-/*/_,允许前后空格),统一替换后分割:

{% assign normalized_markdown = page.content | replace_regex: '^\s*([-*_])\1{2,}\s*$', '---SPLIT---' %}
{% assign content_split = normalized_markdown | split: '---SPLIT---' %}

逻辑说明:replace_regex精准匹配符合Markdown标准的水平线行,不会干扰列表(列表的-行首后紧跟内容,并非单独一行),替换后分割即可得到干净的段落。

三、渲染分割后的内容

分割后可遍历数组渲染每个段落,同时过滤空内容:

{% for section in content_split %}
  {% if section != empty %}
    <div class="section-block">
      {{ section | strip | markdownify }} {# 若处理的是原始Markdown,需用markdownify转成HTML #}
    </div>
  {% endif %}
{% endfor %}

内容的提问来源于stack exchange,提问作者Preston Hager

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:16:06