如何在RichText小部件上插入<strong> -Tags而不是<b> -Tags

时间:2015-05-11 17:16:00

标签: extjs cq5 extjs3 aem

在对话框中,我只使用粗体插件配置了RichText小部件。

我现在的问题是,我必须更改它,以便内容不会保存在<b> - 标签内,而是保存在<strong> - 标签内。

我尝试通过覆盖CQ.form.rte.commands.DefaultFormatting.getTagNameForCommand函数来解决这个问题。结果如下所示:

getTagNameForCommand: function(cmd) {
    var cmdLC = cmd.toLowerCase();
    var tagName = null;
    switch (cmdLC) {
        case "bold":
            tagName = "strong";
            break;
        case "italic":
            tagName = "i";
            break;
        case "underline":
            tagName = "u";
            break;
        case "subscript":
            tagName = "sub";
            break;
        case "superscript":
            tagName = "sup";
            break;
    }
    return tagName;
}

不幸的是,只有当我打开对话框并设置“粗体”时,它才有效。保存并再次重新打开对话框后,再也无法删除<strong> - 标签。

我还尝试覆盖/扩展CQ.form.rte.plugins.FormatPluginCQ.form.rte.commands.DefaultFormatting以支持“强”命令。这也导致了同样的问题。

由于一些SEO问题,我的客户想要<strong> - 标记。他不接受<b> - 标签。

有没有办法解决这个问题?

问候
索伦

EDIT
<strong> tag getting replaced to <b> tag in CQ5上给出的解决方案不起作用。添加所描述的配置不会保存强标记。据我所知,解决方案只适用于MiscTools。

3 个答案:

答案 0 :(得分:0)

我想在AEM6中做同样的事情。我采取了复制相关js wa=geo.make(state="WA") kk<-lapply(c(x,y),function(i){ acs.fetch(endyear=i,span=1,geography=wa,variable="B01003_001", col.names=paste0("DM_TPOP_",i-2000)) }) names(kk)<-paste0("tpop_",c(x-2000,y-2000)) kk $tpop_13 ACS DATA: 2013 ; Estimates w/90% confidence intervals; for different intervals, see confint() DM_TPOP_13 Washington 6971406 +/- 0 $tpop_12 ACS DATA: 2012 ; Estimates w/90% confidence intervals; for different intervals, see confint() DM_TPOP_12 Washington 6897012 +/- 0 并将其添加到apps内容文件夹/libs/cq/ui/rte/core/commands/DefaultFormatting.js下的方法,然后修改了在apps下复制的DefaultFormatting.js副本。然后AEM6似乎使用'overlay'技术来应用强标签。

答案 1 :(得分:0)

请按照此answer

中提到的步骤操作

然后在typeConfig节点上添加boolean property useSemanticMarkup为true。

答案 2 :(得分:0)

在AEM 6.3中,我已经能够让RTE使用 em 标签代替 b 将以下节点作为兄弟添加到对话框中的 uiSettings rtePlugins 节点。

<htmlRules jcr:primaryType="nt:unstructured">
    <docType jcr:primaryType="nt:unstructured">
        <typeConfig jcr:primaryType="nt:unstructured"
                useSemanticMarkup="{Boolean}true">
            <semanticMarkupMap
                    b="strong"
                    i="em"/>
        </typeConfig>
    </docType>
</htmlRules>

我还注意到你必须为以前创作的richtext内容添加一个空格,以便让组件注意到更改并交换标记。