Javascript CKEditor 5-如何在自定义标记中包装每个文本节点
就像在标题中,如何在ckeditor 5中以最简单的方式将每个文本(所有方式)包装在自定义标记中 我正在创建自定义atribute元素作为基本样式插件的扩展,但是这个元素在dataDowncast上没有属性(用于模式规范需求)。工作正常,但在使用方法“setData”后的表格插件中,它返回的表格单元格仅包含文本节点: 结构….Javascript CKEditor 5-如何在自定义标记中包装每个文本节点,javascript,ckeditor,ckeditor5,Javascript,Ckeditor,Ckeditor5,就像在标题中,如何在ckeditor 5中以最简单的方式将每个文本(所有方式)包装在自定义标记中 我正在创建自定义atribute元素作为基本样式插件的扩展,但是这个元素在dataDowncast上没有属性(用于模式规范需求)。工作正常,但在使用方法“setData”后的表格插件中,它返回的表格单元格仅包含文本节点: 结构….文本但当我将此结构设置为数据时,将使用get文本 function createViewTableCellElement( tableSlot, tableAttr
文本
但当我将此结构设置为数据时,将使用get文本
function createViewTableCellElement(
tableSlot,
tableAttributes,
insertPosition,
conversionApi,
options
) {
const asWidget = options && options.asWidget;
const cellElementName = getCellElementName(tableSlot, tableAttributes);
const cellElement = asWidget
? toWidgetEditable(
conversionApi.writer.createEditableElement(cellElementName),
conversionApi.writer
)
: conversionApi.writer.createContainerElement(cellElementName);
if (asWidget) {
setHighlightHandling(
cellElement,
conversionApi.writer,
(element, descriptor, writer) =>
writer.addClass(normalizeToArray(descriptor.classes), element),
(element, descriptor, writer) =>
writer.removeClass(normalizeToArray(descriptor.classes), element)
);
}
const tableCell = tableSlot.cell;
const firstChild = tableCell.getChild(0);
const isSingleParagraph =
tableCell.childCount === 1 && firstChild.name === "paragraph";
conversionApi.writer.insert(insertPosition, cellElement);
conversionApi.mapper.bindElements(tableCell, cellElement);
// Additional requirement for data pipeline to have backward compatible data tables.
if (!asWidget && !hasAnyAttribute(firstChild) && isSingleParagraph) {
const innerParagraph = tableCell.getChild(0);
conversionApi.consumable.consume(innerParagraph, "insert");
conversionApi.mapper.bindElements(innerParagraph, cellElement);
}
}