跳转到内容

维基百科讨论:InPageEdit

页面内容不支持其他语言。
添加话题
维基百科,自由的百科全书
For Each ... Next在话题“next版可以把配置存档到meta站,以供全域使用吗?”中的最新留言:3个月前

next版可以把配置存档到meta站,以供全域使用吗?

[编辑]

v2版可以存到meta的js页,将配置应用到所有站台。next是个json,不知道怎么全站配置😂--𝙵𝚘𝚛 𝙴𝚊𝚌𝚑 ... 𝙽𝚎𝚡𝚝 2025年12月7日 (日) 14:07 (UTC)回复

@For Each ... Next在meta global.js加入IPE-next安装代码之后再加入:
window.RLQ.push(() => {
  mw.hook('InPageEdit.ready').add(async (ipe) => {
    await ipe.preferences.setMany(
      // 本行以下插入ipe-prefs.json保存的内容,例子:
      {
        "pluginStore.registries": [
          "https://cdn.jsdelivr.net/npm/ipe-plugin-zhwiki/dist/registry.v1.json"
        ],
        "quickEdit.editSummary": "𝑄𝑢𝑖𝑐𝑘 𝑒𝑑𝑖𝑡",
        "toolboxAlwaysShow": true
      }
      // json结束
    );
    console.log('[InPageEdit] 配置已应用');
  });
});
当然,这样会总是覆盖本地的配置,如果需要可以自己写一点合并逻辑,例子:
window.RLQ.push(() => {
  mw.hook('InPageEdit.ready').add(async (ipe) => {
    // 要全域应用的配置
    const newConfig = {
      "pluginStore.registries": [
        "https://cdn.jsdelivr.net/npm/ipe-plugin-zhwiki/dist/registry.v1.json"
      ],
      "quickEdit.editSummary": "𝑄𝑢𝑖𝑐𝑘 𝑒𝑑𝑖𝑡",
      "toolboxAlwaysShow": true
    };
    
    // 获取本地配置
    const currentConfig = await ipe.preferences.getAll();
    
    // 合并
    const mergedConfig = {};
    for (const [key, newValue] of Object.entries(newConfig)) {
      const currentValue = currentConfig[key];
      
      // 如果是数组,合并并去重
      if (Array.isArray(newValue) && Array.isArray(currentValue)) {
        mergedConfig[key] = [...new Set([...currentValue, ...newValue])];
      } else {
        // 其他类型使用全域配置
        mergedConfig[key] = newValue;
      }
    }
    
    await ipe.preferences.setMany(mergedConfig);
    console.log('[InPageEdit] 配置已应用:', mergedConfig);
  });
});
--PexEric 2025年12月12日 (五) 18:34 (UTC)回复
说实话挺麻烦了。目前配置导入导出好像是主要用来备份,不知道日后会不会加入自动读取用户页配置的功能,我觉得大概率不会😂。--PexEric 2025年12月12日 (五) 18:34 (UTC)回复
感谢~ 感觉好高端,还是老版本做得比较好😂 𝙵𝚘𝚛 𝙴𝚊𝚌𝚑 ... 𝙽𝚎𝚡𝚝 2025年12月13日 (六) 03:41 (UTC)回复