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

AEM/Sightly技术问题:文本注入去换行及提取最后段落

AEM/Sightly开发问题解决方案

一、去除文本注入中的\n\n换行符

针对现有代码:

"description": "${model.description @ context='scriptString'}"

直接调用Java String的replace方法,将连续换行符替换为空字符串(按需也可替换为空格),修改后代码如下:

"description": "${model.description.replace('\\n\\n', '') @ context='scriptString'}"

注:Sightly中反斜杠需转义,因此用\\n\\n匹配原内容中的\n\n。

二、处理分段内容的两个需求

1. 将分段内容合并为连贯段落

如果内容是带<p>标签的HTML格式(如<p>Paragraph 1.</p><p>Paragraph 2.</p><p>Paragraph 3.</p>),可通过正则替换移除标签并拼接文本:

${model.description.replaceAll('<p>|</p>', ' ').trim() @ context='html'}

若内容来自AEM RichText组件,也可使用组件自带的纯文本提取方法:

${model.description.getPlainText().replace('\\n', ' ') @ context='scriptString'}

两种方式均可将分段内容转为连贯的文本段落。

2. 仅获取内容的最后一段

通过split方法按段落结束标签分割内容,取最后一段并清理标签和空白:

${model.description.split('</p>')[-1].replace('<p>', '').trim() @ context='scriptString'}

若Sightly环境不支持数组负索引,可在后端自定义Model方法:添加getLastParagraph()方法,通过字符串处理逻辑提取最后一段文本,前端直接调用${model.lastParagraph @ context='scriptString'}即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:44:56