User:Ungoliant MMDCCLXIV/synshide.js

var nymtypes = { 'synonyms': 'synonyms', 'synonym': 'synonyms', 'antonyms': 'antonyms', 'antonym': 'antonyms', 'hyponyms': 'hyponyms', 'hyponym': 'hyponyms', 'hypernyms': 'hypernyms', 'hypernym': 'hypernyms', // 'coordinateterms': 'coordinate terms' };

function setupNyms(dltag) { var names = ''; $(dltag).children('dd').children('span.nyms').each(function{       var nymclass = /nyms\s([a-z]+)/i.exec(this.className);        if (nymclass !== null && nymclass.length > 1 && nymtypes[nymclass[1]] !== null) {            names += ((names.length > 0)? ', ' : '') + nymtypes[nymclass[1]];       }    });

if (names.length === 0) return;

var toggler = $(''); function show { toggler.html(names + ' ▲'); if ($(dltag).children('dd').children.not('.nyms').length === 0) { $(dltag).show; } else { $(dltag).children('dd').children('span.nyms').show; }   }    function hide { toggler.html(names + ' ▼'); if ($(dltag).children('dd').children.not('.nyms').length === 0) { $(dltag).hide; } else { $(dltag).children('dd').children('span.nyms').hide; }   }    hide;

$(dltag).parent.children('ul, dl').first.before($(' ').addClass('HQToggle').append(toggler).css('margin-left', '5px')); toggler.on('click', VisibilityToggles.register('semantic relations', show, hide));

}

$.when($.ready, mw.loader.using('mediawiki.cookie')).done(function{   if (mw.config.get('wgNamespaceNumber') === 0) {        $('dl:has(dd > .nyms)').each(function{ setupNyms(this); });   } });