/

基于正则的样式

.match {content} {pattern} {replacement} 文档 ↗ 函数:

  1. 查找行内内容中每一个匹配某个正则表达式的子串,
  2. 用由一个 lambda 产生的行内内容来替换每一个匹配项。

基础示例

示例 1

.match {Quarkdown takes its name from quarks} pattern:{[Qq]uark(down|s)?}
    match:
    ***.match***

Quarkdown takes its name from quarks

该 lambda 对每一个匹配到的子串运行一次,其参数指向被匹配到的文本。

示例 2

使用隐式的 .1 代替具名参数:

.match {Hello, world} pattern:{world}
    **.1**

Hello, world

链式调用

.match链式调用 中使用起来很自然,因为 content 是它的第一个参数。

示例 3

.var {greeting} {Hello, world}

.greeting::match {world}
    **.1**

Hello, world

在函数扩展内部

一个常见的用例是通过正则转换来重写某个函数的输出。例如,你可以扩展 .heading,使文档中所有标题里某些词汇的出现都被高亮:

示例 4

.extend {heading}
    content:
    .super
        .content::match {[Qq]uark(down|s)?}
            *.1::uppercase*

###! Quarkdown takes its name from quarks

Quarkdown takes its name from quarks