User:逆襲的天邪鬼/Twinkle-lzh/friendlytag.js: Difference between revisions
User:逆襲的天邪鬼/Twinkle-lzh/friendlytag.js (view source)
Revision as of 13:19, 6 June 2017
, 6 years agono edit summary
No edit summary |
No edit summary |
||
(7 intermediate revisions by the same user not shown) | |||
Line 43:
}
Window.setTitle( "條目
form.append({ type: 'header', label: '常因' });
Line 67:
type: 'textarea',
label: '合併理由(會附在條目的討論頁):',
tooltip: '請填寫理由。'
});
}
break;
case "遷":
checkbox.subgroup = [
{
name: 'moveTarget',
type: 'input',
label: '目標:',
}
];
if (mw.config.get('wgNamespaceNumber') === 0) {
checkbox.subgroup.push({
name: 'moveReason',
type: 'textarea',
label: '移動理由(會附在條目的討論頁):',
tooltip: '請填寫理由。'
});
Line 127 ⟶ 144:
Twinkle.tag.checkedTags = [];
// Tags for ARTICLES start here
Line 230 ⟶ 155:
'文白相雜': '文白相雜',
'繁簡相雜': '繁簡相雜',
'無據': '文章沒有任何參考來源',
'
'文未準': '文章存在一些問題,需要修正。必須指出具體原因。選中此條後會顯示一些常用原因,另外也可以填寫自己的理由。',
'遷': '請求移動條目。請記得給出目標名稱和移動原因。',
'併': '請求與其他條目合併。請記得給出合併目標和原因。'
};
Twinkle.tag.article.tagaliases = {
'殘章': ['stub', '芻文'],
'文白相雜': ['NotClassicalChinese'],
'繁簡相雜': ['簡體'],
'無據': ['Unreferenced'],
'文未準': ['Disputed'],
'遷': ['Move'],
'併': ['Mergeto']
};
Line 244 ⟶ 180:
'非大典文辭': '非百科全書語氣',
'非中立': '中立性有問題。注意:請仔細解釋原因否則標記可能無效。',
'分段、分節過於
};
Line 250 ⟶ 186:
main: function( pageobj ) {
var params = pageobj.getCallbackParameters(),
tagRe, tagText = '', summaryText = '
tags
// Remove tags that become superfluous with this action
Line 258 ⟶ 194:
var addTag = function friendlytagAddTag( tagIndex, tagName ) {
var currentTag = "";
switch (tagName) {
case '文白相雜':
currentTag += '{{文白相雜|~~~~~}}\n';
case '文未準':
currentTag += '{{文未準|';
currentTag += params.tagParameters.disputeReason.join(';');
if (params.tagParameters.disputeCustomReason) {
if (params.tagParameters.disputeReason.length > 0) {
currentTag += ';';
}
currentTag += params.tagParameters.disputeCustomReason;
case '遷':
if (params.tagParameters.moveTarget) {
currentTag += '{{遷|';
// normalize the merge target for now and later
params.tagParameters.moveTarget = Morebits.string.toUpperCaseFirstChar(params.tagParameters.moveTarget.replace(/_/g, ' '));
currentTag += params.tagParameters.moveTarget + '}}\n';
}
break;
case '併':
if (params.tagParameters.mergeTarget) {
currentTag += '{{併|';
// normalize the merge target for now and later
params.tagParameters.mergeTarget = Morebits.string.toUpperCaseFirstChar(params.tagParameters.mergeTarget.replace(/_/g, ' '));
currentTag += params.tagParameters.mergeTarget + '}}\n';
}
break;
case '殘章':
pageText = pageText + '\n{{殘章}}';
break;
default:
break;
}
tagText += currentTag;
if ( tagIndex > 0 ) {
Line 309 ⟶ 255:
// Check for preexisting tags and separate tags into groupable and non-groupable arrays
for
var found = false;
tagRe = new RegExp( '(\\{\\{' + params.tags[i] + '(\\||\\}\\})|\\|\\s*' + params.tags[i] + '\\s*=[a-z ]+\\d+)', 'im' );
if (
found = true;
}
if (Twinkle.tag.article.tagaliases) {
var aliases = Twinkle.tag.article.tagaliases[params.tags[i]];
for (var j=0; j<aliases.length; j++) {
tagRe = new RegExp( '(\\{\\{' + aliases[j] + '(\\||\\}\\})|\\|\\s*' + aliases[j] + '\\s*=[a-z ]+\\d+)', 'im' );
if (tagRe.exec(pageText)) {
found = true;
break;
}
}
}
if (!found) {
tags = tags.concat( params.tags[i] );
} else {
Morebits.status.warn( '信息', '在頁面上找到{{' + params.tags[i] +
'}}…跳过' );
// don't do anything else with merge tags
if (params.tags[i] === "
params.tagParameters.mergeTarget = params.tagParameters.mergeReason = false;
}
if (params.tags[i] === "遷") {
params.tagParameters.moveTarget = params.tagParameters.moveReason = false;
}
}
}
tags.sort();
Line 341 ⟶ 296:
// complicated than it'd need to be, to allow templates as parameters,
// and to handle whitespace properly.
pageText = pageText.replace(/^\s*(?:((?:\s*\{\{\s*(?:
"$1" + tagText);
summaryText += ( tags.length > 0 ? '
'至文
// avoid truncated summaries
Line 358 ⟶ 313:
pageobj.setCreateOption('nocreate');
pageobj.save(function() {
var talkpageText;
var talkpage;
// special functions for merge tags
if (params.tagParameters.mergeReason) {
// post the rationale on the talk page (only operates in main namespace)
talkpageText += params.tagParameters.mergeReason.trim() + "--~~~~";
talkpage.setAppendText(talkpageText);
talkpage.setEditSummary('議將[[' +
'併至' + '[[' + params.
Twinkle.getPref('summaryAd'));
talkpage.setWatchlist(Twinkle.getFriendlyPref('watchMergeDiscussions'));
Line 373 ⟶ 330:
talkpage.append();
}
if (params.
//
talkpageText = "\n== 議遷至[[" + params.tagParameters.moveTarget + "]] ==\n";
talkpageText += params.tagParameters.moveReason.trim() + "--~~~~";
talkpage = new Morebits.wiki.page("Talk:" + mw.config.get('wgTitle'), "將理由貼进討論頁");
talkpage.setAppendText(talkpageText);
talkpage.setEditSummary('議將[[' + mw.config.get('wgTitle') + ']]' +
'遷至' + '[[' + params.tagParameters.moveTarget + ']]' +
Twinkle.getPref('summaryAd'));
talkpage.setWatchlist(Twinkle.getFriendlyPref('watchMergeDiscussions'));
talkpage.setCreateOption('recreate');
talkpage.append();
}
});
Line 402 ⟶ 354:
Twinkle.tag.callback.evaluate = function friendlytagCallbackEvaluate(e) {
var form = e.target;
var params = {};
if (form.patrolPage) {
Line 408 ⟶ 361:
params.tags = form.getChecked( 'articleTags' );
params.tagParameters = {
moveReason: form['articleTags.moveReason'] ? form['articleTags.moveReason'].value : null,
mergeTarget: form['articleTags.mergeTarget'] ? form['articleTags.mergeTarget'].value : null,
mergeReason: form['articleTags.mergeReason'] ? form['articleTags.mergeReason'].value : null,
disputeReason: form.getChecked('articleTags.disputeReason'),
disputeCustomReason: form['articleTags.disputeCustomReason'] ? form['articleTags.disputeCustomReason'].value : null,
};
// form validation
if( !params.tags.length ) {
alert( '必
return;
}
Line 436 ⟶ 380:
Morebits.wiki.actionCompleted.redirect = Morebits.pageNameNorm;
Morebits.wiki.actionCompleted.notice = "標記完成,在几秒
var wikipedia_page = new Morebits.wiki.page(Morebits.pageNameNorm, "正在標記條目");
|