MediaWiki:Api-stylesheets/wiktFR.xsl

  

 ©  Wiktionnaire. Paru en  CC-BY-SA 3.0  Prononciation d'information  •     Wiktionary extract a.wtif1 { color: black; text-decoration: none;} a.wtif1:hover {text-decoration: underline;} .disambig-see-also, .disambig-see-also-2 {display:inline;} a.new {color: red;}
 * 1) wordThisIsFor { font-weight:bold;}
 * 1) container {background-color:white; padding: 0.5em; border: solid black thin;}
 * 1) error {color: red;font-size:larger;}

div.exit {float:right;font-weight:bold;font-family:sans-serif;border:outset;padding:0.1em} div.exit a {color: black; text-decoration:none;} <script type='text/javascript'> /*<![CDATA[*/ function setup { var createLink = '«Créer»'; // text only var pageURL = '/w/index.php?title=' + encodeURIComponent(decodeURIComponent(location.search.match(/\&page\=([^&]*)/)[1])); var src = document.getElementById('src'); var display = document.getElementById('word-list'); var loc = location.search.match(/\&page\=([^&]*)/)[1]; var preferLang = location.search.match(/\&lang\=([^&]*)/); if (preferLang) {preferLang = preferLang[1];} if (preferLang.length > 3) { preferLang = null; } src.normalize; var html = src.firstChild.data; var def = html //may be redefined later. var rd = location.search.match(/\&rd\=([^&]*)/); //is this from redirect. + converts to numeric. rd = rd ? (+rd[1] + 1) : 1; //redirection level. var showWord = 0; //default to not showing. 0 = none, 1 = bold, 2 = bold link. var showWordRaw = location.search.match(/\&showWord\=([^&]*)/); showWordRaw = showWordRaw ? showWordRaw[1] : 'none'; if (showWordRaw !== "none") { showWord++; } if (showWordRaw === "link") { showWord++; } var useAudio = 0; if (location.search.match(/\&audio\=(?!none)/)) useAudio++; if (location.search.match(/\&audio\=autoplay/)) useAudio++; var closeLink = false; if (location.search.match(/&exit\=(?!false)/)) closeLink = true; var numbDfn = location.search.match(/\&count\=([^&]*)/); //count. + converts to numeric. numbDfn = numbDfn ? (+numbDfn[1]) : 1; //default to 1

var escWord = decodeURIComponent(loc).replace(/&/, '&amp;').replace(/>/, '&lt;').replace(/</, '&gt;'); //note: wordEsc does not escape quotes. DO NOT PUT AS ATTRIBUTE VALUE

try { //this assumes attribute order doesn't change!!! html = html.replace(/ [\s\S]*?<\/div>/, ''); if (preferLang) { try { //strip off all definitions before tagret lang. var subSect = html.match(new RegExp('<span class="mw-headline" id[^>]*><span id="' + preferLang + '">[\\s\\S]*$'))[0]; if (subSect.match(/<ol>[\s\S]*?<li>/)) { //if it has content def = subSect; }  } catch (e) { /*alert(e)*/} }  var lang = def.match(/<span class="mw-headline" id[^>]*>([\s\S]*?)<\/span>/)[1]; var intro = "(" + lang + ") ";

//Start testing to see if we can play audio.

var audioCreditLink; var audioLink = html.match(/\<a\s*\S*?\s*href\=\"?(http:\/\/upload.wikimedia.org\/\S*.(?:oga|ogg))\"?[^>]*>/); if (!audioLink) audioLink = html.match(/\<button[\s\S]*?\sonclick=\"[\s\S]*?&quot;videoUrl&quot;:\s*&quot;(http:\/\/upload.wikimedia.org\/\S*?)&quot;[^"]*?&quot;isVideo&quot;:\sfalse[^"]*?".*?>/); if (audioLink) { audioCreditLink = audioLink[1].match(/\/([^\/]*)$/); if (audioCreditLink) audioCreditLink = 'File:' + audioCreditLink[1] if (useAudio > 0) { var supportsHTML5Audio = (typeof Audio !== 'undefined'); var audioAutoplay = (useAudio === 2) ? "autoplay" : ""; audioLink = encodeURI(decodeURI(audioLink[1])); //should be already encoded, but better safe. intro += ' <audio style="float:right;" controls src="' + audioLink + '" ' + audioAutoplay; + ' >';

//the cortando stuff is inspired (stolen) from oggHandler. //the object tag interferes with the audio tag on firefox for autoplay //specificly it interperts autoplay differently then mplayer does. if (!supportsHTML5Audio) { intro += '<object align="right" type="application/ogg" height="18" width="180" data="' + audioLink + '" autoplay="' + (audioAutoplay === 'autoplay') + '" >'; }   intro += '<applet code="com.fluendo.player.Cortado.class" ' + '     width=180' + '     height=20' + '     archive="http://upload.wikimedia.org/jars/cortado.jar">' + ' <param name="url"  value="' +  audioLink + '" />' + ' <param name="seekable"  value="true"/>' + ' <param name="autoPlay" value="' + (audioAutoplay === 'autoplay') + '"/>' + ' <param name="showStatus"  value="show"/>' + ' <param name="showSpeaker" value="false"/>' + ' <param name="statusHeight"  value="18"/>' + '<p style="display:none" /> '; if (!supportsHTML5Audio) { intro += ' '; }    intro += ' '; } }

if (showWord) intro = '<a href="' + pageURL + '" id="wordThisIsFor" class="wtif' + showWord + '" >' + escWord + "</a> " + intro ;

var definitions_matched; //FIXME: in both cases the extraction method does not properly strip nested divs. This results in image thumbnails being left behind if (numbDfn === 1) { definitions_matched = def.match(/<ol>[\s\S]*?<\/ol>/)[0].replace(/<dl>[\s\S]*?<\/dl>/g, ).replace(/<div[^>]*>[\s\S]*?<\/div>/g, ).replace(/<\/div>/g, ).replace(/<ul>[\s\S]*?<\/ul>/g, ).replace(/<a href="(#[^"]*)">/g, '<a href="' + pageURL + '$1">').match(/<li>([\s\S]*?)<\/li>/); display.innerHTML = intro +  definitions_matched[1];  } else {   //this use not well supported...   definitions_matched = def.match(/<ol>[\s\S]*?<\/ol>/)[0].replace(/<dl>[\s\S]*?<\/dl>/g, ).replace(/<div[^>]*>[\s\S]*?<\/div>/g, ).replace(/<\/div>/g, ).replace(/<ul>[\s\S]*?<\/ul>/g, ).replace(/<a href="(#[^"]*)">/g, '<a href="' + pageURL + '$1">').match(/<li>([\s\S]*?)<\/li>/g); var tmp = intro + ' <ul>'; for (var i = 0; i < numbDfn && i < definitions_matched.length; i++) { tmp += definitions_matched[i]; }  display.innerHTML = tmp + '</ul>'; } } catch (e) { //alert(e) //page does not exist, not well formed, these regexs suck, etc display.appendChild(document.createTextNode('Impossible de récupérer la définition de ' + decodeURIComponent(loc) + ".")); document.getElementById('more-link').firstChild.data = createLink; if (rd < 9) { //arbitrary to prevent infinite loops //make sure don't have loops. var newLoc; //this should not be urlEncoded. var remAlt = false; var dLoc = decodeURIComponent(loc);

newLoc = dLoc.charAt(0).toLowerCase + dLoc.substring(1, loc.length); //try some other redirections.

if (newLoc === dLoc && dLoc.charAt(1) === "'") newLoc = dLoc.substring(2,dLoc.length); //for j'<some verb starting w/ vowel>

if (newLoc === dLoc) newLoc = dLoc.toLowerCase; if (newLoc === dLoc && location.search.match(/\&alt\=([^&]*)/)) { newLoc = decodeURIComponent(location.search.match(/\&alt\=([^&]*)/)[1]); remAlt = true; }  if (newLoc !== dLoc) { //redir var newURL = location.href.replace(/(^[\s\S]*?\&page\=)[^&]*([\s\S]*$)/, '$1'+ encodeURIComponent(newLoc) + '$2'); newURL = newURL.replace(/&rd\=[^&]*/, ''); //strip old redirect header. if (remAlt) { location.href.replace(/&alt\=[^&]*/, ''); }   location = newURL + '&rd=' + rd; } } } var sa = html.match(/<table class=\"bandeau-voir\"[^>]*>[\s\S]*?( [\s\S]*?[\s\S]*?)<\/td>[\s\S]*?<\/table>/) if(sa && sa[1]) { document.getElementById('see-also').innerHTML = ' (' + sa[1].replace(/<a[^>]*><img[^>]*\/><\/a>/, '') + ')' ; } if (closeLink) { var container = document.getElementById('container'); container.innerHTML = ' <a href="about:blank" title="Hide" target="_self">X</a> ' + container.innerHTML; }

document.getElementById('more-link').href = pageURL; if (audioCreditLink) { document.getElementById('audio-separator').style.display = 'inline'; var audioA = document.getElementById('audio-link'); audioA.href = '/w/index.php?title=' + encodeURIComponent(decodeURIComponent(audioCreditLink)); audioA.style.display = 'inline'; } }

/*]]>*/ <body onload='setup'> <xsl:apply-templates select='api/error'/> <a id='more-link'>«lire la suite»</a> <xsl:value-of select="$audio-separator"/> <a id='audio-link' style='display:none;'> <xsl:value-of select="$audio"/> </a> <small id="copyright-notice"> <xsl:copy-of select="$copyright"/> <xsl:value-of select='api/parse/text'/>

</xsl:template> <xsl:template match='api/error'> faute:  <xsl:value-of select='@info'/> </xsl:template>

</xsl:stylesheet>