禁用自动添加<p>标记</p>

时间:2013-07-31 08:27:36

标签: html cq5 rich-text-editor

我正在尝试删除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>

EDIT2 这就是我的层次结构的样子 enter image description here

4 个答案:

答案 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中的预期:

CRXDE Lite text nodes

答案 1 :(得分:1)

应在breakR的节点中添加属性removeSingleParagraphContainer。 例如:

xtype

CRXDE Lite:configuration in crxde lite

注意:此配置仅用于单个段落。

参考:more info about removeSingleParagraphContainer

答案 2 :(得分:0)

尝试使用@context =&#39; html&#39;在你的代码中。这允许您将文本的上下文设置为html,因此即使对话框值中有标记,它们也将呈现为等效的html而不是页面上的标记。 例如: {properties.something @context =&#39; html&#39;}

答案 3 :(得分:-2)

尝试在代码中使用 @ context ='unsafe' 。你应该能够摆脱不必要的HTML标签,为我工作