User:PexEric/Draft no cat.js
外观
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
// 来自 [[:en:User:DannyS712/Draft no cat.js]]
// Install with:
// <code><nowiki> {{subst:Iusc|User:DannyS712/Draft no cat.js}} </nowiki></code>
// or with
// <code><nowiki> importScript( 'User:DannyS712/Draft no cat.js' ); // Backlink: [[User:DannyS712/Draft no cat.js]] </nowiki></code>
//
// Includes contributions by [[User:BrownHairedGirl]]
// If forking this script, please note our contributions / give us credit
$(() => {
const DraftNoCat = {};
window.DraftNoCat = DraftNoCat;
DraftNoCat.config = {
name: '[[User:PexEric/Draft no cat.js|Draft no cat]]',
version: 1.8,
debug: false
};
DraftNoCat.summary = '使用' + DraftNoCat.config.name + " v" + DraftNoCat.config.version + "将分类链接化," +
"以防止分类中出现草稿(参见[[WP:DRAFTCAT]])。" +
"手动链接化的做法是添加一个英文冒号:\"[[Category:\" → \"[[:Category:\"";
DraftNoCat.run = function () {
var editSummary = DraftNoCat.summary;
// if this is user page, add a ping to the user
if ( mw.config.get( 'wgNamespaceNumber' ) === 2) {
var username = mw.config.get( 'wgRelevantUserName' );
editSummary = '@[[User:' + username + '|' + username + ']]: ' + editSummary;
}
if ( DraftNoCat.config.debug ) {
console.log ( editSummary );
}
var api = new mw.Api();
api.get( {
action: 'query',
titles: mw.config.get( 'wgPageName' ),
prop: 'revisions',
rvprop: 'content',
rvslots: 'main',
formatversion: 2
} ).done(
function ( response ) {
console.log( response );
var text = response.query.pages[0].revisions[0].slots.main.content;
var newText = text
.replace( /\[\[\s*Category:/gi, '\[\[:Category:' ); // Replace categorization with links
api.postWithEditToken( {
action: 'edit',
title: mw.config.get( 'wgPageName' ),
text: newText,
summary: editSummary,
minor: true
} ).done(
function() {
location.reload();
}
);
}
);
};
});
$( document ).ready( () => {
if ( mw.config.get( 'wgNamespaceNumber' ) === 2 || mw.config.get( 'wgNamespaceNumber' ) === 118 ) {
mw.loader.using(
[ 'mediawiki.util' ],
function () {
var link = mw.util.addPortletLink( 'p-cactions', '#', 'DNC', 'ca-dnc', 'Draft no cats');
$( link ).click( function ( event ) {
event.preventDefault();
mw.loader.using( 'mediawiki.api', window.DraftNoCat.run );
} );
}
);
}
} );