User:Magnus Manske/annas archive.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// <nowiki>
/*
This script adds links to Anna's Archive to appropriate items (books, research articles etc)
TO ACTIVATE, ADD
importScript( 'User:Magnus_Manske/annas_archive.js' ); // [[User:Magnus Manske/annas_archive.js]]
TO YOUR [[Special:MyPage/common.js]] USER SUBPAGE.
*/
function try_annas_archive() {
if ( mw.config.get('wgNamespaceNumber') != 0 ) return ;
if ( mw.config.get('wgAction') != 'view' ) return ;
function aa_link(query) {
return " <sup><a class='external' title='Annas Archive' href='https://annas-archive.org/search?q="+encodeURIComponent(query)+"'>AA</a></sup>";
}
mw.loader.using( [ 'user.options' ] ).then( function () {
let is_scholarly_article = ($("#P31 a[title='Q13442814']").length>0) || ($("#P356").length>0);
let is_book = ($("#P31 a[title='Q47461344']").length>0) || ($("#P8383").length>0) || ($("#P957").length>0) || ($("#P212").length>0);
let is_other = ($("#P31 a[title='Q13433827']").length>0);
if ( is_other || (!is_scholarly_article && !is_book) ) return;
if ( $('#firstHeading span.wb-empty').length==0 ) {
let title = $('span.wikibase-title-label').text();
if ( title != '' ) $('span.wikibase-title-label').append(aa_link(title));
}
let properties = ['P1476','P356','P957','P212'];
$.each(properties,function(num,prop){
let key = "#"+prop+" div.wikibase-snakview-value";
$(key).each(function(node_num,node){
let value = $($(node).children()[0]).text();
if ( value != '' ) $(node).append(aa_link(value));
});
});
} ) ;
}
$( function(){try_annas_archive();} ) ;
// </nowiki>