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

如何在Typoscript中使用嵌套split实现多层内容分割

Typoscript 两次分割字段内容的实现方案

你原有代码的核心问题是内层split缺少必要的渲染配置声明,导致按冒号分割的逻辑没有实际生效:嵌套split时必须明确指定cObjNum和当前片段读取规则,否则只会直接输出整行内容,不会执行二次拆分。

正确实现代码

30 = TEXT
30.stdWrap {
    field = abstract
    split {
        # 第一次分割:匹配换行符(ASCII编码10)
        token.char = 10
        # 每行内容外层包裹p标签
        wrap = <p>|</p>
        # 配置单行内容的渲染规则
        1.current = 1
        1.stdWrap {
            split {
                # 第二次分割:匹配冒号
                token = :
                # 每个冒号拆分出的片段外层包裹span标签
                wrap = <span>|</span>
                # 指定拆分片段的渲染规则序号
                cObjNum = 1
                # 读取当前拆分的片段内容
                1.current = 1
            }
        }
    }
}

配置说明

  • 外层split按换行拆分字段内容后,通过1.current = 1逐行读取拆分结果,每行最终套入<p>标签。
  • 内层split处理单行文本时,必须配置cObjNum = 1声明使用序号1的规则渲染拆分片段,再通过1.current = 1读取冒号分割后的每一段内容,每段套入<span>标签。
  • 如果需要区分冒号前后的内容样式(比如键值对场景),可以扩展内层split配置,给不同分段单独设置包裹规则:
# 内层split扩展示例:区分键值样式
1.stdWrap.split {
    token = :
    # 拆分后共2段,分别用序号1、2的规则渲染
    cObjNum = 1 || 2
    1.current = 1
    1.wrap = <span class="key">|:</span>
    2.current = 1
    2.wrap = <span class="value">|</span>
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:15:41