MediaWiki:Common.js/search.js
Hoppa till navigering
Hoppa till sök
OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.
- Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
- Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
- Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
- Opera: Tryck Ctrl-F5.
/*
== Sökning efter sidtitlar som inte stöds ==
*/
/**
* Omdirigera till [[Övriga tecken]] vid sökning efter sidtitlar som inte stöds.
* Uppslag på [[Övriga uppslagsord]] omdirigeras automatiskt till andra wikier.
*/
if (mw.config.get('wgCanonicalSpecialPageName') === 'Search' && location.search.indexOf('fulltext=1') === -1) {
var search_term = /[\?&]search=([^&]+)/.exec(location.search);
if (search_term) {
search_term = decodeURIComponent(search_term[1].replace(/\+/g, ' '));
search_term = ({
'.': 'punkt',
':': 'kolon',
'<': 'mindre_än',
'>': 'större_än',
'[': 'inledande_rak_parentes',
']': 'avslutande_rak_parentes',
'{': 'inledande_klammerparentes',
'}': 'avslutande_klammerparentes',
'|': 'lodstreck',
'#': 'nummertecken',
' ': 'hårt_blanksteg',
'\xa0': 'hårt_blanksteg',
'_': 'understreck',
'<3': 'hjärta'
})[search_term];
if (search_term) {
location.href = '/wiki/Övriga_tecken#' +
encodeURIComponent(search_term);
}
}
}
/*
== Hitta översättningar vid sökning ==
*/
// Inspired by and functionally equivalent to
// https://en.wiktionary.org/wiki/User:Yair_rand/FindTrans.js
//
// Informs if the search term is found in other pages' translation sections
if (mw.config.get('wgCanonicalSpecialPageName') === 'Search') $(function () {
var $a = $('.mw-search-createlink .new');
if (!$a.length) return;
var
re_top = /\{\{ö\-topp(\|[^\}]*)?\}\}/g,
re_trans = new RegExp(
/\n\*([^*:]+):[^\n]*?(\n\*\*[^\n]+?)*?/.source +
/\{\{ö\+?\|[^\|]*\|/.source +
// escape chars that can be in titles
$a.text().replace(/([.?*+^$\\()-])/g, '\\$1') +
/(\|[^\}]+)?\}\}/.source,
'g');
new mw.Api().get({
action: 'query',
generator: 'backlinks',
gbltitle: $a.text(),
gblnamespace: 0,
prop: 'revisions',
rvprop: 'content'
}).done(function (data) {
if ( !data.query ) {
return;
}
mw.loader.load( ['mediawiki.util'] );
$.each(data.query.pages, function (id, page) {
re_top.lastIndex = 0;
re_trans.lastIndex = 0;
var nil, top, trans, last_gloss,
text = page.revisions[0]['*'];
// re.exec() returns null if no match is found (as opposed to undefined)
while (top !== null || trans !== null) {
if (top === nil) top = re_top.exec(text);
if (trans === nil) trans = re_trans.exec(text);
if (top && (!trans || top.index < trans.index)) {
last_gloss = top[1] && top[1].replace(/^[\s\|]+/, '');
top = nil;
} else if (trans) {
$('<p>')
.append(
$a.clone().css({fontWeight: 'bold'}),
' är en översättning av ordet ',
$('<a>', {
href: mw.util.getUrl(page.title),
text: page.title,
css: { fontWeight: 'bold' }
}),
' på ',
trans[1],
last_gloss ? ' ("' + last_gloss + '")' : '',
'.'
)
.prependTo('.searchresults');
trans = nil;
}
}
});
});
});