通过水平断裂(Jekyll)拆分液体过滤器以分裂降压/HTML

问题描述 投票:0回答:1

我想将一些标记内容分为水平线表示的部分。在标准的Markdown中,这用3个或更多的星号,破折号或下划线表示。因此,我需要将一些纯文本内容分配为

***
---
___
,任何数量也超过三个,以便五个破折号,
-----
,也可以正常工作。

目前,我有以下我正在解析的降价文件:

--- layout: section_one --- Content here! ----- Another section in markdown ----- Final content.
然后将布局文件命名为cant in content:

section_one.html

用内容:

<!-- DOCTYPE and html/body and stuff --> {% assign content_split = content | split: "<hr>" %} <div>{{ content_split[0] }}</div>
根据可爱的

shopify液体文档,字符串上有一个split

滤波器。由于
content
数据似乎包含解析的HTML,因此我尝试按
<hr>
TAG分配。这并没有将内容分开。
然后,我尝试用

---

-----
将内容分配,因为这是我在Markdown文件中所拥有的,这也不起作用。
最终,我尝试使用
page.content

而不是

content

-
,但它确实有效,但并不是很紧凑,因为我需要拆分并剥离额外的
*
_
{{ page.content | split: '---' | join: "\u2063" | split '***' | ... way more here ... | split "\u2063" }}
。总体上变成了类似的标签:

-
this公式的缺点是只能使用3个字符,不超过3个字符。列表
如何最好地按水平线路分配降价字符串或解析的降价(HTML)?

在进行更多研究之后,我决定制作一个自定义的液体过滤器。创建液体过滤器时,您可以将一些内容作为输入和参数。不确定如何最好地将参数用于此用例,但是到目前为止,我所拥有的相当简单。
-

如果您不使用Jekyll,则可能需要将

module Jekyll module MarkdownSplit def markdown_split(content) content.split(/^\s*[-*_]{3,}\s*$/m) end end end Liquid::Template.register_filter(Jekyll::MarkdownSplit)

过滤器放在其自己的模块或所使用的任何平台下。目前,这将使用与任何
html jekyll liquid
1个回答
0
投票

---

***
line

(不仅仅是线/短语的一部分)匹配的正则拨号。这意味着,如果您连续有两个,则最终可能会有空内容,因此我将其留给内容创建者以查看此内容。

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.