Word Count 插件为 TinyMCE 编辑器添加了字数统计功能。
加载后,Word Count 插件会:
在状态栏中放置一个单词和字符计数器。
默认情况下,计数器显示在 Powered by Tiny 产品署名徽标旁边。
点击状态栏中的计数器可以在单词计数和字符计数之间切换显示。
在工具菜单中添加一个Word count命令。
选择此命令会弹出一个Word Count对话框,显示当前文档的单词数和字符数。如果有选中的内容,也会显示选中内容的单词数和字符数。
如果
wordcount也被添加到工具栏配置中,那么会显示一个 Word Count 工具栏项,其功能与 工具 → Word count 菜单命令等效。
字数统计逻辑
Word count 插件通过在预定义的单词边界处分隔字符串来统计“单词”数。
单词边界字符
一些被视为单词边界的字符
| 名称 | 示例及备注 |
|---|---|
空格 | 包括空格字符实体,如 |
长破折号 | — |
短破折号 | – |
问号 | ? |
逗号 | , |
分号 | ; |
感叹号 | ! |
斜杠(又称前斜杠) | / |
脱字符 | ^ |
序号符号 | № |
波浪号 | ~ |
加号 | + |
竖线(又称管道字符) | | |
美元符号 | $ |
反引号 | ` |
一些不被视为单词边界的字符
| 名称 | 示例及备注 |
|---|---|
连字符 | - |
分数斜杠 | ⁄ |
等号 | = |
句号(又称点) | . 请注意,空格字符是单词边界。 实际上,嵌入在字母之间且两侧没有空格的句号不作为单词边界字符。 |
冒号 | : 请注意,空格字符是单词边界。 实际上,嵌入在字母之间且两侧没有空格的冒号不作为单词边界字符。 |
空块元素 |
此外,其他空元素内部的空格字符——例如 |
字符计数逻辑
Word Count 插件统计字形数。
Word Count 插件不统计为文档管理目的而添加的字符。
假设最终用户输入以下内容:
1↵ ↵ 2↵ ↵
也就是说,他们输入数字 1,接着是两个硬回车,然后是数字 2,再接着是两个硬回车。
默认情况下,TinyMCE 按如下方式存储这些输入的数据:
<p>1</p> <p> </p> <p>2</p> <p> </p>
这些数据的字符计数为 2。
Word Count 不会将 TinyMCE 放置在文档中的任何一个 字符计入字符计数。
基本设置
tinymce.init({
selector: 'textarea', // change this value according to your HTML
plugins: 'wordcount',
toolbar: 'wordcount'
});有关使用模块打包器捆绑此插件的信息,请参阅 Bundling TinyMCE - Overview。
工具栏按钮
Word Count 插件提供以下工具栏按钮:
| 工具栏按钮标识符 | 描述 |
|---|---|
| 打开一个显示单词数和字符数的单词计数对话框。 |
可以通过以下方式将这些工具栏按钮添加到编辑器中:
使用
toolbar配置选项。使用
quickbars_insert_toolbar配置选项。
菜单项
Word Count 插件提供以下菜单项:
| 菜单项标识符 | 默认菜单位置 | 说明 |
|---|---|---|
| 工具 | 打开显示字数和字符数的字数统计对话框。 |
可通过以下方式将这些菜单项添加到编辑器中:
menu配置选项。contextmenu配置选项。
命令
Word Count 插件提供以下 TinyMCE 命令。
| 命令 | 说明 |
|---|---|
mceWordCount | 打开字数统计摘要对话框。 |
tinymce.activeEditor.execCommand('mceWordCount');API
Word Count 插件提供了用于获取整个文档或当前编辑器选区的字数和字符数的 API。以下是获取各属性的示例。
示例:使用 wordcount 插件 API
const wordcount = tinymce.activeEditor.plugins.wordcount; console.log(wordcount.body.getWordCount()); console.log(wordcount.body.getCharacterCount()); console.log(wordcount.body.getCharacterCountWithoutSpaces()); console.log(wordcount.selection.getWordCount()); console.log(wordcount.selection.getCharacterCount()); console.log(wordcount.selection.getCharacterCountWithoutSpaces());