我正在尝试删除CQ5(版本5.6.0.20130125)中<p>
标记的自动添加。我尝试将这些属性添加到我正在使用的text component但没有效果。(source)
removeSingleParagraphContainer true
singeParagraphContainerReplacement (empty string)
我也试过this solution。再一次,没有效果。
是否可以停用<p>
代码的自动添加?
感谢您的任何想法
编辑我已尝试this answer但CQ仍在我的代码中添加了<p>
个标签。例如,我有这个HTML代码
<strong>Headquarters:</strong>
<p>MY - COMPANY a.s.<br>
Random Street 77<br>
Random City</p>
在我提交之后,代码变为
<p><strong>Headquarters:</strong></p>
<p>MY - COMPANY a.s.<br>
Random Street 77<br>
Random City</p>
我的RTE看起来像这样
<text jcr:primaryType="cq:widget"
hideLabel="{Boolean}true"
name="./text"
xtype="richtext">
<htmlRules jcr:primaryType="nt:unstructured">
<docType jcr:primaryType="nt:unstructured">
...
</docType>
<blockHandling
jcr:primaryType="nt:unstructured"
removeSingleParagraphContainer="{Boolean}true"/>
</htmlRules>
</text>
答案 0 :(得分:9)
只要您只创建一个段落,就可以通过将<p>
属性设置为removeSingleParagraphContainer
来保持RTE不会使用true
标记围绕您的文字。
在Mac OS X上使用Chrome(至少),在按输入时按住 shift 会插入换行符而不是段落符号,这样您仍然可以创建多行文本。由于您在your last question中说过您正在使用misctools
插件,因此您可以使用源编辑视图随时查看标记。
最后,要设置removeSingleParagraphContainer
属性,您需要在对话框的blockHandling
节点下创建另一个名为htmlRules
的子项。您不需要弄乱singeParagraphContainerReplacement
属性,但如果您这样做,则将其设置在同一节点上:
<rtePlugins jcr:primaryType="nt:unstructured">
...
</rtePlugins>
<htmlRules jcr:primaryType="nt:unstructured">
<docType jcr:primaryType="nt:unstructured">
...
</docType>
<blockHandling
jcr:primaryType="nt:unstructured"
removeSingleParagraphContainer="{Boolean}true"/>
</htmlRules>
使用misctools
插件的源编辑功能编辑并隐藏此精确文本,在Mac OS的Chrome中为我保存并加载p
个标签X:
<strong>Headquarters:</strong><br>
MY - COMPANY a.s.<br>
Random Street 77<br>
Random City
您确定您的dialog.xml已正确部署吗?也许请仔细检查组件的对话框层次结构是否符合您在CRXDE Lite中的预期:
答案 1 :(得分:1)
应在break
为R
的节点中添加属性removeSingleParagraphContainer
。
例如:
xtype
CRXDE Lite:configuration in crxde lite
注意:此配置仅用于单个段落。
答案 2 :(得分:0)
尝试使用@context =&#39; html&#39;在你的代码中。这允许您将文本的上下文设置为html,因此即使对话框值中有标记,它们也将呈现为等效的html而不是页面上的标记。 例如: {properties.something @context =&#39; html&#39;}
答案 3 :(得分:-2)
尝试在代码中使用 @ context ='unsafe' 。你应该能够摆脱不必要的HTML标签,为我工作