Xiuno·TinyMCE(2023.10.29) 1F
C
版主组 版主组
2022-11-07 19:38
楼主

【授权协议】

Xiuno、TinyMCE、PrismJS:MIT

tiny.js、tiny.js/hook:WTFPL

欢迎各类修改及衍生版

【媒体插入】

Bilibili、Acfun(仅电脑)

西瓜、抖音(仅电脑)

优酷、搜狐、腾讯

网易云音乐

最后于 2023-10-29 14:23 被C编辑 ,原因: 更新TinyMCE6.7.2
上传的附件:
  • tiny.zip 免费附件(2023-10-29 14:23:14,1.63M,下载次数:99)

 收藏 分享
最新回复 (51)
  • CF
    管理员组
    2022-11-07 20:59
    沙发

    有变量没初始化好?

    可能是header_link_after.htm

     

     

    找不到工作/(ㄒoㄒ)/~~
  • C
    版主组
    2022-11-07 21:02
    板凳
    CF 有变量没初始化好? 可能是header_link_after.htm    

    这个啊,我看看,有4处用到action。

    最后于 2022-11-08 11:13 被C编辑 ,原因:
  • C
    版主组
    2022-11-07 21:05
    地板
    CF 有变量没初始化好? 可能是header_link_after.htm    

    修好了,附件更新了,试一下?

  • C
    版主组
    2022-11-07 21:06
    4楼

    老版本(fuck/c_tinymce)数据导入可以单独做个插件,不过我最近没啥时间搞……

  • C
    版主组
    2022-11-07 21:07
    5楼

    后面这个插件你随便改,新版设置页链接把云库放前面吧。

  • CF
    管理员组
    2022-11-07 23:00
    6楼

    语言文件是精简了吗?

    找不到工作/(ㄒoㄒ)/~~
  • C
    版主组
    2022-11-07 23:14
    7楼
    CF 语言文件是精简了吗?

    没有啊,那个翻译我忘了什么时候搞的了,一直就没换过

  • CF
    管理员组
    2022-11-07 23:16
    8楼

    我也更换成新编辑器了,哈哈

    #include <stdio.h>
    
    int main()
    {
        printf("Hello 哈哈哈");
        return 0;
    }

    怎么发视频<iframe>,是啥配置来着

    最后于 2022-11-09 10:33 被CF编辑 ,原因:
    找不到工作/(ㄒoㄒ)/~~
  • C
    版主组
    2022-11-08 00:26
    9楼
    CF 我也更换成新编辑器了,哈哈 #include &lt;stdio.h&gt; int main() { printf("Hello 哈哈哈"); ...

    直接贴B站播放页地址

    话说我附件更新不了,权限不足

  • C
    版主组
    2022-11-08 00:27
    10楼

    这里有个刚刚修改版的,把底部撤销按钮的图标优化了一下,手机上更方便。

    附件已删除

    最后于 2022-11-08 13:00 被C编辑 ,原因:
  • CF
    管理员组
    2022-11-08 09:43
    11楼
    C 直接贴B站播放页地址 话说我附件更新不了,权限不足

    我测试可以啊,你需要上传头像解锁上传权限

    找不到工作/(ㄒoㄒ)/~~
  • C
    版主组
    2022-11-08 10:59
    12楼
    CF 我测试可以啊,你需要上传头像解锁上传权限

    提示所在用户组权限不足,应该是顶楼超过编辑时间了。

  • CF
    管理员组
    2022-11-08 11:10
    13楼
    C 提示所在用户组权限不足,应该是顶楼超过编辑时间了。

    我的错,给你转到可以编辑的板块了,应该可以上传了

    找不到工作/(ㄒoㄒ)/~~
  • CF
    管理员组
    2022-11-08 11:22
    14楼
    CF 我的错,给你转到可以编辑的板块了,应该可以上传了

    【修罗中国】投票插件有冲突,不知道是哪边问题。

     

    视频上传按钮还是加上嵌入比较好,一般人不知道发视频的步骤

    找不到工作/(ㄒoㄒ)/~~
  • C
    版主组
    2022-11-08 11:53
    15楼
    CF 跟【修罗中国】投票插件有冲突,不知道是哪边问题。 &nbsp; 视频上传按钮还是加上嵌入比较好,一般人不知道发视频的步骤

    投票插件发这里来看看?我没账号下载不了

    嵌入那个把tiny.js:328行注释掉就行了

    document.querySelector('.tox-dialog__body-nav').style.display = 'none';

    不过感觉意义不大,现在这样更美观简洁,使用步骤上也方便。

    我遇见过不下10次了,都是问怎么粘贴播放页地址进去没法出现播放页面。

    一般小白的话根本不知道嵌入那玩意怎么个用法,都是直接把页面地址往里面贴……

    而且xiuno的过滤机制是只有管理员能发iframe,其它用户的iframe必须改系统过滤。

    所以对于普通用户来说,也就只能用这几家的iframe,那还不如直接贴页面地址方便。

  • C
    版主组
    2022-11-08 11:59
    16楼

    不想改代码文件的话,直接把底下这一大坨贴进插件配置里面:(理论上tiny.js所有配置都可以覆写)

    setup: function (editor) {
        editor.on('drop', (e) => {
            e.preventDefault();
            e.stopPropagation();
        });
        editor.on('input', () => {
            editor.save();
        });
        editor.on('change', () => {
            editor.save();
        });
        editor.on('paste', (e) => {
            if (!e.clipboardData.files || !e.clipboardData.files.length) { return; };
            e.preventDefault();
            e.stopPropagation();
            tiny_recv(e.clipboardData.files);
        });
        editor.on('keydown', (e) => {
            if (!e.ctrlKey || e.keyCode != 13) { return; };
            e.preventDefault();
            e.stopPropagation();
            document.getElementById('submit').click();
        });
        editor.on('load', () => {
            document.querySelector('input[name="doctype"]').value = 0;
            if (!document.querySelector('#tiny_info')) {
                document.querySelector('.tox-statusbar__text-container').insertAdjacentHTML('afterbegin', '<span id="tiny_info" style="display:flex;flex:1 1 auto;"><a href="javascript:;" onclick="document.querySelector(\'#tiny_list\').style.display=(document.querySelector(\'#tiny_list\').style.display==\'none\')?\'\':\'none\';"><span id="tiny_info_rest" style="color:blue;">0</span>&nbsp;/&nbsp;<span id="tiny_info_done" style="color:green;">0</span>&nbsp;/&nbsp;<span id="tiny_info_fail" style="color:red;">0</span></a>&nbsp;&nbsp;<a id="tiny_proc" href="javascript:;" style="color:darkorange;"></a></span><span style="display:flex;flex:0 0 auto;"><a href="javascript:;" onclick="tinymce.activeEditor.undoManager.undo();" style="text-decoration:none">&nbsp;&nbsp;&#x276E;&#xFE0E;&nbsp;&nbsp;</a><a href="javascript:;" onclick="tinymce.activeEditor.undoManager.redo();" style="text-decoration:none">&nbsp;&nbsp;&#x276F;&#xFE0E;&nbsp;&nbsp;</a>');
            };
            if (!document.querySelector('#tiny_list')) {
                document.querySelector('.tox-tinymce').insertAdjacentHTML('afterend', '<div id="tiny_list" style="margin-top:-1px;padding:2px 8px;border:1px solid #ccc;background:#FFF;color:rgba(34,47,62,.7);font-size:12px;max-height:112px;overflow-y:scroll;display:none;"></div>');
            }
        });
        editor.on('ExecCommand', (e) => {
            if (e.command === 'mceMedia') {
                var ibox = document.querySelector('.tox-textfield');
                ibox.focus();
                ibox.addEventListener('paste', function (e) {
                    var val = e.clipboardData.getData("text");
                    e.preventDefault();
                    e.stopPropagation();
                    var ixigua = val.match(/^https?:\/\/(?:www|m)\.ixigua\.com\/(?:video\/)?(\d+)/i);
                    if (ixigua) { val = 'https://www.ixigua.com/iframe/' + ixigua[1]; };
                    var douyin = val.match(/^https?:\/\/(?:www|m)\.(?:ies)?douyin\.com\/(?:share\/)?video\/(\d+)/i);
                    if (douyin) { val = 'https://www.douyin.com/light/' + douyin[1]; };
                    var acfun = val.match(/^https?:\/\/www\.acfun\.cn\/v\/ac(\d+)/i);
                    if (acfun) { val = 'https://www.acfun.cn/player/ac' + acfun[1]; };
                    var acfun_m = val.match(/^https?:\/\/m\.acfun\.cn\/v\/\?ac=(\d+)/i);
                    if (acfun_m) { val = 'https://www.acfun.cn/player/ac' + acfun_m[1]; };
                    var bilibili = val.match(/^https?:\/\/(?:www|m)\.bilibili\.com\/video\/BV(\w+)/i);
                    if (bilibili) { val = 'https://player.bilibili.com/player.html?bvid=BV' + bilibili[1]; };
                    var bilibili_av = val.match(/^https?:\/\/(?:www|m)\.bilibili\.com\/video\/av(\w+)/i);
                    if (bilibili_av) { val = 'https://player.bilibili.com/player.html?aid=' + bilibili_av[1]; };
                    var youku = val.match(/^https?:\/\/(?:v|m)\.youku\.com\/(?:v_show|video)\/id_([\w\-\=]+)/i);
                    if (youku) { val = 'https://player.youku.com/embed/' + youku[1]; };
                    var sohu = val.match(/^https?:\/\/tv\.sohu\.com\/v\/([\w\-\=]+)\.html(?:\?vid=(\d+))?/i);
                    if (sohu) {
                        var bid = atob(sohu[1]).match(/^us\/\d+\/(\d+)/i);
                        if (bid) { val = 'https://tv.sohu.com/s/sohuplayer/iplay.html?bid=' + bid[1]; }
                        else if (sohu[2]) { val = 'https://tv.sohu.com/s/sohuplayer/iplay.html?vid=' + sohu[2]; }
                    };
                    var sohu_m = val.match(/^https?:\/\/m\.tv\.sohu\.com\/u\/vw\/([\d]+)/i);
                    if (sohu_m) { val = 'https://tv.sohu.com/s/sohuplayer/iplay.html?bid=' + sohu_m[1]; };
                    var qq = val.match(/^https?:\/\/v\.qq\.com\/x\/(?:cover|page)\/.*?(\w+)\.html/i);
                    if (qq) { val = 'https://v.qq.com/txp/iframe/player.html?vid=' + qq[1]; };
                    var qq_m = val.match(/^https?:\/\/m\.v\.qq\.com\/.*?vid=(\w+)/i);
                    if (qq_m) { val = 'https://v.qq.com/txp/iframe/player.html?vid=' + qq_m[1]; };
                    var music163_0 = val.match(/^https?:\/\/(?:y\.)?music\.163\.com\/(?:m|\#)\/playlist\?id=(\d+)/i);
                    if (music163_0) { val = 'https://music.163.com/outchain/player?type=0&id=' + music163_0[1]; };
                    var music163_1 = val.match(/^https?:\/\/(?:y\.)?music\.163\.com\/(?:m|\#)\/album\?id=(\d+)/i);
                    if (music163_1) { val = 'https://music.163.com/outchain/player?type=1&id=' + music163_1[1]; };
                    var music163_2 = val.match(/^https?:\/\/(?:y\.)?music\.163\.com\/(?:m|\#)\/song\?id=(\d+)/i);
                    if (music163_2) { val = 'https://music.163.com/outchain/player?type=2&id=' + music163_2[1]; };
                    ibox.value = val;
                });
            };
        });
    }
  • CF
    管理员组
    2022-11-08 12:46
    17楼
    C 投票插件发这里来看看?我没账号下载不了 嵌入那个把tiny.js:328行注释掉就行了 document.querySelector('.tox-dialog__body-nav').style. ...

    投票

    上传的附件:
    找不到工作/(ㄒoㄒ)/~~
  • CF
    管理员组
    2022-11-08 16:15
    18楼
    C 没有啊,那个翻译我忘了什么时候搞的了,一直就没换过

    语言文件记得也更新一下

    找不到工作/(ㄒoㄒ)/~~
  • CF
    管理员组
    2022-11-09 17:03
    19楼

    翻译文件是不是不对劲?

    找不到工作/(ㄒoㄒ)/~~
  • 游客
    52楼
    登录 后参与评论
返回
C
版主组
主题数
帖子数
精华数