TinyMCE图标来自图标包。TinyMCE包含开源和高级图标包,但也允许集成人员添加自定义图标或使用自己的图标覆盖TinyMCE图标。
默认图标包随TinyMCE一起提供,无需任何配置,但在捆绑部署时必须导入:例如:
import 'tinymce/icons/default';
可以使用icons和icons_url设置替换默认图标。
可用的图标包
TinyMCE包含开源和高级图标包:
开源:
default(始终需要)高级:
bootstrap、jam、material、small、thin(需付费订阅)
有关哪个图标包最适合哪个皮肤的信息,请参阅:图标包兼容性矩阵。
自定义图标包
有关创建自定义图标包的信息,请参阅:为TinyMCE创建图标包。
传递给icons的值必须与以下定义的包名匹配:
通过JavaScript注册图标包时传递给
tinymce.IconManager.add的值;或使用图标包模板创建图标包时在
package.json的iconPackName字段中指定的值。
替换默认图标包
有两个与替换TinyMCE中图标相关的选项:icons和icons_url。
icons指定使用哪个图标包。icons_url指定何处可以找到该图标包(如果它不在默认位置)。
如果仅配置了icons,TinyMCE将尝试从TINYMCE_BASE/icons/${iconPackName}/icons.js加载指定的图标包;其中:
TINYMCE_BASE是TinyMCE根目录(包含tinymce.min.js的目录)。${iconPackName}是图标包的名称。
要从其他位置加载图标包,集成人员必须使用icons_url指定该位置。
当使用Tiny Cloud提供的TinyMCE、ZIP捆绑包或NPM包(带有捆绑或文件分层)时,只需要
icons。当使用自定义图标包或使用不带捆绑的NPM包时,很可能还需要
icons_url。
icons
icons选项允许使用图标包扩展或替换编辑器图标。图标包通过名称指定。
类型:String
初始化时,TinyMCE将尝试加载由icons选项指定的任何图标包。图标包中的图标将与TinyMCE的默认图标合并,并且图标包中的图标将覆盖具有相同标识符的默认图标。
示例:使用高级图标包
tinymce.init({
selector: 'textarea',
icons: 'material', // 使用Material Design图标
plugins: [
"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",
});示例:使用与皮肤和内容样式匹配的图标包
tinymce.init({
selector: 'textarea',
icons: 'bootstrap', // 使用Bootstrap图标
skin: 'bootstrap', // 与Bootstrap皮肤匹配
content_css: 'bootstrap', // 使用Bootstrap内容样式
});icons_url
icons_url选项允许集成人员指定加载图标包的非默认位置。当TinyMCE和图标包从不同位置加载时,这很有用。例如:当从Tiny Cloud加载TinyMCE时,图标包可以从不同的Web服务器加载。
类型:String
初始化时,TinyMCE将尝试从icons_url指定的位置加载由icons选项指定的任何图标包。图标包中的图标将与TinyMCE的默认图标合并,并且图标包中的图标将覆盖具有相同标识符的默认图标。
理解
icons_url和icons的组合使用:使用
icons_url时,还必须指定icons选项:
icons_url- 告诉TinyMCE图标包文件在何处。
icons- 告诉TinyMCE从加载的文件中哪个图标包。示例:
tinymce.init({ selector: 'textarea', icons_url: 'dist/icons/my_icon_pack/icons.js', // 在何处找到它 icons: 'my_icon_pack', // 使用哪个包 // ... 其他选项 });
用法
要从其他位置使用 TinyMCE 图标包:
确保图标包在指定的 URL 可用。
向
tinymce.init添加icons_url选项。使用
icons设置指定图标包名称。
示例:使用 icons_url
tinymce.init({
selector: 'textarea', // 根据HTML修改此值
icons_url: 'https://www.example.com/icons/my_icon_pack/icons.js', // 从不同位置加载图标包
icons: 'material', // 使用图标包
plugins: [
"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",
});示例:从 tinymce-premium (NPM) 加载高级图标
安装 tinymce-premium NPM 包时,高级图标包存储在 node_modules/tinymce-premium/icons/ 中。配置 icons_url 指向所需图标包文件。路径相对于 TinyMCE 的加载位置。例如:
tinymce.init({
selector: 'textarea',
icons_url: '../../node_modules/tinymce-premium/icons/material/icons.js',
icons: 'material'
});
确保
node_modules目录(或图标包文件的副本)可由浏览器访问。许多项目在构建步骤中将所需图标包复制到公共文件夹(如/public/icons/material/icons.js),并相应地更新icons_url。将此方法与 来自
tinymce-premium的高级图标包 中列出的方法结合使用,以匹配部署策略。