插件 \ textpattern 快速排版(类似markdown)匹配文本中的特殊文本标记,并对其执行格式化或执行编辑器命令
此页更新时间:2019-05-02 22:15
此页英文文档:https://www.tiny.cloud/docs/plugins/textpattern/
简单说就是可以自己实现类似markdown类的文本语法结构。灵活运用感觉会很强大啊!
textpattern_patterns
该插件提供一个配置选项 textpattern_patterns,其默认值如下:
tinymce.init({
selector: '#tinydemo',
plugins: "textpattern",
textpattern_patterns:[
{start: '*', end: '*', format: 'italic'},
{start: '**', end: '**', format: 'bold'},
{start: '#', format: 'h1'},
{start: '##', format: 'h2'},
{start: '###', format: 'h3'},
{start: '####', format: 'h4'},
{start: '#####', format: 'h5'},
{start: '######', format: 'h6'},
{start: '1. ', cmd: 'InsertOrderedList'},
{start: '* ', cmd: 'InsertUnorderedList'},
{start: '- ', cmd: 'InsertUnorderedList' }
],
});
TinyMCE将该配置的参数总结为三种匹配模式:包围、块、替换。内联匹配:有一个开始start和一个结束end。块匹配:仅有一个开始start。替换匹配:完全替换start中定义的标记。
注意:使用的格式或命令必须在当前编辑器中被支持。例如要使用list命令时,需要确保插件中启用了lists插件。
包围匹配
上例默认参数中,形如:{start: '**', end: '**', format: 'bold'} 即为包围匹配。
该模式前两个参数由start和end组成,被start定义的文本和end包围的内容,即为后面为要执行动作的目标。
这里顺便将该参数提供的三种动作一并介绍:
- 转变格式:{start: '*', end: '*', format: 'italic'} - 由*包围的内容将会变成斜体。
- 执行命令:{start: '~', end: '~', cmd: 'createLink', value: 'http://tinymce.ax-z.cn'} - 由~包围的内容将加上链接,其href值为value中的内容,该命令等同于执行了:editor.execCommand('createLink', false, 'http://tinymce.ax-z.cn');
- 完全替换:{start: '(c)', replacement: '©'} - (c)将会被替换成copyright符号。
块匹配
上例默认参数中,形如:{start: '1. ', cmd: 'InsertOrderedList'}, 即为块匹配。
该模式第一个参数由start,不提供end参数,由start开头的当前段落内容,即为后面为要执行动作的目标。
替换匹配
{start: '(c)', replacement: '©'} 为替换模式的写法。
start定义要被替换的目标文本,replacement定义要替换成为的内容。
这里的替换为完全替换,也就是当前行仅包含start中定义的文本,后面没有其它文本,如后面还有文本,则回车时不会执行替换匹配,而是会执行块匹配。
tinymce.init({
selector: '#tinydemo',
plugins: "textpattern",
textpattern_patterns: [
{start: '---', replacement: '<hr/>'},
{start: '--', replacement: '—'},
{start: '-', replacement: '—'},
{start: '(c)', replacement: '©'},
{start: '//brb', replacement: 'Be Right Back'},
{start: '//heading', replacement: '<h1 style="color:blue">Heading here</h1><p><em>Date: 01/01/2000</em></p> '},
],
});
下一节:toc 目录生成器