文本宏
⚠️
这是一个实验性特征,可能会造成系统的不稳定。
经过测试,使用大量文本宏会造成请求文章的接口变慢。
简介
使用此功能需要先在后台中开启,设置 - 系统 - 文本设定 - 文本宏替换。
Required: mx-server >=3.26.0
文本宏是一个以 [[ ]]
包裹的语法,例如 [[ $created ]]
是一个合法的语法。在文章中可以插入文本宏,和 Markdown 一样,但是这个语法不是用 Markdown 解析和渲染,而是直接会在服务端进行替换。因此可以通过这个特征在文章中插入一些来自服务端的数据,也可以执行一些函数。
例如说一篇文章的标题为「实例标题」,他的正文内容为:
一个句子。[[ $title ]]
将会输出:
一个句子。实例标题
又比如说:
<p align="right">更新于 [[ #dayjs($modified).format('YY-MM') ]]</p>
将会输出:
<p align="right">更新于 22-04</p>
这是一个动态的数据,dayjs
函数由服务端提供。
⚠️
所有的函数方法均在服务端执行,请注意内存的泄露造成系统的不稳定。
语法格式
以 [[
开头, ]]
结尾,注意一个空格是必须的。
访问变量
访问变量使用 $
前缀。目前可以访问的变量有:当前记录的所有字段(数据库记录值)比如说:title
created
slug
nid
_id
..
你可以像这样来调用变量:[[ $created ]]
使用函数
⚠️
函数的执行行为和云函数的执行行为保持一致。
执行函数使用 #
前缀。你可以使用任意 JS 代码去执行一个函数,也可以是一个 JS 语句。
如:
[[ #$title.slice(0, 5) ]]
使用内置方法。
如:
[[ #dayjs($created).format('YYYY') ]]
内置方法目前有:
- dayjs (opens in a new tab) —— 日期处理
formatNow(time: Date | string): string
—— 相对时间center(text: string): string
—— 居中right(text: string): string
—— 居右opacity(text: string, opacity: number): string
—— 透明文本blur(text: string, blur: number): string
—— 高斯模糊化文字color(text: string, color: string): string
—— 给文字上色size(text: string): string
—— 给文字上色