LLWiki正在建设中,欢迎加入我们!
“MediaWiki:Gadget-MobileCategories.js”的版本间差异
跳转到导航
跳转到搜索
小 |
|||
第1行: | 第1行: | ||
/** |
|||
// 引自[[wikipedia:mediawiki:gadget-MobileCategories.js]] |
|||
* @OriginalVersion: [[wikipedia:mediawiki:gadget-MobileCategories.js]] |
|||
* @EditedBy: [[User:Bhsd]] |
|||
*/ |
|||
$(function() { |
$(function() { |
||
if (mw.config.get( 'skin' ) == 'vector' || mw.config.get( 'wgAction' ) != 'view') { |
|||
window.MobileCategoriesComplete = true; |
|||
!["view","submit"].includes(mw.config.get('wgAction')) ) { |
|||
return; |
|||
window.MobileCategoriesComplete = true; |
|||
} |
|||
return; |
|||
} |
|||
const showhiddencats = mw.user.options.get('showhiddencats'), |
|||
api = new mw.Api(); |
|||
apiRequest = api.get( {action:'query', titles: mw.config.get('wgPageName'), prop: 'categories', clprop: 'hidden', cllimit: 50, formatversion: 2 } ), |
|||
apiRequest2 = api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] ); |
|||
api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] ).then(function() { |
|||
var wgCategories = mw.config.get( 'wgCategories' ), |
|||
var categories = [], |
|||
categories = wgCategories.normal, |
|||
hiddenCats = [], |
|||
hiddenCats = wgCategories.hidden, |
|||
response1Data = data[0], |
|||
allCats = showhiddencats ? categories.concat( hiddenCats ) : categories; |
|||
response2Data = data[1], |
|||
allCats = response1Data.query.pages[0].categories || []; |
|||
if ( allCats.length === 0 ) { |
|||
window.MobileCategoriesComplete = true; |
|||
if ( allCats.length === 0 ) { |
|||
return; |
|||
window.MobileCategoriesComplete = true; |
|||
} |
|||
return; |
|||
} |
|||
function categoryHtmlGenerator(array) { |
|||
mw.config.set('wgCategories', allCats.map(function(ele) { return ele.title.slice(9); })); |
|||
return $( '<ul>', {html: array.map(function(cat) { |
|||
return $('<a>', {href: mw.util.getUrl( 'Category:'+cat ), title: 'Category:'+cat, text: cat}) |
|||
api.get({ action:'parse', text:JSON.stringify(allCats), contentmodel:'wikitext', variant:mw.config.get('wgUserVariant'), formatversion:2, prop:'text' }) |
|||
.wrap( '<li>' ).parent(); |
|||
.then(function(data2) { |
|||
})}); |
|||
const allCatsVar = data2.parse.text.match(/<p>(.*)\n<\/p>/)[1], |
|||
} |
|||
contentCats = JSON.parse(allCatsVar); |
|||
var normalCatlinks, hiddenCatlinks; |
|||
function categoryHtmlGenerator(element, index, array) { |
|||
if (categories.length) { |
|||
if ( !element.hidden ) { |
|||
normalCatlinks = $( '<div>' ) |
|||
categories.push( $('<li>').append( |
|||
.attr( 'id', 'mw-normal-catlinks' ) |
|||
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) ) |
|||
.addClass('mw-normal-catlinks') |
|||
.attr( 'title', element.title ) |
|||
.append( categoryHtmlGenerator( categories ) ) |
|||
.append( document.createTextNode( contentCats[index].title.substring(9) ) ) |
|||
.prepend( '<a href="/zh/Special:Categories" title="Special:页面分类">' + mw.message( 'pagecategories' ).escaped() + '</a>' + mw.message( 'colon-separator' ).escaped() ); |
|||
).get( 0 ) |
|||
} |
|||
); |
|||
if (showhiddencats && hiddenCats.length) { |
|||
} |
|||
hiddenCatlinks = $( '<div>' ) |
|||
else if (showhiddencats) { |
|||
.attr( 'id', 'mw-hidden-catlinks' ) |
|||
hiddenCats.push( $('<li>').append( |
|||
.addClass(['mw-hidden-catlinks', 'mw-hidden-cats-user-shown']) |
|||
$( '<a>' ).attr( 'href', mw.util.getUrl( element.title ) ) |
|||
.append( categoryHtmlGenerator( hiddenCats ) ) |
|||
.attr( 'title', element.title ) |
|||
.prepend( wgULS("隐藏分类", "隱藏分類") + mw.message( 'colon-separator' ).escaped() ); |
|||
.append( document.createTextNode( contentCats[index].title.substring(9) ) ) |
|||
} |
|||
).get( 0 ) |
|||
var catlinks = $( '<div>' ) |
|||
); |
|||
.addClass( 'catlinks' ) |
|||
} |
|||
.attr( 'id', 'catlinks' ) |
|||
} |
|||
.data( 'mw', 'interface' ); |
|||
if (normalCatlinks) { catlinks.append(normalCatlinks); } |
|||
allCats.forEach( categoryHtmlGenerator ); |
|||
if (hiddenCatlinks) { catlinks.append(hiddenCatlinks); } |
|||
$('.printfooter').after(catlinks); |
|||
if ( categories.length === 0 && hiddenCats.length === 0 ) { |
|||
window.MobileCategoriesComplete = true; |
|||
mw.hook( 'wikipage.categories' ).fire(catlinks); |
|||
return; |
|||
}); |
|||
} |
|||
var normalCatlinks, hiddenCatlinks; |
|||
if (categories.length) { |
|||
normalCatlinks = $( '<div>' ) |
|||
.attr( 'id', 'mw-normal-catlinks' ) |
|||
.addClass('mw-normal-catlinks') |
|||
.append( $( '<ul>' ).append( categories ) ) |
|||
.prepend( '<a href="/zh/Special:Categories" title="Special:页面分类">' + mw.message( 'pagecategories' ).escaped() + '</a>' + mw.message( 'colon-separator' ).escaped() ); |
|||
} |
|||
if (hiddenCats.length) { |
|||
hiddenCatlinks = $( '<div>' ) |
|||
.attr( 'id', 'mw-hidden-catlinks' ) |
|||
.addClass(['mw-hidden-catlinks', 'mw-hidden-cats-user-shown']) |
|||
.append( $( '<ul>' ).append( hiddenCats ) ) |
|||
.prepend( wgULS("隐藏分类", "隱藏分類") + mw.message( 'colon-separator' ).escaped() ); |
|||
} |
|||
var catlinks = $( '<div>' ) |
|||
.addClass( 'catlinks' ) |
|||
.attr( 'id', 'catlinks' ) |
|||
.data( 'mw', 'interface' ); |
|||
if (normalCatlinks) { catlinks.append(normalCatlinks); } |
|||
if (hiddenCatlinks) { catlinks.append(hiddenCatlinks); } |
|||
$('.printfooter').after(catlinks); |
|||
window.MobileCategoriesComplete = true; |
|||
mw.hook( 'wikipage.categories' ).fire(catlinks); |
|||
}); |
|||
} ); |
|||
} ); |
} ); |
2021年10月9日 (六) 03:52的版本
/** * @OriginalVersion: [[wikipedia:mediawiki:gadget-MobileCategories.js]] * @EditedBy: [[User:Bhsd]] */ $(function() { if (mw.config.get( 'skin' ) == 'vector' || mw.config.get( 'wgAction' ) != 'view') { window.MobileCategoriesComplete = true; return; } const showhiddencats = mw.user.options.get('showhiddencats'), api = new mw.Api(); api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] ).then(function() { var wgCategories = mw.config.get( 'wgCategories' ), categories = wgCategories.normal, hiddenCats = wgCategories.hidden, allCats = showhiddencats ? categories.concat( hiddenCats ) : categories; if ( allCats.length === 0 ) { window.MobileCategoriesComplete = true; return; } function categoryHtmlGenerator(array) { return $( '<ul>', {html: array.map(function(cat) { return $('<a>', {href: mw.util.getUrl( 'Category:'+cat ), title: 'Category:'+cat, text: cat}) .wrap( '<li>' ).parent(); })}); } var normalCatlinks, hiddenCatlinks; if (categories.length) { normalCatlinks = $( '<div>' ) .attr( 'id', 'mw-normal-catlinks' ) .addClass('mw-normal-catlinks') .append( categoryHtmlGenerator( categories ) ) .prepend( '<a href="/zh/Special:Categories" title="Special:页面分类">' + mw.message( 'pagecategories' ).escaped() + '</a>' + mw.message( 'colon-separator' ).escaped() ); } if (showhiddencats && hiddenCats.length) { hiddenCatlinks = $( '<div>' ) .attr( 'id', 'mw-hidden-catlinks' ) .addClass(['mw-hidden-catlinks', 'mw-hidden-cats-user-shown']) .append( categoryHtmlGenerator( hiddenCats ) ) .prepend( wgULS("隐藏分类", "隱藏分類") + mw.message( 'colon-separator' ).escaped() ); } var catlinks = $( '<div>' ) .addClass( 'catlinks' ) .attr( 'id', 'catlinks' ) .data( 'mw', 'interface' ); if (normalCatlinks) { catlinks.append(normalCatlinks); } if (hiddenCatlinks) { catlinks.append(hiddenCatlinks); } $('.printfooter').after(catlinks); window.MobileCategoriesComplete = true; mw.hook( 'wikipage.categories' ).fire(catlinks); }); } );