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

如何保留记录类型属性中文本子属性的完整格式?

解决记录属性中保留带Wiki标记文本完整格式的问题

问题场景

你定义了包含两个文本子属性的记录属性,其中一个子属性值包含Wiki链接和模板调用,但存入记录后该值被截断,还出现模板解析后的HTML;直接存入独立文本属性则正常。属性定义如下:

Has simple text: [[Has type::text]]
Has formatted text: [[Has type::text]]

Has record:
[[Has type::record]]
[[Has fields::Has simple text; Has formatted text]]

// 存入记录时出现问题的示例
[[Has record::Simple text;Some [[fancy]] formatted {{some template|text}}.]]

问题原因

记录属性的解析逻辑会提前处理字段值中的Wiki标记(包括链接、模板),同时默认用分号作为字段分隔符,若值中包含会触发解析的语法,可能导致解析过程中内容被意外截断或转换为HTML,而非原样存储。

可行解决方案

1. 用<nowiki>标签包裹带格式的内容

将包含Wiki标记的字段值用<nowiki>包裹,阻止系统提前解析标记,存入记录时就能保留原始格式:

[[Has record::Simple text;<nowiki>Some [[fancy]] formatted {{some template|text}}.</nowiki>]]

需要显示该内容时,再通过模板或页面解析逻辑移除<nowiki>标签,即可正常渲染Wiki格式。

2. 对特殊字符进行HTML转义

将Wiki标记中的特殊字符转义为HTML实体,避免触发解析:

  • [[ → &#91;&#91;
  • ]] → &#93;&#93;
  • {{ → &#123;&#123;
  • }} → &#125;&#125;

转义后的存入示例:

[[Has record::Simple text;Some &#91;&#91;fancy&#93;&#93; formatted &#123;&#123;some template|text&#125;&#125;.]]

显示时通过解析实体还原原始标记即可。

3. 修改记录字段的分隔符

若内容中可能包含分号,可在定义记录属性时指定自定义分隔符,避免和内容冲突:

Has record:
[[Has type::record]]
[[Has fields::Has simple text|Has formatted text]]
[[Has separator::|]]

之后存入记录时用竖线分隔字段值:

[[Has record::Simple text|Some [[fancy]] formatted {{some template|text}}.]]

注意要确保自定义分隔符不会出现在字段内容中,否则仍会导致分割错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 02:34:54