维基百科讨论: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)