Usuário:Heldergeovane/Scripts/Ligações extras.js
Origem: Wikilivros, livros abertos por um mundo aberto.
Nota: Após gravar, terá de limpar a cache do seu navegador para ver as alterações. Mozilla / Firefox / Safari: pressione Shift enquanto clica em Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (Command-R num Macintosh); Konqueror:: clique no botão Recarregar ou pressione F5; Opera: limpe a cache em Ferramentas → Preferências (Tools → Preferences); Internet Explorer: pressione Ctrl enquanto clica em Recarregar ou pressione Ctrl-F5.
function addLink(local, text, href) { if ( !local ) return null; local.appendChild(document.createTextNode(' (')); var link = document.createElement('a'); link.appendChild( document.createTextNode( text ) ); link.href = href; local.appendChild(link); local.appendChild(document.createTextNode(')')); return link; } addOnloadHook(function () { //Nas páginas de bibliografia, adiciona uma ligação para incluir um modelo da predefinição "Referência a livro" if (0 == wgNamespaceNumber && 'edit' == wgAction) // && wgPageName.match(/Referências|Bibliografia/) addPortletLink('p-cactions', 'javascript:insertTags("* {{Referência a livro|NomeAutor=",' + '" |SobrenomeAutor= |Título= |Subtítulo= |Edição= |Local de publicação= |Editora= |Ano= |Páginas= |Volumes= |Volume= |ID= |URL= }}",' + '"")', '+ Referência', 'ca-ref', 'Adicionar referência a livro', '+') //Adiciona uma ligação para limpar a caixa de areia //TODO: Usar edição via API para que o link limpe automaticamente a página if ("Wikilivros:Caixa_de_areia" == wgPageName) addPortletLink('p-views', 'http://pt.wikibooks.org/w/index.php?title=Wikilivros:Caixa_de_areia&action=edit&oldid=116378', 'Limpar', 'ca-limpar', 'Limpar a caixa de areia') //Ao exibir os afluentes de uma página, adiciona duas ligações extras para cada item: 'editar' e 'hist' if (wgPageName == "Especial:Páginas_afluentes"){ var lista = document.getElementById('mw-whatlinkshere-list'); if (lista){ Linhas = lista.getElementsByTagName('li'); for (var i=0; i<Linhas.length; i++){ var linha = Linhas[i]; addLink(linha, '← editar', linha.getElementsByTagName('a')[0].href.replace('/wiki/','/w/index.php?title=') + '&\action=edit'); addLink(linha, '← hist', linha.getElementsByTagName('a')[0].href.replace('/wiki/','/w/index.php?title=') + '&\action=history'); } } } //Adiciona uma ligação para as contribuições globais de um usuário if (wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk"){ var nome = wgTitle.split('/')[0]; var primeiro = document.getElementById('p-tb').getElementsByTagName('li')[0]; addPortletLink('p-tb', 'http://toolserver.org/~luxo/contributions/contributions.php?user=' + nome, 'Contribuições globais', 't-global', 'Ver as contribuições globais de ' + nome, 'g', primeiro); } //Adiciona uma aba para comparar a edição versão de uma página com a última edição if (wgNamespaceNumber >= 0 && !document.getElementById('toolbar')) { var pLink = document.getElementById('t-permalink') if (pLink) difLink = pLink.firstChild.href.replace(/&oldid=/,'&diff=prev&oldid='); else difLink = wgServer + wgScript + '?title=' + wgPageName + '&diff=0'; addPortletLink('p-cactions', difLink, 'dif', 'ca-last', 'Mostrar as diferenças entre a penúltima e a última edição desta página'); } //Adiciona uma ligação na barra lateral para exibir as estatísticas sobre a visualização da página exibida var primeiro = document.getElementById('p-tb').getElementsByTagName('li')[0]; var link = 'http://stats.grok.se/pt.b/'; var d=new Date(); var mes = d.getMonth()+1; mes = mes<10? "0".concat(mes): mes; var ano = d.getFullYear(); link = link.concat(ano).concat(mes) + '/' + wgPageName; addPortletLink('p-tb', link, 'Estatísticas de visualizações', 't-stat', 'Ver estatísticas sobre a visualização desta página', 's', primeiro); //Adiciona ligações editar, links e hist à tela exibida depois de mover uma página if ("Movepage" == wgCanonicalSpecialPageName) { título = document.getElementById('firstHeading').innerHTML; if (título && "Página movida com sucesso" == título){ cont = document.getElementById('bodyContent'); /** Obsoleto: é só usar a [[MediaWiki:Movepage-moved]] aviso = cont.getElementsByTagName('b')[0]; links = aviso.getElementsByTagName('a'); spans = aviso.getElementsByTagName('span'); for (var i=0; i<links.length; i++){ var link = links[i]; var span = spans[i]; addLink(span, '← editar', link.href.replace('&redirect=no','&action=edit')); addLink(span, '← links', link.href.replace('&redirect=no','').replace('?title=','?title=Especial:Páginas_afluentes/')); addLink(span, '← hist', link.href.replace('&redirect=no','&action=history')); } **/ //Ficará obsoleto quando puder usar [[MediaWiki:Movepage-page-moved]] com $3 e $4 (ver translatewiki); lista = cont.getElementsByTagName('ul')[1]; lista = lista.getElementsByTagName('li'); for (var i=0; i<lista.length; i++){ var mov = lista[i].getElementsByTagName('a'); var span0 = document.createElement( 'span' ); var link = mov[0].href; span0.appendChild( mov[0].cloneNode(true) ); addLink(span0, '← editar', link.replace('&redirect=no','&action=edit')); addLink(span0, '← links', link.replace('&redirect=no','').replace('?title=','?title=Especial:Páginas_afluentes/')); lista[i].insertBefore(span0,mov[0]); lista[i].removeChild(mov[4]); //havia um link na posição 0, foram adicionado mais 4, então o antigo está na posição 4 var span1 = document.createElement( 'span' ); link = mov[4].href; span1.appendChild( mov[4].cloneNode(true) ); addLink(span1, '← editar', link.replace('/wiki/', 'w/index.php?title=') + '&action=edit'); addLink(span1, '← links', link.replace('/wiki/', '/wiki/Especial:Páginas_afluentes/')); addLink(span1, '← hist', link.replace('/wiki/', 'w/index.php?title=') + '&action=history'); lista[i].insertBefore(span1,mov[4]); lista[i].removeChild(mov[8]); //havia links de 0 a 4, foram adicionado mais 4, então o antigo está na posição 8 } } } //Subpáginas var NSWithoutSubpages = new Array(-1, 6); if (document.getElementById('p-tb') && NSWithoutSubpages.indexOf(wgNamespaceNumber) == -1){ var link = '/wiki/Special:PrefixIndex/' + wgPageName + '/'; addPortletLink('p-tb', link, 'Subpáginas', 't-subpages', 'Subpáginas desta página'); } //Remove 'title=...' das ligações permanentes var pLink = document.getElementById('t-permalink') if (pLink) pLink.firstChild.href = pLink.firstChild.href.replace(/title=[^&]*&/,'') // Ligações automáticas para o índice dos livros if (0 == wgNamespaceNumber && wgPageName.match(/\//) ){ var l = document.getElementById('contentSub').getElementsByTagName('a')[0]; if ( l ) { var s = l.parentNode; var l2 = document.createElement('a'); l2.href = l.href.replace(/\b\/wiki\//,'/wiki/Especial:Busca/') + '/Índice'; l2.title = 'Índice'; l2.appendChild(document.createTextNode('Índice')); s.insertBefore(l2, l); s.insertBefore(document.createTextNode(' | '), l); } } //Converte a sintaxe [[xx:yy|zz]] para ligações *de verdade* nas páginas de scripts e folhas de estilo if (wgPageName.match(/(\.js|\.css)$/)) { var pre = document.getElementById('bodyContent').getElementsByTagName('pre')[0] if (pre) { function criaLinks(t){ t = t.replace(/\[\[\s*([^\|\]]+?)\s*\]\]/ig, '[[<a href="/wiki/$1">$1</a>]]') t = t.replace(/\[\[\s*([^\|\]]+?)\s*\|\s*([^\]]+?)\s*\]\]/ig, '[[<a href="/wiki/$1">$2</a>]]') return t } var c = getElementsByClassName(pre, 'span', 'coMULTI') for (i=0; i< c.length; i++) c[i].innerHTML = criaLinks(c[i].innerHTML) c = getElementsByClassName(pre, 'span', 'co1') for (i=0; i< c.length; i++) c[i].innerHTML = criaLinks(c[i].innerHTML) } } })