【发布时间】:2020-06-13 16:50:04
【问题描述】:
我正在尝试获取一个段落标签,其中包含一个由富文本小部件生成的类,但我尝试过的任何方法似乎都不起作用。那里有很多半解决方案,但没有一个文档提供完整的解决方案。
这就是我想要的:我想在富文本编辑器中有一个菜单选项,它是“突出显示的文本”,并使用带有“突出显示文本”类的“p”标签<p class='highlighted-text'>...</p>。
我有什么:
我的项目中有一个lib\modules\apostrophe-rich-text-widgets\index.js 文件,其中包含:
module.exports = {
sanitizeHtml: {
//allowedTags: [ 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'p', 'a', 'ul', 'ol',
// 'li', 'b', 'i', 'strong', 'em', 'strike', 'code', 'hr', 'br', 'div',
// 'table', 'thead', 'caption', 'tbody', 'tr', 'th', 'td', 'pre',
// 'sup', 'sub'
//],
//allowedClasses: {
// 'p': ['highlighted-text']
//},
//allowedAttributes: {
// '*': ['style', 'class'],
// a: [ 'href', 'name', 'target' ],
// // We don't currently allow img itself by default, but this
// // would make sense if we did
// img: [ 'src' ]
//},
allowedTags: false,
allowedAttributes: false,
allowedClasses: false,
// Lots of these won't come up by default because we don't allow them
selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont',
'input', 'link', 'meta' ],
// URL schemes we permit
allowedSchemes: [ 'http', 'https', 'ftp', 'mailto' ],
allowedSchemesByTag: {}
}
}
请注意,我已经尝试过专门允许段落标记的类,并且我还尝试按照此处的说明关闭清理:https://github.com/apostrophecms/sanitize-html
在我的模板中,我有以下代码:
{% extends "layout.html" %}
{% block main %}
<div class="container" style="margin-top: 3rem">
{{ apos.area(data.page, "body", {
widgets: {
'apostrophe-images': {size: 'one-half'},
'apostrophe-rich-text': {
toolbar: ['Styles', 'Bold', 'Italic', 'Link', 'Unlink', 'Anchor', 'Table', 'BulletedList', 'Blockquote', 'Strike', 'Subscript', 'Superscript', 'Split'],
styles: [
{name: 'Paragraph', element: 'p'},
{name: 'Heading 2', element: 'h2'},
{name: 'Heading 3', element: 'h3'},
{name: 'Heading 4', element: 'h4'},
{name: 'Heading 5', element: 'h5'},
{name: 'Highlighted-Text', element: 'p', 'class': 'highlighted-text'}
]
},
'apostrophe-files': {},
'two-column': {}
}
}) }}
</div>
{% endblock %}
我也尝试过{name: 'Highlighted-Text', element: 'p', attributes: [{'class': 'highlighted-text'}]} 和{name: 'Highlighted-Text', element: 'p', attributes: {'class': 'highlighted-text'}},因为这些也是我在网络上流传的文档中看到的格式。
到目前为止,我要么在服务器上遇到错误,要么得到纯段落格式。我确信我还没有设法尝试这些设置的可能变化的所有可能排列,因为那几乎是无限的。
我建议将一个简单的工作示例添加到官方撇号文档中,以展示这一点,包括必须从默认撇号 cms 项目添加或更改的所有代码片段。我猜这是用户非常普遍的需求。
【问题讨论】:
-
最近更新了文档,提供了更清晰的信息。见docs.apostrophecms.org/howtos/ckeditor.html。如果您对文档有具体建议,请在 repo 中创建问题:github.com/apostrophecms/apostrophe-documentation/issues。我们很快就会在那里进行很多改进。
标签: apostrophe-cms