允许TinyMCE中的自定义标签与indexhibit集成

Allowing custom tags in TinyMCE for integration with indexhibit

本文关键字:indexhibit 集成 标签 自定义 TinyMCE 允许      更新时间:2023-09-26

我正在尝试允许在TinyMCE中输入一些自定义标记。标签是

<plug:plugin_name />

然而,这变成了

<plug:plugin_name></plug:plugin_name>

我要写一个正则表达式来处理这个问题,因为我必须完成这项工作,我真的不想,但它会解决我的问题。

我已经尝试了许多初始化选项:

extended_valid_elements : "plug.plugin_name[*]",
custom_elements: "plug.plugin_name[*]",
verify_html : false, **//This ment that the tag wasn't ouright removed**
selfclosetags : '" />'", //some plugin I found, didn't seem to work
closed : /^(br|hr|input|meta|img|link|param|area|plug:plugin_name)$/,

其他人肯定会用这个来处理最近版本的TinyMCE吗?

此外,另一个问题是,在我用regex修复了标记之后,编辑器会去掉它

您只需要将其添加到短端元素列表中:

extended_valid_elements : "plug:plugin_name[*]",
custom_elements: "~plug:plugin_name[*]",
short_ended_elements: 'area base basefont br col frame hr img input isindex link meta param embed source wbr track plug:plugin_name'

这里有一把小提琴要示范。

代替:

closed : /^(br|hr|input|meta|img|link|param|area|plug:plugin_name)$/,

这行得通吗?

closed : /^(br|hr|input|meta|img|link|param|area|plug)$/,

注意最后一项"plug"没有:修饰符。

您尝试过这个选项吗?

valid_elements: "a,br,span,plug:plugin_name,another:tag"
  1. 首先让我们为你的Tinymce 4编辑器创建一个自定义插件。然后为这个插件添加一个菜单项:

     tinymce.PluginManager.add('YOUR_CUSTOM_PLUGIN_NAME_HERE', function(editor, url){
               //add first menu item
        editor.addMenuItem('YOUR_MENU_ITEM1_CUSTOM_NAME_HERE', {
        text: 'Menu Item 1',
        context: 'YOUR_CUSTOM_DROP_DOWN_MENU_NAME', 
        onclick: function() {
           //make the magic happen when the user click this menu here...
        } });
    

    您已经完成了自定义插件和自定义菜单项的创建,让我们将其添加到Tinymce4编辑器中。这将在tinymce.init方法中完成:

    tinymce.init({
            selector: "textarea",
            plugins: "YOUR_CUSTOM_PLUGIN_NAME_HERE",
            toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
        //this is how you will get your custom menu like in the above image
                menu : {
                     YOUR_CUSTOM_DROP_DOWN_MENU_NAME: {
                         title: 'Name it whatever you like here',
                         items: 'YOUR_MENU_ITEM1_CUSTOM_NAME_HERE YOUR_MENU_ITEM2_CUSTOM_NAME_HERE YOUR_MENU_ITEM3_CUSTOM_NAME_HERE'
                     }
                 },
                 menubar: 'YOUR_CUSTOM_DROP_DOWN_MENU_NAME' 
        });
        });
    

您可以将编码方法用作任何类型数据的原始方法。

tinyMCE.init({
   encoding : "raw"
})