RTE功能通过一系列插件提供,每个插件都具有features属性。 您可以配置功能属性以启用或禁用一个或多个RTE功能。 本文介绍如何具体配置RTE插件。
有关其他RTE配置的详细信息,请参阅配置富文本编辑器。
使用CRXDE Lite时,建议使用“全部保存”定期保存更改。
要激活插件,请按照以下步骤操作。 仅当您首次配置插件时,才需要执行一些步骤,因为相应的节点不存在。
默认情况下,format
、link
、list
、justify
和control
插件及其所有功能均在RTE中启用。
为避免在本文中出现重复,各个rtePlugins节点称为<rtePlugins-node。
使用CRXDE Lite找到项目的文本组件。
在配置任何RTE插件之前,创建<rtePlugins-node>
的父节点(如果它不存在):
根据您的组件,父节点包括:
config: .../text/cq:editConfig/cq:inplaceEditing/config
.../text/cq:editConfig/cq:inplaceEditing/inplaceEditingTextConfig
text: .../text/dialog/items/tab1/items/text
类型:jcr:primaryType cq:Widget
二者都具有以下属性:
name
String
./text
根据要配置的接口,如果节点不存在,请创建节点<rtePlugins-node>
:
rtePlugins
nt:unstructured
为要激活的每个插件创建一个节点:
nt:unstructured
激活插件后,请按照以下准则配置features
属性。
启用所有功能 |
启用一些特定功能 | 禁用所有功能 |
|
---|---|---|---|
名称 | 特征 | 特征 | 特征 |
类型 | 字符串 | String[] (多字符串;将类型设置为“字符串”并单击“多”(在CRXDE Lite中) | 字符串 |
值 | *(星号) |
设置为一个或多个功能值 | - |
findreplace
插件不需要任何配置。 它开箱即用。
使用替换功能时,应与查找字符串同时输入要替换的替换字符串。 但是,在替换字符串之前,您仍可以单击“查找”以搜索该字符串。 如果在单击“查找”后输入替换字符串,则搜索将重置为文本的开头。
单击“查找并替换”对话框时,该对话框变得透明,单击“替换”时变得不透明。 这允许作者查看作者将替换的文本。 如果用户单击“全部替换”,对话框将关闭并显示所做替换的数量。
使用RTE时,作者可以在以下三种模式之一粘贴内容:
浏览器模式:使用浏览器的默认粘贴实现粘贴文本。它不是推荐的方法,因为它可能引入不需要的标记。
纯文本模式:将剪贴板内容粘贴为纯文本。在AEM组件中插入之前,它会删除复制内容中的所有样式和格式元素。
MS Word模式:从MS Word复制时,粘贴带有格式的文本(包括表)。不支持从网页或MS Excel等其他源复制和粘贴文本,只保留部分格式。
您可以在RTE工具栏中为作者提供以下三个图标中的一些、全部或无一个:
粘贴(Ctrl+V):可以预配置为与上述三种粘贴模式之一相对应。
粘贴为文本:提供纯文本模式功能。
从Word粘贴:提供MS Word模式功能。
要配置RTE以显示所需的图标,请按照以下步骤操作。
导航到您的组件;例如:
/apps/<myProject>/components/text
导航到节点rtePlugins/edit
。 如果节点不存在,请参阅激活插件。
在edit
节点上创建features
属性并添加一个或多个功能。 保存所有更改。
您可以按照以下步骤预配置粘贴(Ctrl+V)图标的行为。 此配置还定义作者用于粘贴内容的键盘快捷键Ctrl+V的行为。
配置允许以下三种类型的用例:
使用浏览器的默认粘贴实现粘贴文本。 它不是推荐的方法,因为它可能引入不需要的标记。 使用下面的browser
进行配置。
将剪贴板内容粘贴为纯文本。 在AEM组件中插入之前,它会删除复制内容中的所有样式和格式元素。 使用下面的plaintext
进行配置。
从MS Word复制时,粘贴带有格式的文本(包括表)。 不支持从网页或MS Excel等其他源复制和粘贴文本,只保留部分格式。 使用下面的wordhtml
进行配置。
在您的组件中,导航到<rtePlugins-node>/edit
节点。 如果节点不存在,则创建这些节点。 有关详细信息,请参阅激活插件。
在edit
节点中,使用以下详细信息创建属性:
defaultPasteMode
String
browser
之 plaintext
一、或 wordhtml
。可以进一步配置粘贴为Microsoft-Word(paste-wordhtml
)模式,以便您能够明确定义从其他项目(如Microsoft Word)在AEM中粘贴时允许使用哪些样式。
例如,如果在AEM中粘贴时只允许使用粗体格式和列表,则可以过滤掉其他格式。 这称为可配置粘贴过滤,可针对以下两种情况执行此操作:
对于链接,您还可以定义自动接受的协议。
要配置将文本从其他项目粘贴到AEM时允许使用的格式,请执行以下操作:
在您的组件中,导航到节点<rtePlugins-node>/edit
。 如果节点不存在,则创建这些节点。 有关详细信息,请参阅激活插件。
在edit
节点下创建一个节点以保存HTML粘贴规则:
htmlPasteRules
nt:unstructured
在htmlPasteRules
下创建一个节点,以保存允许的基本格式的详细信息:
allowBasics
nt:unstructured
要控制接受的各个格式,请在allowBasics
节点上创建以下一个或多个属性:
bold
italic
underline
anchor
(用于链接和命名锚点)image
所有属性均为类型 Boolean
,因此在相应的值中,您可以选择或删除复选标记以启用或禁用该功能。
如果未显式定义,则使用默认值true并接受格式。
也可以使用一系列其他属性或节点来定义其他格式,这些属性或节点也应用于htmlPasteRules
节点:
属性 | 类型 | 描述 |
allowBlockTags | String[] | 定义允许的块标记列表。 可能的块标记包括(其中包括):
|
fallbackBlockTag | 字符串 | 定义用于任何包含allowBlockTags中未包含的块标记的块标记。 p在大多数情况下都足够。 |
表 | nt:unstructured | 定义粘贴表时的行为。 此节点必须具有属性 如果
|
列表 | nt:非结构化 | 定义粘贴列表时的行为。 必须具有属性 如果
|
有效htmlPasteRules
结构的示例:
"htmlPasteRules": {
"allowBasics": {
"italic": true,
"link": true
},
"allowBlockTags": [
"p", "h1", "h2", "h3"
],
"list": {
"allow": false,
"ignoreMode": "paragraph"
},
"table": {
"allow": true,
"ignoreMode": "paragraph"
}
}
作者可以应用样式来更改部分文本的外观。 样式基于您在CSS样式表中预定义的CSS类。 格式化内容使用class
属性包含在span
标记中以引用CSS类。 例如:
<span class=monospaced>Monospaced Text Here</span>
首次启用样式插件时,不提供默认样式。 弹出列表为空。 要为作者提供样式,请执行以下操作:
对于以后(重新)的配置,例如要添加更多样式,请仅按照说明引用新样式表并指定其他样式。
还可以为表或表单元格定义样式。 这些配置需要单独的过程。
这是通过启用样式插件来完成的。
在您的组件中,导航到节点<rtePlugins-node>/styles
。 如果节点不存在,则创建这些节点。 有关详细信息,请参阅激活插件。
在styles
节点上创建features
属性:
features
String
*
(星号)保存所有更改。
启用样式插件后,“样式”下拉列表将显示在编辑对话框中。 但是,列表为空,因为未配置样式。
然后,指定要引用的样式表的位置:
导航到文本组件的根节点,例如/apps/<myProject>/components/text
。
将属性externalStyleSheets
添加到<rtePlugins-node>
的父节点:
externalStyleSheets
String[]
(多字符串;单击 多重CRXDE)以后可以随时添加对其他样式表的引用。
保存所有更改。
在对话框(经典UI)中使用RTE时,您可能需要指定为富文本编辑而优化的样式表。 由于技术限制,CSS上下文在编辑器中丢失,因此您可能希望模拟此上下文以改进WYSIWYG体验。
富文本编辑器使用ID为CQrte
的容器DOM元素,该元素可用于提供不同的样式进行查看和编辑:
#CQ td {
// defines the style for viewing }
#CQrte td {
// defines the style for editing }
在组件定义中,导航到节点<rtePlugins-node>/styles
,如在启用样式下拉选择器中创建的。
在节点styles
下,创建一个新节点(也称为styles
),以保留列表可用:
styles
cq:WidgetCollection
在styles
节点下创建新节点以表示单个样式:
nt:unstructured
将属性cssName
添加到此节点以引用CSS类:
cssName
String
cssClass
而不是.cssClass
将属性text
添加到同一节点;这定义了选择框中显示的文本:
text
String
保存更改。
对每个所需样式重复上述步骤。
在RTE中创作的任何文本都放置在块标记中,默认值为<p>
。 通过启用paraformat
插件,您可以使用下拉选择列表指定可分配给段落的其他块标记。 段落格式通过指定正确的块标记来确定段落类型。 作者可以使用“格式”选择器选择并分配它们。 示例块标记包括标准段落<p>和标题<h1>、<h2>等。
此插件不适用于结构复杂的内容,如列表或表。
如果无法将块标记(例如<hr>标记)分配给段落,则它不是段落格式插件的有效用例。
首次启用段落格式插件时,不提供默认的段落格式。 弹出列表为空。 要为作者提供段落格式,请执行以下操作:
对于以后(重新)的配置,例如要添加更多格式,请仅按照说明的相关部分操作。
首先启用参数格式插件:
在您的组件中,导航到节点<rtePlugins-node>/paraformat
。 如果节点不存在,则创建这些节点。 有关详细信息,请参阅激活插件。
在paraformat
节点上创建features
属性:
features
String
*
(星号)如果插件未进一步配置,则启用以下默认格式:
<p>
)<h1>
)<h2>
)<h3>
)配置RTE的段落格式时,请勿删除段落标记<p>作为格式选项。 如果删除了<p>标记,则内容作者无法选择段落格式选项,即使配置了其他格式也是如此。
段落格式可通过以下方式进行选择:
在组件定义中,导航到节点<rtePlugins-node>/paraformat
,如在启用格式下拉选择器中创建的。
在paraformat
节点下创建新节点,以保存格式列表:
formats
cq:WidgetCollection
在formats
节点下创建新节点,它保存单个格式的详细信息:
nt:unstructured
对于此节点,添加属性以定义使用的块标记:
名称 tag
类型 String
值 格式的块标签;例如:p、h1、h2等。
您无需输入分界角括号。
对于同一节点,添加另一个属性,以便说明性文本显示在下拉列表中:
description
String
保存更改。
为每种所需格式重复这些步骤。
如果定义自定义格式,则删除默认格式(<p>
、<h1>
、<h2>
和<h3>
)。 重新创建<p>
格式,因为它是默认格式。
在标准AEM安装中,当为特殊字符(specialchars
)启用misctools
插件时,将立即提供默认选择供使用;例如,版权和商标符号。
您可以配置RTE,使您自己选择的字符可用;通过定义不同的字符或整个序列。
添加自己的特殊字符将覆盖默认选择。 如果需要,(重新)在您自己的选择中定义这些字符。
在您的组件中,导航到节点<rtePlugins-node>/misctools
。 如果节点不存在,则创建这些节点。 有关详细信息,请参阅激活插件。
在misctools
节点上创建features
属性:
名称 features
类型 String[]
值 specialchars
(或String / *
,如果应用此插件的所有功能)
在misctools
下创建一个节点以保存特殊字符配置:
specialCharsConfig
nt:unstructured
在specialCharsConfig
下创建另一个节点以保存字符列表:
chars
nt:unstructured
在chars
下添加一个新节点以保存单个字符定义:
nt:unstructured
要添加此节点,请添加以下属性:
entity
String
&189;
对于分数半。保存更改。
保存属性后,以CRXDE显示所表示的字符。 请参阅下面的“一半”示例。 重复上述步骤,使作者能够使用更多特殊字符。
在CRXDE中,添加一个字符以便在RTE工具栏中使用
使用定义单个字符中的步骤1到3。
在chars
下添加一个新节点以保存字符范围的定义:
nt:unstructured
在此节点下(根据特殊字符范围命名)添加以下两个属性:
保存更改。
例如,定义9998 - 10000范围可提供以下字符。
在CRXDE中,定义要在RTE中使用的字符范围
RTE中的特殊字符在弹出窗口中向作者显示
样式通常应用于文本,但也可以对表或几个表单元格应用一组单独的样式。 从“单元格属性”或“表属性”对话框的“样式”选择器框中,作者可以使用这种样式。 当在文本组件(或衍生组件)中编辑表时,样式可用,而在标准表组件中则不可用。
您只能为经典UI定义表和单元格的样式。
在RTE组件中或从RTE组件中复制和粘贴表取决于浏览器。 并非所有浏览器都支持开箱即用。 根据表结构和浏览器,您可能会获得不同的结果。 例如,当您在经典UI和触屏UI中复制和粘贴Mozilla Firefox中RTE组件中的表时,不会保留表的布局。
在组件中,导航到节点<rtePlugins-node>/table
。 如果节点不存在,则创建这些节点。 有关详细信息,请参阅激活插件。
在table
节点上创建features
属性:
features
String
*
(星号)如果不想启用所有表功能,可以创建features
属性:
String[]
table
允许编辑表属性;包括样式。cellprops
以允许编辑单元格属性,包括样式。定义CSS样式表的位置以引用这些样式表。 请参阅指定样式表的位置,因为这与为文本](#textstyles)定义[样式时的位置相同。 如果您定义了其他样式,则可以定义位置。
在table
节点下,创建以下新节点(根据需要):
定义整个表的样式(可在表属性下找到):
tableStyles
cq:WidgetCollection
定义单个单元格的样式(位于单元格属性下):
cellStyles
cq:WidgetCollection
创建一个新节点(在tableStyles
或cellStyles
节点下,视情况而定)以表示单个样式:
nt:unstructured
在此节点上创建属性:
定义要引用的CSS样式
cssName
String
.
带前面 cssClass
的名称 .cssClass
)定义要在下拉选择器中显示的描述性文本
text
String
保存所有更改。
对每个所需样式重复上述步骤。
有时,您可能会在列标题中创建不带可视文本的数据表,假定该标题的用途由列与其他列的可视关系所隐含。 在这种情况下,必须在标题单元格的单元格中提供隐藏的内部文本,以允许屏幕阅读器和其他辅助技术帮助有各种需求的读者了解该列的用途。
为了增强此类情况下的辅助功能,RTE支持隐藏的标题单元格。 此外,它还提供与表中隐藏的标题相关的配置设置。 这些设置允许您在编辑和预览模式下对隐藏的标题应用CSS样式。 要帮助作者在编辑模式下识别隐藏的标题,请在代码中包含以下参数:
hiddenHeaderEditingCSS
:指定在编辑RTE时应用于隐藏标题单元格的CSS类的名称。hiddenHeaderEditingStyle
:指定在编辑RTE时应用于隐藏标题单元格的样式字符串。如果在代码中指定CSS和样式字符串,则CSS类优先于样式字符串,并可能覆盖样式字符串所做的任何配置更改。
要帮助作者在预览模式中对隐藏的标题应用CSS,您可以在代码中包含以下参数:
hiddenHeaderClassName
:指定在预览模式下应用于隐藏标题单元格的CSS类的名称。hiddenHeaderStyle
:指定在预览模式下应用于隐藏标题单元格的样式字符串。如果在代码中指定CSS和样式字符串,则CSS类优先于样式字符串,并可能覆盖样式字符串所做的任何配置更改。
激活拼写检查插件后,RTE会为每种相应的语言使用词典。 然后根据网站的语言选择,采用子树的语言属性或从URL中提取语言;例如。 /en/
分支被选为英语,/de/
分支被选为德语。
如果检查未安装的语言时,会看到消息Spell checking failed
。 标准词典与相应的自述文件一起位于/libs/cq/spellchecker/dictionaries
。 请勿修改文件。
标准AEM安装包括美国英语(en_us
)和英国英语(en_gb
)的词典。 要添加更多字典,请按照以下步骤操作。
执行下列操作之一以查找您选择的语言的词典:
下载包含拼写定义的存档。 解压文件系统上的存档内容。
仅支持OpenOffice.org v2.0.1或更早版本MySpell
格式的词典。 由于词典现在是存档文件,建议您在下载后验证存档文件。
找到。aff和。dic文件。 将文件名保留为小写。 例如,de_de.aff
和de_de.dic
。
加载位于/apps/cq/spellchecker/dictionaries
的存储库中的。aff和。dic文件。
RTE拼写检查器可按需使用。 它不会在您开始键入文本时自动运行。 要运行拼写检查器,请单击工具栏中的拼写检查器。 RTE检查单词的拼写并突出显示拼写错误的单词。
如果包含拼写检查器建议的任何更改,则文本更改和拼写错误的单词的状态不再突出显示。 要运行拼写检查器,请再次点按/单击“拼写检查器”按钮。
RTE允许作者撤消或重做上次所做的几项编辑。 默认情况下,50个编辑存储在历史记录中。 您可以根据需要配置此值。
在组件中,导航到节点<rtePlugins-node>/undo
。 如果这些节点不存在,请创建它们。 有关详细信息,请参阅激活插件。
在undo
节点上创建属性:
名称 maxUndoSteps
类型 Long
值 您希望在历史记录中保存的撤消步骤数。
保存更改。
当在任何文本中按制表符时,会插入预定义的空格数;默认情况下,这是三个不间断空格和一个空格。 要定义选项卡大小,请执行以下操作:
在您的组件中,导航到节点<rtePlugins-node>/keys
。 如果节点不存在,则创建这些节点。 有关详细信息,请参阅激活插件。
在keys
节点上创建属性:
tabSize
String
保存更改。
启用缩进(默认)后,您可以定义缩进大小:
此缩进大小仅应用于文本的段落(块);它不影响实际列表的缩进。
在组件中,导航到节点<rtePlugins-node>/lists
。 如果这些节点不存在,请创建它们。 有关详细信息,请参阅激活插件。
在lists
节点上创建identSize
参数:
identSize
Long
您可以定义组件对话框中显示的可编辑空间的高度:
在组件的对话框定义中的../items/text
节点上,创建新属性:
height
Long
这不会更改对话框窗口的高度。
保存更改。
仅当在对话框中使用RTE时(在经典UI中不是就地编辑),才适用。
在AEM中添加链接时,您可以定义:
要配置如何在AEM中从其他项目添加链接,请定义HTML规则。
使用CRXDE Lite找到项目的文本组件。
在与<rtePlugins-node>
相同的级别创建新节点,即在<rtePlugins-node>
的父节点下创建该节点:
htmlRules
nt:unstructured
../items/text
节点具有以下属性:
xtype
String
richtext
../items/text
节点的位置可能因对话框的结构而异;两个示例包括:
/apps/myProject>/components/text/dialog/items/text
/apps/<myProject>/components/text/dialog/items/panel/items/text
在htmlRules
下,创建新节点。
links
nt:unstructured
在links
节点下,根据需要定义属性:
内部链接的CSS样式:
cssInternal
String
cssClass
而不是.cssClass
外部链接的CSS样式
cssExternal
String
cssClass
而不是.cssClass
有效协议的数组。 支持的协议有http://
、https://
、file://
和mailto:
。
protocols
String[]
defaultProtocol (String类型的 属性):在用户未明确指定协议时使用的协议。
defaultProtocol
String
如何处理链接的目标属性的定义。 创建新节点:
targetConfig
nt:unstructured
在节点targetConfig
上:定义所需的属性:
指定目标模式:
名称 mode
类型 String
)
值:
auto
:表示已选择自动目标
(由外部链接的targetExternal
属性或内部链接的targetInternal
属性指定)。
manual
:不适用于此上下文
blank
:不适用于此上下文
内部链接的目标:
targetInternal
String
auto
)外部链接的目标:
targetExternal
String
auto
用)。保存所有更改。