|
|
|
|
function updateVisualEditorConfig() {
|
|
|
|
|
if (ve) {
|
|
|
|
|
if (ve.init && ve.init.mw && ve.init.mw.Target) {
|
|
|
|
|
ve.init.mw.Target.static.toolbarGroups.forEach(function (toolbarItem) {
|
|
|
|
|
if (toolbarItem.name === 'format') {
|
|
|
|
|
// 将heading1从demote中移除,防止heading1出现在底部
|
|
|
|
|
toolbarItem.demote = toolbarItem.demote.filter(function (item) {
|
|
|
|
|
return item !== 'heading1';
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
console.warn('Cannot find "ve.init.Target"');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ve.ui) {
|
|
|
|
|
// 重命名heading1-6
|
|
|
|
|
for (var i = 1; i <= 6; i ++) {
|
|
|
|
|
var className = 'MWHeading' + i + 'FormatTool';
|
|
|
|
|
var msgId = 'isekai-ve-formatdropdown-format-mw-heading' + i;
|
|
|
|
|
if (ve.ui[className]) {
|
|
|
|
|
ve.ui[className].static.title = OO.ui.deferMsg(msgId);
|
|
|
|
|
} else {
|
|
|
|
|
console.warn('Cannot find "ve.ui.' + className + '"');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console.warn('Cannot find "ve.ui"');
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console.warn('Cannot find ve lib');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mw.libs && mw.libs.ve && mw.libs.ve.targetLoader) {
|
|
|
|
|
var _oldRequestParsoidData = mw.libs.ve.targetLoader.requestParsoidData;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Request the page data and various metadata from the MediaWiki API (which will use
|
|
|
|
|
* Parsoid or RESTBase).
|
|
|
|
|
*
|
|
|
|
|
* @param {string} mode Target mode: 'visual' or 'source'
|
|
|
|
|
* @param {string} pageName Page name to request, in prefixed DB key form (underscores instead of spaces)
|
|
|
|
|
* @param {Object} [options]
|
|
|
|
|
* @param {boolean} [options.sessionStore] Store result in session storage (by page+mode+section) for auto-save
|
|
|
|
|
* @param {null|string} [options.section] Section to edit; number, 'T-'-prefixed, null or 'new' (currently just source mode)
|
|
|
|
|
* @param {number} [options.oldId] Old revision ID. Current if omitted.
|
|
|
|
|
* @param {string} [options.targetName] Optional target name for tracking
|
|
|
|
|
* @param {boolean} [options.modified] The page was been modified before loading (e.g. in source mode)
|
|
|
|
|
* @param {string} [options.wikitext] Wikitext to convert to HTML. The original document is fetched if undefined.
|
|
|
|
|
* @param {string} [options.editintro] Name of a page to use as edit intro message
|
|
|
|
|
* @param {string} [options.preload] Name of a page to use as preloaded content if pageName is empty
|
|
|
|
|
* @param {Array} [options.preloadparams] Parameters to substitute into preload if it's used
|
|
|
|
|
* @return {jQuery.Promise} Abortable promise resolved with a JSON object
|
|
|
|
|
*/
|
|
|
|
|
mw.libs.ve.targetLoader.requestParsoidData = function ( mode, pageName, options ) {
|
|
|
|
|
console.log('loading page data: ', pageName);
|
|
|
|
|
if (window.URL) {
|
|
|
|
|
var urlInfo = new URL(location.href);
|
|
|
|
|
let tplPageName = urlInfo.searchParams.get('tplPageName');
|
|
|
|
|
if (tplPageName) {
|
|
|
|
|
// 使用模板页面名替代页面名
|
|
|
|
|
pageName = tplPageName;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _oldRequestParsoidData(mode, pageName, options);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console.log('mw.libs.ve.targetLoader not defined');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 重写参数输入框
|
|
|
|
|
// 1. 添加下拉框类型
|
|
|
|
|
if (ve.ui && ve.ui.MWParameterPage) {
|
|
|
|
|
var _oldCreateValueInput = ve.ui.MWParameterPage.prototype.createValueInput;
|
|
|
|
|
ve.ui.MWParameterPage.prototype.createValueInput = function () {
|
|
|
|
|
var type = this.parameter.getType(),
|
|
|
|
|
value = this.parameter.getValue(),
|
|
|
|
|
valueInputConfig = this.getDefaultInputConfig();
|
|
|
|
|
|
|
|
|
|
if ( type === 'dropdown' ) {
|
|
|
|
|
return new ve.ui.MWParameterDropdownInputWidget( valueInputConfig, this.parameter.getDefaultValue() );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _oldCreateValueInput.call(this);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console.log('ve.ui.MWParameterPage not defined');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateVisualEditorConfig();
|