此插件仅适用于 付费 TinyMCE 订阅。
Markdown Premium 插件可检测 TinyMCE 编辑器实例中粘贴事件的纯 markdown 内容。
使用 Markdown 插件
工作原理
Markdown Premium 插件检测是否将纯 markdown 粘贴到 TinyMCE 编辑器实例中。
如果在粘贴事件期间检测到 markdown 内容,编辑器将:
尝试将 markdown 转换为 HTML
在转换前添加一个撤销级别,允许恢复原始纯文本
以下是在 TinyMCE 中使用 Markdown 插件时,以
plain-text格式粘贴的实用键盘快捷键。要粘贴不带格式的文本,请使用:
Windows:
Ctrl+Shift+V。Mac:
Cmd+Shift+V。这些快捷键允许粘贴
plain-text,从而移除现有格式(如粗体、斜体或不同字体)。在从网站或文档复制 Markdown 语法(文本)时特别有用,因为它确保文本粘贴到新位置时不带原始 HTML 格式。
基本设置
要在编辑器中设置 Markdown 插件的用户界面:
将
markdown添加到编辑器配置中的plugins选项;
例如:
tinymce.init({
selector: 'textarea', // change this value according to your html
plugins: 'markdown',
});有关使用模块打包器打包此插件的信息,请参阅 Bundling TinyMCE - Overview。
交互式示例
HTML
<table>
<thead>
<tr>
<th style="width: 50%;"><h2>The Markdown Plugin</h2></th>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 50%;">
<textarea class="markdown">
<h1>Markdown Premium Plugin</h1>
<p>The <strong>Markdown Premium Plugin</strong> enhances the functionality of the editor by allowing it to detect and convert pure markdown content on-paste.</p>
<h2><strong>Tips for Pasting Text</strong></h2>
<p>To paste text in plain form using keyboard shortcuts, use:</p>
<ul>
<li><strong>Windows:</strong> Ctrl+Shift+V</li>
<li><strong>Mac:</strong> Cmd+Shift+V</li>
</ul>
<h3>Paste Example</h3>
<p>Paste the following markdown into the editor using the above shortcuts:</p>
<p># H1</p>
<p>## H2</p>
<p>### H3</p>
<p>#### H4</p>
<p>##### H5</p>
<p>###### H6</p>
</textarea>
</td>
</tr>
</tbody>
</table>JS
tinymce.init({
selector: 'textarea.markdown',
plugins: [
"markdown", "advlist", "anchor", "autolink", "charmap", "code", "fullscreen",
"help", "image", "insertdatetime", "link", "lists", "media",
"preview", "searchreplace", "table", "visualblocks",
],
toolbar: "undo redo | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
height: 600,
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:16px }'
});选项
以下配置选项影响 Markdown 插件的行为。
markdown_symbols 选项
markdown_symbols 选项允许定义 key/value 对,其中 key 表示内容中的符号,value 表示该符号的替换内容。
类型: Object
默认值: markdown_symbols 对象默认接受以下键值对:
{
C: '©',
TM: '™',
R: '®'
}示例:使用 markdown_symbols
tinymce.init({
selector: 'textarea', // change this value according to your HTML
plugins: 'markdown',
markdown_symbols: {
C: '©',
TM: '™',
R: '®'
}
});此外,如果启用了 Emoticons 插件并正确设置,被冒号 (:) 包围的 emojis 也会被替换。此功能允许更广泛的替换,包括用图像文件表示的 emojis。例如,如果配置了,:smile: 将被转换为相应的 emoji。在 Markdown 内容中,重要的是将关键符号(如"C")括在括号中,如"(C)",以确保正确转换;请注意它们是区分大小写的,因此"(c)"不会被转换。
命令
Markdown 插件提供以下 TinyMCE 命令。
| 命令 | 说明 |
|---|---|
MarkdownInsert | 将新的 markdown 内容作为 HTML 插入编辑器 |
tinymce.activeEditor.execCommand('MarkdownInsert', false, 'paragraph');
tinymce.activeEditor.execCommand('MarkdownInsert', false, '**bold**');
tinymce.activeEditor.execCommand('MarkdownInsert', false, '# Header');API
Markdown 插件提供以下 API。
editor.plugins.markdown.getContent() API 支持 Markdown 插件。
该 API 将当前的 TinyMCE 文档从 HTML 转换为有效的 Markdown 语法。
editor.plugins.markdown.getContent(); API 不需要用户配置
interface PluginAPI {
getContent: () => Promise<string>
}示例
TinyMCE 文档内容:
<h3>Heading</h3> <p>This is a paragraph.</p> <ul> <li>Item 1</li> <li>Item 2</li> </ul>
API 输出:
### Heading This is a paragraph. * Item 1 * Item 2